Author Topic: up to date list of linux syscall  (Read 29171 times)

Offline brethren

  • Jr. Member
  • *
  • Posts: 28
up to date list of linux syscall
« on: April 12, 2011, 05:12:34 PM »
heres the list of syscalls from the latest linux stable
341 syscalls
Code: [Select]
;----------------------------------------------------
; equates for linux syscalls
; created:11th April 2011 using information from
; linux-2.6.38.2/arch/x86/kernel/syscall_table_32.S
;----------------------------------------------------
sys_restart_syscall     equ     0               ;old setup() system call
sys_exit                equ     1
sys_fork                equ     2
sys_read                equ     3
sys_write               equ     4
sys_open                equ     5
sys_close               equ     6
sys_waitpid             equ     7
sys_creat               equ     8
sys_link                equ     9
sys_unlink              equ     10
sys_execve              equ     11
sys_chdir               equ     12
sys_time                equ     13
sys_mknod               equ     14
sys_chmod               equ     15
sys_lchown16            equ     16
;sys_ni_syscall         equ     17              ;old break syscall holder
sys_stat                equ     18
sys_lseek               equ     19
sys_getpid              equ     20
sys_mount               equ     21
sys_oldumount           equ     22
sys_setuid16            equ     23
sys_getuid16            equ     24
sys_stime               equ     25
sys_ptrace              equ     26
sys_alarm               equ     27
sys_fstat               equ     28
sys_pause               equ     29
sys_utime               equ     30
;sys_ni_syscall         equ     31              ;old stty syscall holder
;sys_ni_syscall         equ     32              ;old gtty syscall holder
sys_access              equ     33
sys_nice                equ     34
;sys_ni_syscall         equ     35              ;old ftime syscall holder
sys_sync                equ     36
sys_kill                equ     37
sys_rename              equ     38
sys_mkdir               equ     39
sys_rmdir               equ     40
sys_dup                 equ     41
sys_pipe                equ     42
sys_times               equ     43
;sys_ni_syscall         equ     44              ;old prof syscall holder
sys_brk                 equ     45
sys_setgid16            equ     46
sys_getgid16            equ     47
sys_signal              equ     48
sys_geteuid16           equ     49
sys_getegid16           equ     50
sys_acct                equ     51
sys_umount              equ     52              ;recycled never used phys()
;sys_ni_syscall         equ     53              ;old lock syscall holder
sys_ioctl               equ     54
sys_fcntl               equ     55
;sys_ni_syscall         equ     56              ;old mpx syscall holder
sys_setpgid             equ     57
;sys_ni_syscall         equ     58              ;old ulimit syscall holder
sys_olduname            equ     59
sys_umask               equ     60
sys_chroot              equ     61
sys_ustat               equ     62
sys_dup2                equ     63
sys_getppid             equ     64
sys_getpgrp             equ     65
sys_setsid              equ     66
sys_sigaction           equ     67
sys_sgetmask            equ     68
sys_ssetmask            equ     69
sys_setreuid16          equ     70
sys_setregid16          equ     71
sys_sigsuspend          equ     72
sys_sigpending          equ     73
sys_sethostname         equ     74
sys_setrlimit           equ     75
sys_old_getrlimit       equ     76
sys_getrusage           equ     77
sys_gettimeofday        equ     78
sys_settimeofday        equ     79
sys_getgroups16         equ     80
sys_setgroups16         equ     81
sys_old_select          equ     82
sys_symlink             equ     83
sys_lstat               equ     84
sys_readlink            equ     85
sys_uselib              equ     86
sys_swapon              equ     87
sys_reboot              equ     88
sys_old_readdir         equ     89
sys_old_mmap            equ     90
sys_munmap              equ     91
sys_truncate            equ     92
sys_ftruncate           equ     93
sys_fchmod              equ     94
sys_fchown16            equ     95
sys_getpriority         equ     96
sys_setpriority         equ     97
;sys_ni_syscall         equ     98              ;old profil syscall holder
sys_statfs              equ     99
sys_fstatfs             equ     100
sys_ioperm              equ     101
sys_socketcall          equ     102
sys_syslog              equ     103
sys_setitimer           equ     104
sys_getitimer           equ     105
sys_newstat             equ     106
sys_newlstat            equ     107
sys_newfstat            equ     108
sys_uname               equ     109
sys_iopl                equ     110
sys_vhangup             equ     111
;sys_ni_syscall         equ     112             ;old idle syscall
sys_vm86old             equ     113
sys_wait4               equ     114
sys_swapoff             equ     115
sys_sysinfo             equ     116
sys_ipc                 equ     117
sys_fsync               equ     118
sys_sigreturn           equ     119
sys_clone               equ     120
sys_setdomainname       equ     121
sys_newuname            equ     122
sys_modify_ldt          equ     123
sys_adjtimex            equ     124
sys_mprotect            equ     125
sys_sigprocmask         equ     126
;sys_ni_syscall         equ     127             ;old create_module syscall
sys_init_module         equ     128
sys_delete_module       equ     129
;sys_ni_syscall         equ     130             ;old get_kernel_syms
sys_quotactl            equ     131
sys_getpgid             equ     132
sys_fchdir              equ     133
sys_bdflush             equ     134
sys_sysfs               equ     135
sys_personality         equ     136
;sys_ni_syscall         equ     137             ;reserved for andrew file system syscall
sys_setfsuid16          equ     138
sys_setfsgid16          equ     139
sys_llseek              equ     140
sys_getdents            equ     141
sys_select              equ     142
sys_flock               equ     143
sys_msync               equ     144
sys_readv               equ     145
sys_writev              equ     146
sys_getsid              equ     147
sys_fdatasync           equ     148
sys_sysctl              equ     149
sys_mlock               equ     150
sys_munlock             equ     151
sys_mlockall            equ     152
sys_munlockall          equ     153
sys_sched_setparam      equ     154
sys_sched_getparam      equ     155
sys_sched_setscheduler  equ     156
sys_sched_getscheduler  equ     157
sys_sched_yield         equ     158
sys_sched_get_priority_max      equ     159
sys_sched_get_priority_min      equ     160
sys_sched_rr_get_interval       equ     161
sys_nanosleep           equ     162
sys_mremap              equ     163
sys_setresuid16         equ     164
sys_getresuid16         equ     165
sys_vm86                equ     166
;sys_ni_syscall         equ     167             ;old sys_query_module
sys_poll                equ     168
sys_nfsservctl          equ     169
sys_setresgid16         equ     170
sys_getresgid16         equ     171
sys_prctl               equ     172
sys_rt_sigreturn        equ     173
sys_rt_sigaction        equ     174
sys_rt_sigprocmask      equ     175
sys_rt_sigpending       equ     176
sys_rt_sigtimedwait     equ     177
sys_rt_sigqueueinfo     equ     178
sys_rt_sigsuspend       equ     179
sys_pread64             equ     180
sys_pwrite64            equ     181
sys_chown16             equ     182
sys_getcwd              equ     183
sys_capget              equ     184
sys_capset              equ     185
sys_sigalstack          equ     186
sys_sendfile            equ     187
;sys_ni_syscall         equ     188             ;reserved for streams1
;sys_ni_syscall         equ     189             ;reserved for streams2
sys_vfork               equ     190
sys_getrlimit           equ     191
sys_mmap_pgoff          equ     192
sys_truncate64          equ     193
sys_ftruncate64         equ     194
sys_stat64              equ     195
sys_lstat64             equ     196
sys_fstat64             equ     197
sys_lchown              equ     198
sys_getuid              equ     199
sys_getgid              equ     200
sys_geteuid             equ     201
sys_getegid             equ     202
sys_setreuid            equ     203
sys_setregid            equ     204
sys_getgroups           equ     205
sys_setgroups           equ     206
sys_fchown              equ     207
sys_setresuid           equ     208
sys_getresuid           equ     209
sys_setresgid           equ     210
sys_getresgid           equ     211
sys_chown               equ     212
sys_setuid              equ     213
sys_setgid              equ     214
sys_setfsuid            equ     215
sys_setfsgid            equ     216
sys_pivot_root          equ     217
sys_mincore             equ     218
sys_madvise             equ     219
sys_getdents64          equ     220
sys_fcntl64             equ     221
;sys_ni_syscall         equ     222             ;reserved for TUX
;sys_ni_syscall         equ     223
sys_gettid              equ     224
sys_readahead           equ     225
sys_setxattr            equ     226
sys_lsetxattr           equ     227
sys_fsetxattr           equ     228
sys_getxattr            equ     229
sys_lgetxattr           equ     230
sys_fgetxattr           equ     231
sys_listxattr           equ     232
sys_llistxattr          equ     233
sys_flistxattr          equ     234
sys_removexattr         equ     235
sys_lremovexattr        equ     236
sys_fremovexattr        equ     237
sys_tkill               equ     238
sys_sendfile64          equ     239
sys_futex               equ     240
sys_sched_set_affinity  equ     241
sys_sched_get_affinity  equ     242
sys_set_thread_area     equ     243
sys_get_thread_area     equ     244
sys_io_setup            equ     245
sys_io_destroy          equ     246
sys_io_getevents        equ     247
sys_io_submit           equ     248
sys_io_cancel           equ     249
sys_fadvise64           equ     250
;sys_ni_syscall         equ     251
sys_exit_group          equ     252
sys_lookup_dcookie      equ     253
sys_epoll_create        equ     254
sys_epoll_ctl           equ     255
sys_epoll_wait          equ     256
sys_remap_file_pages    equ     257
sys_set_tid_address     equ     258
sys_timer_create        equ     259
sys_timer_settime       equ     260
sys_timer_gettime       equ     261
sys_timer_getoverrun    equ     262
sys_timer_delete        equ     263
sys_clock_settime       equ     264
sys_clock_gettime       equ     265
sys_clock_getres        equ     266
sys_clock_nanosleep     equ     267
sys_statfs64            equ     268
sys_fstatfs64           equ     269
sys_tgkill              equ     270
sys_utimes              equ     271
sys_fadvise64_64        equ     272
;sys_ni_syscall         equ     273             ;sys_vserver
sys_mbind               equ     274
sys_get_mempolicy       equ     275
sys_set_mempolicy       equ     276
sys_mq_open             equ     277
sys_mq_unlink           equ     278
sys_mq_timedsend        equ     279
sys_mq_timedreceive     equ     280
sys_mq_notify           equ     281
sys_mq_getsetattr       equ     282
sys_kexec_load          equ     283
sys_waitid              equ     284
;sys_ni_syscall         equ     285             ;available
sys_add_key             equ     286
sys_request_key         equ     287
sys_keyctl              equ     288
sys_ioprio_set          equ     289
sys_ioprio_get          equ     290
sys_inotify_init        equ     291
sys_inotify_add_watch   equ     292
sys_inotify_rm_watch    equ     293
sys_migrate_pages       equ     294
sys_openat              equ     295
sys_mkdirat             equ     296
sys_mknodat             equ     297
sys_fchownat            equ     298
sys_futimesat           equ     299
sys_fstatat64           equ     300
sys_unlinkat            equ     301
sys_renameat            equ     302
sys_linkat              equ     303
sys_symlinkat           equ     304
sys_readlinkat          equ     305
sys_fchmodat            equ     306
sys_faccessat           equ     307
sys_pselect6            equ     308
sys_ppoll               equ     309
sys_unshare             equ     310
sys_set_robust_list     equ     311
sys_get_robust_list     equ     312
sys_splice              equ     313
sys_sync_file_range     equ     314
sys_tee                 equ     315
sys_vmsplice            equ     316
sys_move_pages          equ     317
sys_getcpu              equ     318
sys_epoll_pwait         equ     319
sys_utimensat           equ     320
sys_signalfd            equ     321
sys_timerfd_create      equ     322
sys_eventfd             equ     323
sys_fallocate           equ     324
sys_timerfd_settime     equ     325
sys_timerfd_gettime     equ     326
sys_signalfd4           equ     327
sys_eventfd2            equ     328
sys_epoll_create1       equ     329
sys_dup3                equ     330
sys_pipe2               equ     331
sys_inotify_init1       equ     332
sys_preadv              equ     333
sys_pwritev             equ     334
sys_rt_tgsigqueueinfo   equ     335
sys_perf_event_open     equ     336
sys_recvmmsg            equ     337
sys_fanotify_event      equ     338
sys_fanotify_mark       equ     339
sys_prlimit64           equ     340

