본문 바로가기

Programming Language/Assembly

[Assembly] syscall table for x86

리눅스에서 어셈블리로 컴파일을 할떄 system call number을 알아야 하는데


32비트에서는 int 0x80으로 실행을 한다.(여기서 int는 interrupt의 약자이다.)


이 system call number 가 정이되어 있는 곳은 \usr\include\asm\unistd.h 에 지정되어 있다.


%eaxNameSource%ebx%ecx%edx%esx%edi
1sys_exitkernel/exit.cint----
2sys_forkarch/i386/kernel/process.cstruct pt_regs----
3sys_readfs/read_write.cunsigned intchar *size_t--
4sys_writefs/read_write.cunsigned intconst char *size_t--
5sys_openfs/open.cconst char *intint--
6sys_closefs/open.cunsigned int----
7sys_waitpidkernel/exit.cpid_tunsigned int *int--
8sys_creatfs/open.cconst char *int---
9sys_linkfs/namei.cconst char *const char *---
10sys_unlinkfs/namei.cconst char *----
11sys_execvearch/i386/kernel/process.cstruct pt_regs----
12sys_chdirfs/open.cconst char *----
13sys_timekernel/time.cint *----
14sys_mknodfs/namei.cconst char *intdev_t--
15sys_chmodfs/open.cconst char *mode_t---
16sys_lchownfs/open.cconst char *uid_tgid_t--
18sys_statfs/stat.cchar *struct __old_kernel_stat *---
19sys_lseekfs/read_write.cunsigned intoff_tunsigned int--
20sys_getpidkernel/sched.c-----
21sys_mountfs/super.cchar *char *char *--
22sys_oldumountfs/super.cchar *----
23sys_setuidkernel/sys.cuid_t----
24sys_getuidkernel/sched.c-----
25sys_stimekernel/time.cint *----
26sys_ptracearch/i386/kernel/ptrace.clonglonglonglong-
27sys_alarmkernel/sched.cunsigned int----
28sys_fstatfs/stat.cunsigned intstruct __old_kernel_stat *---
29sys_pausearch/i386/kernel/sys_i386.c-----
30sys_utimefs/open.cchar *struct utimbuf *---
33sys_accessfs/open.cconst char *int---
34sys_nicekernel/sched.cint----
36sys_syncfs/buffer.c-----
37sys_killkernel/signal.cintint---
38sys_renamefs/namei.cconst char *const char *---
39sys_mkdirfs/namei.cconst char *int---
40sys_rmdirfs/namei.cconst char *----
41sys_dupfs/fcntl.cunsigned int----
42sys_pipearch/i386/kernel/sys_i386.cunsigned long *----
43sys_timeskernel/sys.cstruct tms *----
45sys_brkmm/mmap.cunsigned long----
46sys_setgidkernel/sys.cgid_t----
47sys_getgidkernel/sched.c-----
48sys_signalkernel/signal.cint__sighandler_t---
49sys_geteuidkernel/sched.c-----
50sys_getegidkernel/sched.c-----
51sys_acctkernel/acct.cconst char *----
52sys_umountfs/super.cchar *int---
54sys_ioctlfs/ioctl.cunsigned intunsigned intunsigned long--
55sys_fcntlfs/fcntl.cunsigned intunsigned intunsigned long--
57sys_setpgidkernel/sys.cpid_tpid_t---
59sys_oldunamearch/i386/kernel/sys_i386.cstruct oldold_utsname *----
60sys_umaskkernel/sys.cint----
61sys_chrootfs/open.cconst char *----
62sys_ustatfs/super.cdev_tstruct ustat *---
63sys_dup2fs/fcntl.cunsigned intunsigned int---
64sys_getppidkernel/sched.c-----
65sys_getpgrpkernel/sys.c-----
66sys_setsidkernel/sys.c-----
67sys_sigactionarch/i386/kernel/signal.cintconst struct old_sigaction *struct old_sigaction *--
68sys_sgetmaskkernel/signal.c-----
69sys_ssetmaskkernel/signal.cint----
70sys_setreuidkernel/sys.cuid_tuid_t---
71sys_setregidkernel/sys.cgid_tgid_t---
72sys_sigsuspendarch/i386/kernel/signal.cintintold_sigset_t--
73sys_sigpendingkernel/signal.cold_sigset_t *----
74sys_sethostnamekernel/sys.cchar *int---
75sys_setrlimitkernel/sys.cunsigned intstruct rlimit *---
76sys_getrlimitkernel/sys.cunsigned intstruct rlimit *---
77sys_getrusagekernel/sys.cintstruct rusage *---
78sys_gettimeofdaykernel/time.cstruct timeval *struct timezone *---
79sys_settimeofdaykernel/time.cstruct timeval *struct timezone *---
80sys_getgroupskernel/sys.cintgid_t *---
81sys_setgroupskernel/sys.cintgid_t *---
82old_selectarch/i386/kernel/sys_i386.cstruct sel_arg_struct *----
83sys_symlinkfs/namei.cconst char *const char *---
84sys_lstatfs/stat.cchar *struct __old_kernel_stat *---
85sys_readlinkfs/stat.cconst char *char *int--
86sys_uselibfs/exec.cconst char *----
87sys_swaponmm/swapfile.cconst char *int---
88sys_rebootkernel/sys.cintintintvoid *-
89old_readdirfs/readdir.cunsigned intvoid *unsigned int--
90old_mmaparch/i386/kernel/sys_i386.cstruct mmap_arg_struct *----
91sys_munmapmm/mmap.cunsigned longsize_t---
92sys_truncatefs/open.cconst char *unsigned long---
93sys_ftruncatefs/open.cunsigned intunsigned long---
94sys_fchmodfs/open.cunsigned intmode_t---
95sys_fchownfs/open.cunsigned intuid_tgid_t--
96sys_getprioritykernel/sys.cintint---
97sys_setprioritykernel/sys.cintintint--
99sys_statfsfs/open.cconst char *struct statfs *---
100sys_fstatfsfs/open.cunsigned intstruct statfs *---
101sys_iopermarch/i386/kernel/ioport.cunsigned longunsigned longint--
102sys_socketcallnet/socket.cintunsigned long *---
103sys_syslogkernel/printk.cintchar *int--
104sys_setitimerkernel/itimer.cintstruct itimerval *struct itimerval *--
105sys_getitimerkernel/itimer.cintstruct itimerval *---
106sys_newstatfs/stat.cchar *struct stat *---
107sys_newlstatfs/stat.cchar *struct stat *---
108sys_newfstatfs/stat.cunsigned intstruct stat *---
109sys_unamearch/i386/kernel/sys_i386.cstruct old_utsname *----
110sys_ioplarch/i386/kernel/ioport.cunsigned long----
111sys_vhangupfs/open.c-----
112sys_idlearch/i386/kernel/process.c-----
113sys_vm86oldarch/i386/kernel/vm86.cunsigned longstruct vm86plus_struct *---
114sys_wait4kernel/exit.cpid_tunsigned long *int optionsstruct rusage *-
115sys_swapoffmm/swapfile.cconst char *----
116sys_sysinfokernel/info.cstruct sysinfo *----
117sys_ipc (*Note)arch/i386/kernel/sys_i386.cuintintintintvoid *
118sys_fsyncfs/buffer.cunsigned int----
119sys_sigreturnarch/i386/kernel/signal.cunsigned long----
120sys_clonearch/i386/kernel/process.cstruct pt_regs----
121sys_setdomainnamekernel/sys.cchar *int---
122sys_newunamekernel/sys.cstruct new_utsname *----
123sys_modify_ldtarch/i386/kernel/ldt.cintvoid *unsigned long--
124sys_adjtimexkernel/time.cstruct timex *----
125sys_mprotectmm/mprotect.cunsigned longsize_tunsigned long--
126sys_sigprocmaskkernel/signal.cintold_sigset_t *old_sigset_t *--
127sys_create_modulekernel/module.cconst char *size_t---
128sys_init_modulekernel/module.cconst char *struct module *---
129sys_delete_modulekernel/module.cconst char *----
130sys_get_kernel_symskernel/module.cstruct kernel_sym *----
131sys_quotactlfs/dquot.cintconst char *intcaddr_t-
132sys_getpgidkernel/sys.cpid_t----
133sys_fchdirfs/open.cunsigned int----
134sys_bdflushfs/buffer.cintlong---
135sys_sysfsfs/super.cintunsigned longunsigned long--
136sys_personalitykernel/exec_domain.cunsigned long----
138sys_setfsuidkernel/sys.cuid_t----
139sys_setfsgidkernel/sys.cgid_t----
140sys_llseekfs/read_write.cunsigned intunsigned longunsigned longloff_t *unsigned int
141sys_getdentsfs/readdir.cunsigned intvoid *unsigned int--
142sys_selectfs/select.cintfd_set *fd_set *fd_set *struct timeval *
143sys_flockfs/locks.cunsigned intunsigned int---
144sys_msyncmm/filemap.cunsigned longsize_tint--
145sys_readvfs/read_write.cunsigned longconst struct iovec *unsigned long--
146sys_writevfs/read_write.cunsigned longconst struct iovec *unsigned long--
147sys_getsidkernel/sys.cpid_t----
148sys_fdatasyncfs/buffer.cunsigned int----
149sys_sysctlkernel/sysctl.cstruct __sysctl_args *----
150sys_mlockmm/mlock.cunsigned longsize_t---
151sys_munlockmm/mlock.cunsigned longsize_t---
152sys_mlockallmm/mlock.cint----
153sys_munlockallmm/mlock.c-----
154sys_sched_setparamkernel/sched.cpid_tstruct sched_param *---
155sys_sched_getparamkernel/sched.cpid_tstruct sched_param *---
156sys_sched_setschedulerkernel/sched.cpid_tintstruct sched_param *--
157sys_sched_getschedulerkernel/sched.cpid_t----
158sys_sched_yieldkernel/sched.c-----
159sys_sched_get_priority_maxkernel/sched.cint----
160sys_sched_get_priority_minkernel/sched.cint----
161sys_sched_rr_get_intervalkernel/sched.cpid_tstruct timespec *---
162sys_nanosleepkernel/sched.cstruct timespec *struct timespec *---
163sys_mremapmm/mremap.cunsigned longunsigned longunsigned longunsigned long-
164sys_setresuidkernel/sys.cuid_tuid_tuid_t--
165sys_getresuidkernel/sys.cuid_t *uid_t *uid_t *--
166sys_vm86arch/i386/kernel/vm86.cstruct vm86_struct *----
167sys_query_modulekernel/module.cconst char *intchar *size_tsize_t *
168sys_pollfs/select.cstruct pollfd *unsigned intlong--
169sys_nfsservctlfs/filesystems.cintvoid *void *--
170sys_setresgidkernel/sys.cgid_tgid_tgid_t--
171sys_getresgidkernel/sys.cgid_t *gid_t *gid_t *--
172sys_prctlkernel/sys.cintunsigned longunsigned longunsigned longunsigned long
173sys_rt_sigreturnarch/i386/kernel/signal.cunsigned long----
174sys_rt_sigactionkernel/signal.cintconst struct sigaction *struct sigaction *size_t-
175sys_rt_sigprocmaskkernel/signal.cintsigset_t *sigset_t *size_t-
176sys_rt_sigpendingkernel/signal.csigset_t *size_t---
177sys_rt_sigtimedwaitkernel/signal.cconst sigset_t *siginfo_t *const struct timespec *size_t-
178sys_rt_sigqueueinfokernel/signal.cintintsiginfo_t *--
179sys_rt_sigsuspendarch/i386/kernel/signal.csigset_t *size_t---
180sys_preadfs/read_write.cunsigned intchar *size_tloff_t-
181sys_pwritefs/read_write.cunsigned intconst char *size_tloff_t-
182sys_chownfs/open.cconst char *uid_tgid_t--
183sys_getcwdfs/dcache.cchar *unsigned long---
184sys_capgetkernel/capability.ccap_user_header_tcap_user_data_t---
185sys_capsetkernel/capability.ccap_user_header_tconst cap_user_data_t---
186sys_sigaltstackarch/i386/kernel/signal.cconst stack_t *stack_t *---
187sys_sendfilemm/filemap.cintintoff_t *size_t-
190sys_vforkarch/i386/kernel/process.cstruct pt_regs----


