Linux x86_64 System Call Reference Table

This document serves as a reference to the system calls within the x86_64 Linux Kernel.

x86_64 Linux Syscall Structure

InstructionSyscall #Return Valuearg0arg1arg2arg3arg4arg5
SYSCALLraxraxrdirsirdxrrr

x86_64 Linux Syscall Table

raxSystem Callrdirsirdxr10r8r9
0sys_readunsigned int fdchar* bufsize_t count
1sys_writeunsigned int fdconst char* bufsize_t count
2sys_openconst char* filenameint flagsint mode
3sys_closeunsigned int fd
4sys_statconst char* filenamestruct stat* statbuf
5sys_fstatunsigned int fdstruct stat* statbuf
6sys_lstatconst char* filenamestruct stat* statbuf
7sys_pollstruct poll_fd* ufdsunsigned int nfdslong timeout_msecs
8sys_lseekunsigned int fdoff_t offsetunsigned int origin
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
13sys_rt_sigactionint sigconst struct sigaction* actstruct sigaction* oactsizt_t sigsetsize
14sys_rt_sigprocmaskint howsigset_t* nsetsigset_t* osetsizt_t sigsetsize
15sys_rt_sigreturnunsigned long _unused
16sys_ioctlunsigned int fdunsigned int cmdunsigned long arg
17sys_pread64unsigned long fdchar* bufsize_t countoff_t pos
18sys_pwrite64unsigned int fdconst char* fdsizt_t countoff_t pos
19sys_readvunsigned long fdconst struct iovec* vecunsigned long vlen
20sys_writevunsigned long fdconst struct iovec* vecunsigned long vlen
21sys_accessconst char* filenameint mode
22sys_pipeint* fields
23sys_selectint nfd_set* inpfd_set* outpfd_set* expstruct timeval* 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* vec
28sys_madviseunsigned long startsizt_t len_inint behavior
29sys_shmgetkey_t keysize_t sizeint shmflg
30sys_shmatint shmidchar* shmaddrint shmflg
31sys_shmctlint shmidint cmdstruct shmid_ds* buf
32sys_dupunsigned int fields
33sys_dup2unsigned int oldfdunsigned int newfd
34sys_pause
35sys_nanosleepstruct timespec* rqtpstruct timespec* rmtp
36sys_getitimerint whichstruct itimerval* value
37sys_alarmunsigned int seconds
38sys_setitimerint whichstruct itimerval* valuestruct itimerval* ovalue
39sys_getpid
40sys_sendfileint out_fdint in_fdoff_t* offsetsize_t count
41sys_socketint familyint typeint protocol
42sys_connectint fdstruct sockaddr* uservaddrint addrlen
43sys_acceptint fdstruct sockaddr* upeer_sockaddrint upeer_addrlen
44sys_sendtoint fdvoid* buffsize_t lenunsigned int flagsstruct sockaddr* addrsocklen_t addr_len
45sys_recvfromint fdvoid *ubufsize_t lenunsigned int flagsstruct sockaddr* addrsocklen_t* addr_len
46sys_sendmsgint fdstruct msghdr* msgunsigned int flags
47sys_recvmsgint fdstruct msghdr* msgunsigned int flags
48sys_shutdownint fdint how
49sys_bindint fdstruct sockaddr* umyaddrint addrlen
50sys_listenint fdint backlog
51sys_getsocknameint fdstruct sockaddr* usockaddrint* usockaddr_len
52sys_getpeernameint fdstruct sockaddr* usockaddrint* usockaddr_len
53sys_socketpairint familyint typeint protocolint* usockvec
54sys_setsockoptint fdint levelint optnamechar* optvalint optlen
55sys_getsockoptint fdint levelint optnamechar* optvalint* optlen
56sys_cloneunsigned long clone_flagsunsigned long newspvoid* parent_tidvoid* child_tidunsigned int tid
57sys_fork
58sys_vfork
59sys_execveconst char* filenameconst char* argv[]const char* envp[]
60sys_exitint error_code
61sys_wait4pid_t upidint* stat_addrint optionsstruct rusage* ru
62sys_killpid_t pidint sig
63sys_unamestruct old_utsname* name
64sys_semgetkey_t keyint nsemsint semflg
65sys_semopint semidstruct sembuf* tsopsunsigned nsops
66sys_semctlint semidint semnumint cmdunion semun arg
67sys_shmdtchar* shmaddr
68sys_msggetkey_t keyint msgflg
69sys_msgsndint msquidstruct msgbuf* msgpsize_t msgszint msgflg
70sys_msgrcvint msqidstruct msgbuf* msgpsize_t msgszlong msgtypint msgflg
71sys_msgctlint msqidint cmdstruct msqid_ds* 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* pathlong length
77sys_ftruncateunsigned int fdunsigned long length
78sys_getdentsunsigned int fdstruct linux_dirent* direntunsigned int count
79sys_getcwdchar* bufunsigned long size
80sys_chdirconst char* filename
81sys_fchdirunsigned int fd
82sys_renameconst char* oldnameconst char* newname
83sys_mkdirconst char* pathnameint mode
84sys_rmdirconst char* pathname
85sys_creatconst char* pathnameint mode
86sys_linkconst char* oldnameconst char* newname
87sys_unlinkconst char* pathname
88sys_symlinkconst char* oldnameconst char* newname
89sys_readlinkconst char* pathchar* bufint bufsiz
90sys_chmodconst char* filenamemode_t mode
91sys_fchmodunsigned int fdmod_t mode
92sys_chownconst char* filenameuid_t usergid_t group
93sys_fchownunsigned int fduid_t usergid_t group
94sys_lchownconst char* filenameuid_t userguid_t group
95sys_umaskint mask
96sys_gettimeofdaystruct timeval* tvstruct timezone* tz
97sys_getrlimitunsigned int resourcestruct rlimit* rlim
98sys_getrusageint whostruct rusage* ru
99sys_sysinfostruct sysinfo* info
100sys_timesstruct tms* tbuf
101sys_ptracelong requestlong pidunsigned long addrunsigned long data
102sys_getuid
103sys_syslogint typechar* bufint len
104sys_getgid
105sys_setuiduid_t uid
106sys_setgidgid_t gid
107sys_geteuid
108sys_getegid
109sys_setpgidpid_t pid
110sys_getppid
111sys_getpgrp
112sys_setsid
113sys_setreuiduid_t ruiduid_t euid
114sys_setregidgid_t rgidgid_t egid
115sys_getgroupsint gidsetsizegid_t* grouplist
116sys_setgroupsint gidsetsizegid_t* grouplist
117sys_setresuiduid_t* ruiduid_t* euiduid_t* suid
118sys_getresuiduid_t* ruiduid_t* euiduid_t *suid
119sys_setresgidgid_t rgidgid_t egidgid_t sgid
120sys_getresgidgid_t* rgidgid_t* egidgid_t* sgid
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 user_data_t data
127sys_rt_sigpendingsigset_t* setsize_t sigsetsize
128sys_sigtimedwaitconst sigset_t* uthesesiginfo_t* uinfoconst struct timespec* utfsize_t sigsetsize
129sys_rt_sigqueueinfopid_t pidint sigsiginfo_t* uinfo
130sys_rt_sigsuspendsigset_t* unewsetsize_t sigsetsize
131sys_sigaltstackconst stack_t* ussstack_t* uoss
132sys_utimechar* filenamestruct utimbuf* times
133sys_mknodconst char* filenameumode_t modeunsigned dev
134sys_uselibconst char* library
135sys_personalityunsigned int personality
136sys_ustatunsigned devstruct ustat* ubuf
137sys_statfsconst char* pathnamestruct statfs* buf
138sys_fstatfsunsigned int fdstruct statfs* buf
139sys_sysfsint optionunsigned long arg1unsigned long arg2
140sys_getpriorityint whichint who
141sys_setpriorityint whichint whoint niceval
142sys_sched_setparampid_t pidstruct sched_param* param
143sys_sched_getparampid_t pidstruct sched_param* param
144sys_sched_setschedulerpid_t pidint policystruct sched_param* param
145sys_sched_getschedulerpid_t pid
146sys_sched_get_priority_maxint policy
147sys_sched_get_policy_minint policy
148sys_sched_rr_get_intervalpid_t pidstruct timespec* interval
149sys_mlockunsigned long startsize_t len
150sys_munlockunsigned long startsize_t len
151sys_mlockallint flags
152sys_munlockall
153sys_vhangup
154sys_modify_ldtint funcvoid* ptrunsigned long bytecount
155sys_pivot_rootconst char* new_rootconst char* put_old
156sys_sysctlstruct __sysctl_args* args
157sys_prctlint optionunsigned long arg2unsigned long arg3unsigned long arg4unsigned long arg5
158sys_arch_prctlstruct task_struct* taskint codeunsigned long* addr
159sys_adjtimexstruct timex *txc_p
160sys_setrlimitunsigned int resourcestruct rlimit* rlim
161sys_chrootconst char* filename
162sys_sync
163sys_acctconst char* name
164sys_settimeofdaystruct timeval* tvstruct timezone* tz
165sys_mountchar* dev_namechar* dir_namechar* typeunsigned long flagsvoid* data
166sys_umount2const char* targetint flags
167sys_swaponconst char* specialfileint swap_flags
168sys_swapoffconst char* specialfile
169sys_rebootint magic1int magic2unsigned int cmdvoid* arg
170sys_sethostnamechar* nameint len
171sys_setdomainnamechar* nameint len
172sys_ioplunsigned int levelstruct pt_regs* regs
173sys_iopermunsigned long fromunsigned long numint turn_on
174sys_create_moduleREMOVED IN Linux 2.6
175sys_init_modulevoid* umodunsigned long lenconst char* uargs
176sys_delete_moduleconst char* name_userunsigned int flags
177sys_get_kernel_symsREMOVED IN Linux 2.6
178sys_query_moduleREMOVED IN Linux 2.6
179sys_quotactlunsigned int cmdconst char* specialquid_t idvoid* addr
180sys_nfsservctlREMOVED IN Linux 3.1
181sys_getpmsgUNIMPLEMENTED
182sys_putpmsgUNIMPLEMENTED
183sys_afs_syscallUNIMPLEMENTED
184sys_tuxcallUNIMPLEMENTED
185sys_securityUNIMPLEMENTED
186sys_gettid
187sys_readaheadint fdoff_64t offsetsize_t count
188sys_setxattrconst char* pathnameconst char* nameconst void* valuesize_t sizeint flags
189sys_lsetxaddrconst char* pathnameconst char* nameconst void* valuesize_t sizeint flags
190sys_fsetxaddrint fdconst char* nameconst void& valuesize_t sizeint flags
191sys_getxaddrconst char* pathnameconst char* namevoid *valuesize_t size
192sys_lgetxattrconst char* pathnameconst char* namevoid* valuesize_t size
193sys_fgetxaddrint fdconst char* namevoid* valuesize_t size
194sys_listxattrconst char* pathnamechar* listsize_t size
195sys_llistxattrconst char* pathnamechar* listsize_t size
196sys_flistxattrint fdchar* listsize_t size
197sys_removexattrconst char* pathnameconst char* name
198sys_lremovexattrconst char* pathnameconst char* name
199sys_fremovexattrint fdconst char* name
200sys_tkillpid_t pidint sig
201sys_timetime_t* tloc
202sys_futexu32* uaddrint opu32 valstruct timespec* utimeu32* uaddr2u32 val3
203sys_sched_setaffinitypid_t pidunsigned int lenunsigned long* user_mask_ptr
204sys_sched_getaffinitypid_t pidunsigned int lenunsigned long* user_mask_ptr
205sys_set_thread_areastruct user_desc* u_info
206sys_io_setupunsigned nr_eventsaio_context_t* ctxp
207sys_io_destroyaio_context_t ctx
208sys_io_geteventsaio_context_t ctx_idlong min_nrlong nrstruct io_event* events
209sys_io_submitaio_context_t* ctx_idlong nrstruct iocb** iocbpp
210sys_io_cancelaio_context_t* ctx_idstruct iocb* iocbstruct io_event* result
211sys_get_thread_areastruct user_desc* u_info
212sys_lookup_dcookieu64 cookie64long buflong len
213sys_epoll_createint size
214sys_epoll_ctl_oldUNIMPLEMENTED
215sys_epoll_wait_oldUNIMPLEMENTED
216sys_remap_file_pagesunsigned long startunsigned long sizeunsigned long protunsigned long pgoffunsigned long flags
217sys_getdents64unsigned int fdstruct linux_dirent64* direntunsigned int count
218sys_set_tid_addressint* tidptr
219sys_restart_syscall
220sys_semtimedopint semidstruct sembuf* tsopsunsigned nsopsconst struct timespec* timeout
221sys_fadvise64int fdoff_t offsetsize_t lenint advice
222sys_timer_createconst clockid_t which_clockstruct sigevent* timer_event_spectimer_t* created_timer_id
223sys_timer_settimetimer_t timer_idint flagsconst struct itimerspec* new_settingstruct itimerspec* old_setting
224sys_timer_gettimetimer_t timer_idstruct itimerspec* setting
225sys_timer_getoverruntimer_t timer_id
226sys_timer_deletetimer_t timer_id
227sys_clock_settimeconst clockid_t which_clockconst struct timespec* tp
228sys_clock_gettimeconst clockid_t which_clockstruct timespec* tp
229sys_clock_getresconst clockid_t which_clockstruct timespect* tp
230sys_clock_nanosleepconst clockid_t which_clockint flagsconst struct timespec* rqtpstruct timespec* rmtp
231sys_exit_groupint error_code
232sys_epoll_waitint epfdstruct epoll_event* eventsint maxeventsint timeout
233sys_epoll_ctlint epfdint opint fdstruct epoll_event* event
234sys_tgkillpid_t tgidpid_t pidint sig
235sys_utimeschar* filenamestruct timeval* utimes
236sys_vserverUNIMPLEMENTED
237sys_mbindunsigned long startunsigned long lenunsigned long modeunsigned long *nmaskunsigned long maxnodeunsigned flags
238sys_set_mempolicyint modeunsigned long* nmaskunsigned long maxnode
239sys_get_mempolicyint* policyunsigned long* nmaskunsigned long maxnodeunsigned long addrunsigned long flags
240sys_mq_openconst char* u_nameint oflagmode_t modestruct mq_attr* u_attr
241sys_mq_unlinkconst char* u_name
242sys_mq_timedsendmqd_t mqdesconst char* u_msg_ptrsize_t msg_lenunsigned int msg_prioconst struct timespec* u_abs_timeout
243sys_mq_timedreceivemqd_t mqdeschar* u_msg_ptrsize_t msg_lenunsigned int* u_msg_prioconst struct timespec* u_abs_timeout
244sys_mq_notifymqd_t mqdesconst struct sigevent* u_notification
245sys_mq_getsetattrmqd_t mqdesconst struct mq_attr* u_mqstatstruct mq_attr* u_omqstat
246sys_kexec_loadunsigned long entryunsigned long nr_segmentsstruct kexec_segment* segmentsunsigned long flags
247sys_waitidint whichpid_t upidstruct siginfo* infopint optionsstruct rusage* ru
248sys_add_keyconst char* _typeconst char* _descriptionconst void* _payloadsize_t plen
249sys_request_keyconst char* _typeconst char* _descriptionconst char* _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* pathnameu32 mask
255sys_inotify_rm_watchint fdint wd
256sys_migrate_pagespid_t pidunsigned long maxnodeconst unsigned long* old_nodesconst unsigned long* new_nodes
257sys_openatint dfdconst char* filenameint flagsint mode
258sys_mkdiratint dfdconst char* pathnameint mode
259sys_mknodatint dfdconst char* filenameint modeunsigned dev
260sys_fchownatint dfdconst char* filenameuid_t usergid_t groupint flag
261sys_futimesatint dfdconst char* filenamestruct timeval* utimes
262sys_newfstatatint dfdconst char* filenamestruct stat* statbufint flag
263sys_unlinkatint dfdconst char* pathnameint flag
264sys_renameatint oldfdconst char* oldnameint newfdconst char* newname
265sys_linkatint oldfdconst char* oldnameint newfdconst char* newnameint flags
266sys_symlinkatconst char* oldnameint newfdconst char* newname
267sys_readlinkatint dfdconst char* pathnamechar* bufint bufsiz
268sys_fchmodatint dfdconst char* filenamemode_t mode
269sys_faccessatint dfdconst char* filenameint mode
270sys_pselect6int nfd_set* inpfd_set* outpfd_set* expstruct timespec* tspvoid* sig
271sys_ppollstruct pollfd* ufdsunsigned int nfdsstruct timespec* tspconst sigset_t* sigmasksize_t sigsetsize
272sys_unshareunsigned long unshare_flags
273sys_set_robust_liststruct robust_list_head* headsize_t len
274sys_get_robust_listint pidstruct robust_list_head** head_ptrsize_t* len_ptr
275sys_spliceint fd_inoff_t* off_inint fd_outoff_t* off_outsize_t lenunsigned int flags
276sys_teeint fdinint fdoutsize_t lenunsigned int flags
277sys_sync_file_rangelong fdoff_t offsetoff_t byteslong flags
278sys_vmspliceint fdconst struct iovec* iovunsigned long nr_segsunsigned int flags
279sys_move_pagespid_t pidunsigned long nr_pagesconst void** pagesconst int* nodesint* statusint flags
280sys_utimensatint dfdconst char* filenamestruct timespec* utimesint flags
281sys_epoll_waitint epfdstruct epoll_event* eventsint maxeventsint timeoutconst sigset_t* sigmasksize_t sigsetsize
282sys_signalfdint ufdsigset_t* user_masksize_t sizemask
283sys_timerfd_createint clockidint flags
248sys_eventfdunsigned int count
285sys_fallocatelong fdlong modeoff_t offsetoff_t len
286sys_timerfd_settimeint ufdint flagsconst struct itimerspec* utmrstruct itimerspec* otmr
287sys_timerfd_gettimeint ufdstruct itimerspec* otmr
288sys_accept4int fdstruct sockaddr* upeer_sockaddrint* upeer_addrlenint flags
289sys_signalfd4int ufdsigset_t* user_masksize_t sizemaskint flags
290sys_eventfd2unsigned int countint flags
291sys_epoll_create1int flags
292sys_dup3unsigned int oldfdunsigned int newfdint flags
293sys_pipe2int* filedesint flags
294sys_inotify_init1int flags
295sys_preadvunsigned long fdconst struct iovec* vecunsigned long vlenunsigned long pos_lunsigned long pos_h
296sys_pwritevunsigned long fdconst struct iovec* vecunsigned long vlenunsigned long pos_lunsigned long pos_h
297sys_rt_tgsigqueueinfopid_t tgidpid_t pidint sigsiginfo_t* uinfo
298sys_perf_event_openstruct perf_event_attr* attr_uptrpid_t pidint cpuint group_fdunsigned long flags
299sys_recvmmsgint fdstruct msghdr* mmsgunsigned int vlenunsigned int flagsstruct timespec* timeout
300sys_fanotify_initunsigned int flagsunsigned int event_f_flags
301sys_fanotify_marklong fanotify_fdlong flags__u64 masklong dfdlong pathname
302sys_prlimit64pid_t pidunsigned int resourceconst struct rlimit64* new_rlimstruct rlimit64* old_rlim
303sys_name_to_handle_atint dfdconst char* namestruct file_handle* handleint *mnt_idint flag
304sys_open_by_handle_atint dfdconst char* namestruct file_handle* handleint *mnt_idint flags
305sys_clock_adjtimeclockid_t which_clockstruct time* tx
306sys_syncfsint fd
307sys_sendmmsgint fdstruct mmsghdr* mmsgunsigned int vlenunsigned int flags
308sys_setnsint fdstruct mmsghdr* mmsgunsigned int vlenunsigned int flags
309sys_getcpuunsigned* cpupunsigned* nodepstruct getcpu_cache* unused
310sys_process_vm_readvpid_t pidconst struc iovec* lvecunsigned long liovcntconst struct iovec* rvecunsigned long riovcntunsigned long flags
311sys_process_vm_writevpid_t pidconst struct iovec* lvecunsigned long liovcntconst struct iovcc* rvecunsigned long riovcntunsigned long flags
312sys_kcmppid_t pid1pid_t pid2int typeunsigned long idx1unsigned long idx2
313sys_finit_moduleint fdconst char* param_valuesint flags
314sys_sched_setattrpid_t pidstruct sched_attr* attrunsigned int flags
315sys_sched_getattrpid_t pidstruct sched_attr* attrunsigned int sizeunsigned int flags
316sys_renameat2int olddfdconst char* oldnameint newdfdconst char* newnameunsigned int flags
317sys_seccompunsigned int opunsigned int flagsconst char *uargs
318sys_getrandomchar* bufsize_t countunsigned int flags
319sys_memfd_createconst char* uname_ptrunsigned int flags
320sys_kexec_file_loadint kernel_fdint initrd_fdunsigned long cmdline_lenconst char* cmdline_ptrunsigned long flags
321sys_bpfint cmdunion bpf_attr* attrunsigned int size
322stub_execveatint dfdconst char* filenameconst char* argvconst char* envpint flags
323userfaultfdint flags
324membarrierint cmdint flags
325mlock2unsigned long startsize_t lenint flags
326copy_file_rangeint fd_inoff_t* off_inint fd_outoff_t* off_outsize_t lenunsigned int flags
327preadb2unsigned long fdconst struct iovec* vecunsigned long vlenunsigned long pos_lunsigned long pos_hint flags
328pwritev2unsigned long fdconst struct iovec* vecunsigned long vlenunsigned long pos_lunsigned long pos_hint flags
329pkey_mprotect
330pkey_alloc
331pkey_free
332statx
333io_pgetevents
334rseq
335pkey_mprotect

This guide was built by Adam Thompson. You can view more reference guide here.

I have made every effort to make the information presented here error-free, but I’m only human :). Please report any issues you find to me on Twitter or email me: adam [at] hackeradam.com