Offline Frank Kotler

  • NASM Developer
  • Hero Member
  • *****
  • Posts: 2667
  • Country: us
Re: up to date list of linux syscall
« Reply #1 on: April 12, 2011, 06:34:45 PM »
341! Whew! Thanks Brethren!

Best,
Frank


Offline brethren

  • Jr. Member
  • *
  • Posts: 28
Re: up to date list of linux syscall
« Reply #2 on: April 27, 2011, 09:38:31 PM »
error equates
Code: [Select]
;-----------------------------------------------------------------------------------------------
; Error numbers from linux-2.6.38.2/include/asm-generic/errno-base.h
; 18th April 2011
; note: raw syscalls (as opposed to the libc wrappers which return -1 and set errno)
;       generate negative return values in EAX for errors, so you should check if a syscalls
;       return value is signed, if it is use neg eax and then check the value against this list.
;------------------------------------------------------------------------------------------------
EPERM           equ 1                   ;operation not permitted
ENOENT          equ 2                   ;no such file or directory
ESRCH           equ 3                   ;no such process
EINTR           equ 4                   ;interrupted system call
EIO             equ 5                   ;I/O error
ENXIO           equ 6                   ;no such device or address
E2BIG           equ 7                   ;argument list to long
ENOEXEC         equ 8                   ;exec format error
EBADF           equ 9                   ;bad file number
ECHILD          equ 10                  ;no child processes
EAGAIN          equ 11                  ;try again
ENOMEM          equ 12                  ;out of memory
EACCES          equ 13                  ;permission denied
EFAULT          equ 14                  ;bad address
ENOTBLK         equ 15                  ;block device required
EBUSY           equ 16                  ;device or resource busy
EEXIST          equ 17                  ;file exists
EXDEV           equ 18                  ;cross-device link
ENODEV          equ 19                  ;no such device
ENOTDIR         equ 20                  ;no such directory
EISDIR          equ 21                  ;is a directory
EINVAL          equ 22                  ;invalid argument
ENFILE          equ 23                  ;file table overflow
EMFILE          equ 24                  ;too many open files
ENOTTY          equ 25                  ;not a typewriter
ETXTBSY         equ 26                  ;text file busy
EFBIG           equ 27                  ;file too large
ENOSPC          equ 28                  ;no space left on device
ESPIPE          equ 29                  ;illegal seek
EROFS           equ 30                  ;read-only file system
EMLINK          equ 31                  ;too many links
EPIPE           equ 32                  ;broken pipe
EDOM            equ 33                  ;math arg out of domain of func
ERANGE          equ 34                  ;math result not representable
;--------------------------------------------------------------------------
; more error numbers from linux-2.6.38.2/include/asm-generic/errno.h
; 21st April 2011
;--------------------------------------------------------------------------
EDEADLCK        equ 35                  ;resource deadlock would occur
ENAMETOOLONG    equ 36                  ;file name too long
ENOLCK          equ 37                  ;no record locks available
ENOSYS          equ 38                  ;function not implemented
ENOTEMPTY       equ 39                  ;directory not empty
ELOOP           equ 40                  ;too many symbolic links encountered
EWOULDBLOCK     equ EAGAIN              ;operation would block
ENOMSG          equ 42                  ;no message of desired type
EIDRM           equ 43                  ;identifier removed
ECHRNG          equ 44                  ;channel number out of range
EL2NSYNC        equ 45                  ;level 2 not synchronized
EL3HLT          equ 46                  ;level 3 halted
EL3RST          equ 47                  ;level 3 reset
ELNRNG          equ 48                  ;link number out of range
EUNATCH         equ 49                  ;protocol driver not attached
ENOCSI          equ 50                  ;no CSI structure available
EL2HLT          equ 51                  ;level 2 halted
EBADE           equ 52                  ;invalid exchange
EBADR           equ 53                  ;invalid request descriptor
EXFULL          equ 54                  ;exchange full
ENOANO          equ 55                  ;no anode
EBADROC         equ 56                  ;invalid request code
EBADSLT         equ 57                  ;invalid slot
EDEADLOCK       equ EDEADLCK
EBFONT          equ 59                  ;bad font file format
ENOSTR          equ 60                  ;device not a stream
ENODATA         equ 61                  ;no data available
ETIME           equ 62                  ;timer expired
ENOSR           equ 63                  ;out of streams resources
ENONET          equ 64                  ;machine is not on the network
ENOPKG          equ 65                  ;package not installed
EREMOTE         equ 66                  ;object is remote
ENOLINK         equ 67                  ;link has been severed
EADV            equ 68                  ;advertise error
ESRMNT          equ 69                  ;srmount error
ECOMM           equ 70                  ;communication error on send
EPROTO          equ 71                  ;protocol error
EMULTIHOP       equ 72                  ;multihop attempted
EDOTDOT         equ 73                  ;RFS specific error
EBADMSG         equ 74                  ;not a data message
EOVERFLOW       equ 75                  ;value too large for defined data
                                        ;type
