module builtin pub enum Linux_mem { page_size = 4096 } pub enum Wp_sys { wnohang = 0x00000001 wuntraced = 0x00000002 wstopped = 0x00000002 wexited = 0x00000004 wcontinued = 0x00000008 wnowait = 0x01000000 // don't reap, just poll status. __wnothread = 0x20000000 // don't wait on children of other threads in this group __wall = 0x40000000 // wait on all children, regardless of type __wclone = 0x80000000 // wait only on non-sigchld children } // First argument to waitid: pub enum Wi_which { p_all = 0 p_pid = 1 p_pgid = 2 } pub enum Wi_si_code { cld_exited = 1 // child has exited cld_killed = 2 // child was killed cld_dumped = 3 // child terminated abnormally cld_trapped = 4 // traced child has trapped cld_stopped = 5 // child has stopped cld_continued = 6 // stopped child has continued } /* Paraphrased from "man 2 waitid" on Linux Upon successful return, waitid() fills in the following fields of the siginfo_t structure pointed to by infop: si_pid, offset 0x10, int index 0x04: The process ID of the child. si_uid: offset 0x14, int index 0x05 The real user ID of the child. si_signo: offset 0x00, int index 0x00 Always set to SIGCHLD. si_status: ofset 0x18, int index 0x06 1 the exit status of the child, as given to _exit(2) (or exit(3)) (sc_sys.cld_exited) 2 the signal that caused the child to terminate, stop, or continue. 3 The si_code field can be used to determine how to interpret this field. si_code, set to one of (enum Wi_si_code), offset 0x08, int index 0x02: CLD_EXITED (child called _exit(2)); CLD_KILLED (child killed by signal); CLD_DUMPED (child killed by signal, and dumped core); CLD_STOPPED (child stopped by signal); CLD_TRAPPED (traced child has trapped); CLD_CONTINUED (child continued by SIGCONT). */ pub enum Sig_index { si_signo = 0x00 si_code = 0x02 si_pid = 0x04 si_uid = 0x05 si_status = 0x06 si_size = 0x80 } pub enum Signo { sigint = 2 // Interactive attention signal. sigill = 4 // Illegal instruction. sigabrt = 6 // Abnormal termination. sigfpe = 8 // Erroneous arithmetic operation. sigsegv = 11 // Invalid access to storage. sigterm = 15 // Termination request. sighup = 1 // Hangup. sigquit = 3 // Quit. sigtrap = 5 // Trace/breakpoint trap. sigkill = 9 // Killed. sigpipe = 13 // Broken pipe. sigalrm = 14 // Alarm clock. sigttin = 21 // Background read from control terminal. sigttou = 22 // Background write to control terminal. sigxcpu = 24 // CPU time limit exceeded. sigxfsz = 25 // File size limit exceeded. sigvtalrm = 26 // Virtual timer expired. sigprof = 27 // Profiling timer expired. sigbus = 7 sigusr1 = 10 sigusr2 = 12 sigchld = 17 sigcont = 18 sigstop = 19 sigtstp = 20 sigurg = 23 sigpoll = 29 sigsys = 31 } pub enum Fcntl { fd_cloexec = 0x00000001 f_dupfd = 0x00000000 f_exlck = 0x00000004 f_getfd = 0x00000001 f_getfl = 0x00000003 f_getlk = 0x00000005 f_getlk64 = 0x0000000c f_getown = 0x00000009 f_getowner_uids = 0x00000011 f_getown_ex = 0x00000010 f_getsig = 0x0000000b f_ofd_getlk = 0x00000024 f_ofd_setlk = 0x00000025 f_ofd_setlkw = 0x00000026 f_owner_pgrp = 0x00000002 f_owner_pid = 0x00000001 f_owner_tid = 0x00000000 f_rdlck = 0x00000000 f_setfd = 0x00000002 f_setfl = 0x00000004 f_setlk = 0x00000006 f_setlk64 = 0x0000000d f_setlkw = 0x00000007 f_setlkw64 = 0x0000000e f_setown = 0x00000008 f_setown_ex = 0x0000000f f_setsig = 0x0000000a f_shlck = 0x00000008 f_unlck = 0x00000002 f_wrlck = 0x00000001 lock_ex = 0x00000002 lock_mand = 0x00000020 lock_nb = 0x00000004 lock_read = 0x00000040 lock_rw = 0x000000c0 lock_sh = 0x00000001 lock_un = 0x00000008 lock_write = 0x00000080 o_accmode = 0x00000003 o_append = 0x00000400 o_cloexec = 0x00080000 o_creat = 0x00000040 o_direct = 0x00004000 o_directory = 0x00010000 o_dsync = 0x00001000 o_excl = 0x00000080 o_largefile = 0x00008000 o_ndelay = 0x00000800 o_noatime = 0x00040000 o_noctty = 0x00000100 o_nofollow = 0x00020000 o_nonblock = 0x00000800 o_path = 0x00200000 o_rdonly = 0x00000000 o_rdwr = 0x00000002 o_trunc = 0x00000200 o_wronly = 0x00000001 } pub enum Errno { enoerror = 0x00000000 e2big = 0x00000007 eacces = 0x0000000d eagain = 0x0000000b ebadf = 0x00000009 ebusy = 0x00000010 echild = 0x0000000a edom = 0x00000021 eexist = 0x00000011 efault = 0x0000000e efbig = 0x0000001b eintr = 0x00000004 einval = 0x00000016 eio = 0x00000005 eisdir = 0x00000015 emfile = 0x00000018 emlink = 0x0000001f enfile = 0x00000017 enodev = 0x00000013 enoent = 0x00000002 enoexec = 0x00000008 enomem = 0x0000000c enospc = 0x0000001c enotblk = 0x0000000f enotdir = 0x00000014 enotty = 0x00000019 enxio = 0x00000006 eperm = 0x00000001 epipe = 0x00000020 erange = 0x00000022 erofs = 0x0000001e espipe = 0x0000001d esrch = 0x00000003 etxtbsy = 0x0000001a exdev = 0x00000012 } pub enum Mm_prot { prot_read = 0x1 prot_write = 0x2 prot_exec = 0x4 prot_none = 0x0 prot_growsdown = 0x01000000 prot_growsup = 0x02000000 } pub enum Map_flags { map_shared = 0x01 map_private = 0x02 map_shared_validate = 0x03 map_type = 0x0f map_fixed = 0x10 map_file = 0x00 map_anonymous = 0x20 map_anon = 0x20 map_huge_shift = 26 map_huge_mask = 0x3f } fn do_not_call_me_asm_keeper0() { unsafe { asm { "\n" "ret\n" "" ".intel_syntax noprefix\n" ".globl _start, sys_call0\n" ".globl sys_call1, sys_call2, sys_call3\n" ".globl sys_call4, sys_call5, sys_call6\n" "" "_start:\n" "xor rbp,rbp\n" "pop rdi\n" "mov rsi,rsp\n" "and rsp,-16\n" "call main\n" "mov rdi,rax\n" /* syscall param 1 = rax (ret value of main) */ "mov rax,60\n" /* SYS_exit */ "syscall\n" "" // should never be reached, but if the OS somehow fails to kill us, // it will cause a segmentation fault "ret\n" "sys_call0:\n" "mov rax,rdi\n" "syscall\n" "ret\n" "" "sys_call1:\n" "mov rax,rdi\n" "mov rdi,rsi\n" "syscall\n" "ret\n" "" "sys_call2:\n" "mov rax,rdi\n" "mov rdi,rsi\n" "mov rsi,rdx\n" "syscall\n" "ret\n" "" "sys_call3:\n" "mov rax,rdi\n" "mov rdi,rsi\n" "mov rsi,rdx\n" "mov rdx,rcx\n" "syscall\n" "ret\n" "" "sys_call4:\n" "mov rax,rdi\n" "mov rdi,rsi\n" "mov rsi,rdx\n" "mov rdx,rcx\n" "mov r10,r8\n" "syscall\n" "ret\n" "" "sys_call5:\n" "mov rax,rdi\n" "mov rdi,rsi\n" "mov rsi,rdx\n" "mov rdx,rcx\n" "mov r10,r8\n" "mov r8,r9\n" "syscall\n" "ret\n" "" "sys_call6:\n" "mov rax,rdi\n" "mov rdi,rsi\n" "mov rsi,rdx\n" "mov rdx,rcx\n" "mov r10,r8\n" "mov r8,r9\n" "mov r9, [rsp+8]\n" "syscall\n" "ret\n" "" ".att_syntax \n" } } } fn sys_call0(scn u64) u64 fn sys_call1(scn, arg1 u64) u64 fn sys_call2(scn, arg1, arg2 u64) u64 fn sys_call3(scn, arg1, arg2, arg3 u64) u64 fn sys_call4(scn, arg1, arg2, arg3, arg4 u64) u64 fn sys_call5(scn, arg1, arg2, arg3, arg4, arg5 u64) u64 fn sys_call6(scn, arg1, arg2, arg3, arg4, arg5, arg6 u64) u64 fn split_int_errno(rc_in u64) (i64, Errno) { rc := i64(rc_in) if rc < 0 { return i64(-1), Errno(-rc) } return rc, Errno.enoerror } // 0 sys_read unsigned int fd char *buf size_t count pub fn sys_read (fd i64, buf byteptr, count u64) (i64, Errno) { return split_int_errno(sys_call3(0, u64(fd), u64(buf), count)) } // 1 sys_write unsigned int fd, const char *buf, size_t count pub fn sys_write(fd i64, buf byteptr, count u64) (i64, Errno) { return split_int_errno(sys_call3(1, u64(fd), u64(buf), count)) } pub fn sys_open(filename byteptr, flags Fcntl, mode int) (i64, Errno) { //2 sys_open const char *filename int flags int mode return split_int_errno(sys_call3(2, u64(filename), u64(flags), u64(mode))) } pub fn sys_close(fd i64) Errno { // 3 sys_close unsigned int fd return Errno(-i64(sys_call1(3, u64(fd)))) } // 9 sys_mmap unsigned long addr unsigned long len unsigned long prot unsigned long flags unsigned long fd unsigned long off pub fn sys_mmap(addr byteptr, len u64, prot Mm_prot, flags Map_flags, fildes u64, off u64) (byteptr, Errno) { rc := sys_call6(9, u64(addr), len, u64(prot), u64(flags), fildes, off) a, e := split_int_errno(rc) return byteptr(a), e } pub fn sys_munmap(addr voidptr, len u64) Errno { // 11 sys_munmap unsigned long addr size_t len return Errno(-sys_call2(11, u64(addr), len)) } // 22 sys_pipe int *filedes pub fn sys_pipe(filedes &int) Errno { return Errno(sys_call1(22, u64(filedes))) } // 24 sys_sched_yield pub fn sys_sched_yield() Errno { return Errno(sys_call0(24)) } pub fn sys_madvise(addr voidptr, len u64, advice int) Errno { // 28 sys_madvise unsigned long start size_t len_in int behavior return Errno(sys_call3(28, u64(addr), len, u64(advice))) } // 39 sys_getpid pub fn sys_getpid() int { return int(sys_call0(39)) } // 57 sys_fork pub fn sys_fork() int { return int(sys_call0(57)) } // 58 sys_vfork pub fn sys_vfork() int { return int(sys_call0(58)) } // 33 sys_dup2 unsigned int oldfd unsigned int newfd pub fn sys_dup2 (oldfd, newfd int) (i64, Errno) { return split_int_errno(sys_call2(33, u64(oldfd),u64(newfd))) } //59 sys_execve const char *filename const char *const argv[] const char *const envp[] //pub fn sys_execve(filename byteptr, argv []byteptr, envp []byteptr) int { // return sys_call3(59, filename, argv, envp) //} // 60 sys_exit int error_code pub fn sys_exit (ec int) { sys_call1(60, u64(ec)) } // 102 sys_getuid pub fn sys_getuid() int { return int(sys_call0(102)) } // 247 sys_waitid int which pid_t upid struct siginfo *infop int options struct rusage *ru pub fn sys_waitid (which Wi_which, pid int, infop &int, options Wp_sys, ru voidptr) Errno { return Errno(sys_call5(247, u64(which), u64(pid), u64(infop), u64(options), u64(ru))) } /* A few years old, but still relevant https://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/ >0 sys_read unsigned int fd char *buf size_t count >1 sys_write unsigned int fd const char *buf size_t count >2 sys_open const char *filename int flags int mode >3 sys_close unsigned int fd 4 sys_stat const char *filename struct stat *statbuf 5 sys_fstat unsigned int fd struct stat *statbuf 6 sys_lstat fconst char *filename struct stat *statbuf 7 sys_poll struct poll_fd *ufds unsigned int nfds long timeout_msecs 8 sys_lseek unsigned int fd off_t offset unsigned int origin >9 sys_mmap unsigned long addr unsigned long len unsigned long prot unsigned long flags unsigned long fd unsigned long off 10 sys_mprotect unsigned long start size_t len unsigned long prot >11 sys_munmap unsigned long addr size_t len 12 sys_brk unsigned long brk 13 sys_rt_sigaction int sig const struct sigaction *act struct sigaction *oact size_t sigsetsize 14 sys_rt_sigprocmask int how sigset_t *nset sigset_t *oset size_t sigsetsize 15 sys_rt_sigreturn unsigned long __unused 16 sys_ioctl unsigned int fd unsigned int cmd unsigned long arg 17 sys_pread64 unsigned long fd char *buf size_t count loff_t pos 18 sys_pwrite64 unsigned int fd const char *buf size_t count loff_t pos 19 sys_readv unsigned long fd const struct iovec *vec unsigned long vlen 20 sys_writev unsigned long fd const struct iovec *vec unsigned long vlen 21 sys_access const char *filename int mode >22 sys_pipe int *filedes 23 sys_select int n fd_set *inp fd_set *outp fd_set*exp struct timeval *tvp >24 sys_sched_yield 25 sys_mremap unsigned long addr unsigned long old_len unsigned long new_len unsigned long flags unsigned long new_addr 26 sys_msync unsigned long start size_t len int flags 27 sys_mincore unsigned long start size_t len unsigned char *vec >28 sys_madvise unsigned long start size_t len_in int behavior 29 sys_shmget key_t key size_t size int shmflg 30 sys_shmat int shmid char *shmaddr int shmflg 31 sys_shmctl int shmid int cmd struct shmid_ds *buf 32 sys_dup unsigned int fildes 33 sys_dup2 unsigned int oldfd unsigned int newfd 34 sys_pause 35 sys_nanosleep struct timespec *rqtp struct timespec *rmtp 36 sys_getitimer int which struct itimerval *value 37 sys_alarm unsigned int seconds 38 sys_setitimer int which struct itimerval *value struct itimerval *ovalue >39 sys_getpid 40 sys_sendfile int out_fd int in_fd off_t *offset size_t count 41 sys_socket int family int type int protocol 42 sys_connect int fd struct sockaddr *uservaddr int addrlen 43 sys_accept int fd struct sockaddr *upeer_sockaddr int *upeer_addrlen 44 sys_sendto int fd void *buff size_t len unsigned flags struct sockaddr *addr int addr_len 45 sys_recvfrom int fd void *ubuf size_t size unsigned flags struct sockaddr *addr int *addr_len 46 sys_sendmsg int fd struct msghdr *msg unsigned flags 47 sys_recvmsg int fd struct msghdr *msg unsigned int flags 48 sys_shutdown int fd int how 49 sys_bind int fd struct sokaddr *umyaddr int addrlen 50 sys_listen int fd int backlog 51 sys_getsockname int fd struct sockaddr *usockaddr int *usockaddr_len 52 sys_getpeername int fd struct sockaddr *usockaddr int *usockaddr_len 53 sys_socketpair int family int type int protocol int *usockvec 54 sys_setsockopt int fd int level int optname char *optval int optlen 55 sys_getsockopt int fd int level int optname char *optval int *optlen 56 sys_clone unsigned long clone_flags unsigned long newsp void *parent_tid void *child_tid >57 sys_fork >58 sys_vfork >59 sys_execve const char *filename const char *const argv[] const char *const envp[] >60 sys_exit int error_code 61 sys_wait4 pid_t upid int *stat_addr int options struct rusage *ru 62 sys_kill pid_t pid int sig 63 sys_uname struct old_utsname *name 64 sys_semget key_t key int nsems int semflg 65 sys_semop int semid struct sembuf *tsops unsigned nsops 66 sys_semctl int semid int semnum int cmd union semun arg 67 sys_shmdt char *shmaddr 68 sys_msgget key_t key int msgflg 69 sys_msgsnd int msqid struct msgbuf *msgp size_t msgsz int msgflg 70 sys_msgrcv int msqid struct msgbuf *msgp size_t msgsz long msgtyp int msgflg 71 sys_msgctl int msqid int cmd struct msqid_ds *buf 72 sys_fcntl unsigned int fd unsigned int cmd unsigned long arg 73 sys_flock unsigned int fd unsigned int cmd 74 sys_fsync unsigned int fd 75 sys_fdatasync unsigned int fd 76 sys_truncate const char *path long length 77 sys_ftruncate unsigned int fd unsigned long length 78 sys_getdents unsigned int fd struct linux_dirent *dirent unsigned int count 79 sys_getcwd char *buf unsigned long size 80 sys_chdir const char *filename 81 sys_fchdir unsigned int fd 82 sys_rename const char *oldname const char *newname 83 sys_mkdir const char *pathname int mode 84 sys_rmdir const char *pathname 85 sys_creat const char *pathname int mode 86 sys_link const char *oldname const char *newname 87 sys_unlink const char *pathname 88 sys_symlink const char *oldname const char *newname 89 sys_readlink const char *path char *buf int bufsiz 90 sys_chmod const char *filename mode_t mode 91 sys_fchmod unsigned int fd mode_t mode 92 sys_chown const char *filename uid_t user gid_t group 93 sys_fchown unsigned int fd uid_t user gid_t group 94 sys_lchown const char *filename uid_t user gid_t group 95 sys_umask int mask 96 sys_gettimeofday struct timeval *tv struct timezone *tz 97 sys_getrlimit unsigned int resource struct rlimit *rlim 98 sys_getrusage int who struct rusage *ru 99 sys_sysinfo struct sysinfo *info 100 sys_times struct sysinfo *info 101 sys_ptrace long request long pid unsigned long addr unsigned long data >102 sys_getuid 103 sys_syslog int type char *buf int len 104 sys_getgid 105 sys_setuid uid_t uid 106 sys_setgid gid_t gid 107 sys_geteuid 108 sys_getegid 109 sys_setpgid pid_t pid pid_t pgid 110 sys_getppid 111 sys_getpgrp 112 sys_setsid 113 sys_setreuid uid_t ruid uid_t euid 114 sys_setregid gid_t rgid gid_t egid 115 sys_getgroups int gidsetsize gid_t *grouplist 116 sys_setgroups int gidsetsize gid_t *grouplist 117 sys_setresuid uid_t *ruid uid_t *euid uid_t *suid 118 sys_getresuid uid_t *ruid uid_t *euid uid_t *suid 119 sys_setresgid gid_t rgid gid_t egid gid_t sgid 120 sys_getresgid gid_t *rgid gid_t *egid gid_t *sgid 121 sys_getpgid pid_t pid 122 sys_setfsuid uid_t uid 123 sys_setfsgid gid_t gid 124 sys_getsid pid_t pid 125 sys_capget cap_user_header_t header cap_user_data_t dataptr 126 sys_capset cap_user_header_t header const cap_user_data_t data 127 sys_rt_sigpending sigset_t *set size_t sigsetsize 128 sys_rt_sigtimedwait const sigset_t *uthese siginfo_t *uinfo const struct timespec *uts size_t sigsetsize 129 sys_rt_sigqueueinfo pid_t pid int sig siginfo_t *uinfo 130 sys_rt_sigsuspend sigset_t *unewset size_t sigsetsize 131 sys_sigaltstack const stack_t *uss stack_t *uoss 132 sys_utime char *filename struct utimbuf *times 133 sys_mknod const char *filename umode_t mode unsigned dev 134 sys_uselib NOT IMPLEMENTED 135 sys_personality unsigned int personality 136 sys_ustat unsigned dev struct ustat *ubuf 137 sys_statfs const char *pathname struct statfs *buf 138 sys_fstatfs unsigned int fd struct statfs *buf 139 sys_sysfs int option unsigned long arg1 unsigned long arg2 140 sys_getpriority int which int who 141 sys_setpriority int which int who int niceval 142 sys_sched_setparam pid_t pid struct sched_param *param 143 sys_sched_getparam pid_t pid struct sched_param *param 144 sys_sched_setscheduler pid_t pid int policy struct sched_param *param 145 sys_sched_getscheduler pid_t pid 146 sys_sched_get_priority_max int policy 147 sys_sched_get_priority_min int policy 148 sys_sched_rr_get_interval pid_t pid struct timespec *interval 149 sys_mlock unsigned long start size_t len 150 sys_munlock unsigned long start size_t len 151 sys_mlockall int flags 152 sys_munlockall 153 sys_vhangup 154 sys_modify_ldt int func void *ptr unsigned long bytecount 155 sys_pivot_root const char *new_root const char *put_old 156 sys__sysctl struct __sysctl_args *args 157 sys_prctl int option unsigned long arg2 unsigned long arg3 unsigned long arg4 unsigned long arg5 158 sys_arch_prctl struct task_struct *task int code unsigned long *addr 159 sys_adjtimex struct timex *txc_p 160 sys_setrlimit unsigned int resource struct rlimit *rlim 161 sys_chroot const char *filename 162 sys_sync 163 sys_acct const char *name 164 sys_settimeofday struct timeval *tv struct timezone *tz 165 sys_mount char *dev_name char *dir_name char *type unsigned long flags void *data 166 sys_umount2 const char *target int flags 167 sys_swapon const char *specialfile int swap_flags 168 sys_swapoff const char *specialfile 169 sys_reboot int magic1 int magic2 unsigned int cmd void *arg 170 sys_sethostname char *name int len 171 sys_setdomainname char *name int len 172 sys_iopl unsigned int level struct pt_regs *regs 173 sys_ioperm unsigned long from unsigned long num int turn_on 174 sys_create_module REMOVED IN Linux 2.6 175 sys_init_module void *umod unsigned long len const char *uargs 176 sys_delete_module const chat *name_user unsigned int flags 177 sys_get_kernel_syms REMOVED IN Linux 2.6 178 sys_query_module REMOVED IN Linux 2.6 179 sys_quotactl unsigned int cmd const char *special qid_t id void *addr 180 sys_nfsservctl NOT IMPLEMENTED 181 sys_getpmsg NOT IMPLEMENTED 182 sys_putpmsg NOT IMPLEMENTED 183 sys_afs_syscall NOT IMPLEMENTED 184 sys_tuxcall NOT IMPLEMENTED 185 sys_security NOT IMPLEMENTED 186 sys_gettid 187 sys_readahead int fd loff_t offset size_t count 188 sys_setxattr const char *pathname const char *name const void *value size_t size int flags 189 sys_lsetxattr const char *pathname const char *name const void *value size_t size int flags 190 sys_fsetxattr int fd const char *name const void *value size_t size int flags 191 sys_getxattr const char *pathname const char *name void *value size_t size 192 sys_lgetxattr const char *pathname const char *name void *value size_t size 193 sys_fgetxattr int fd const har *name void *value size_t size 194 sys_listxattr const char *pathname char *list size_t size 195 sys_llistxattr const char *pathname char *list size_t size 196 sys_flistxattr int fd char *list size_t size 197 sys_removexattr const char *pathname const char *name 198 sys_lremovexattr const char *pathname const char *name 199 sys_fremovexattr int fd const char *name 200 sys_tkill pid_t pid ing sig 201 sys_time time_t *tloc 202 sys_futex u32 *uaddr int op u32 val struct timespec *utime u32 *uaddr2 u32 val3 203 sys_sched_setaffinity pid_t pid unsigned int len unsigned long *user_mask_ptr 204 sys_sched_getaffinity pid_t pid unsigned int len unsigned long *user_mask_ptr 205 sys_set_thread_area NOT IMPLEMENTED. Use arch_prctl 206 sys_io_setup unsigned nr_events aio_context_t *ctxp 207 sys_io_destroy aio_context_t ctx 208 sys_io_getevents aio_context_t ctx_id long min_nr long nr struct io_event *events 209 sys_io_submit aio_context_t ctx_id long nr struct iocb **iocbpp 210 sys_io_cancel aio_context_t ctx_id struct iocb *iocb struct io_event *result 211 sys_get_thread_area NOT IMPLEMENTED. Use arch_prctl 212 sys_lookup_dcookie u64 cookie64 long buf long len 213 sys_epoll_create int size 214 sys_epoll_ctl_old NOT IMPLEMENTED 215 sys_epoll_wait_old NOT IMPLEMENTED 216 sys_remap_file_pages unsigned long start unsigned long size unsigned long prot unsigned long pgoff unsigned long flags 217 sys_getdents64 unsigned int fd struct linux_dirent64 *dirent unsigned int count 218 sys_set_tid_address int *tidptr 219 sys_restart_syscall 220 sys_semtimedop int semid struct sembuf *tsops unsigned nsops const struct timespec *timeout 221 sys_fadvise64 int fd loff_t offset size_t len int advice 222 sys_timer_create const clockid_t which_clock struct sigevent *timer_event_spec timer_t *created_timer_id 223 sys_timer_settime timer_t timer_id int flags const struct itimerspec *new_setting struct itimerspec *old_setting 224 sys_timer_gettime timer_t timer_id struct itimerspec *setting 225 sys_timer_getoverrun timer_t timer_id 226 sys_timer_delete timer_t timer_id 227 sys_clock_settime const clockid_t which_clock const struct timespec *tp 228 sys_clock_gettime const clockid_t which_clock struct timespec *tp 229 sys_clock_getres const clockid_t which_clock struct timespec *tp 230 sys_clock_nanosleep const clockid_t which_clock int flags const struct timespec *rqtp struct timespec *rmtp 231 sys_exit_group int error_code 232 sys_epoll_wait int epfd struct epoll_event *events int maxevents int timeout 233 sys_epoll_ctl int epfd int op int fd struct epoll_event *event 234 sys_tgkill pid_t tgid pid_t pid int sig 235 sys_utimes char *filename struct timeval *utimes 236 sys_vserver NOT IMPLEMENTED 237 sys_mbind unsigned long start unsigned long len unsigned long mode unsigned long *nmask unsigned long maxnode unsigned flags 238 sys_set_mempolicy int mode unsigned long *nmask unsigned long maxnode 239 sys_get_mempolicy int *policy unsigned long *nmask unsigned long maxnode unsigned long addr unsigned long flags 240 sys_mq_open const char *u_name int oflag mode_t mode struct mq_attr *u_attr 241 sys_mq_unlink const char *u_name 242 sys_mq_timedsend mqd_t mqdes const char *u_msg_ptr size_t msg_len unsigned int msg_prio const stuct timespec *u_abs_timeout 243 sys_mq_timedreceive mqd_t mqdes char *u_msg_ptr size_t msg_len unsigned int *u_msg_prio const struct timespec *u_abs_timeout 244 sys_mq_notify mqd_t mqdes const struct sigevent *u_notification 245 sys_mq_getsetattr mqd_t mqdes const struct mq_attr *u_mqstat struct mq_attr *u_omqstat 246 sys_kexec_load unsigned long entry unsigned long nr_segments struct kexec_segment *segments unsigned long flags >247 sys_waitid int which pid_t upid struct siginfo *infop int options struct rusage *ru 248 sys_add_key const char *_type const char *_description const void *_payload size_t plen 249 sys_request_key const char *_type const char *_description const char *_callout_info key_serial_t destringid 250 sys_keyctl int option unsigned long arg2 unsigned long arg3 unsigned long arg4 unsigned long arg5 251 sys_ioprio_set int which int who int ioprio 252 sys_ioprio_get int which int who 253 sys_inotify_init 254 sys_inotify_add_watch int fd const char *pathname u32 mask 255 sys_inotify_rm_watch int fd __s32 wd 256 sys_migrate_pages pid_t pid unsigned long maxnode const unsigned long *old_nodes const unsigned long *new_nodes 257 sys_openat int dfd const char *filename int flags int mode 258 sys_mkdirat int dfd const char *pathname int mode 259 sys_mknodat int dfd const char *filename int mode unsigned dev 260 sys_fchownat int dfd const char *filename uid_t user gid_t group int flag 261 sys_futimesat int dfd const char *filename struct timeval *utimes 262 sys_newfstatat int dfd const char *filename struct stat *statbuf int flag 263 sys_unlinkat int dfd const char *pathname int flag 264 sys_renameat int oldfd const char *oldname int newfd const char *newname 265 sys_linkat int oldfd const char *oldname int newfd const char *newname int flags 266 sys_symlinkat const char *oldname int newfd const char *newname 267 sys_readlinkat int dfd const char *pathname char *buf int bufsiz 268 sys_fchmodat int dfd const char *filename mode_t mode 269 sys_faccessat int dfd const char *filename int mode 270 sys_pselect6 int n fd_set *inp fd_set *outp fd_set *exp struct timespec *tsp void *sig 271 sys_ppoll struct pollfd *ufds unsigned int nfds struct timespec *tsp const sigset_t *sigmask size_t sigsetsize 272 sys_unshare unsigned long unshare_flags 273 sys_set_robust_list struct robust_list_head *head size_t len 274 sys_get_robust_list int pid struct robust_list_head **head_ptr size_t *len_ptr 275 sys_splice int fd_in loff_t *off_in int fd_out loff_t *off_out size_t len unsigned int flags 276 sys_tee int fdin int fdout size_t len unsigned int flags 277 sys_sync_file_range long fd loff_t offset loff_t bytes long flags 278 sys_vmsplice int fd const struct iovec *iov unsigned long nr_segs unsigned int flags 279 sys_move_pages pid_t pid unsigned long nr_pages const void **pages const int *nodes int *status int flags 280 sys_utimensat int dfd const char *filename struct timespec *utimes int flags 281 sys_epoll_pwait int epfd struct epoll_event *events int maxevents int timeout const sigset_t *sigmask size_t sigsetsize 282 sys_signalfd int ufd sigset_t *user_mask size_t sizemask 283 sys_timerfd_create int clockid int flags 284 sys_eventfd unsigned int count 285 sys_fallocate long fd long mode loff_t offset loff_t len 286 sys_timerfd_settime int ufd int flags const struct itimerspec *utmr struct itimerspec *otmr 287 sys_timerfd_gettime int ufd struct itimerspec *otmr 288 sys_accept4 int fd struct sockaddr *upeer_sockaddr int *upeer_addrlen int flags 289 sys_signalfd4 int ufd sigset_t *user_mask size_t sizemask int flags 290 sys_eventfd2 unsigned int count int flags 291 sys_epoll_create1 int flags 292 sys_dup3 unsigned int oldfd unsigned int newfd int flags 293 sys_pipe2 int *filedes int flags 294 sys_inotify_init1 int flags 295 sys_preadv unsigned long fd const struct iovec *vec unsigned long vlen unsigned long pos_l unsigned long pos_h 296 sys_pwritev unsigned long fd const struct iovec *vec unsigned long vlen unsigned long pos_l unsigned long pos_h 297 sys_rt_tgsigqueueinfo pid_t tgid pid_t pid int sig siginfo_t *uinfo 298 sys_perf_event_open struct perf_event_attr *attr_uptr pid_t pid int cpu int group_fd unsigned long flags 299 sys_recvmmsg int fd struct msghdr *mmsg unsigned int vlen unsigned int flags struct timespec *timeout 300 sys_fanotify_init unsigned int flags unsigned int event_f_flags 301 sys_fanotify_mark long fanotify_fd long flags __u64 mask long dfd long pathname 302 sys_prlimit64 pid_t pid unsigned int resource const struct rlimit64 *new_rlim struct rlimit64 *old_rlim 303 sys_name_to_handle_at int dfd const char *name struct file_handle *handle int *mnt_id int flag 304 sys_open_by_handle_at int dfd const char *name struct file_handle *handle int *mnt_id int flags 305 sys_clock_adjtime clockid_t which_clock struct timex *tx 306 sys_syncfs int fd 307 sys_sendmmsg int fd struct mmsghdr *mmsg unsigned int vlen unsigned int flags 308 sys_setns int fd int nstype 309 sys_getcpu unsigned *cpup unsigned *nodep struct getcpu_cache *unused 310 sys_process_vm_readv pid_t pid const struct iovec *lvec unsigned long liovcnt const struct iovec *rvec unsigned long riovcnt unsigned long flags 311 sys_process_vm_writev pid_t pid const struct iovec *lvec unsigned long liovcnt const struct iovcc *rvec unsigned long riovcnt unsigned long flags 312 sys_kcmp pid_t pid1 pid_t pid2 int type unsigned long idx1 unsigned long idx2 313 sys_finit_module int fd const char __user *uargs int flags 314 sys_sched_setattr pid_t pid struct sched_attr __user *attr unsigned int flags 315 sys_sched_getattr pid_t pid struct sched_attr __user *attr unsigned int size unsigned int flags 316 sys_renameat2 int olddfd const char __user *oldname int newdfd const char __user *newname unsigned int flags 317 sys_seccomp unsigned int op unsigned int flags const char __user *uargs 318 sys_getrandom char __user *buf size_t count unsigned int flags 319 sys_memfd_create const char __user *uname_ptr unsigned int flags 320 sys_kexec_file_load int kernel_fd int initrd_fd unsigned long cmdline_len const char __user *cmdline_ptr unsigned long flags 321 sys_bpf int cmd union bpf_attr *attr unsigned int size 322 stub_execveat int dfd const char __user *filename const char __user *const __user *argv const char __user *const __user *envp int flags 323 userfaultfd int flags 324 membarrier int cmd int flags 325 mlock2 unsigned long start size_t len int flags 326 copy_file_range int fd_in loff_t __user *off_in int fd_out loff_t __user * off_out size_t len unsigned int flags 327 preadv2 unsigned long fd const struct iovec __user *vec unsigned long vlen unsigned long pos_l unsigned long pos_h int flags 328 pwritev2 unsigned long fd const struct iovec __user *vec unsigned long vlen unsigned long pos_l unsigned long pos_h int flags */