aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Kerrisk <mtk.manpages@gmail.com>2013-04-08 11:16:52 +0200
committerMichael Kerrisk <mtk.manpages@gmail.com>2013-04-08 12:32:44 +0200
commit08c9b3b9c800ac694a0e288116448e71f70a390b (patch)
tree32989f879ae748e35467473eabc68719563ba3af
parent9390ee75bb214b35c86068090a7b91792f5215b1 (diff)
downloadman-pages-08c9b3b9c800ac694a0e288116448e71f70a390b.tar.gz
syscall.2: Move "Architecture calling conventions" subsection
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
-rw-r--r--man2/syscall.2114
1 files changed, 57 insertions, 57 deletions
diff --git a/man2/syscall.2 b/man2/syscall.2
index 2d3893697c..b1490f39b6 100644
--- a/man2/syscall.2
+++ b/man2/syscall.2
@@ -79,63 +79,6 @@ and an error code is stored in
.BR syscall ()
first appeared in
4BSD.
-.SS Architecture calling conventions
-Every architecture has its own way of invoking and passing arguments to the
-kernel.
-The details for various architectures are listed in the two tables below.
-
-The first table lists the instruction used to transition to kernel mode,
-(which might not be the fastest or best way to transition to the kernel,
-so you might have to refer to the VDSO),
-the register used to indicate the system call number,
-and the register used to return the system call result.
-.if t \{\
-.ft CW
-\}
-.TS
-l l1 l l1 l.
-arch/ABI instruction syscall # retval Notes
-_
-arm/OABI swi NR - a1 NR is syscall #
-arm/EABI swi 0x0 r7 r1
-blackfin excpt 0x0 P0 R0
-i386 int $0x80 eax eax
-ia64 break 0x100000 r15 r10/r8C
-parisc ble 0x100(%sr2, %r0) r20 r28
-sparc/32 t 0x10 g1 o0
-sparc/64 t 0x6d g1 o0
-x86_64 syscall rax rax
-.TE
-.if t \{\
-.in
-.ft P
-\}
-.PP
-The second table shows the registers used to pass the system call arguments.
-.if t \{\
-.ft CW
-\}
-.TS
-l l l l l l l l.
-arch/ABI arg1 arg2 arg3 arg4 arg5 arg6 arg7
-_
-arm/OABI a1 a2 a3 a4 v1 v2 v3
-arm/EABI r1 r2 r3 r4 r5 r6 r7
-blackfin R0 R1 R2 R3 R4 R5 -
-i386 ebx ecx edx esi edi ebp -
-ia64 r11 r9 r10 r14 r15 r13 -
-parisc r26 r25 r24 r23 r22 r21 -
-sparc/32 o0 o1 o2 o3 o4 o5 -
-sparc/64 o0 o1 o2 o3 o4 o5 -
-x86_64 rdi rsi rdx r10 r8 r9 -
-.TE
-.if t \{\
-.in
-.ft P
-\}
-.PP
-Note that these tables don't cover the entire calling convention\(emsome
-architectures may indiscriminately clobber other registers not listed here.
.SS Architecture-specific requirements
Each architecture ABI has its own requirements on how
system call arguments are passed to the kernel.
@@ -195,6 +138,63 @@ The affected system calls are
.BR sync_file_range (2),
and
.BR truncate64 (2).
+.SS Architecture calling conventions
+Every architecture has its own way of invoking and passing arguments to the
+kernel.
+The details for various architectures are listed in the two tables below.
+
+The first table lists the instruction used to transition to kernel mode,
+(which might not be the fastest or best way to transition to the kernel,
+so you might have to refer to the VDSO),
+the register used to indicate the system call number,
+and the register used to return the system call result.
+.if t \{\
+.ft CW
+\}
+.TS
+l l1 l l1 l.
+arch/ABI instruction syscall # retval Notes
+_
+arm/OABI swi NR - a1 NR is syscall #
+arm/EABI swi 0x0 r7 r1
+blackfin excpt 0x0 P0 R0
+i386 int $0x80 eax eax
+ia64 break 0x100000 r15 r10/r8C
+parisc ble 0x100(%sr2, %r0) r20 r28
+sparc/32 t 0x10 g1 o0
+sparc/64 t 0x6d g1 o0
+x86_64 syscall rax rax
+.TE
+.if t \{\
+.in
+.ft P
+\}
+.PP
+The second table shows the registers used to pass the system call arguments.
+.if t \{\
+.ft CW
+\}
+.TS
+l l l l l l l l.
+arch/ABI arg1 arg2 arg3 arg4 arg5 arg6 arg7
+_
+arm/OABI a1 a2 a3 a4 v1 v2 v3
+arm/EABI r1 r2 r3 r4 r5 r6 r7
+blackfin R0 R1 R2 R3 R4 R5 -
+i386 ebx ecx edx esi edi ebp -
+ia64 r11 r9 r10 r14 r15 r13 -
+parisc r26 r25 r24 r23 r22 r21 -
+sparc/32 o0 o1 o2 o3 o4 o5 -
+sparc/64 o0 o1 o2 o3 o4 o5 -
+x86_64 rdi rsi rdx r10 r8 r9 -
+.TE
+.if t \{\
+.in
+.ft P
+\}
+.PP
+Note that these tables don't cover the entire calling convention\(emsome
+architectures may indiscriminately clobber other registers not listed here.
.SH EXAMPLE
.nf
#define _GNU_SOURCE