The WALI prototype is designed to support syscalls across the following architectures: x86-64, aarch64, riscv64
Generated based on Marcin Juszkiewicz's syscall table
Number of supported syscalls: 142
Syscall | # Args | a1 | a2 | a3 | a4 | a5 | a6 |
---|---|---|---|---|---|---|---|
read | 3 | int | void* | size_t | |||
write | 3 | int | void* | size_t | |||
open | 3 | char* | int | mode_t | |||
close | 1 | int | |||||
stat | 2 | char* | struct stat* | ||||
fstat | 2 | int | struct stat* | ||||
lstat | 2 | char* | struct stat* | ||||
poll | 3 | struct pollfd* | nfds_t | int | |||
lseek | 3 | int | off_t | int | |||
mmap | 6 | void* | size_t | int | int | int | off_t |
mprotect | 3 | void* | size_t | int | |||
munmap | 2 | void* | size_t | ||||
brk | 1 | void* | |||||
rt_sigaction | 4 | int | struct sigaction* | struct sigaction* | size_t | ||
rt_sigprocmask | 4 | int | sigset_t* | sigset_t* | size_t | ||
rt_sigreturn | 1 | long | |||||
ioctl | 3 | int | int | char* | |||
pread64 | 4 | int | char* | size_t | off_t | ||
pwrite64 | 4 | int | char* | size_t | off_t | ||
readv | 3 | int | struct iovec* | int | |||
writev | 3 | int | struct iovec* | int | |||
access | 2 | char* | int | ||||
pipe | 1 | int* | |||||
select | 5 | int | fd_set* | fd_set* | fd_set* | struct timeval* | |
sched_yield | 0 | ||||||
mremap | 5 | void* | size_t | size_t | int | void* | |
msync | 3 | void* | size_t | int | |||
madvise | 3 | void* | size_t | int | |||
dup | 1 | int | |||||
dup2 | 2 | int | int | ||||
nanosleep | 2 | struct timespec* | struct timespec* | ||||
alarm | 1 | int | |||||
setitimer | 3 | int | struct itimerval* | struct itimerval* | |||
getpid | 0 | ||||||
socket | 3 | int | int | int | |||
connect | 3 | int | struct sockaddr* | socklen_t | |||
accept | 3 | int | struct sockaddr* | socklen_t* | |||
sendto | 6 | int | void* | size_t | int | struct sockaddr* | socklen_t |
recvfrom | 6 | int | void* | size_t | int | struct sockaddr* | socklen_t* |
sendmsg | 3 | int | struct msghdr* | int | |||
recvmsg | 3 | int | struct msghdr* | int | |||
shutdown | 2 | int | int | ||||
bind | 3 | int | struct sockaddr* | socklen_t | |||
listen | 2 | int | int | ||||
getsockname | 3 | int | struct sockaddr* | socklen_t* | |||
getpeername | 3 | int | struct sockaddr* | socklen_t* | |||
socketpair | 4 | int | int | int | int* | ||
setsockopt | 5 | int | int | int | void* | socklen_t | |
getsockopt | 5 | int | int | int | void* | socklen_t* | |
fork | 0 | ||||||
execve | 3 | char* | char* | char* | |||
exit | 1 | int | |||||
wait4 | 4 | pid_t | int* | int | struct rusage* | ||
kill | 2 | pid_t | int | ||||
uname | 1 | struct utsname* | |||||
fcntl | 3 | int | int | int | |||
flock | 2 | int | int | ||||
fsync | 1 | int | |||||
fdatasync | 1 | int | |||||
ftruncate | 2 | int | off_t | ||||
getdents | 3 | int | struct dirent* | int | |||
getcwd | 2 | char* | size_t | ||||
chdir | 1 | char* | |||||
fchdir | 1 | int | |||||
rename | 2 | char* | char* | ||||
mkdir | 2 | char* | mode_t | ||||
rmdir | 1 | char* | |||||
link | 2 | char* | char* | ||||
unlink | 1 | char* | |||||
symlink | 2 | char* | char* | ||||
readlink | 3 | char* | char* | size_t | |||
chmod | 2 | char* | mode_t | ||||
fchmod | 2 | int | mode_t | ||||
chown | 3 | char* | uid_t | gid_t | |||
fchown | 3 | int | uid_t | gid_t | |||
umask | 1 | mode_t | |||||
getrlimit | 2 | int | struct rlimit* | ||||
getrusage | 2 | int | struct rusage* | ||||
sysinfo | 1 | struct sysinfo* | |||||
getuid | 0 | ||||||
getgid | 0 | ||||||
setuid | 1 | uid_t | |||||
setgid | 1 | gid_t | |||||
geteuid | 0 | ||||||
getegid | 0 | ||||||
setpgid | 2 | pid_t | pid_t | ||||
getppid | 0 | ||||||
setsid | 0 | ||||||
setreuid | 2 | uid_t | uid_t | ||||
setregid | 2 | gid_t | gid_t | ||||
getgroups | 2 | size_t | gid_t* | ||||
setgroups | 2 | size_t | gid_t* | ||||
setresuid | 3 | uid_t | uid_t | uid_t | |||
setresgid | 3 | gid_t | gid_t | gid_t | |||
getpgid | 1 | pid_t | |||||
getsid | 1 | pid_t | |||||
rt_sigpending | 2 | sigset_t* | size_t | ||||
rt_sigsuspend | 2 | sigset_t* | size_t | ||||
sigaltstack | 2 | stack_t* | stack_t* | ||||
utime | 2 | char* | struct utimbuf* | ||||
statfs | 2 | char* | struct statfs* | ||||
fstatfs | 2 | int | struct statfs* | ||||
prctl | 5 | int | unsigned long | unsigned long | unsigned long | unsigned long | |
setrlimit | 2 | int | struct rlimit* | ||||
chroot | 1 | char* | |||||
gettid | 0 | ||||||
tkill | 2 | int | int | ||||
futex | 6 | int* | int | int | struct timespec* | int* | int |
sched_getaffinity | 3 | pid_t | size_t | cpu_set_t* | |||
getdents64 | 3 | int | struct dirent* | int | |||
set_tid_address | 1 | int* | |||||
fadvise | 4 | int | off_t | off_t | int | ||
clock_gettime | 2 | clockid_t | struct timespec* | ||||
clock_getres | 2 | clockid_t | struct timespec* | ||||
clock_nanosleep | 4 | clockid_t | int | struct timespec* | struct timespec* | ||
exit_group | 1 | int | |||||
epoll_ctl | 4 | int | int | int | struct epoll_event* | ||
openat | 4 | int | char* | int | mode_t | ||
mkdirat | 3 | int | char* | mode_t | |||
fchownat | 5 | int | char* | uid_t | gid_t | int | |
newfstatat | 4 | int | char* | struct stat* | int | ||
unlinkat | 3 | int | char* | int | |||
linkat | 5 | int | char* | int | char* | int | |
symlinkat | 3 | char* | int | char* | |||
readlinkat | 4 | int | char* | char* | size_t | ||
fchmodat | 4 | int | char* | mode_t | int | ||
faccessat | 4 | int | char* | int | int | ||
pselect6 | 6 | int | fd_set* | fd_set* | fd_set* | struct timespec* | void* |
ppoll | 5 | struct pollfd* | nfds_t | struct timespec* | sigset_t* | size_t | |
utimensat | 4 | int | char* | struct timespec* | int | ||
epoll_pwait | 6 | int | struct epoll_event* | int | int | sigset_t* | size_t |
eventfd | 1 | int | |||||
accept4 | 4 | int | struct sockaddr* | socklen_t* | int | ||
eventfd2 | 2 | int | int | ||||
epoll_create1 | 1 | int | |||||
dup3 | 3 | int | int | int | |||
pipe2 | 2 | int* | int | ||||
prlimit64 | 4 | int | int | struct rlimit* | struct rlimit* | ||
renameat2 | 5 | int | char* | int | char* | int | |
getrandom | 3 | void* | size_t | int | |||
statx | 5 | int | char* | int | int | struct statx* | |
faccessat2 | 4 | int | char* | int | int |
- acct
- add_key
- adjtimex
- arch_prctl
- bpf
- cachestat
- capget
- capset
- clock_adjtime
- clock_settime
- clone
- clone3
- close_range
- copy_file_range
- creat
- delete_module
- epoll_create
- epoll_ctl_old
- epoll_pwait2
- epoll_wait
- epoll_wait_old
- execveat
- fadvise64
- fallocate
- fanotify_init
- fanotify_mark
- fchmodat2
- fgetxattr
- finit_module
- flistxattr
- fremovexattr
- fsconfig
- fsetxattr
- fsmount
- fsopen
- fspick
- futex_requeue
- futex_wait
- futex_waitv
- futex_wake
- futimesat
- get_mempolicy
- get_robust_list
- get_thread_area
- getcpu
- getitimer
- getpgrp
- getpriority
- getresgid
- getresuid
- gettimeofday
- getxattr
- init_module
- inotify_add_watch
- inotify_init
- inotify_init1
- inotify_rm_watch
- io_cancel
- io_destroy
- io_getevents
- io_pgetevents
- io_setup
- io_submit
- io_uring_enter
- io_uring_register
- io_uring_setup
- ioperm
- iopl
- ioprio_get
- ioprio_set
- kcmp
- kexec_file_load
- kexec_load
- keyctl
- landlock_add_rule
- landlock_create_ruleset
- landlock_restrict_self
- lchown
- lgetxattr
- listxattr
- llistxattr
- lookup_dcookie
- lremovexattr
- lsetxattr
- map_shadow_stack
- mbind
- membarrier
- memfd_create
- memfd_secret
- migrate_pages
- mincore
- mknod
- mknodat
- mlock
- mlock2
- mlockall
- modify_ldt
- mount
- mount_setattr
- move_mount
- move_pages
- mq_getsetattr
- mq_notify
- mq_open
- mq_timedreceive
- mq_timedsend
- mq_unlink
- msgctl
- msgget
- msgrcv
- msgsnd
- munlock
- munlockall
- name_to_handle_at
- open_by_handle_at
- open_tree
- openat2
- pause
- perf_event_open
- personality
- pidfd_getfd
- pidfd_open
- pidfd_send_signal
- pivot_root
- pkey_alloc
- pkey_free
- pkey_mprotect
- preadv
- preadv2
- process_madvise
- process_mrelease
- process_vm_readv
- process_vm_writev
- ptrace
- pwritev
- pwritev2
- quotactl
- quotactl_fd
- readahead
- reboot
- recvmmsg
- remap_file_pages
- removexattr
- renameat
- request_key
- restart_syscall
- riscv_flush_icache
- riscv_hwprobe
- rseq
- rt_sigqueueinfo
- rt_sigtimedwait
- rt_tgsigqueueinfo
- sched_get_priority_max
- sched_get_priority_min
- sched_getattr
- sched_getparam
- sched_getscheduler
- sched_rr_get_interval
- sched_setaffinity
- sched_setattr
- sched_setparam
- sched_setscheduler
- seccomp
- semctl
- semget
- semop
- semtimedop
- sendfile
- sendmmsg
- set_mempolicy
- set_mempolicy_home_node
- set_robust_list
- set_thread_area
- setdomainname
- setfsgid
- setfsuid
- sethostname
- setns
- setpriority
- settimeofday
- setxattr
- shmat
- shmctl
- shmdt
- shmget
- signalfd
- signalfd4
- splice
- swapoff
- swapon
- sync
- sync_file_range
- syncfs
- sysfs
- syslog
- tee
- tgkill
- time
- timer_create
- timer_delete
- timer_getoverrun
- timer_gettime
- timer_settime
- timerfd_create
- timerfd_gettime
- timerfd_settime
- times
- truncate
- umount2
- unshare
- userfaultfd
- ustat
- utimes
- vfork
- vhangup
- vmsplice
- waitid