ENOTUNIQ        equ 76                  ;name not unique on network
EBADFD          equ 77                  ;file descriptor in bad state
EREMCHG         equ 78                  ;remote address changed
ELIBACC         equ 79                  ;cannot access a needed shared lib
ELIBBAD         equ 80                  ;accessing a corrupted shared lib
ELIBSCN         equ 81                  ;.lib section in a.out corrupted
ELIBMAX         equ 82                  ;attempting to link in too many shared
                                        ;libraries
ELIBEXEC        equ 83                  ;cannot exec a shared lib directly
EILSEQ          equ 84                  ;illegal byte sequence
ERESTART        equ 85                  ;interrupted system call should be
                                        ;restarted
ESTRPIPE        equ 86                  ;streams pipe error
EUSERS          equ 87                  ;too many users
ENOTSOCK        equ 88                  ;socket operation on non-socket
EDESTADDRREQ    equ 89                  ;destination address required
EMSGSIZE        equ 90                  ;message too long
EPROTOTYPE      equ 91                  ;protocol wrong type for socket
ENOPROTOOPT     equ 92                  ;protocol not available
EPROTONOSUPPORT equ 93                  ;protocol not supported
ESOCKTNOSUPPORT equ 94                  ;socket type not supported
EOPNOTSUPP      equ 95                  ;operation not supported on transport
                                        ;endpoint
