The Zerofox Syndicate

Linux x86_64 syscalls

2024-07-02

The Linux 64-bit syscall conventions

The 64-bit syscall conventions are documented in the Linux source code.

 * 64-bit SYSCALL instruction entry. Up to 6 arguments in registers.
 *
 * This is the only entry point used for 64-bit system calls.  The
 * hardware interface is reasonably well designed and the register to
 * argument mapping Linux uses fits well with the registers that are
 * available when SYSCALL is used.
 *
 * 64-bit SYSCALL saves rip to rcx, clears rflags.RF, then saves rflags to r11,
 * then loads new ss, cs, and rip from previously programmed MSRs.
 * rflags gets masked by a value from another MSR (so CLD and CLAC
 * are not needed). SYSCALL does not save anything on the stack
 * and does not change rsp.
 *
 * Registers on entry:
 * rax  system call number
 * rcx  return address
 * r11  saved rflags (note: r11 is callee-clobbered register in C ABI)
 * rdi  arg0
 * rsi  arg1
 * rdx  arg2
 * r10  arg3 (needs to be moved to rcx to conform to C ABI)
 * r8   arg4
 * r9   arg5
 * (note: r12-r15, rbp, rbx are callee-preserved in C ABI)

Note that r11 and rcx are not restored to their original state. This means that before we perform a syscall we’ll want to save both r11 and rcx to the stack and restore them.

Below is a basic example of a system call in nasm.

; getpid()
getpid:
    push rcx    ; store rcx and r11
    push r11    ; they get clobbered

    mov rax, 39        ; getpid()
    syscall            ; result stored in rax

    pop  r11    ; restore registers
    pop  rcx
    ret

Call table

In order to perform syscalls, you need to know the syscall number and which arguments they take. There doesn’t seem to be a lot of places online that provide this information.

I tried to recreate my own call table by looking up the entries from syscall_64.tbl and cross referencing them with SYSCALL_DEFINE in the source code.

I used the following command line to find the syscall definitions in the source code and extract their arguments.

find ../linux -name *.c | grep -v -E "^\.\./linux/arch/(mips|csky|arc|nds32|microblaze|alpha|sh|nios2|parisc|ia64|openrisc|xtensa|um|hexagon|arm|powerpc|arm64|sparc|s390|riscv|h8300)/" | xargs grep -h -A7 SYSCALL_DEFINE

My method is imperfect and there are a number of syscalls that I could not find the syscall definition for. I’ve marked those with NO ENTRYPOINT. I tried to mimick the methodology of this blogpost.

I feel like the previously mentioned blogpost manged to create a more complete table somehow. Still it was last updated in 2016 and I didn’t find any other places that provided this information online, apart from diving into the Linux source code itself. That is why I am publishing this post. Maybe it will inspire someone else to extract this information and present it in better way.