출쳐 : http://docs.cs.up.ac.za/programming/asm/derick_tut/syscalls.html


#ifndef _ASM_X86_UNISTD_32_H

#define _ASM_X86_UNISTD_32_H 1


#define __NR_restart_syscall 0

#define __NR_exit 1

#define __NR_fork 2

#define __NR_read 3

#define __NR_write 4

#define __NR_open 5

#define __NR_close 6

#define __NR_waitpid 7

#define __NR_creat 8

#define __NR_link 9

#define __NR_unlink 10

#define __NR_execve 11

#define __NR_chdir 12

#define __NR_time 13

#define __NR_mknod 14

#define __NR_chmod 15

#define __NR_lchown 16

#define __NR_break 17

#define __NR_oldstat 18

#define __NR_lseek 19

#define __NR_getpid 20

#define __NR_mount 21

#define __NR_umount 22

#define __NR_setuid 23

#define __NR_getuid 24

#define __NR_stime 25

#define __NR_ptrace 26

#define __NR_alarm 27

#define __NR_oldfstat 28

#define __NR_pause 29

#define __NR_utime 30

#define __NR_stty 31

#define __NR_gtty 32

#define __NR_access 33

#define __NR_nice 34

#define __NR_ftime 35

#define __NR_sync 36

#define __NR_kill 37

