guard against compilers failing to handle setjmp specially by default
[musl.git] / src / linux / clone.c
blob8c1af7d3dc83e76a10cf7393aa6cbb5dc26111cf
1 #define _GNU_SOURCE
2 #include <stdarg.h>
3 #include <unistd.h>
4 #include <sched.h>
5 #include "pthread_impl.h"
6 #include "syscall.h"
8 int clone(int (*func)(void *), void *stack, int flags, void *arg, ...)
10 va_list ap;
11 pid_t *ptid, *ctid;
12 void *tls;
14 va_start(ap, arg);
15 ptid = va_arg(ap, pid_t *);
16 tls = va_arg(ap, void *);
17 ctid = va_arg(ap, pid_t *);
18 va_end(ap);
20 return __syscall_ret(__clone(func, stack, flags, arg, ptid, tls, ctid));