X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fthread%2Fclone.c;h=339e28a3fe6fb2b12c41921183dd08c819aa8018;hb=030e52639248ac8417a4934298caa78c21a228d1;hp=971bfeed3b29d62a28bf05607dbfe03bb71a3a38;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01;p=musl diff --git a/src/thread/clone.c b/src/thread/clone.c index 971bfeed..339e28a3 100644 --- a/src/thread/clone.c +++ b/src/thread/clone.c @@ -1,26 +1,10 @@ -#if 0 +#include +#include "libc.h" -int clone(int (*start)(void *), void *stack, int flags, void *arg, - pid_t *ptid, struct user_desc *tls, pid_t *ctid) +int __clone(int (*func)(void *), void *stack, int flags, void *arg, ...) { - int ret; - __asm__( - "andl $-16,%%ecx \n\t" - "xchgl %%ebx,%2 \n\t" - "movl %%ebx,(%%ecx) \n\t" - "int $0x80 \n\t" - "testl %%eax,%%eax \n\t" - "jnz 1f \n\t" - "xorl %%ebp,%%ebp \n\t" - "call *%%ebx \n\t" - "\n1: \n\t" - "xchgl %%ebx,%2 \n\t" - : "=a" (ret) - : "a" (__NR_clone), "m" (flags), "c"(stack), "d"(ptid), - "S" (tls), "D" (ctid) - : "memory" - ); - return __syscall_ret(ret); + errno = ENOSYS; + return -1; } -#endif +weak_alias(__clone, clone);