#define __NR_rename 38

#define __NR_mkdir 39

#define __NR_rmdir 40

#define __NR_dup 41

#define __NR_pipe 42

#define __NR_times 43

#define __NR_prof 44

#define __NR_brk 45

#define __NR_setgid 46

#define __NR_getgid 47

#define __NR_signal 48

#define __NR_geteuid 49

#define __NR_getegid 50

#define __NR_acct 51

#define __NR_umount2 52

#define __NR_lock 53

#define __NR_ioctl 54

#define __NR_fcntl 55

#define __NR_mpx 56

#define __NR_setpgid 57

#define __NR_ulimit 58

#define __NR_oldolduname 59

#define __NR_umask 60

#define __NR_chroot 61

#define __NR_ustat 62

#define __NR_dup2 63

#define __NR_getppid 64

#define __NR_getpgrp 65

#define __NR_setsid 66

#define __NR_sigaction 67

#define __NR_sgetmask 68

#define __NR_ssetmask 69

#define __NR_setreuid 70

#define __NR_setregid 71

#define __NR_sigsuspend 72

#define __NR_sigpending 73

#define __NR_sethostname 74

#define __NR_setrlimit 75

#define __NR_getrlimit 76

#define __NR_getrusage 77

#define __NR_gettimeofday 78