EPFNOSUPPORT    equ 96                  ;protocol family not supported
EAFNOSUPPORT    equ 97                  ;address family not supported by protocol
EADDRINUSE      equ 98                  ;address already in use
EADDRNOTAVAIL   equ 99                  ;cannot assign requested address
ENETDOWN        equ 100                 ;network is down
ENETUNREACH     equ 101                 ;network is unreachable
ENETRESET       equ 102                 ;network dropped connection because of
                                        ;reset
ECONNABORTED    equ 103                 ;software caused connection abort
ECONNRESET      equ 104                 ;connection reset by peer
ENOBUFS         equ 105                 ;no buffer space available
EISCONN         equ 106                 ;transport endpoint is already connected
ENOTCONN        equ 107                 ;transport endpoint is not connected
ESHUTDOWN       equ 108                 ;cannot send after transport endpoint
                                        ;shutdown
ETOOMANYREFS    equ 109                 ;too many references : cannot splice
ETIMEDOUT       equ 110                 ;connection timed out
ECONNREFUSED    equ 111                 ;connection refused
EHOSTDOWN       equ 112                 ;host is down
EHOSTUNREACH    equ 113                 ;no route to host
EALREADY        equ 114                 ;operation already in progress
EINPROGRESS     equ 115                 ;operation now in progress
ESTALE          equ 116                 ;stale NFS file handle
EUCLEAN         equ 117                 ;structure needs cleaning
ENOTNAM         equ 118                 ;not a XENIX named type file
ENAVAIL         equ 119                 ;no XENIX semaphores available
EISNAM          equ 120                 ;is a named file type
EREMOTEIO       equ 121                 ;remote I/O error
EDQUOT          equ 122                 ;quota exceeded
ENOMEDIUM       equ 123                 ;no medium found
EMEDIUMTYPE     equ 124                 ;wrong medium type
ECANCELED       equ 125                 ;operation canceled
ENOKEY          equ 126                 ;required key not available
EKEYEXPIRED     equ 127                 ;key has expired
EKEYREVOKED     equ 128                 ;key has been revoked
EKEYREJECTED    equ 129                 ;key was rejected by service
;for robust mutexes
EOWNERDEAD      equ 130                 ;owner died
ENOTRECOVERABLE equ 131                 ;state not recoverable
ERFKILL         equ 132                 ;operation not possible due to RF-kill
;---------------------------------------------------------------------------------

