initial check-in, version 0.5.0
[musl] / src / thread / clone.c
1 #if 0
2
3 int clone(int (*start)(void *), void *stack, int flags, void *arg,
4         pid_t *ptid, struct user_desc *tls, pid_t *ctid)
5 {
6         int ret;
7         __asm__(
8                 "andl $-16,%%ecx     \n\t"
9                 "xchgl %%ebx,%2      \n\t"
10                 "movl %%ebx,(%%ecx)  \n\t"
11                 "int $0x80           \n\t"
12                 "testl %%eax,%%eax   \n\t"
13                 "jnz 1f              \n\t"
14                 "xorl %%ebp,%%ebp    \n\t"
15                 "call *%%ebx         \n\t"
16                 "\n1:                \n\t"
17                 "xchgl %%ebx,%2      \n\t"
18                 : "=a" (ret)
19                 : "a" (__NR_clone), "m" (flags), "c"(stack), "d"(ptid),
20                   "S" (tls), "D" (ctid)
21                 : "memory"
22         );
23         return __syscall_ret(ret);
24 }
25
26 #endif