diff options
author | Roland McGrath <roland@gnu.org> | 2005-05-24 06:18:37 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2005-05-24 06:18:37 +0000 |
commit | ce9b3bc17a7abc5b729b9e2cc72eb207a3617328 (patch) | |
tree | 7ccac7afcfaae36311c75b36001588534184718f /sysdeps/unix/sysv/linux/arm/clone.S | |
parent | 88b8441a81c7bc9414a97a0a123c09b6c724f80a (diff) | |
download | glibc-ce9b3bc17a7abc5b729b9e2cc72eb207a3617328.tar.gz glibc-ce9b3bc17a7abc5b729b9e2cc72eb207a3617328.tar.xz glibc-ce9b3bc17a7abc5b729b9e2cc72eb207a3617328.zip |
Move arm port to ports repository cvs/fedora-glibc-20050524T1606
2005-05-23 Roland McGrath <roland@redhat.com> * sysdeps/arm, sysdeps/unix/arm, sysdeps/unix/sysv/linux/arm: Subdirectories moved to ports repository. * configure.in (base_machine): Remove arm* and thumb* patterns. * shlib-versions (arm.*-.*-linux.*): Remove this pattern.
Diffstat (limited to 'sysdeps/unix/sysv/linux/arm/clone.S')
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/clone.S | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/sysdeps/unix/sysv/linux/arm/clone.S b/sysdeps/unix/sysv/linux/arm/clone.S deleted file mode 100644 index bf07fb3952..0000000000 --- a/sysdeps/unix/sysv/linux/arm/clone.S +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (C) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Pat Beirne <patb@corelcomputer.com> - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* clone() is even more special than fork() as it mucks with stacks - and invokes a function in the right context after its all over. */ - -#include <sysdep.h> -#define _ERRNO_H 1 -#include <bits/errno.h> - -/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */ - - .text -ENTRY(__clone) - @ sanity check args - cmp r0, #0 - cmpne r1, #0 - moveq r0, #-EINVAL - beq PLTJMP(syscall_error) - - @ insert the args onto the new stack - str r3, [r1, #-4]! - str r0, [r1, #-4]! - - @ do the system call - @ get flags - mov r0, r2 - @ new sp is already in r1 - swi SYS_ify(clone) - movs a1, a1 - blt PLTJMP(C_SYMBOL_NAME(__syscall_error)) - RETINSTR(ne, lr) - - @ pick the function arg and call address off the stack and execute - ldr r0, [sp, #4] - mov lr, pc - ldr pc, [sp] - - @ and we are done, passing the return value through r0 - b PLTJMP(_exit) - -PSEUDO_END (__clone) - -weak_alias (__clone, clone) |