nuttx/syscall/syscall.csv
Marco Casaroli 9b787d42b2 sched/arch/libc: make task_fork() optional
task_fork() is a NuttX extension, not POSIX, and a configuration that does
not call it has no reason to carry it.  Add CONFIG_TASK_FORK to leave it out.

It depends on ARCH_HAVE_TASK_FORK and defaults to y, so it is enabled exactly
where fork() existed before the split and no configuration loses the primitive
by upgrading.  ARCH_HAVE_TASK_FORK keeps its meaning -- the architecture *can*
clone the calling task -- and the new symbol says whether this build wants it.
Everything that provides task_fork() moves to the new symbol:  the declaration
in sched.h, up_task_fork() in arch.h, the two .csv entries that generate the
system call stub and proxy, the syscall_lookup.h table entry, the architecture
entry points, and the build rules for the files that hold them.

FORK_IS_TASK_FORK now depends on TASK_FORK rather than ARCH_HAVE_TASK_FORK.
Aliasing fork() to a task_fork() that was not built would not link.

vfork() and fork() are untouched; each is still selected on its own, and
task_fork.c, lib_fork.c and the architecture's fork file are still built when
any one of the three is present.

Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-30 11:45:24 +02:00

18 KiB

1_assertassert.hvoidFAR const char *intFAR const char *FAR void *
2accept4sys/socket.hdefined(CONFIG_NET)intintFAR struct sockaddr *FAR socklen_t *int
3clock_nanosleeptime.hintclockid_tintFAR const struct timespec *FAR struct timespec *
4epoll_ctlsys/epoll.hintintintintFAR struct epoll_event *
5epoll_waitsys/epoll.hintintFAR struct epoll_event *intint
6fcntlfcntl.hintintint...uintptr_t
7ioctlsys/ioctl.hintintint...unsigned long
8mq_receivemqueue.h!defined(CONFIG_DISABLE_MQUEUE)ssize_tmqd_tFAR char *size_tFAR unsigned int *
9mq_sendmqueue.h!defined(CONFIG_DISABLE_MQUEUE)intmqd_tFAR const char *size_tunsigned int
10openfcntl.hintFAR const char *int...mode_t
11ppollpoll.h!defined(CONFIG_DISABLE_ALL_SIGNALS)intFAR struct pollfd *nfds_tFAR const struct timespec *FAR const sigset_t *
12prctlsys/prctl.hintint...uintptr_tuintptr_t
13preadunistd.hssize_tintFAR void *size_toff_t
14pwriteunistd.hssize_tintFAR const void *size_toff_t
15recvsys/socket.hdefined(CONFIG_NET)ssize_tintFAR void *size_tint
16sched_backtracesched.hdefined(CONFIG_SCHED_BACKTRACE)intpid_tFAR void **intint
17sendsys/socket.hdefined(CONFIG_NET)ssize_tintFAR const void *size_tint
18sendfilesys/sendfile.hssize_tintintFAR off_t *size_t
19socketpairsys/socket.hdefined(CONFIG_NET)intintintintint [2]|FAR int *
20timer_settimetime.h!defined(CONFIG_DISABLE_POSIX_TIMERS)inttimer_tintFAR const struct itimerspec *FAR struct itimerspec *
21timerfd_settimesys/timerfd.hdefined(CONFIG_TIMER_FD)intintintFAR const struct itimerspec *FAR struct itimerspec *
22waitidsys/wait.hdefined(CONFIG_SCHED_WAITPID) && defined(CONFIG_SCHED_HAVE_PARENT)intidtype_tid_t FAR siginfo_t *int