summaryrefslogtreecommitdiffstats
path: root/libc/arch-x86/syscalls/__clone.S
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@google.com>2010-01-22 18:59:05 -0800
committerDavid 'Digit' Turner <digit@google.com>2010-01-25 11:18:30 -0800
commit97cf7f3394780d524038fc083e2c134031b54728 (patch)
tree40b61956bbe4d28babe839c3be40e9f114810e5f /libc/arch-x86/syscalls/__clone.S
parent1a2917ca954f575cc9698c99e54bd93087793c8f (diff)
downloadbionic-97cf7f3394780d524038fc083e2c134031b54728.zip
bionic-97cf7f3394780d524038fc083e2c134031b54728.tar.gz
bionic-97cf7f3394780d524038fc083e2c134031b54728.tar.bz2
Implement clone() C library function properly.
Only provide an implementation for ARM at the moment, since it requires specific assembly fragments (the standard syscall stubs cannot be used because the child returns in a different stack).
Diffstat (limited to 'libc/arch-x86/syscalls/__clone.S')
-rw-r--r--libc/arch-x86/syscalls/__clone.S32
1 files changed, 0 insertions, 32 deletions
diff --git a/libc/arch-x86/syscalls/__clone.S b/libc/arch-x86/syscalls/__clone.S
deleted file mode 100644
index 5862129..0000000
--- a/libc/arch-x86/syscalls/__clone.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
- .text
- .type __clone, @function
- .globl __clone
- .align 4
-
-__clone:
- pushl %ebx
- pushl %ecx
- pushl %edx
- pushl %esi
- mov 20(%esp), %ebx
- mov 24(%esp), %ecx
- mov 28(%esp), %edx
- mov 32(%esp), %esi
- movl $__NR_clone, %eax
- int $0x80
- cmpl $-129, %eax
- jb 1f
- negl %eax
- pushl %eax
- call __set_errno
- addl $4, %esp
- orl $-1, %eax
-1:
- popl %esi
- popl %edx
- popl %ecx
- popl %ebx
- ret