Offline Rob Neff

  • Forum Moderator
  • Full Member
  • *****
  • Posts: 429
  • Country: us
Re: up to date list of linux syscall
« Reply #3 on: April 28, 2011, 12:44:19 AM »
Brethren,
Would you mind if I integrate this work into NASMX?
It would make for a nice addition indeed!  :)

Offline brethren

  • Jr. Member
  • *
  • Posts: 28
Re: up to date list of linux syscall
« Reply #4 on: April 28, 2011, 02:43:15 PM »
Brethren,
Would you mind if I integrate this work into NASMX?
It would make for a nice addition indeed!  :)


of course, feel free to use anything that i post:) i've been setting up a dev enviroment for linux and i'm pretty interested in using sys_socketcall. when i've finished converting the structures, address families etc i'll post them too

Offline JoeCoder

  • Jr. Member
  • *
  • Posts: 72
  • Country: by
Re: up to date list of linux syscall
« Reply #5 on: June 09, 2011, 07:47:15 AM »
Isn't there a way to automate this? I wrote a script to generate equates for all the syscalls. It took me about 5 minutes. I will write another one for the error codes. But that won't be useful to other people because it is done in a non-standard language just happens to be what I know. I guess one of you guys who is already good on x86 assembly could write a tool for contrib that generates this for each site depending on the environment.
If you can't code it in assembly, it can't be coded!