#define __NR_settimeofday 79

#define __NR_getgroups 80

#define __NR_setgroups 81

#define __NR_select 82

#define __NR_symlink 83

#define __NR_oldlstat 84

#define __NR_readlink 85

#define __NR_uselib 86

#define __NR_swapon 87

#define __NR_reboot 88

#define __NR_readdir 89

#define __NR_mmap 90

#define __NR_munmap 91

#define __NR_truncate 92

#define __NR_ftruncate 93

#define __NR_fchmod 94

#define __NR_fchown 95

#define __NR_getpriority 96

#define __NR_setpriority 97

#define __NR_profil 98

#define __NR_statfs 99

#define __NR_fstatfs 100

#define __NR_ioperm 101

#define __NR_socketcall 102

#define __NR_syslog 103

#define __NR_setitimer 104

#define __NR_getitimer 105

#define __NR_stat 106

#define __NR_lstat 107

#define __NR_fstat 108

#define __NR_olduname 109

#define __NR_iopl 110

#define __NR_vhangup 111

#define __NR_idle 112

#define __NR_vm86old 113

#define __NR_wait4 114

#define __NR_swapoff 115

#define __NR_sysinfo 116

#define __NR_ipc 117

#define __NR_fsync 118

#define __NR_sigreturn 119

#define __NR_clone 120

