Pangram verdict · v3.3
We believe that this text is a mix of AI and human-written content.
AI likelihood · overall
MixedArticle text · 574 words · 8 segments analyzed
Every Linux syscall table in one place, grouped by architecture: system calls for 27 architectures with their numbers, arguments and registers, from Linux 3.3 to 7.3.
Architectures x64 x86_64 369 syscalls · since 3.3 x86 i386, 32 bit x86 441 syscalls · since 3.3 arm64 AArch64 326 syscalls · since 3.7 arm ARM EABI, 32 bit 426 syscalls · since 4.10 riscv64 RISC-V, 64 bit 327 syscalls · since 4.15 ia32 IA-32 compat on x86_64 439 syscalls · since 3.3 x32 x32 ABI on x86_64 369 syscalls · since 3.4 loongarch64 LoongArch, 64 bit 323 syscalls · since 5.19 ppc64 PowerPC, 64 bit 383 syscalls · since 5.0 ppc PowerPC, 32 bit 425 syscalls · since 5.0 s390x IBM Z 378 syscalls · since 4.16 mips64 MIPS n64 ABI 363 syscalls · since 5.0 mipsn32 MIPS n32 ABI 387 syscalls · since 5.0 mipso32 MIPS o32 ABI 413 syscalls · since 5.0 alpha DEC Alpha 403 syscalls · since 5.0 arc Synopsys ARC 350 syscalls · since 3.9 csky C-SKY 346 syscalls · since 4.20 hexagon Qualcomm Hexagon 345 syscalls · since 3.7 m68k Motorola 68000 435 syscalls · since 5.0 microblaze Xilinx MicroBlaze 423 syscalls · since 5.0 nios2 Intel Nios II 346 syscalls · since 3.19 openrisc OpenRISC 346 syscalls · since 3.7 parisc HP PA-RISC 404 syscalls · since 5.0 sh SuperH 433 syscalls · since 5.0 sparc SPARC, 32 bit 434 syscalls · since 5.0 sparc64 SPARC, 64 bit 399 syscalls · since 5.0 xtensa Tensilica Xtensa 388 syscalls · since 5.0 Every architecture's table, with the full history of when each syscall appeared and when it was dropped, is also a plain JSON file at /<arch>/syscalls.json, for example /x64/syscalls.json. Calling conventions Number in NR, arguments in ARG0 to ARG5, then the instruction.
The result comes back in RETURN.
ARCHINSTRUCTIONNRRETURNARG0ARG1ARG2ARG3ARG4ARG5 x64syscallraxrax rdirsirdxr10r8r9 x86int 0x80eaxeax ebxecxedxesiediebp arm64svc #0x8x0 x0x1x2x3x4x5 armsvc #0r7r0 r0r1r2r3r4r5 riscv64ecalla7a0 a0a1a2a3a4a5 ia32int 0x80eaxeax ebxecxedxesiediebp x32syscallraxrax rdirsirdxr10r8r9 loongarch64syscall 0a7a0 a0a1a2a3a4a5 ppc64scr0r3 r3r4r5r6r7r8 ppcscr0r3 r3r4r5r6r7r8 s390xsvc 0r1r2 r2r3r4r5r6r7 mips64syscallv0v0 a0a1a2a3a4a5 mipsn32syscallv0v0 a0a1a2a3a4a5 mipso32syscallv0v0 a0a1a2a3sp+16sp+20 alphacallsysv0v0 a0a1a2a3a4a5 arctrap0r8r0 r0r1r2r3r4r5 cskytrap 0r7a0 a0a1a2a3r4r5 hexagontrap0(#1)r6r0 r0r1r2r3r4r5 m68ktrap #0d0d0 d1d2d3d4d5a0 microblazebrki r14,8r12r3 r5r6r7r8r9r10 nios2trapr2r2 r4r5r6r7r8r9 openriscl.sys 1r11r11 r3r4r5r6r7r8 pariscble 0x100(%sr2, %r0)r20r28 r26r25r24r23r22r21 shtrapa #31r3r0 r4r5r6r7r0r1 sparct 0x10g1o0 o0o1o2o3o4o5 sparc64t 0x6dg1o0 o0o1o2o3o4o5 xtensasyscalla2a2 a6a3a4a5a8a9 API curl https://api.syscall.sh/v2/syscalls/x64/read Any kernel release, diffs between releases and more in the API docs.
Syscall tables across kernel versions Entries get added and, rarely, removed between releases.
Each architecture page has a kernel selector, and its JSON download records when each entry first appeared (since) and when it was dropped (removed_in). Removed entries stay visible: pick "all, with removed" in the kernel selector and each dropped syscall is marked with the release that dropped it. Where the data comes from Everything on this site is read from the kernel source itself. For each architecture, the generator walks the syscall table and the SYSCALL_DEFINE macros of every mainline release it scans, so these are the numbers the kernel actually dispatches on. It also records each architecture's calling convention, the instruction that enters the kernel, so every syscall table shows exactly where the number and the arguments go.
A syscall whose since equals the first release scanned for its architecture was already there back then, and may be much older.
Descriptions and full history The short descriptions come from the Linux man pages project, and the io_uring ones from liburing. Whenever the data changes, the site is rebuilt from the syscall API.