Offline Bryant Keller

  • Forum Moderator
  • Full Member
  • *****
  • Posts: 360
  • Country: us
    • About Bryant Keller
Re: up to date list of linux syscall
« Reply #6 on: June 09, 2011, 10:23:50 AM »
Quote from: Synfire link="http://www.asmcommunity.net/board/index.php?topic=30567.msg214447#msg214447"
Code: [Select]
grep __NR /usr/include/asm/unistd_64.h | grep define | sed -e 's/\#/\%/' -e 's/__NR_/SYS_/' > unistd_64.inc

About Bryant Keller
bkeller@about.me

Offline JoeCoder

  • Jr. Member
  • *
  • Posts: 72
  • Country: by
Re: up to date list of linux syscall
« Reply #7 on: June 09, 2011, 11:56:21 AM »
hehe even better  ;D

But the question was sortof would it be a good idea to add a script to contrib to create the syscall and error includes based on the user's environment (linux 32/64 multilib, Win32/64 etc.)

Because not everybody is a awk/sed expert like Bryant  :P
If you can't code it in assembly, it can't be coded!

Offline Rob Neff

  • Forum Moderator
  • Full Member
  • *****
  • Posts: 429
  • Country: us
Re: up to date list of linux syscall
« Reply #8 on: June 09, 2011, 12:14:32 PM »
Partially agree - not everyone will have the required headers installed to build the list in the first place or they may have them in non-standard locations.
Fully agree that not everyone is an awk/sed expert like Bryant  ;)

Offline JoeCoder

  • Jr. Member
  • *
  • Posts: 72
  • Country: by
Re: up to date list of linux syscall
« Reply #9 on: June 09, 2011, 12:37:45 PM »
Yeah your first comment is why I was thinking contrib rather than part of the build. Later anybody who need system calls could run the script on his own.
If you can't code it in assembly, it can't be coded!