#define __NR_setdomainname 121

#define __NR_uname 122

#define __NR_modify_ldt 123

#define __NR_adjtimex 124

#define __NR_mprotect 125

#define __NR_sigprocmask 126

#define __NR_create_module 127

#define __NR_init_module 128

#define __NR_delete_module 129

#define __NR_get_kernel_syms 130

#define __NR_quotactl 131

#define __NR_getpgid 132

#define __NR_fchdir 133

#define __NR_bdflush 134

#define __NR_sysfs 135

#define __NR_personality 136

#define __NR_afs_syscall 137

#define __NR_setfsuid 138

#define __NR_setfsgid 139

#define __NR__llseek 140

#define __NR_getdents 141

#define __NR__newselect 142

#define __NR_flock 143

#define __NR_msync 144

#define __NR_readv 145

#define __NR_writev 146

#define __NR_getsid 147

#define __NR_fdatasync 148

#define __NR__sysctl 149

#define __NR_mlock 150

#define __NR_munlock 151

#define __NR_mlockall 152

#define __NR_munlockall 153

#define __NR_sched_setparam 154

#define __NR_sched_getparam 155

#define __NR_sched_setscheduler 156

#define __NR_sched_getscheduler 157

#define __NR_sched_yield 158

#define __NR_sched_get_priority_max 159

#define __NR_sched_get_priority_min 160

#define __NR_sched_rr_get_interval 161

#define __NR_nanosleep 162

#define __NR_mremap 163

#define __NR_setresuid 164

#define __NR_getresuid 165

#define __NR_vm86 166

#define __NR_query_module 167

#define __NR_poll 168

#define __NR_nfsservctl 169

#define __NR_setresgid 170

#define __NR_getresgid 171

#define __NR_prctl 172

#define __NR_rt_sigreturn 173

#define __NR_rt_sigaction 174

#define __NR_rt_sigprocmask 175

#define __NR_rt_sigpending 176

#define __NR_rt_sigtimedwait 177

#define __NR_rt_sigqueueinfo 178

#define __NR_rt_sigsuspend 179

#define __NR_pread64 180

#define __NR_pwrite64 181

#define __NR_chown 182

#define __NR_getcwd 183

#define __NR_capget 184

#define __NR_capset 185

#define __NR_sigaltstack 186

#define __NR_sendfile 187

#define __NR_getpmsg 188

#define __NR_putpmsg 189

#define __NR_vfork 190

#define __NR_ugetrlimit 191

#define __NR_mmap2 192

#define __NR_truncate64 193

#define __NR_ftruncate64 194

#define __NR_stat64 195

#define __NR_lstat64 196

#define __NR_fstat64 197

#define __NR_lchown32 198

#define __NR_getuid32 199

#define __NR_getgid32 200

#define __NR_geteuid32 201

#define __NR_getegid32 202

#define __NR_setreuid32 203

#define __NR_setregid32 204

#define __NR_getgroups32 205

#define __NR_setgroups32 206

#define __NR_fchown32 207

#define __NR_setresuid32 208

#define __NR_getresuid32 209

#define __NR_setresgid32 210

#define __NR_getresgid32 211

#define __NR_chown32 212

#define __NR_setuid32 213

#define __NR_setgid32 214

#define __NR_setfsuid32 215

#define __NR_setfsgid32 216

#define __NR_pivot_root 217

#define __NR_mincore 218

#define __NR_madvise 219

#define __NR_getdents64 220

#define __NR_fcntl64 221

#define __NR_gettid 224

#define __NR_readahead 225

#define __NR_setxattr 226

#define __NR_lsetxattr 227

#define __NR_fsetxattr 228

#define __NR_getxattr 229

#define __NR_lgetxattr 230

#define __NR_fgetxattr 231

#define __NR_listxattr 232

#define __NR_llistxattr 233

#define __NR_flistxattr 234

#define __NR_removexattr 235

#define __NR_lremovexattr 236

#define __NR_fremovexattr 237

#define __NR_tkill 238

#define __NR_sendfile64 239

