task_spawn() and posix_spawn() are NuttX OS interfaces. In PROTECTED and KERNEL build modes, then can be reached from applications only via a system call. Currently, the number of parameters in a system call is limited to six; these spawn function have seven parameters. Rather than extend the maximum number of parameters across all architectures, I opted instead to marshal the seven parameters into a structure. * In order to support builtin in function in protected mode, a task_spawn() system call must be supported. Unfortunately this is overly complex because there is a (soft) limit of 6 parameters in a system call; task_spawn has seven paramters. This is a soft limit but still difficult to extend because it involves assembly language changes to numerous architectures. Better to get more creative.
188 lines
16 KiB
CSV
188 lines
16 KiB
CSV
"_exit","unistd.h","","void","int"
|
|
"adjtime","sys/time.h","defined(CONFIG_CLOCK_TIMEKEEPING)","int","FAR const struct timeval *","FAR struct timeval *"
|
|
"aio_cancel","aio.h","defined(CONFIG_FS_AIO)","int","int","FAR struct aiocb *"
|
|
"aio_fsync","aio.h","defined(CONFIG_FS_AIO)","int","int","FAR struct aiocb *"
|
|
"aio_read","aio.h","defined(CONFIG_FS_AIO)","int","FAR struct aiocb *"
|
|
"aio_write","aio.h","defined(CONFIG_FS_AIO)","int","FAR struct aiocb *"
|
|
"accept","sys/socket.h","defined(CONFIG_NET)","int","int","struct sockaddr*","socklen_t*"
|
|
"atexit","stdlib.h","defined(CONFIG_SCHED_ATEXIT)","int","void (*)(void)"
|
|
"bind","sys/socket.h","defined(CONFIG_NET)","int","int","FAR const struct sockaddr*","socklen_t"
|
|
"boardctl","sys/boardctl.h","defined(CONFIG_LIB_BOARDCTL)","int","unsigned int","uintptr_t"
|
|
"clearenv","stdlib.h","!defined(CONFIG_DISABLE_ENVIRON)","int"
|
|
"clock","time.h","","clock_t"
|
|
"clock_getres","time.h","","int","clockid_t","struct timespec*"
|
|
"clock_gettime","time.h","","int","clockid_t","struct timespec*"
|
|
"clock_nanosleep","time.h","","int","clockid_t","int","FAR const struct timespec *", "FAR struct timespec*"
|
|
"clock_settime","time.h","","int","clockid_t","const struct timespec*"
|
|
"close","unistd.h","","int","int"
|
|
"closedir","dirent.h","","int","FAR DIR*"
|
|
"connect","sys/socket.h","defined(CONFIG_NET)","int","int","FAR const struct sockaddr*","socklen_t"
|
|
"dup","unistd.h","","int","int"
|
|
"dup2","unistd.h","","int","int","int"
|
|
"exec","nuttx/binfmt/binfmt.h","!defined(CONFIG_BINFMT_DISABLE) && !defined(CONFIG_BUILD_KERNEL)","int","FAR const char *","FAR char * const *","FAR const struct symtab_s *","int"
|
|
"execv","unistd.h","!defined(CONFIG_BINFMT_DISABLE) && defined(CONFIG_LIBC_EXECFUNCS)","int","FAR const char *","FAR char *const []|FAR char *const *"
|
|
"exit","stdlib.h","","void","int"
|
|
"fcntl","fcntl.h","","int","int","int","..."
|
|
"fs_fdopen","nuttx/fs/fs.h","CONFIG_NFILE_STREAMS > 0","FAR struct file_struct*","int","int","FAR struct tcb_s*"
|
|
"fs_ioctl","nuttx/fs/fs.h","defined(CONFIG_LIBC_IOCTL_VARIADIC)","int","int","int","unsigned long"
|
|
"fstat","sys/stat.h","","int","int","FAR struct stat*"
|
|
"fstatfs","sys/statfs.h","","int","int","FAR struct statfs*"
|
|
"fsync","unistd.h","!defined(CONFIG_DISABLE_MOUNTPOINT)","int","int"
|
|
"ftruncate","unistd.h","!defined(CONFIG_DISABLE_MOUNTPOINT)","int","int","off_t"
|
|
"get_errno","errno.h","!defined(__DIRECT_ERRNO_ACCESS)","int"
|
|
"get_errno_ptr","errno.h","defined(__DIRECT_ERRNO_ACCESS)","FAR int*"
|
|
"getenv","stdlib.h","!defined(CONFIG_DISABLE_ENVIRON)","FAR char*","FAR const char*"
|
|
"getgid","unistd.h","defined(CONFIG_SCHED_USER_IDENTITY)","gid_t"
|
|
"getpeername","sys/socket.h","defined(CONFIG_NET)","int","int","FAR struct sockaddr *","FAR socklen_t *"
|
|
"getpid","unistd.h","","pid_t"
|
|
"getrandom","sys/random.h","defined(CONFIG_CRYPTO_RANDOM_POOL)","void","FAR void*","size_t"
|
|
"getsockname","sys/socket.h","defined(CONFIG_NET)","int","int","FAR struct sockaddr *","FAR socklen_t *"
|
|
"getsockopt","sys/socket.h","defined(CONFIG_NET)","int","int","int","int","FAR void*","FAR socklen_t*"
|
|
"getuid","unistd.h","defined(CONFIG_SCHED_USER_IDENTITY)","uid_t"
|
|
"if_indextoname","net/if.h","defined(CONFIG_NETDEV_IFINDEX)","FAR char *","unsigned int","FAR char *"
|
|
"if_nametoindex","net/if.h","defined(CONFIG_NETDEV_IFINDEX)","unsigned int","FAR const char *"
|
|
"insmod","nuttx/module.h","defined(CONFIG_MODULE)","FAR void *","FAR const char *","FAR const char *"
|
|
"ioctl","sys/ioctl.h","!defined(CONFIG_LIBC_IOCTL_VARIADIC)","int","int","int","unsigned long"
|
|
"kill","signal.h","","int","pid_t","int"
|
|
"link","unistd.h","defined(CONFIG_PSEUDOFS_SOFTLINKS)","int","FAR const char *","FAR const char *"
|
|
"listen","sys/socket.h","defined(CONFIG_NET)","int","int","int"
|
|
"lseek","unistd.h","","off_t","int","off_t","int"
|
|
"mkdir","sys/stat.h","!defined(CONFIG_DISABLE_MOUNTPOINT)","int","FAR const char*","mode_t"
|
|
"mkfifo2","nuttx/drivers/drivers.h","defined(CONFIG_PIPES) && CONFIG_DEV_FIFO_SIZE > 0","int","FAR const char*","mode_t","size_t"
|
|
"mmap","sys/mman.h","","FAR void*","FAR void*","size_t","int","int","int","off_t"
|
|
"munmap","sys/mman.h","defined(CONFIG_FS_RAMMAP)","int","FAR void *","size_t"
|
|
"modhandle","nuttx/module.h","defined(CONFIG_MODULE)","FAR void *","FAR const char *"
|
|
"mount","sys/mount.h","!defined(CONFIG_DISABLE_MOUNTPOINT) && defined(CONFIG_FS_READABLE)","int","const char*","const char*","const char*","unsigned long","const void*"
|
|
"mq_close","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","int","mqd_t"
|
|
"mq_getattr","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","int","mqd_t","struct mq_attr *"
|
|
"mq_notify","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","int","mqd_t","const struct sigevent*"
|
|
"mq_open","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","mqd_t","const char*","int","..."
|
|
"mq_receive","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","ssize_t","mqd_t","char*","size_t","FAR unsigned int*"
|
|
"mq_send","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","int","mqd_t","const char*","size_t","unsigned int"
|
|
"mq_setattr","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","int","mqd_t","const struct mq_attr *","struct mq_attr *"
|
|
"mq_timedreceive","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","ssize_t","mqd_t","char*","size_t","FAR unsigned int*","const struct timespec*"
|
|
"mq_timedsend","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","int","mqd_t","const char*","size_t","unsigned int","const struct timespec*"
|
|
"mq_unlink","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","int","const char*"
|
|
"nx_task_spawn","nuttx/spawn.h","!defined(CONFIG_BUILD_KERNEL)","int","FAR const struct spawn_syscall_parms_s *"
|
|
"nx_vsyslog","nuttx/syslog/syslog.h","","int","int","FAR const IPTR char*","FAR va_list*"
|
|
"on_exit","stdlib.h","defined(CONFIG_SCHED_ONEXIT)","int","CODE void (*)(int, FAR void *)","FAR void *"
|
|
"open","fcntl.h","","int","const char*","int","..."
|
|
"opendir","dirent.h","","FAR DIR*","FAR const char*"
|
|
"pgalloc", "nuttx/arch.h", "defined(CONFIG_BUILD_KERNEL)", "uintptr_t", "uintptr_t", "unsigned int"
|
|
"pipe2","nuttx/drivers/drivers.h","defined(CONFIG_PIPES) && CONFIG_DEV_PIPE_SIZE > 0","int","int [2]|int*","size_t"
|
|
"poll","poll.h","","int","FAR struct pollfd*","nfds_t","int"
|
|
"ppoll","poll.h","","int","FAR struct pollfd*","nfds_t","FAR const struct timespec *","FAR const sigset_t *"
|
|
"prctl","sys/prctl.h", "CONFIG_TASK_NAME_SIZE > 0","int","int","..."
|
|
"pread","unistd.h","","ssize_t","int","FAR void*","size_t","off_t"
|
|
"pselect","sys/select.h","","int","int","FAR fd_set*","FAR fd_set*","FAR fd_set*","FAR const struct timespec *","FAR const sigset_t *"
|
|
"pwrite","unistd.h","","ssize_t","int","FAR const void*","size_t","off_t"
|
|
"posix_spawnp","spawn.h","!defined(CONFIG_BINFMT_DISABLE) && defined(CONFIG_LIBC_EXECFUNCS) && defined(CONFIG_LIB_ENVPATH)","int","FAR pid_t *","FAR const char *","FAR const posix_spawn_file_actions_t *","FAR const posix_spawnattr_t *","FAR char *const []|FAR char *const *","FAR char *const []|FAR char *const *"
|
|
"posix_spawn","spawn.h","!defined(CONFIG_BINFMT_DISABLE) && defined(CONFIG_LIBC_EXECFUNCS) && !defined(CONFIG_LIB_ENVPATH)","int","FAR pid_t *","FAR const char *","FAR const posix_spawn_file_actions_t *","FAR const posix_spawnattr_t *","FAR char *const []|FAR char *const *","FAR char *const []|FAR char *const *"
|
|
"pthread_cancel","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_t"
|
|
"pthread_cleanup_pop","pthread.h","defined(CONFIG_PTHREAD_CLEANUP)","void","int"
|
|
"pthread_cleanup_push","pthread.h","defined(CONFIG_PTHREAD_CLEANUP)","void","pthread_cleanup_t","FAR void*"
|
|
"pthread_cond_broadcast","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_cond_t*"
|
|
"pthread_cond_signal","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_cond_t*"
|
|
"pthread_cond_timedwait","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_cond_t*","FAR pthread_mutex_t*","FAR const struct timespec*"
|
|
"pthread_cond_wait","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_cond_t*","FAR pthread_mutex_t*"
|
|
"pthread_create","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_t*","FAR const pthread_attr_t*","pthread_startroutine_t","pthread_addr_t"
|
|
"pthread_detach","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_t"
|
|
"pthread_exit","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","void","pthread_addr_t"
|
|
"pthread_get_stackaddr_np","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","void*","pthread_t"
|
|
"pthread_get_stacksize_np","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","ssize_t","pthread_t"
|
|
"pthread_getaffinity_np","pthread.h","!defined(CONFIG_DISABLE_PTHREAD) && defined(CONFIG_SMP)","int","pthread_t","size_t","FAR cpu_set_t*"
|
|
"pthread_getschedparam","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_t","FAR int*","FAR struct sched_param*"
|
|
"pthread_getspecific","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","FAR void*","pthread_key_t"
|
|
"pthread_join","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_t","FAR pthread_addr_t*"
|
|
"pthread_key_create","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_key_t*","CODE void (*)(FAR void*)"
|
|
"pthread_key_delete","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_key_t"
|
|
"pthread_kill","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_t","int"
|
|
"pthread_mutex_destroy","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_mutex_t*"
|
|
"pthread_mutex_init","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_mutex_t*","FAR const pthread_mutexattr_t*"
|
|
"pthread_mutex_timedlock","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_mutex_t*","FAR const struct timespec*"
|
|
"pthread_mutex_trylock","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_mutex_t*"
|
|
"pthread_mutex_unlock","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_mutex_t*"
|
|
"pthread_mutex_consistent","pthread.h","!defined(CONFIG_DISABLE_PTHREAD) && !defined(CONFIG_PTHREAD_MUTEX_UNSAFE)","int","FAR pthread_mutex_t*"
|
|
"pthread_setaffinity_np","pthread.h","!defined(CONFIG_DISABLE_PTHREAD) && defined(CONFIG_SMP)","int","pthread_t","size_t","FAR const cpu_set_t*"
|
|
"pthread_setschedparam","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_t","int","FAR const struct sched_param*"
|
|
"pthread_setschedprio","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_t","int"
|
|
"pthread_setspecific","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_key_t","FAR const void*"
|
|
"pthread_sigmask","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","int","FAR const sigset_t*","FAR sigset_t*"
|
|
"putenv","stdlib.h","!defined(CONFIG_DISABLE_ENVIRON)","int","FAR const char*"
|
|
"read","unistd.h","","ssize_t","int","FAR void*","size_t"
|
|
"readdir","dirent.h","","FAR struct dirent*","FAR DIR*"
|
|
"readlink","unistd.h","defined(CONFIG_PSEUDOFS_SOFTLINKS)","ssize_t","FAR const char *","FAR char *","size_t"
|
|
"recv","sys/socket.h","defined(CONFIG_NET)","ssize_t","int","FAR void*","size_t","int"
|
|
"recvfrom","sys/socket.h","defined(CONFIG_NET)","ssize_t","int","FAR void*","size_t","int","FAR struct sockaddr*","FAR socklen_t*"
|
|
"rename","stdio.h","!defined(CONFIG_DISABLE_MOUNTPOINT)","int","FAR const char*","FAR const char*"
|
|
"rewinddir","dirent.h","","void","FAR DIR*"
|
|
"rmdir","unistd.h","!defined(CONFIG_DISABLE_MOUNTPOINT)","int","FAR const char*"
|
|
"rmmod","nuttx/module.h","defined(CONFIG_MODULE)","int","FAR void *"
|
|
"sched_getparam","sched.h","","int","pid_t","struct sched_param*"
|
|
"sched_getscheduler","sched.h","","int","pid_t"
|
|
"sched_getstreams","nuttx/sched.h","CONFIG_NFILE_STREAMS > 0","FAR struct streamlist*"
|
|
"sched_lock","sched.h","","int"
|
|
"sched_lockcount","sched.h","","int32_t"
|
|
"sched_rr_get_interval","sched.h","","int","pid_t","struct timespec*"
|
|
"sched_setparam","sched.h","","int","pid_t","const struct sched_param*"
|
|
"sched_setscheduler","sched.h","","int","pid_t","int","const struct sched_param*"
|
|
"sched_unlock","sched.h","","int"
|
|
"sched_yield","sched.h","","int"
|
|
"seekdir","dirent.h","","void","FAR DIR*","off_t"
|
|
"select","sys/select.h","","int","int","FAR fd_set*","FAR fd_set*","FAR fd_set*","FAR struct timeval*"
|
|
"sem_close","semaphore.h","defined(CONFIG_FS_NAMED_SEMAPHORES)","int","FAR sem_t*"
|
|
"sem_destroy","semaphore.h","","int","FAR sem_t*"
|
|
"sem_open","semaphore.h","defined(CONFIG_FS_NAMED_SEMAPHORES)","FAR sem_t*","FAR const char*","int","..."
|
|
"sem_post","semaphore.h","","int","FAR sem_t*"
|
|
"sem_setprotocol","nuttx/semaphore.h","defined(CONFIG_PRIORITY_INHERITANCE)","int","FAR sem_t*","int"
|
|
"sem_timedwait","semaphore.h","","int","FAR sem_t*","FAR const struct timespec *"
|
|
"sem_trywait","semaphore.h","","int","FAR sem_t*"
|
|
"sem_unlink","semaphore.h","defined(CONFIG_FS_NAMED_SEMAPHORES)","int","FAR const char*"
|
|
"sem_wait","semaphore.h","","int","FAR sem_t*"
|
|
"send","sys/socket.h","defined(CONFIG_NET)","ssize_t","int","FAR const void*","size_t","int"
|
|
"sendfile","sys/sendfile.h","defined(CONFIG_NET_SENDFILE)","ssize_t","int","int","FAR off_t*","size_t"
|
|
"sendto","sys/socket.h","defined(CONFIG_NET)","ssize_t","int","FAR const void*","size_t","int","FAR const struct sockaddr*","socklen_t"
|
|
"set_errno","errno.h","!defined(__DIRECT_ERRNO_ACCESS)","void","int"
|
|
"setenv","stdlib.h","!defined(CONFIG_DISABLE_ENVIRON)","int","FAR const char*","FAR const char*","int"
|
|
"setgid","unistd.h","defined(CONFIG_SCHED_USER_IDENTITY)","int","gid_t"
|
|
"sethostname","unistd.h","defined(CONFIG_LIBC_NETDB)","int","FAR const char*","size_t"
|
|
"setsockopt","sys/socket.h","defined(CONFIG_NET)","int","int","int","int","FAR const void*","socklen_t"
|
|
"setuid","unistd.h","defined(CONFIG_SCHED_USER_IDENTITY)","int","uid_t"
|
|
"shmat", "sys/shm.h", "defined(CONFIG_MM_SHM)", "FAR void *", "int", "FAR const void *", "int"
|
|
"shmctl", "sys/shm.h", "defined(CONFIG_MM_SHM)", "int", "int", "int", "FAR struct shmid_ds *"
|
|
"shmdt", "sys/shm.h", "defined(CONFIG_MM_SHM)", "int", "FAR const void *"
|
|
"shmget", "sys/shm.h", "defined(CONFIG_MM_SHM)", "int", "key_t", "size_t", "int"
|
|
"sigaction","signal.h","","int","int","FAR const struct sigaction*","FAR struct sigaction*"
|
|
"sigpending","signal.h","","int","FAR sigset_t*"
|
|
"sigprocmask","signal.h","","int","int","FAR const sigset_t*","FAR sigset_t*"
|
|
"sigqueue","signal.h","","int","int","int","union sigval|FAR void *|sival_ptr"
|
|
"sigsuspend","signal.h","","int","FAR const sigset_t*"
|
|
"sigtimedwait","signal.h","","int","FAR const sigset_t*","FAR struct siginfo*","FAR const struct timespec*"
|
|
"sigwaitinfo","signal.h","","int","FAR const sigset_t*","FAR struct siginfo*"
|
|
"socket","sys/socket.h","defined(CONFIG_NET)","int","int","int","int"
|
|
"stat","sys/stat.h","","int","const char*","FAR struct stat*"
|
|
"statfs","sys/statfs.h","","int","FAR const char*","FAR struct statfs*"
|
|
"task_create","sched.h","!defined(CONFIG_BUILD_KERNEL)", "int","FAR const char*","int","int","main_t","FAR char * const []|FAR char * const *"
|
|
"task_delete","sched.h","","int","pid_t"
|
|
"task_restart","sched.h","","int","pid_t"
|
|
"task_setcancelstate","sched.h","","int","int","FAR int*"
|
|
"task_setcanceltype","sched.h","defined(CONFIG_CANCELLATION_POINTS)","int","int","FAR int*"
|
|
"task_testcancel","pthread.h","defined(CONFIG_CANCELLATION_POINTS)","void"
|
|
"tcdrain","termios.h","defined(CONFIG_SERIAL_TERMIOS)","int","int"
|
|
"telldir","dirent.h","","off_t","FAR DIR*"
|
|
"timer_create","time.h","!defined(CONFIG_DISABLE_POSIX_TIMERS)","int","clockid_t","FAR struct sigevent*","FAR timer_t*"
|
|
"timer_delete","time.h","!defined(CONFIG_DISABLE_POSIX_TIMERS)","int","timer_t"
|
|
"timer_getoverrun","time.h","!defined(CONFIG_DISABLE_POSIX_TIMERS)","int","timer_t"
|
|
"timer_gettime","time.h","!defined(CONFIG_DISABLE_POSIX_TIMERS)","int","timer_t","FAR struct itimerspec*"
|
|
"timer_settime","time.h","!defined(CONFIG_DISABLE_POSIX_TIMERS)","int","timer_t","int","FAR const struct itimerspec*","FAR struct itimerspec*"
|
|
"umount2","sys/mount.h","!defined(CONFIG_DISABLE_MOUNTPOINT)","int","FAR const char*","unsigned int"
|
|
"uname","sys/utsname.h","","int","FAR struct utsname*"
|
|
"unlink","unistd.h","!defined(CONFIG_DISABLE_MOUNTPOINT)","int","FAR const char*"
|
|
"unsetenv","stdlib.h","!defined(CONFIG_DISABLE_ENVIRON)","int","const char*"
|
|
"up_assert","assert.h","","void","FAR const uint8_t*","int"
|
|
"vfork","unistd.h","defined(CONFIG_SCHED_WAITPID) && defined(CONFIG_ARCH_HAVE_VFORK)","pid_t"
|
|
"wait","sys/wait.h","defined(CONFIG_SCHED_WAITPID) && defined(CONFIG_SCHED_HAVE_PARENT)","pid_t","int*"
|
|
"waitid","sys/wait.h","defined(CONFIG_SCHED_WAITPID) && defined(CONFIG_SCHED_HAVE_PARENT)","int","idtype_t","id_t"," FAR siginfo_t *","int"
|
|
"waitpid","sys/wait.h","defined(CONFIG_SCHED_WAITPID)","pid_t","pid_t","int*","int"
|
|
"write","unistd.h","","ssize_t","int","FAR const void*","size_t"
|