Define F_DUPFD_CLOEXEC.
[glibc-ports.git] / sysdeps / unix / sysv / linux / arm / eabi / syscall.S
blob59ca051a8b293c6889fc1a5d41ae60b8486f5c9a
1 /* Copyright (C) 2005 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, write to the Free
16    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17    02111-1307 USA.  */
19 #include <sysdep.h>
21 /* In the EABI syscall interface, we don't need a special syscall to
22    implement syscall().  It won't work reliably with 64-bit arguments
23    (but that is true on many modern platforms).  */
25 ENTRY (syscall)
26         mov     ip, sp
27         stmfd   sp!, {r4, r5, r6, r7}
28         mov     r7, r0
29         mov     r0, r1
30         mov     r1, r2
31         mov     r2, r3
32         ldmfd   ip, {r3, r4, r5, r6}
33         swi     0x0
34         ldmfd   sp!, {r4, r5, r6, r7}
35         cmn     r0, #4096
36         RETINSTR(cc, lr)
37         b       PLTJMP(syscall_error)
38 PSEUDO_END (syscall)