#define _GNU_SOURCE | |
#include <stdarg.h> | |
#include <unistd.h> | |
#include <sched.h> | |
#include "pthread_impl.h" | |
#include "syscall.h" | |
int clone(int (*func)(void *), void *stack, int flags, void *arg, ...) | |
{ | |
va_list ap; | |
pid_t *ptid, *ctid; | |
void *tls; | |
va_start(ap, arg); | |
ptid = va_arg(ap, pid_t *); | |
tls = va_arg(ap, void *); | |
ctid = va_arg(ap, pid_t *); | |
va_end(ap); | |
return __syscall_ret(__clone(func, stack, flags, arg, ptid, tls, ctid)); | |
} |