Every Linux x86-64 syscall

All 373 Linux x86-64 numbers (0-334 and 424-461), each with the answer this kernel gives it and the phase of phases.md that owns it. Generated by scripts/dev/make-syscall-table.py from the registry, kernel/abi/linux_syscalls.def - the same file the kernel reads to answer a number with no row, and check-syscall-checks.py holds every row against. Edit the registry, not this page; check.sh fails while the two differ.

StateCountWhat the kernel answers
done237through its row
partial35through its row, with the gap named
missing17ENOSYS, and the boot gate fails naming the number
deferred50ENOSYS, and the boot gate fails naming the number
refused34its errno, counted as refused - expected, never a failure

Without a row, by phase:

PhaseSyscalls
L1 - files and paths0
L2 - processes, credentials, time0
L3 - memory0
L4 - event loops0
L5 - sockets0
L6 - threads and scheduling0
L7 - IPC0
L8 - system administration11
L9 - security6
D - deferred50
R - refused34

A partial row names its gap and the phase that closes it. VibeOS's own two calls, outside the Linux number space, are listed last.

NrSyscallStatePhaseErrnoRowNote
0readdone--fs.c
1writedone--fs.c
2opendone--fs.c
3closedone--fs.c
4statdone--fs.c
5fstatdone--fs.c
6lstatdone--fs.c
7polldone--poll.c
8lseekdone--fs.c
9mmappartialL3-mm.ca shared mapping of a file on a filesystem that keeps no pages (FAT) is refused: ENODEV
10mprotectdone--mm.c
11munmapdone--mm.c
12brkdone--mm.c
13rt_sigactiondone--sig.c
14rt_sigprocmaskdone--sig.c
15rt_sigreturndone--sig.c
16ioctlpartialL1-fs.cthe console's modes, size and process group, the random devices' entropy count, and the descriptor requests; ISIG, VTIME and the other terminal requests (TCFLSH, TIOCSCTTY, ...) are not honoured
17pread64done--fs.c
18pwrite64done--fs.c
19readvdone--fs.c
20writevdone--fs.c
21accessdone--names.c
22pipedone--fs.c
23selectdone--poll.c
24sched_yielddone--proc.c
25mremappartialL3-mm.conly a private anonymous mapping grows; a zero old length and MREMAP_DONTUNMAP are refused
26msyncdone--mm.c
27mincoredone--mm.c
28madvisepartialL3-mm.cMADV_DONTNEED leaves a private page of a file as the program left it, where Linux shows the file again
29shmgetdone--shm.c
30shmatdone--shm.c
31shmctldone--shm.c
32dupdone--fs.c
33dup2done--fs.c
34pausedone--sig.c
35nanosleepdone--misc.c
36getitimerdone--timer.c
37alarmdone--timer.c
38setitimerdone--timer.c
39getpiddone--proc.c
40sendfiledone--fs.c
41socketdone--net.c
42connectdone--net.c
43acceptdone--net.c
44sendtodone--net.c
45recvfromdone--net.c
46sendmsgpartialL5-net.cSCM_CREDENTIALS is read past and never delivered; more than 256 iovecs is EMSGSIZE
47recvmsgpartialL5-net.cSCM_CREDENTIALS is never delivered; more than 256 iovecs is EMSGSIZE
48shutdowndone--net.c
49binddone--net.c
50listendone--net.c
51getsocknamedone--net.c
52getpeernamedone--net.c
53socketpairdone--net.c
54setsockoptpartialL5-net.cSOL_SOCKET's options and TCP_NODELAY; IP-level options are ENOPROTOOPT
55getsockoptpartialL5-net.cSOL_SOCKET's options and TCP_NODELAY; IP-level options are ENOPROTOOPT
56clonepartialL6-proc.ca CLONE_VM process shares memory; FILES, FS and SIGHAND without THREAD are copied, not shared
57forkdone--proc.c
58vforkdone--proc.c
59execvedone--proc.c
60exitdone--proc.c
61wait4done--proc.c
62killdone--sig.c
63unamepartialL8-misc.cfixed answer
64semgetdone--sem.c
65semopdone--sem.c
66semctldone--sem.c
67shmdtdone--shm.c
68msggetdone--ipc.c
69msgsnddone--ipc.c
70msgrcvdone--ipc.c
71msgctldone--ipc.c
72fcntldone--fs.c
73flockdone--fs.c
74fsyncdone--fs.c
75fdatasyncdone--fs.c
76truncatedone--fs.c
77ftruncatedone--fs.c
78getdentsdone--fs.c
79getcwddone--fs.c
80chdirdone--fs.c
81fchdirdone--fs.c
82renamedone--names.c
83mkdirdone--fs.c
84rmdirdone--names.c
85creatdone--fs.c
86linkdone--names.c
87unlinkdone--fs.c
88symlinkdone--names.c
89readlinkdone--fs.c
90chmoddone--names.c
91fchmoddone--names.c
92chowndone--names.c
93fchowndone--names.c
94lchowndone--names.c
95umaskdone--fs.c
96gettimeofdaydone--timer.c
97getrlimitdone--limits.c
98getrusagepartialL2-limits.cCPU time only, all of it user time; no RSS, faults or switches
99sysinfodone--misc.c
100timespartialL2-timer.call CPU time is user time, and a thread that has exited takes its time with it
101ptracedeferredDENOSYSno program in the corpus asks; revisit when one does
102getuiddone--proc.c
103syslogmissingL8ENOSYS
104getgiddone--proc.c
105setuiddone--proc.c
106setgiddone--proc.c
107geteuiddone--proc.c
108getegiddone--proc.c
109setpgiddone--proc.c
110getppiddone--proc.c
111getpgrpdone--proc.c
112setsiddone--proc.c
113setreuiddone--proc.c
114setregiddone--proc.c
115getgroupsdone--proc.c
116setgroupspartialL2-proc.cthirty-two supplementary groups, where Linux keeps 65536: more is EINVAL
117setresuiddone--proc.c
118getresuiddone--proc.c
119setresgiddone--proc.c
120getresgiddone--proc.c
121getpgiddone--proc.c
122setfsuiddone--proc.c
123setfsgiddone--proc.c
124getsiddone--proc.c
125capgetmissingL9ENOSYSthe security goals of docs/vision.md
126capsetmissingL9ENOSYSthe security goals of docs/vision.md
127rt_sigpendingdone--sig.c
128rt_sigtimedwaitdone--sig.c
129rt_sigqueueinfopartialL2-sig.ca real-time signal sent twice before it is taken is delivered once: Linux queues each, this kernel keeps one per signal
130rt_sigsuspenddone--sig.c
131sigaltstackdone--sig.c
132utimedone--names.c
133mknodpartialL1-names.cregular files only: a FIFO, a socket or a device node is EPERM - no filesystem here holds one
134uselibrefusedRENOSYSremoved or never implemented by Linux itself
135personalitypartialL2-limits.ckept and reported; no flag changes what the kernel does
136ustatrefusedRENOSYSremoved or never implemented by Linux itself
137statfsdone--names.c
138fstatfsdone--names.c
139sysfsrefusedRENOSYSremoved or never implemented by Linux itself
140getprioritydone--limits.c
141setprioritydone--limits.c
142sched_setparamdone--sched.c
143sched_getparamdone--sched.c
144sched_setschedulerdone--sched.c
145sched_getschedulerdone--sched.c
146sched_get_priority_maxdone--sched.c
147sched_get_priority_mindone--sched.c
148sched_rr_get_intervaldone--sched.c
149mlockdone--mm.c
150munlockdone--mm.c
151mlockalldone--mm.c
152munlockalldone--mm.c
153vhangupmissingL8ENOSYS
154modify_ldtrefusedRENOSYSno LDT: 64-bit programs do not use one
155pivot_rootmissingL8ENOSYS
156_sysctlrefusedRENOSYSremoved or never implemented by Linux itself
157prctldone--proc.c
158arch_prctldone--proc.c
159adjtimexpartialR-timer.creads the clock's state; setting it is refused, EPERM, as clock_settime is
160setrlimitpartialL2-limits.cNOFILE, FSIZE, DATA, NPROC, CPU, AS, MEMLOCK and STACK are enforced; the rest are kept and reported
161chrootmissingL8ENOSYS
162syncdone--fs.c
163acctdeferredDENOSYSno program in the corpus asks; revisit when one does
164settimeofdaypartialR-timer.cjudges its arguments; setting the clock is refused, EPERM, as clock_settime is
165mountmissingL8ENOSYS
166umount2missingL8ENOSYS
167swaponmissingL8ENOSYS
168swapoffmissingL8ENOSYS
169rebootmissingL8ENOSYS
170sethostnamemissingL8ENOSYS
171setdomainnamemissingL8ENOSYS
172ioplrefusedREPERMno raw I/O port access from user space
173iopermrefusedREPERMno raw I/O port access from user space
174create_modulerefusedRENOSYSremoved or never implemented by Linux itself
175init_modulerefusedREPERMno loadable modules: code enters this kernel only by being built into it
176delete_modulerefusedREPERMno loadable modules: code enters this kernel only by being built into it
177get_kernel_symsrefusedRENOSYSremoved or never implemented by Linux itself
178query_modulerefusedRENOSYSremoved or never implemented by Linux itself
179quotactldeferredDENOSYSno program in the corpus asks; revisit when one does
180nfsservctlrefusedRENOSYSremoved or never implemented by Linux itself
181getpmsgrefusedRENOSYSremoved or never implemented by Linux itself
182putpmsgrefusedRENOSYSremoved or never implemented by Linux itself
183afs_syscallrefusedRENOSYSremoved or never implemented by Linux itself
184tuxcallrefusedRENOSYSremoved or never implemented by Linux itself
185securityrefusedRENOSYSremoved or never implemented by Linux itself
186gettiddone--proc.c
187readaheaddone--fs.c
188setxattrdone--names.c
189lsetxattrdone--names.c
190fsetxattrdone--names.c
191getxattrdone--names.c
192lgetxattrdone--names.c
193fgetxattrdone--names.c
194listxattrdone--names.c
195llistxattrdone--names.c
196flistxattrdone--names.c
197removexattrdone--names.c
198lremovexattrdone--names.c
199fremovexattrdone--names.c
200tkilldone--sig.c
201timedone--misc.c
202futexpartialL6-futex.cevery operation but priority inheritance, which is ENOSYS: no program here asks for it
203sched_setaffinitydone--sched.c
204sched_getaffinitydone--sched.c
205set_thread_arearefusedRENOSYSi386 thread storage; x86-64 programs use arch_prctl
206io_setupdeferredDENOSYSlegacy AIO: ENOSYS, and libcs fall back to threads
207io_destroydeferredDENOSYSlegacy AIO: ENOSYS, and libcs fall back to threads
208io_geteventsdeferredDENOSYSlegacy AIO: ENOSYS, and libcs fall back to threads
209io_submitdeferredDENOSYSlegacy AIO: ENOSYS, and libcs fall back to threads
210io_canceldeferredDENOSYSlegacy AIO: ENOSYS, and libcs fall back to threads
211get_thread_arearefusedRENOSYSi386 thread storage; x86-64 programs use arch_prctl
212lookup_dcookierefusedRENOSYSremoved or never implemented by Linux itself
213epoll_createdone--epoll.c
214epoll_ctl_oldrefusedRENOSYSremoved or never implemented by Linux itself
215epoll_wait_oldrefusedRENOSYSremoved or never implemented by Linux itself
216remap_file_pagesrefusedRENOSYSremoved or never implemented by Linux itself
217getdents64done--fs.c
218set_tid_addressdone--proc.c
219restart_syscalldone--timer.c
220semtimedopdone--sem.c
221fadvise64done--fs.c
222timer_createdone--timer.c
223timer_settimedone--timer.c
224timer_gettimedone--timer.c
225timer_getoverrundone--timer.c
226timer_deletedone--timer.c
227clock_settimerefusedREPERMthe clock is the timer's uptime; there is nothing to set it from
228clock_gettimedone--misc.c
229clock_getresdone--timer.c
230clock_nanosleepdone--misc.c
231exit_groupdone--proc.c
232epoll_waitdone--epoll.c
233epoll_ctldone--epoll.c
234tgkilldone--sig.c
235utimesdone--names.c
236vserverrefusedRENOSYSremoved or never implemented by Linux itself
237mbinddeferredDENOSYSNUMA: one node here
238set_mempolicydeferredDENOSYSNUMA: one node here
239get_mempolicydeferredDENOSYSNUMA: one node here
240mq_opendone--mqueue.c
241mq_unlinkdone--mqueue.c
242mq_timedsenddone--mqueue.c
243mq_timedreceivedone--mqueue.c
244mq_notifydone--mqueue.c
245mq_getsetattrdone--mqueue.c
246kexec_loadrefusedREPERMno kexec: the machine is booted by the bootloader, not by itself
247waitidpartialL2-proc.cstopped and continued children are never reported
248add_keydeferredDENOSYSno program in the corpus asks; revisit when one does
249request_keydeferredDENOSYSno program in the corpus asks; revisit when one does
250keyctldeferredDENOSYSno program in the corpus asks; revisit when one does
251ioprio_setdone--sched.c
252ioprio_getdone--sched.c
253inotify_initdone--inotify.c
254inotify_add_watchdone--inotify.c
255inotify_rm_watchdone--inotify.c
256migrate_pagesdeferredDENOSYSNUMA: one node here
257openatdone--fs.c
258mkdiratdone--fs.c
259mknodatpartialL1-names.cregular files only: a FIFO, a socket or a device node is EPERM - no filesystem here holds one
260fchownatdone--names.c
261futimesatdone--names.c
262newfstatatdone--fs.c
263unlinkatdone--fs.c
264renameatdone--names.c
265linkatdone--names.c
266symlinkatdone--names.c
267readlinkatdone--fs.c
268fchmodatdone--names.c
269faccessatdone--names.c
270pselect6done--poll.c
271ppolldone--poll.c
272unsharedeferredDENOSYSnamespaces: after the credential model
273set_robust_listdone--futex.c
274get_robust_listdone--futex.c
275splicedone--splice.c
276teedone--splice.c
277sync_file_rangedone--fs.c
278vmsplicedone--splice.c
279move_pagesdeferredDENOSYSNUMA: one node here
280utimensatdone--names.c
281epoll_pwaitdone--epoll.c
282signalfddone--events.c
283timerfd_createdone--events.c
284eventfddone--events.c
285fallocatepartialL1-fs.cthe size is guaranteed, not the space; only mode 0 and KEEP_SIZE
286timerfd_settimedone--events.c
287timerfd_gettimedone--events.c
288accept4done--net.c
289signalfd4done--events.c
290eventfd2done--events.c
291epoll_create1done--epoll.c
292dup3done--fs.c
293pipe2done--fs.c
294inotify_init1done--inotify.c
295preadvdone--fs.c
296pwritevdone--fs.c
297rt_tgsigqueueinfopartialL2-sig.cas rt_sigqueueinfo: one pending instance per signal
298perf_event_openrefusedRENOSYSno performance-counter interface: a facility this kernel does not have
299recvmmsgdone--net.c
300fanotify_initdeferredDENOSYSno program in the corpus asks; revisit when one does
301fanotify_markdeferredDENOSYSno program in the corpus asks; revisit when one does
302prlimit64partialL2-limits.cas setrlimit
303name_to_handle_atdeferredDENOSYSno program in the corpus asks; revisit when one does
304open_by_handle_atdeferredDENOSYSno program in the corpus asks; revisit when one does
305clock_adjtimepartialR-timer.creads the realtime clock's state; setting it is refused, EPERM, as clock_settime is
306syncfsdone--fs.c
307sendmmsgdone--net.c
308setnsdeferredDENOSYSnamespaces: after the credential model
309getcpudone--sched.c
310process_vm_readvdeferredDENOSYSno program in the corpus asks; revisit when one does
311process_vm_writevdeferredDENOSYSno program in the corpus asks; revisit when one does
312kcmpdeferredDENOSYSno program in the corpus asks; revisit when one does
313finit_modulerefusedREPERMno loadable modules: code enters this kernel only by being built into it
314sched_setattrpartialL6-sched.cSCHED_DEADLINE is EINVAL: no admission control here
315sched_getattrdone--sched.c
316renameat2partialL1-names.cRENAME_EXCHANGE and RENAME_WHITEOUT refused
317seccompmissingL9ENOSYSthe security goals of docs/vision.md
318getrandomdone--misc.c
319memfd_createpartialL3-fs.cno seals: MFD_ALLOW_SEALING is accepted and F_ADD_SEALS refused; the file has a name under /tmp while open
320kexec_file_loadrefusedREPERMno kexec: the machine is booted by the bootloader, not by itself
321bpfrefusedRENOSYSno in-kernel bytecode: a facility this kernel does not have
322execveatdone--proc.c
323userfaultfdrefusedRENOSYSno user-space fault handling: a facility this kernel does not have
324membarrierdone--sched.c
325mlock2done--mm.c
326copy_file_rangedone--fs.c
327preadv2partialL1-fs.cRWF_ flags refused
328pwritev2partialL1-fs.cRWF_ flags refused
329pkey_mprotectdeferredDENOSYSno program in the corpus asks; revisit when one does
330pkey_allocdeferredDENOSYSno program in the corpus asks; revisit when one does
331pkey_freedeferredDENOSYSno program in the corpus asks; revisit when one does
332statxdone--names.c
333io_pgeteventsdeferredDENOSYSlegacy AIO: ENOSYS, and libcs fall back to threads
334rseqpartialR-proc.cENOSYS on purpose: the libc takes its fallback
424pidfd_send_signaldone--sig.c
425io_uring_setupdeferredDENOSYSa second I/O model; after L4
426io_uring_enterdeferredDENOSYSa second I/O model; after L4
427io_uring_registerdeferredDENOSYSa second I/O model; after L4
428open_treedeferredDENOSYSthe new mount API: after L8
429move_mountdeferredDENOSYSthe new mount API: after L8
430fsopendeferredDENOSYSthe new mount API: after L8
431fsconfigdeferredDENOSYSthe new mount API: after L8
432fsmountdeferredDENOSYSthe new mount API: after L8
433fspickdeferredDENOSYSthe new mount API: after L8
434pidfd_opendone--sig.c
435clone3partialL2-proc.cas clone; no set_tid, no cgroup
436close_rangepartialL6-fs.cCLOSE_RANGE_UNSHARE in a process with threads refused: a thread cannot hold a table of its own
437openat2partialL1-names.cresolve: only NO_MAGICLINKS; BENEATH, IN_ROOT, NO_XDEV and NO_SYMLINKS answer ENOSYS
438pidfd_getfddeferredDENOSYSno program in the corpus asks; revisit when one does
439faccessat2done--names.c
440process_madvisedeferredDENOSYSno program in the corpus asks; revisit when one does
441epoll_pwait2done--epoll.c
442mount_setattrdeferredDENOSYSthe new mount API: after L8
443quotactl_fddeferredDENOSYSno program in the corpus asks; revisit when one does
444landlock_create_rulesetmissingL9ENOSYSthe security goals of docs/vision.md
445landlock_add_rulemissingL9ENOSYSthe security goals of docs/vision.md
446landlock_restrict_selfmissingL9ENOSYSthe security goals of docs/vision.md
447memfd_secretrefusedRENOSYSno secret memory areas
448process_mreleasedeferredDENOSYSno program in the corpus asks; revisit when one does
449futex_waitvdone--futex.c
450set_mempolicy_home_nodedeferredDENOSYSNUMA: one node here
451cachestatdeferredDENOSYSno program in the corpus asks; revisit when one does
452fchmodat2done--names.c
453map_shadow_stackrefusedRENOSYSno shadow stacks
454futex_wakedone--futex.c
455futex_waitdone--futex.c
456futex_requeuedone--futex.c
457statmountdeferredDENOSYSthe new mount API: after L8
458listmountdeferredDENOSYSthe new mount API: after L8
459lsm_get_self_attrdeferredDENOSYSno program in the corpus asks; revisit when one does
460lsm_set_self_attrdeferredDENOSYSno program in the corpus asks; revisit when one does
461lsm_list_modulesdeferredDENOSYSno program in the corpus asks; revisit when one does
1000netctldoneNATIVE-net.cVibeOS's own, outside the Linux number space
1001pageinfodoneNATIVE-mm.cVibeOS's own, outside the Linux number space