syscall.2: Update superh syscall convention

I noticed this while working on some silly "hello, world"
programs, see https://git.sr.ht/~phf/hello-again if you're
curious.  Disassembling sh4 code showed trap #31 all over the
place but the syscall(2) man page talked about trap #0x17 and
friends. Checking the kernel sources I got lucky in
arch/sh/kernel/entry-common.S where in commit 3623d138213ae Rich
Felker clarifies the situation.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Peter H. Froehlich 2020-12-22 13:20:53 +01:00 committed by Michael Kerrisk
parent fbe926ebdf
commit 4fce5f5bc8
1 changed files with 4 additions and 10 deletions

View File

@ -216,7 +216,7 @@ powerpc64 sc r0 r3 - cr0.SO 1
riscv ecall a7 a0 a1 -
s390 svc 0 r1 r2 r3 - 3
s390x svc 0 r1 r2 r3 - 3
superh trap #0x17 r3 r0 r1 - 4, 6
superh trapa #31 r3 r0 r1 - 4, 6
sparc/32 t 0x10 g1 o0 o1 psr/csr 1, 6
sparc/64 t 0x6d g1 o0 o1 psr/csr 1, 6
tile swint1 R10 R00 - R01 1
@ -252,15 +252,9 @@ For s390 and s390x,
.I "svc\ NR"
if it is less than 256.
.IP [4]
On SuperH, the trap number controls the maximum number of arguments passed.
A
.IR "trap\ #0x10"
can be used with only 0-argument system calls, a
.IR "trap\ #0x11"
can be used with 0- or 1-argument system calls,
and so on up to
.IR "trap #0x17"
for 7-argument system calls.
On SuperH additional trap numbers are supported for historic reasons, but
.BR trapa #31
is the recommended "unified" ABI.
.IP [5]
The x32 ABI shares syscall table with x86-64 ABI, but there are some
nuances: