int, fd, vki_loff_t, offset, vki_loff_t, len, int, advice); } #undef PRE #undef POST /* --------------------------------------------------------------------- The mips64/Linux syscall table ------------------------------------------------------------------ */ /* Add an mips64-linux specific wrapper to a syscall table. */ #define PLAX_(sysno, name) WRAPPER_ENTRY_X_(mips_linux, sysno, name) #define PLAXY(sysno, name) WRAPPER_ENTRY_XY(mips_linux, sysno, name) static SyscallTableEntry syscall_main_table[] = { GENXY (__NR_read, sys_read), /* 5000 */ GENX_ (__NR_write, sys_write), GENXY (__NR_open, sys_open), GENXY (__NR_close, sys_close), GENXY (__NR_stat, sys_newstat), GENXY (__NR_fstat, sys_newfstat), GENXY (__NR_lstat, sys_newlstat), GENXY (__NR_poll, sys_poll), LINX_ (__NR_lseek, sys_lseek), PLAX_ (__NR_mmap, sys_mmap), GENXY (__NR_mprotect, sys_mprotect), GENXY (__NR_munmap, sys_munmap), GENX_ (__NR_brk, sys_brk), LINXY (__NR_rt_sigaction, sys_rt_sigaction), LINXY (__NR_rt_sigprocmask, sys_rt_sigprocmask), LINXY (__NR_ioctl, sys_ioctl),
------------------------------------------------------------------ */ /* Add an amd64-linux specific wrapper to a syscall table. */ #define PLAX_(const, name) WRAPPER_ENTRY_X_(amd64_linux, const, name) #define PLAXY(const, name) WRAPPER_ENTRY_XY(amd64_linux, const, name) // This table maps from __NR_xxx syscall numbers (from // linux/include/asm-x86_64/unistd.h) to the appropriate PRE/POST sys_foo() // wrappers on AMD64 (as per sys_call_table in // linux/arch/x86_64/kernel/entry.S). // // When implementing these wrappers, you need to work out if the wrapper is // generic, Linux-only (but arch-independent), or AMD64/Linux only. const SyscallTableEntry ML_(syscall_table)[] = { GENXY(__NR_read, sys_read), // 0 GENX_(__NR_write, sys_write), // 1 GENXY(__NR_open, sys_open), // 2 GENXY(__NR_close, sys_close), // 3 GENXY(__NR_stat, sys_newstat), // 4 GENXY(__NR_fstat, sys_newfstat), // 5 GENXY(__NR_lstat, sys_newlstat), // 6 GENXY(__NR_poll, sys_poll), // 7 LINX_(__NR_lseek, sys_lseek), // 8 PLAX_(__NR_mmap, sys_mmap), // 9 GENXY(__NR_mprotect, sys_mprotect), // 10 GENXY(__NR_munmap, sys_munmap), // 11 GENX_(__NR_brk, sys_brk), // 12 LINXY(__NR_rt_sigaction, sys_rt_sigaction), // 13
LINX_(__NR_io_submit, sys_io_submit), // 2 LINXY(__NR_io_cancel, sys_io_cancel), // 3 LINXY(__NR_io_getevents, sys_io_getevents), // 4 LINX_(__NR_setxattr, sys_setxattr), // 5 LINX_(__NR_lsetxattr, sys_lsetxattr), // 6 LINX_(__NR_fsetxattr, sys_fsetxattr), // 7 LINXY(__NR_getxattr, sys_getxattr), // 8 LINXY(__NR_lgetxattr, sys_lgetxattr), // 9 LINXY(__NR_fgetxattr, sys_fgetxattr), // 10 LINXY(__NR_listxattr, sys_listxattr), // 11 LINXY(__NR_llistxattr, sys_llistxattr), // 12 LINXY(__NR_flistxattr, sys_flistxattr), // 13 LINX_(__NR_removexattr, sys_removexattr), // 14 LINX_(__NR_lremovexattr, sys_lremovexattr), // 15 LINX_(__NR_fremovexattr, sys_fremovexattr), // 16 GENXY(__NR_getcwd, sys_getcwd), // 17 LINXY(__NR_lookup_dcookie, sys_lookup_dcookie), // 18 LINX_(__NR_eventfd2, sys_eventfd2), // 19 LINXY(__NR_epoll_create1, sys_epoll_create1), // 20 LINX_(__NR_epoll_ctl, sys_epoll_ctl), // 21 LINXY(__NR_epoll_pwait, sys_epoll_pwait), // 22 GENXY(__NR_dup, sys_dup), // 23 GENXY(__NR_dup2, sys_dup2), // 23 LINXY(__NR_dup3, sys_dup3), // 24 LINXY(__NR_fcntl, sys_fcntl), // 25 LINXY(__NR_inotify_init1, sys_inotify_init1), // 26 LINX_(__NR_inotify_add_watch, sys_inotify_add_watch), // 27 LINX_(__NR_inotify_rm_watch, sys_inotify_rm_watch), // 28 LINXY(__NR_ioctl, sys_ioctl), // 29 LINX_(__NR_ioprio_set, sys_ioprio_set), // 30 LINX_(__NR_ioprio_get, sys_ioprio_get), // 31
#define PLAX_(sysno, name) WRAPPER_ENTRY_X_(arm_linux, sysno, name) #define PLAXY(sysno, name) WRAPPER_ENTRY_XY(arm_linux, sysno, name) // This table maps from __NR_xxx syscall numbers (from // linux/include/asm-arm/unistd.h) to the appropriate PRE/POST sys_foo() // wrappers on arm (as per sys_call_table in linux/arch/arm/kernel/entry.S). // // For those syscalls not handled by Valgrind, the annotation indicate its // arch/OS combination, eg. */* (generic), */Linux (Linux only), ?/? // (unknown). static SyscallTableEntry syscall_main_table[] = { //zz // (restart_syscall) // 0 GENX_(__NR_exit, sys_exit), // 1 GENX_(__NR_fork, sys_fork), // 2 GENXY(__NR_read, sys_read), // 3 GENX_(__NR_write, sys_write), // 4 GENXY(__NR_open, sys_open), // 5 GENXY(__NR_close, sys_close), // 6 // GENXY(__NR_waitpid, sys_waitpid), // 7 GENXY(__NR_creat, sys_creat), // 8 GENX_(__NR_link, sys_link), // 9 GENX_(__NR_unlink, sys_unlink), // 10 GENX_(__NR_execve, sys_execve), // 11 GENX_(__NR_chdir, sys_chdir), // 12 GENXY(__NR_time, sys_time), // 13 GENX_(__NR_mknod, sys_mknod), // 14 GENX_(__NR_chmod, sys_chmod), // 15