#define __NR_futex 240

#define __NR_sched_setaffinity 241

#define __NR_sched_getaffinity 242

#define __NR_set_thread_area 243

#define __NR_get_thread_area 244

#define __NR_io_setup 245

#define __NR_io_destroy 246

#define __NR_io_getevents 247

#define __NR_io_submit 248

#define __NR_io_cancel 249

#define __NR_fadvise64 250

#define __NR_exit_group 252

#define __NR_lookup_dcookie 253

#define __NR_epoll_create 254

#define __NR_epoll_ctl 255

#define __NR_epoll_wait 256

#define __NR_remap_file_pages 257

#define __NR_set_tid_address 258

#define __NR_timer_create 259

#define __NR_timer_settime 260

#define __NR_timer_gettime 261

#define __NR_timer_getoverrun 262

#define __NR_timer_delete 263

#define __NR_clock_settime 264

#define __NR_clock_gettime 265

#define __NR_clock_getres 266

#define __NR_clock_nanosleep 267

#define __NR_statfs64 268

#define __NR_fstatfs64 269

#define __NR_tgkill 270

#define __NR_utimes 271

#define __NR_fadvise64_64 272

#define __NR_vserver 273

#define __NR_mbind 274

#define __NR_get_mempolicy 275

#define __NR_set_mempolicy 276

#define __NR_mq_open 277

#define __NR_mq_unlink 278

#define __NR_mq_timedsend 279

#define __NR_mq_timedreceive 280

#define __NR_mq_notify 281

#define __NR_mq_getsetattr 282

#define __NR_kexec_load 283

#define __NR_waitid 284

#define __NR_add_key 286

#define __NR_request_key 287

#define __NR_keyctl 288

#define __NR_ioprio_set 289

#define __NR_ioprio_get 290

#define __NR_inotify_init 291

#define __NR_inotify_add_watch 292

#define __NR_inotify_rm_watch 293

#define __NR_migrate_pages 294

#define __NR_openat 295

#define __NR_mkdirat 296

#define __NR_mknodat 297

#define __NR_fchownat 298

#define __NR_futimesat 299

#define __NR_fstatat64 300

#define __NR_unlinkat 301

#define __NR_renameat 302

#define __NR_linkat 303

#define __NR_symlinkat 304

#define __NR_readlinkat 305

#define __NR_fchmodat 306

#define __NR_faccessat 307

#define __NR_pselect6 308

#define __NR_ppoll 309

#define __NR_unshare 310

#define __NR_set_robust_list 311

#define __NR_get_robust_list 312

#define __NR_splice 313

#define __NR_sync_file_range 314

#define __NR_tee 315

#define __NR_vmsplice 316

#define __NR_move_pages 317

#define __NR_getcpu 318

#define __NR_epoll_pwait 319

#define __NR_utimensat 320

#define __NR_signalfd 321

#define __NR_timerfd_create 322

#define __NR_eventfd 323

#define __NR_fallocate 324

#define __NR_timerfd_settime 325

#define __NR_timerfd_gettime 326

#define __NR_signalfd4 327

#define __NR_eventfd2 328

#define __NR_epoll_create1 329

#define __NR_dup3 330

#define __NR_pipe2 331

#define __NR_inotify_init1 332

#define __NR_preadv 333

#define __NR_pwritev 334

#define __NR_rt_tgsigqueueinfo 335

#define __NR_perf_event_open 336

#define __NR_recvmmsg 337

#define __NR_fanotify_init 338

#define __NR_fanotify_mark 339

#define __NR_prlimit64 340

#define __NR_name_to_handle_at 341

#define __NR_open_by_handle_at 342

#define __NR_clock_adjtime 343

#define __NR_syncfs 344

#define __NR_sendmmsg 345

#define __NR_setns 346

#define __NR_process_vm_readv 347

#define __NR_process_vm_writev 348

#define __NR_kcmp 349

#define __NR_finit_module 350

#define __NR_sched_setattr 351

#define __NR_sched_getattr 352

#define __NR_renameat2 353


#endif /* _ASM_X86_UNISTD_32_H */