RAXentrypointRDIRSIRDXR10R8R9
0sys_readunsigned int fdchar __user * bufsize_t count
1sys_writeunsigned int fdconst char __user * bufsize_t count
2sys_openconst char __user * filenameint flagsumode_t mode
3sys_closeunsigned int fd
4sys_newstatconst char __user * filenamestruct __old_kernel_stat __user * statbuf
5sys_newfstatunsigned int fdstruct __old_kernel_stat __user * statbuf
6sys_newlstatconst char __user * filenamestruct __old_kernel_stat __user * statbuf
7sys_pollstruct pollfd __user * ufdsunsigned int nfdsint timeout_msecs
8sys_lseekunsigned int fdoff_t offsetunsigned int whence
9sys_mmapunsigned long addrunsigned long lenunsigned long protunsigned long flagsunsigned long fdunsigned long off
10sys_mprotectunsigned long startsize_t lenunsigned long prot
11sys_munmapunsigned long addrsize_t len
12sys_brkunsigned long brk
512compat_sys_rt_sigactionint sigconst struct sigaction __user * actstruct sigaction __user * oactsize_t sigsetsize
14sys_rt_sigprocmaskint howsigset_t __user * nsetsigset_t __user * osetsize_t sigsetsize
513compat_sys_x32_rt_sigreturn
514compat_sys_ioctlunsigned int fdunsigned int cmdunsigned long arg
17sys_pread64unsigned int fdchar __user * bufsize_t countloff_t pos
18sys_pwrite64unsigned int fdconst char __user * bufsize_t countloff_t pos
515sys_readvunsigned long fdconst struct iovec __user * vecunsigned long vlen
516sys_writevunsigned long fdconst struct iovec __user * vecunsigned long vlen
21sys_accessconst char __user * filenameint mode
22sys_pipeint __user * fildes
23sys_selectint nfd_set __user * inpfd_set __user * outpfd_set __user * expstruct __kernel_old_timeval __user * tvp
24sys_sched_yield
25sys_mremapunsigned long addrunsigned long old_lenunsigned long new_lenunsigned long flagsunsigned long new_addr
26sys_msyncunsigned long startsize_t lenint flags
27sys_mincoreunsigned long startsize_t lenunsigned char __user * vec
28sys_madviseunsigned long startsize_t len_inint behavior
29sys_shmgetkey_t keysize_t sizeint shmflg
30sys_shmatint shmidchar __user * shmaddrint shmflg
31sys_shmctlint shmidint cmdstruct shmid_ds __user * buf
32sys_dupunsigned int fildes
33sys_dup2unsigned int oldfdunsigned int newfd
34sys_pause
35sys_nanosleepstruct __kernel_timespec __user * rqtpstruct __kernel_timespec __user * rmtp
36sys_getitimerint whichstruct __kernel_old_itimerval __user * value
37sys_alarmunsigned int seconds
38sys_setitimerint whichstruct __kernel_old_itimerval __user * valuestruct __kernel_old_itimerval __user * ovalue
39sys_getpid
40sys_sendfile64int out_fdint in_fdoff_t __user * offsetsize_t count
41sys_socketint familyint typeint protocol
42sys_connectint fdstruct sockaddr __user * uservaddrint addrlen
43sys_acceptint fdstruct sockaddr __user * upeer_sockaddrint __user * upeer_addrlen
44sys_sendtoint fdvoid __user * buffsize_t lenunsigned int flagsstruct sockaddr __user * addrint addr_len
517compat_sys_recvfromint fdvoid __user * ubufsize_t sizeunsigned int flagsstruct sockaddr __user * addrint __user * addr_len
518compat_sys_sendmsgint fdstruct user_msghdr __user * msgunsigned int flags
519compat_sys_recvmsgint fdstruct user_msghdr __user * msgunsigned int flags
48sys_shutdownint fdint how
49sys_bindint fdstruct sockaddr __user * umyaddrint addrlen
50sys_listenint fdint backlog
51sys_getsocknameint fdstruct sockaddr __user * usockaddrint __user * usockaddr_len
52sys_getpeernameint fdstruct sockaddr __user * usockaddrint __user * usockaddr_len
53sys_socketpairint familyint typeint protocolint __user * usockvec
541sys_setsockoptint fdint levelint optnamechar __user * optvalint optlen
542sys_getsockoptint fdint levelint optnamechar __user * optvalint __user * optlen
56sys_cloneunsigned long clone_flagsunsigned long newspint __user * parent_tidptrint __user * child_tidptrunsigned long tls
57sys_fork
58sys_vfork
520compat_sys_execveconst char __user * filenameconst char __user *const __user * argvconst char __user *const __user * envp
60sys_exitint error_code
61sys_wait4pid_t upidint __user * stat_addrint optionsstruct rusage __user * ru
62sys_killpid_t pidint sig
63sys_newunamestruct old_utsname __user * name
64sys_semgetkey_t keyint nsemsint semflg
65sys_semopint semidstruct sembuf __user * tsopsunsigned nsops
66sys_semctlint semidint semnumint cmdunsigned long arg
67sys_shmdtchar __user * shmaddr
68sys_msggetkey_t keyint msgflg
69sys_msgsndint msqidstruct msgbuf __user * msgpsize_t msgszint msgflg
70sys_msgrcvint msqidstruct msgbuf __user * msgpsize_t msgszlong msgtypint msgflg
71sys_msgctlint msqidint cmdstruct msqid_ds __user * buf
72sys_fcntlunsigned int fdunsigned int cmdunsigned long arg
73sys_flockunsigned int fdunsigned int cmd
74sys_fsyncunsigned int fd
75sys_fdatasyncunsigned int fd
76sys_truncateconst char __user * pathlong length
77sys_ftruncateunsigned int fdunsigned long length
78sys_getdentsunsigned int fdstruct linux_dirent __user * direntunsigned int count
79sys_getcwdchar __user * bufunsigned long size
80sys_chdirconst char __user * filename
81sys_fchdirunsigned int fd
82sys_renameconst char __user * oldnameconst char __user * newname
83sys_mkdirconst char __user * pathnameumode_t mode
84sys_rmdirconst char __user * pathname
85sys_creatconst char __user * pathnameumode_t mode
86sys_linkconst char __user * oldnameconst char __user * newname
87sys_unlinkconst char __user * pathname
88sys_symlinkconst char __user * oldnameconst char __user * newname
89sys_readlinkconst char __user * pathchar __user * bufint bufsiz
90sys_chmodconst char __user * filenameumode_t mode
91sys_fchmodunsigned int fdumode_t mode
92sys_chownconst char __user * filenameuid_t usergid_t group
93sys_fchownunsigned int fduid_t usergid_t group
94sys_lchownconst char __user * filenameuid_t usergid_t group
95sys_umaskint mask
96sys_gettimeofdaystruct __kernel_old_timeval __user * tvstruct timezone __user * tz
97sys_getrlimitunsigned int resourcestruct rlimit __user * rlim
98sys_getrusageint whostruct rusage __user * ru
99sys_sysinfostruct sysinfo __user * info
100sys_timesstruct tms __user * tbuf
521compat_sys_ptracelong requestlong pidunsigned long addrunsigned long data
102sys_getuid
103sys_syslogint typechar __user * bufint len
104sys_getgid
105sys_setuiduid_t uid
106sys_setgidgid_t gid
107sys_geteuid
108sys_getegid
109sys_setpgidpid_t pidpid_t pgid
110sys_getppid
111sys_getpgrp
112sys_setsid
113sys_setreuiduid_t ruiduid_t euid
114sys_setregidgid_t rgidgid_t egid
115sys_getgroupsint gidsetsizegid_t __user * grouplist
116sys_setgroupsint gidsetsizegid_t __user * grouplist
117sys_setresuiduid_t ruiduid_t euiduid_t suid
118sys_getresuiduid_t __user * ruidpuid_t __user * euidpuid_t __user * suidp
119sys_setresgidgid_t rgidgid_t egidgid_t sgid
120sys_getresgidgid_t __user * rgidpgid_t __user * egidpgid_t __user * sgidp
121sys_getpgidpid_t pid
122sys_setfsuiduid_t uid
123sys_setfsgidgid_t gid
124sys_getsidpid_t pid
125sys_capgetcap_user_header_t headercap_user_data_t dataptr
126sys_capsetcap_user_header_t headerconst cap_user_data_t data
522compat_sys_rt_sigpendingsigset_t __user * usetsize_t sigsetsize
523compat_sys_rt_sigtimedwait_time64const sigset_t __user * uthesesiginfo_t __user * uinfoconst struct __kernel_timespec __user * utssize_t sigsetsize
524compat_sys_rt_sigqueueinfopid_t pidint sigsiginfo_t __user * uinfo
130sys_rt_sigsuspendsigset_t __user * unewsetsize_t sigsetsize
525compat_sys_sigaltstackconst stack_t __user * ussstack_t __user * uoss
132sys_utimechar __user * filenamestruct utimbuf __user * times
133sys_mknodconst char __user * filenameumode_t modeunsigned dev
134uselibNO ENTRYPOINT
135sys_personalityunsigned int personality
136sys_ustatunsigned devstruct ustat __user * ubuf
137sys_statfsconst char __user * pathnamestruct statfs __user * buf
138sys_fstatfsunsigned int fdstruct statfs __user * buf
139sys_sysfsint optionunsigned long arg1unsigned long arg2
140sys_getpriorityint whichint who
141sys_setpriorityint whichint whoint niceval
142sys_sched_setparampid_t pidstruct sched_param __user * param
143sys_sched_getparampid_t pidstruct sched_param __user * param
144sys_sched_setschedulerpid_t pidint policystruct sched_param __user * param
145sys_sched_getschedulerpid_t pid
146sys_sched_get_priority_maxint policy
147sys_sched_get_priority_minint policy
148sys_sched_rr_get_intervalpid_t pidstruct __kernel_timespec __user * interval
149sys_mlockunsigned long startsize_t len
150sys_munlockunsigned long startsize_t len
151sys_mlockallint flags
152sys_munlockall
153sys_vhangup
154sys_modify_ldtint funcvoid __user * ptrunsigned long bytecount
155sys_pivot_rootconst char __user * new_rootconst char __user * put_old
156sys_ni_syscallNO ARGS found
157sys_prctlint optionunsigned long arg2unsigned long arg3unsigned long arg4unsigned long arg5
158sys_arch_prctlint optionunsigned long arg2
159sys_adjtimexstruct __kernel_timex __user * txc_p
160sys_setrlimitunsigned int resourcestruct rlimit __user * rlim
161sys_chrootconst char __user * filename
162sys_sync
163sys_acctconst char __user * name
164sys_settimeofdaystruct __kernel_old_timeval __user * tvstruct timezone __user * tz
165sys_mountchar __user * dev_namechar __user * dir_namechar __user * typeunsigned long flagsvoid __user * data
166sys_umountNO ARGS found
167sys_swaponconst char __user * specialfileint swap_flags
168sys_swapoffconst char __user * specialfile
169sys_rebootint magic1int magic2unsigned int cmdvoid __user * arg
170sys_sethostnamechar __user * nameint len
171sys_setdomainnamechar __user * nameint len
172sys_ioplunsigned int level
173sys_iopermunsigned long fromunsigned long numint turn_on
174create_moduleNO ENTRYPOINT
175sys_init_modulevoid __user * umodunsigned long lenconst char __user * uargs
176sys_delete_moduleconst char __user * name_userunsigned int flags
177get_kernel_symsNO ENTRYPOINT
178query_moduleNO ENTRYPOINT
179sys_quotactlunsigned int cmdconst char __user * specialqid_t idvoid __user * addr
180nfsservctlNO ENTRYPOINT
181getpmsgNO ENTRYPOINT
182putpmsgNO ENTRYPOINT
183afs_syscallNO ENTRYPOINT
184tuxcallNO ENTRYPOINT
185securityNO ENTRYPOINT
186sys_gettid
187sys_readaheadint fdloff_t offsetsize_t count
188sys_setxattrconst char __user * pathnameconst char __user * nameconst void __user * valuesize_t sizeint flags
189sys_lsetxattrconst char __user * pathnameconst char __user * nameconst void __user * valuesize_t sizeint flags
190sys_fsetxattrint fdconst char __user * nameconst void __user * valuesize_t sizeint flags
191sys_getxattrconst char __user * pathnameconst char __user * namevoid __user * valuesize_t size
192sys_lgetxattrconst char __user * pathnameconst char __user * namevoid __user * valuesize_t size
193sys_fgetxattrint fdconst char __user * namevoid __user * valuesize_t size
194sys_listxattrconst char __user * pathnamechar __user * listsize_t size
195sys_llistxattrconst char __user * pathnamechar __user * listsize_t size
196sys_flistxattrint fdchar __user * listsize_t size
197sys_removexattrconst char __user * pathnameconst char __user * name
198sys_lremovexattrconst char __user * pathnameconst char __user * name
199sys_fremovexattrint fdconst char __user * name
200sys_tkillpid_t pidint sig
201sys_time__kernel_old_time_t __user * tloc
202sys_futexu32 __user * uaddrint opu32 valconst struct __kernel_timespec __user * utimeu32 __user * uaddr2u32 val3
203sys_sched_setaffinitypid_t pidunsigned int lenunsigned long __user * user_mask_ptr
204sys_sched_getaffinitypid_t pidunsigned int lenunsigned long __user * user_mask_ptr
205set_thread_areaNO ENTRYPOINT
543compat_sys_io_setupunsigned nr_eventsaio_context_t __user * ctxp
207sys_io_destroyaio_context_t ctx
208sys_io_geteventsaio_context_t ctx_idlong min_nrlong nrstruct io_event __user * eventsstruct __kernel_timespec __user * timeout
544compat_sys_io_submitaio_context_t ctx_idlong nrstruct iocb __user * __user * iocbpp
210sys_io_cancelaio_context_t ctx_idstruct iocb __user * iocbstruct io_event __user * result
211get_thread_areaNO ENTRYPOINT
212sys_lookup_dcookieNO ARGS found
213sys_epoll_createint size
214epoll_ctl_oldNO ENTRYPOINT
215epoll_wait_oldNO ENTRYPOINT
216sys_remap_file_pagesunsigned long startunsigned long sizeunsigned long protunsigned long pgoffunsigned long flags
217sys_getdents64unsigned int fdstruct linux_dirent64 __user * direntunsigned int count
218sys_set_tid_addressint __user * tidptr
219sys_restart_syscall
220sys_semtimedopint semidstruct sembuf __user * tsopsunsigned int nsopsconst struct __kernel_timespec __user * timeout
221sys_fadvise64int fdloff_t offsetsize_t lenint advice
526compat_sys_timer_createconst clockid_t which_clockstruct sigevent __user * timer_event_spectimer_t __user * created_timer_id
223sys_timer_settimetimer_t timer_idint flagsconst struct __kernel_itimerspec __user * new_settingstruct __kernel_itimerspec __user * old_setting
224sys_timer_gettimetimer_t timer_idstruct __kernel_itimerspec __user * setting
225sys_timer_getoverruntimer_t timer_id
226sys_timer_deletetimer_t timer_id
227sys_clock_settimeconst clockid_t which_clockconst struct __kernel_timespec __user * tp
228sys_clock_gettimeconst clockid_t which_clockstruct __kernel_timespec __user * tp
229sys_clock_getresconst clockid_t which_clockstruct __kernel_timespec __user * tp
230sys_clock_nanosleepconst clockid_t which_clockint flagsconst struct __kernel_timespec __user * rqtpstruct __kernel_timespec __user * rmtp
231sys_exit_groupint error_code
232sys_epoll_waitint epfdstruct epoll_event __user * eventsint maxeventsint timeout
233sys_epoll_ctlint epfdint opint fdstruct epoll_event __user * event
234sys_tgkillpid_t tgidpid_t pidint sig
235sys_utimeschar __user * filenamestruct __kernel_old_timeval __user * utimes
236vserverNO ENTRYPOINT
237sys_mbindunsigned long startunsigned long lenunsigned long modeconst unsigned long __user * nmaskunsigned long maxnodeunsigned int flags
238sys_set_mempolicyint modeconst unsigned long __user * nmaskunsigned long maxnode
239sys_get_mempolicyint __user * policyunsigned long __user * nmaskunsigned long maxnodeunsigned long addrunsigned long flags
240sys_mq_openconst char __user * u_nameint oflagumode_t modestruct mq_attr __user * u_attr
241sys_mq_unlinkconst char __user * u_name
242sys_mq_timedsendmqd_t mqdesconst char __user * u_msg_ptrsize_t msg_lenunsigned int msg_prioconst struct __kernel_timespec __user * u_abs_timeout
243sys_mq_timedreceivemqd_t mqdeschar __user * u_msg_ptrsize_t msg_lenunsigned int __user * u_msg_prioconst struct __kernel_timespec __user * u_abs_timeout
527compat_sys_mq_notifymqd_t mqdesconst struct sigevent __user * u_notification
245sys_mq_getsetattrmqd_t mqdesconst struct mq_attr __user * u_mqstatstruct mq_attr __user * u_omqstat
528compat_sys_kexec_loadunsigned long entryunsigned long nr_segmentsstruct kexec_segment __user * segmentsunsigned long flags
529compat_sys_waitidint whichpid_t upidstruct siginfo __user * infopint optionsstruct rusage __user * ru
248sys_add_keyconst char __user * _typeconst char __user * _descriptionconst void __user * _payloadsize_t plenkey_serial_t ringid
249sys_request_keyconst char __user * _typeconst char __user * _descriptionconst char __user * _callout_infokey_serial_t destringid
250sys_keyctlint optionunsigned long arg2unsigned long arg3unsigned long arg4unsigned long arg5
251sys_ioprio_setint whichint whoint ioprio
252sys_ioprio_getint whichint who
253sys_inotify_init
254sys_inotify_add_watchint fdconst char __user * pathnameu32 mask
255sys_inotify_rm_watchint fd__s32 wd
256sys_migrate_pagespid_t pidunsigned long maxnodeconst unsigned long __user * old_nodesconst unsigned long __user * new_nodes
257sys_openatint dfdconst char __user * filenameint flagsumode_t mode
258sys_mkdiratint dfdconst char __user * pathnameumode_t mode
259sys_mknodatint dfdconst char __user * filenameumode_t modeunsigned int dev
260sys_fchownatint dfdconst char __user * filenameuid_t usergid_t groupint flag
261sys_futimesatint dfdconst char __user * filenamestruct __kernel_old_timeval __user * utimes
262sys_newfstatatint dfdconst char __user * filenamestruct stat __user * statbufint flag
263sys_unlinkatint dfdconst char __user * pathnameint flag
264sys_renameatint olddfdconst char __user * oldnameint newdfdconst char __user * newname
265sys_linkatint olddfdconst char __user * oldnameint newdfdconst char __user * newnameint flags
266sys_symlinkatconst char __user * oldnameint newdfdconst char __user * newname
267sys_readlinkatint dfdconst char __user * pathnamechar __user * bufint bufsiz
268sys_fchmodatint dfdconst char __user * filenameumode_t mode
269sys_faccessatint dfdconst char __user * filenameint mode
270sys_pselect6int nfd_set __user * inpfd_set __user * outpfd_set __user * expstruct __kernel_timespec __user * tspvoid __user * sig
271sys_ppollstruct pollfd __user * ufdsunsigned int nfdsstruct __kernel_timespec __user * tspconst sigset_t __user * sigmasksize_t sigsetsize
272sys_unshareunsigned long unshare_flags
530compat_sys_set_robust_liststruct robust_list_head __user * headsize_t len
531compat_sys_get_robust_listint pidstruct robust_list_head __user * __user * head_ptrsize_t __user * len_ptr
275sys_spliceint fd_inloff_t __user * off_inint fd_outloff_t __user * off_outsize_t lenunsigned int flags
276sys_teeint fdinint fdoutsize_t lenunsigned int flags
277sys_sync_file_rangeint fdloff_t offsetloff_t nbytesunsigned int flags
532sys_vmspliceint fdconst struct iovec __user * uiovunsigned long nr_segsunsigned int flags
533sys_move_pagespid_t pidunsigned long nr_pagesconst void __user * __user * pagesconst int __user * nodesint __user * statusint flags
280sys_utimensatint dfdconst char __user * filenamestruct __kernel_timespec __user * utimesint flags
281sys_epoll_pwaitint epfdstruct epoll_event __user * eventsint maxeventsint timeoutconst sigset_t __user * sigmasksize_t sigsetsize
282sys_signalfdint ufdsigset_t __user * user_masksize_t sizemask
283sys_timerfd_createint clockidint flags
284sys_eventfdunsigned int count
285sys_fallocateint fdint modeloff_t offsetloff_t len
286sys_timerfd_settimeint ufdint flagsconst struct __kernel_itimerspec __user * utmrstruct __kernel_itimerspec __user * otmr
287sys_timerfd_gettimeint ufdstruct __kernel_itimerspec __user * otmr
288sys_accept4int fdstruct sockaddr __user * upeer_sockaddrint __user * upeer_addrlenint flags
289sys_signalfd4int ufdsigset_t __user * user_masksize_t sizemaskint flags
290sys_eventfd2unsigned int countint flags
291sys_epoll_create1int flags
292sys_dup3unsigned int oldfdunsigned int newfdint flags
293sys_pipe2int __user * fildesint flags
294sys_inotify_init1int flags
534compat_sys_preadv64unsigned long fdconst struct iovec __user * vecunsigned long vlenunsigned long pos_lunsigned long pos_h
535compat_sys_pwritev64unsigned long fdconst struct iovec __user * vecunsigned long vlenunsigned long pos_lunsigned long pos_h
536compat_sys_rt_tgsigqueueinfopid_t tgidpid_t pidint sigsiginfo_t __user * uinfo
298sys_perf_event_openstruct perf_event_attr __user * attr_uptrpid_t pidint cpuint group_fdunsigned long flags
537compat_sys_recvmmsg_time64int fdstruct mmsghdr __user * mmsgunsigned int vlenunsigned int flagsstruct __kernel_timespec __user * timeout
300sys_fanotify_initunsigned int flagsunsigned int event_f_flags
301sys_fanotify_markint fanotify_fdunsigned int flags__u64 maskint dfdconst char __user * pathname
302sys_prlimit64pid_t pidunsigned int resourceconst struct rlimit64 __user * new_rlimstruct rlimit64 __user * old_rlim
303sys_name_to_handle_atint dfdconst char __user * namestruct file_handle __user * handleint __user * mnt_idint flag
304sys_open_by_handle_atint mountdirfdstruct file_handle __user * handleint flags
305sys_clock_adjtimeconst clockid_t which_clockstruct __kernel_timex __user * utx
306sys_syncfsint fd
538compat_sys_sendmmsgint fdstruct mmsghdr __user * mmsgunsigned int vlenunsigned int flags
308sys_setnsint fdint flags
309sys_getcpuunsigned __user * cpupunsigned __user * nodepstruct getcpu_cache __user * unused
539sys_process_vm_readvpid_t pidconst struct iovec __user * lvecunsigned long liovcntconst struct iovec __user * rvecunsigned long riovcntunsigned long flags
540sys_process_vm_writevpid_t pidconst struct iovec __user * lvecunsigned long liovcntconst struct iovec __user * rvecunsigned long riovcntunsigned long flags
312sys_kcmppid_t pid1pid_t pid2int typeunsigned long idx1unsigned long idx2
313sys_finit_moduleint fdconst char __user * uargsint flags
314sys_sched_setattrpid_t pidstruct sched_attr __user * uattrunsigned int flags
315sys_sched_getattrpid_t pidstruct sched_attr __user * uattrunsigned int usizeunsigned int flags
316sys_renameat2int olddfdconst char __user * oldnameint newdfdconst char __user * newnameunsigned int flags
317sys_seccompunsigned int opunsigned int flagsvoid __user * uargs
318sys_getrandomchar __user * bufsize_t countunsigned int flags
319sys_memfd_createconst char __user * unameunsigned int flags
320sys_kexec_file_loadint kernel_fdint initrd_fdunsigned long cmdline_lenconst char __user * cmdline_ptrunsigned long flags
321sys_bpfint cmdunion bpf_attr __user * uattrunsigned int size
545compat_sys_execveatint fdconst char __user * filenameconst char __user *const __user * argvconst char __user *const __user * envpint flags
323sys_userfaultfdint flags
324sys_membarrierint cmdunsigned int flagsint cpu_id
325sys_mlock2unsigned long startsize_t lenint flags
326sys_copy_file_rangeint fd_inloff_t __user * off_inint fd_outloff_t __user * off_outsize_t lenunsigned int flags
546compat_sys_preadv64v2unsigned long fdconst struct iovec __user * vecunsigned long vlenunsigned long pos_lunsigned long pos_hrwf_t flags
547compat_sys_pwritev64v2unsigned long fdconst struct iovec __user * vecunsigned long vlenunsigned long pos_lunsigned long pos_hrwf_t flags
329sys_pkey_mprotectunsigned long startsize_t lenunsigned long protint pkey
330sys_pkey_allocunsigned long flagsunsigned long init_val
331sys_pkey_freeint pkey
332sys_statxint dfdconst char __user * filenameunsigned flagsunsigned int maskstruct statx __user * buffer
333sys_io_pgeteventsaio_context_t ctx_idlong min_nrlong nrstruct io_event __user * eventsstruct __kernel_timespec __user * timeoutconst struct __aio_sigset __user * usig
334sys_rseqstruct rseq __user * rsequ32 rseq_lenint flagsu32 sig
424sys_pidfd_send_signalint pidfdint sigsiginfo_t __user * infounsigned int flags
425sys_io_uring_setupu32 entriesstruct io_uring_params __user * params
426sys_io_uring_enterunsigned int fdu32 to_submitu32 min_completeu32 flagsconst void __user * argpsize_t argsz
427sys_io_uring_registerunsigned int fdunsigned int opcodevoid __user * argunsigned int nr_args
428sys_open_treeint dfdconst char __user * filenameunsigned flags
429sys_move_mountint from_dfdconst char __user * from_pathnameint to_dfdconst char __user * to_pathnameunsigned int flags
430sys_fsopenconst char __user * _fs_nameunsigned int flags
431sys_fsconfigint fdunsigned int cmdconst char __user * _keyconst void __user * _valueint aux
432sys_fsmountint fs_fdunsigned int flagsunsigned int attr_flags
433sys_fspickint dfdconst char __user * pathunsigned int flags
434sys_pidfd_openpid_t pidunsigned int flags
435sys_clone3struct clone_args __user * uargssize_t size
436sys_close_rangeunsigned int fdunsigned int max_fdunsigned int flags
437sys_openat2int dfdconst char __user * filenamestruct open_how __user * howsize_t usize
438sys_pidfd_getfdint pidfdint fdunsigned int flags
439sys_faccessat2int dfdconst char __user * filenameint modeint flags
440sys_process_madviseint pidfdconst struct iovec __user * vecsize_t vlenint behaviorunsigned int flags
441sys_epoll_pwait2int epfdstruct epoll_event __user * eventsint maxeventsconst struct __kernel_timespec __user * timeoutconst sigset_t __user * sigmasksize_t sigsetsize
442sys_mount_setattrint dfdconst char __user * pathunsigned int flagsstruct mount_attr __user * uattrsize_t usize
443sys_quotactl_fdunsigned int fdunsigned int cmdqid_t idvoid __user * addr
444sys_landlock_create_rulesetconst struct landlock_ruleset_attr __user *const attrconst size_t sizeconst __u32 flags
445sys_landlock_add_ruleconst int ruleset_fdconst enum landlock_rule_type rule_typeconst void __user *const rule_attrconst __u32 flags
446sys_landlock_restrict_selfconst int ruleset_fdconst __u32 flags
447sys_memfd_secretunsigned int flags
448sys_process_mreleaseint pidfdunsigned int flags

Another in-depth explanation I came across: https://packagecloud.io/blog/the-definitive-guide-to-linux-system-calls/

Tags: linux asm