summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Moore <paul@paul-moore.com>2020-03-22 09:08:03 -0400
committerPaul Moore <paul@paul-moore.com>2020-03-23 11:14:46 -0400
commit4bd8de391d5920bdbdb639b1d81ddd7bfe4d7549 (patch)
treefb85edd57934e00b980b89711fa84af5ecd9da02
parent9b129c41ac1f43d373742697aa2faf6040b9dfab (diff)
downloadlibseccomp-4bd8de391d5920bdbdb639b1d81ddd7bfe4d7549.tar.gz
arch: remove the unused, manually generated syscall tables
Since the move to gperf and the automatically generated syscall table in CSV format, these manually maintained tables are no longer needed. Reviewed-by: Tom Hromatka <tom.hromatka@gmail.com> Signed-off-by: Paul Moore <paul@paul-moore.com>
-rw-r--r--src/arch-aarch64-syscalls.c559
-rw-r--r--src/arch-arm-syscalls.c570
-rw-r--r--src/arch-mips-syscalls.c562
-rw-r--r--src/arch-mips64-syscalls.c562
-rw-r--r--src/arch-mips64n32-syscalls.c562
-rw-r--r--src/arch-parisc-syscalls.c542
-rw-r--r--src/arch-ppc-syscalls.c559
-rw-r--r--src/arch-ppc64-syscalls.c559
-rw-r--r--src/arch-riscv64-syscalls.c553
-rw-r--r--src/arch-s390-syscalls.c642
-rw-r--r--src/arch-s390x-syscalls.c642
-rw-r--r--src/arch-x32-syscalls.c558
-rw-r--r--src/arch-x86-syscalls.c692
-rw-r--r--src/arch-x86_64-syscalls.c559
14 files changed, 0 insertions, 8121 deletions
diff --git a/src/arch-aarch64-syscalls.c b/src/arch-aarch64-syscalls.c
deleted file mode 100644
index 02f25eb..0000000
--- a/src/arch-aarch64-syscalls.c
+++ /dev/null
@@ -1,559 +0,0 @@
-/**
- * Enhanced Seccomp AArch64 Syscall Table
- *
- * Copyright (c) 2014 Red Hat <mjuszkiewicz@redhat.com>
- * Author: Marcin Juszkiewicz <mjuszkiewicz@redhat.com>
- */
-
-/*
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License as
- * published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, see <http://www.gnu.org/licenses>.
- */
-
-#include <string.h>
-
-#include <seccomp.h>
-
-#include "arch.h"
-#include "arch-aarch64.h"
-
-/* NOTE: based on Linux v5.4-rc4 */
-const struct arch_syscall_def aarch64_syscall_table[] = { \
- { "_llseek", __PNR__llseek },
- { "_newselect", __PNR__newselect },
- { "_sysctl", __PNR__sysctl },
- { "accept", 202 },
- { "accept4", 242 },
- { "access", __PNR_access },
- { "acct", 89 },
- { "add_key", 217 },
- { "adjtimex", 171 },
- { "afs_syscall", __PNR_afs_syscall },
- { "alarm", __PNR_alarm },
- { "arm_fadvise64_64", __PNR_arm_fadvise64_64 },
- { "arm_sync_file_range", __PNR_arm_sync_file_range },
- { "arch_prctl", __PNR_arch_prctl },
- { "bdflush", __PNR_bdflush },
- { "bind", 200 },
- { "bpf", 280 },
- { "break", __PNR_break },
- { "breakpoint", __PNR_breakpoint },
- { "brk", 214 },
- { "cachectl", __PNR_cachectl },
- { "cacheflush", __PNR_cacheflush },
- { "capget", 90 },
- { "capset", 91 },
- { "chdir", 49 },
- { "chmod", __PNR_chmod },
- { "chown", __PNR_chown },
- { "chown32", __PNR_chown32 },
- { "chroot", 51 },
- { "clock_adjtime", 266 },
- { "clock_adjtime64", __PNR_clock_adjtime64 },
- { "clock_getres", 114 },
- { "clock_getres_time64", __PNR_clock_getres_time64 },
- { "clock_gettime", 113 },
- { "clock_gettime64", __PNR_clock_gettime64 },
- { "clock_nanosleep", 115 },
- { "clock_nanosleep_time64", __PNR_clock_nanosleep_time64 },
- { "clock_settime", 112 },
- { "clock_settime64", __PNR_clock_settime64 },
- { "clone", 220 },
- { "clone3", __PNR_clone3 },
- { "close", 57 },
- { "connect", 203 },
- { "copy_file_range", 285 },
- { "creat", __PNR_creat },
- { "create_module", __PNR_create_module },
- { "delete_module", 106 },
- { "dup", 23 },
- { "dup2", __PNR_dup2 },
- { "dup3", 24 },
- { "epoll_create", __PNR_epoll_create },
- { "epoll_create1", 20 },
- { "epoll_ctl", 21 },
- { "epoll_ctl_old", __PNR_epoll_ctl_old },
- { "epoll_pwait", 22 },
- { "epoll_wait", __PNR_epoll_wait },
- { "epoll_wait_old", __PNR_epoll_wait_old },
- { "eventfd", __PNR_eventfd },
- { "eventfd2", 19 },
- { "execve", 221 },
- { "execveat", 281 },
- { "exit", 93 },
- { "exit_group", 94 },
- { "faccessat", 48 },
- { "fadvise64", 223 },
- { "fadvise64_64", __PNR_fadvise64_64 },
- { "fallocate", 47 },
- { "fanotify_init", 262 },
- { "fanotify_mark", 263 },
- { "fchdir", 50 },
- { "fchmod", 52 },
- { "fchmodat", 53 },
- { "fchown", 55 },
- { "fchown32", __PNR_fchown32 },
- { "fchownat", 54 },
- { "fcntl", 25 },
- { "fcntl64", __PNR_fcntl64 },
- { "fdatasync", 83 },
- { "fgetxattr", 10 },
- { "finit_module", 273 },
- { "flistxattr", 13 },
- { "flock", 32 },
- { "fork", __PNR_fork },
- { "fremovexattr", 16 },
- { "fsconfig", 431 },
- { "fsetxattr", 7 },
- { "fsmount", 432 },
- { "fsopen", 430 },
- { "fspick", 433 },
- { "fstat", 80 },
- { "fstat64", __PNR_fstat64 },
- { "fstatat64", __PNR_fstatat64 },
- { "fstatfs", 44 },
- { "fstatfs64", __PNR_fstatfs64 },
- { "fsync", 82 },
- { "ftime", __PNR_ftime },
- { "ftruncate", 46 },
- { "ftruncate64", __PNR_ftruncate64 },
- { "futex", 98 },
- { "futex_time64", __PNR_futex_time64 },
- { "futimesat", __PNR_futimesat },
- { "get_kernel_syms", __PNR_get_kernel_syms },
- { "get_mempolicy", 236 },
- { "get_robust_list", 100 },
- { "get_thread_area", __PNR_get_thread_area },
- { "get_tls", __PNR_get_tls },
- { "getcpu", 168 },
- { "getcwd", 17 },
- { "getdents", __PNR_getdents },
- { "getdents64", 61 },
- { "getegid", 177 },
- { "getegid32", __PNR_getegid32 },
- { "geteuid", 175 },
- { "geteuid32", __PNR_geteuid32 },
- { "getgid", 176 },
- { "getgid32", __PNR_getgid32 },
- { "getgroups", 158 },
- { "getgroups32", __PNR_getgroups32 },
- { "getitimer", 102 },
- { "getpeername", 205 },
- { "getpgid", 155 },
- { "getpgrp", __PNR_getpgrp },
- { "getpid", 172 },
- { "getpmsg", __PNR_getpmsg },
- { "getppid", 173 },
- { "getpriority", 141 },
- { "getrandom", 278 },
- { "getresgid", 150 },
- { "getresgid32", __PNR_getresgid32 },
- { "getresuid", 148 },
- { "getresuid32", __PNR_getresuid32 },
- { "getrlimit", __PNR_getrlimit },
- { "getrusage", 165 },
- { "getsid", 156 },
- { "getsockname", 204 },
- { "getsockopt", 209 },
- { "gettid", 178 },
- { "gettimeofday", 169 },
- { "getuid", 174 },
- { "getuid32", __PNR_getuid32 },
- { "getxattr", 8 },
- { "gtty", __PNR_gtty },
- { "idle", __PNR_idle },
- { "init_module", 105 },
- { "inotify_add_watch", 27 },
- { "inotify_init", __PNR_inotify_init },
- { "inotify_init1", 26 },
- { "inotify_rm_watch", 28 },
- { "io_cancel", 3 },
- { "io_destroy", 1 },
- { "io_getevents", 4 },
- { "io_pgetevents", 292 },
- { "io_pgetevents_time64", __PNR_io_pgetevents_time64 },
- { "io_setup", 0 },
- { "io_submit", 2 },
- { "io_uring_setup", 425 },
- { "io_uring_enter", 426 },
- { "io_uring_register", 427 },
- { "ioctl", 29 },
- { "ioperm", __PNR_ioperm },
- { "iopl", __PNR_iopl },
- { "ioprio_get", 31 },
- { "ioprio_set", 30 },
- { "ipc", __PNR_ipc },
- { "kcmp", 272 },
- { "kexec_file_load", 294 },
- { "kexec_load", 104 },
- { "keyctl", 219 },
- { "kill", 129 },
- { "lchown", __PNR_lchown },
- { "lchown32", __PNR_lchown32 },
- { "lgetxattr", 9 },
- { "link", __PNR_link },
- { "linkat", 37 },
- { "listen", 201 },
- { "listxattr", 11 },
- { "llistxattr", 12 },
- { "lock", __PNR_lock },
- { "lookup_dcookie", 18 },
- { "lremovexattr", 15 },
- { "lseek", 62 },
- { "lsetxattr", 6 },
- { "lstat", __PNR_lstat },
- { "lstat64", __PNR_lstat64 },
- { "madvise", 233 },
- { "mbind", 235 },
- { "membarrier", 283 },
- { "memfd_create", 279 },
- { "migrate_pages", 238 },
- { "mincore", 232 },
- { "mkdir", __PNR_mkdir },
- { "mkdirat", 34 },
- { "mknod", __PNR_mknod },
- { "mknodat", 33 },
- { "mlock", 228 },
- { "mlock2", 284 },
- { "mlockall", 230 },
- { "mmap", 222 },
- { "mmap2", __PNR_mmap2 },
- { "modify_ldt", __PNR_modify_ldt },
- { "mount", 40 },
- { "move_mount", 429 },
- { "move_pages", 239 },
- { "mprotect", 226 },
- { "mpx", __PNR_mpx },
- { "mq_getsetattr", 185 },
- { "mq_notify", 184 },
- { "mq_open", 180 },
- { "mq_timedreceive", 183 },
- { "mq_timedreceive_time64", __PNR_mq_timedreceive_time64 },
- { "mq_timedsend", 182 },
- { "mq_timedsend_time64", __PNR_mq_timedsend_time64 },
- { "mq_unlink", 181 },
- { "mremap", 216 },
- { "msgctl", 187 },
- { "msgget", 186 },
- { "msgrcv", 188 },
- { "msgsnd", 189 },
- { "msync", 227 },
- { "multiplexer", __PNR_multiplexer },
- { "munlock", 229 },
- { "munlockall", 231 },
- { "munmap", 215 },
- { "name_to_handle_at", 264 },
- { "nanosleep", 101 },
- { "newfstatat", 79 },
- { "nfsservctl", 42 },
- { "nice", __PNR_nice },
- { "oldfstat", __PNR_oldfstat },
- { "oldlstat", __PNR_oldlstat },
- { "oldolduname", __PNR_oldolduname },
- { "oldstat", __PNR_oldstat },
- { "olduname", __PNR_olduname },
- { "oldwait4", __PNR_oldwait4 },
- { "open", __PNR_open },
- { "open_by_handle_at", 265 },
- { "open_tree", 428 },
- { "openat", 56 },
- { "pause", __PNR_pause },
- { "pciconfig_iobase", __PNR_pciconfig_iobase },
- { "pciconfig_read", __PNR_pciconfig_read },
- { "pciconfig_write", __PNR_pciconfig_write },
- { "perf_event_open", 241 },
- { "personality", 92 },
- { "pidfd_open", 434 },
- { "pidfd_send_signal", 424 },
- { "pipe", __PNR_pipe },
- { "pipe2", 59 },
- { "pivot_root", 41 },
- { "pkey_alloc", 289 },
- { "pkey_free", 290 },
- { "pkey_mprotect", 288 },
- { "poll", __PNR_poll },
- { "ppoll", 73 },
- { "ppoll_time64", __PNR_ppoll_time64 },
- { "prctl", 167 },
- { "pread64", 67 },
- { "preadv", 69 },
- { "preadv2", 286 },
- { "prlimit64", 261 },
- { "process_vm_readv", 270 },
- { "process_vm_writev", 271 },
- { "prof", __PNR_prof },
- { "profil", __PNR_profil },
- { "pselect6", 72 },
- { "pselect6_time64", __PNR_pselect6_time64 },
- { "ptrace", 117 },
- { "putpmsg", __PNR_putpmsg },
- { "pwrite64", 68 },
- { "pwritev", 70 },
- { "pwritev2", 287 },
- { "query_module", __PNR_query_module },
- { "quotactl", 60 },
- { "read", 63 },
- { "readahead", 213 },
- { "readdir", __PNR_readdir },
- { "readlink", __PNR_readlink },
- { "readlinkat", 78 },
- { "readv", 65 },
- { "reboot", 142 },
- { "recv", __PNR_recv },
- { "recvfrom", 207 },
- { "recvmmsg", 243 },
- { "recvmmsg_time64", __PNR_recvmmsg_time64 },
- { "recvmsg", 212 },
- { "remap_file_pages", 234 },
- { "removexattr", 14 },
- { "rename", __PNR_rename },
- { "renameat", 38 },
- { "renameat2", 276 },
- { "request_key", 218 },
- { "restart_syscall", 128 },
- { "rmdir", __PNR_rmdir },
- { "rseq", 293 },
- { "rt_sigaction", 134 },
- { "rt_sigpending", 136 },
- { "rt_sigprocmask", 135 },
- { "rt_sigqueueinfo", 138 },
- { "rt_sigreturn", 139 },
- { "rt_sigsuspend", 133 },
- { "rt_sigtimedwait", 137 },
- { "rt_sigtimedwait_time64", __PNR_rt_sigtimedwait_time64 },
- { "rt_tgsigqueueinfo", 240 },
- { "rtas", __PNR_rtas },
- { "s390_guarded_storage", __PNR_s390_guarded_storage },
- { "s390_pci_mmio_read", __PNR_s390_pci_mmio_read },
- { "s390_pci_mmio_write", __PNR_s390_pci_mmio_write },
- { "s390_runtime_instr", __PNR_s390_runtime_instr },
- { "s390_sthyi", __PNR_s390_sthyi },
- { "sched_get_priority_max", 125 },
- { "sched_get_priority_min", 126 },
- { "sched_getaffinity", 123 },
- { "sched_getattr", 275 },
- { "sched_getparam", 121 },
- { "sched_getscheduler", 120 },
- { "sched_rr_get_interval", 127 },
- { "sched_rr_get_interval_time64", __PNR_sched_rr_get_interval_time64 },
- { "sched_setaffinity", 122 },
- { "sched_setattr", 274 },
- { "sched_setparam", 118 },
- { "sched_setscheduler", 119 },
- { "sched_yield", 124 },
- { "seccomp", 277 },
- { "security", __PNR_security },
- { "select", __PNR_select },
- { "semctl", 191 },
- { "semget", 190 },
- { "semop", 193 },
- { "semtimedop", 192 },
- { "semtimedop_time64", __PNR_semtimedop_time64 },
- { "send", __PNR_send },
- { "sendfile", 71 },
- { "sendfile64", __PNR_sendfile64 },
- { "sendmmsg", 269 },
- { "sendmsg", 211 },
- { "sendto", 206 },
- { "set_mempolicy", 237 },
- { "set_robust_list", 99 },
- { "set_thread_area", __PNR_set_thread_area },
- { "set_tid_address", 96 },
- { "set_tls", __PNR_set_tls },
- { "setdomainname", 162 },
- { "setfsgid", 152 },
- { "setfsgid32", __PNR_setfsgid32 },
- { "setfsuid", 151 },
- { "setfsuid32", __PNR_setfsuid32 },
- { "setgid", 144 },
- { "setgid32", __PNR_setgid32 },
- { "setgroups", 159 },
- { "setgroups32", __PNR_setgroups32 },
- { "sethostname", 161 },
- { "setitimer", 103 },
- { "setns", 268 },
- { "setpgid", 154 },
- { "setpriority", 140 },
- { "setregid", 143 },
- { "setregid32", __PNR_setregid32 },
- { "setresgid", 149 },
- { "setresgid32", __PNR_setresgid32 },
- { "setresuid", 147 },
- { "setresuid32", __PNR_setresuid32 },
- { "setreuid", 145 },
- { "setreuid32", __PNR_setreuid32 },
- { "setrlimit", __PNR_setrlimit },
- { "setsid", 157 },
- { "setsockopt", 208 },
- { "settimeofday", 170 },
- { "setuid", 146 },
- { "setuid32", __PNR_setuid32 },
- { "setxattr", 5 },
- { "sgetmask", __PNR_sgetmask },
- { "shmat", 196 },
- { "shmctl", 195 },
- { "shmdt", 197 },
- { "shmget", 194 },
- { "shutdown", 210 },
- { "sigaction", __PNR_sigaction },
- { "sigaltstack", 132 },
- { "signal", __PNR_signal },
- { "signalfd", __PNR_signalfd },
- { "signalfd4", 74 },
- { "sigpending", __PNR_sigpending },
- { "sigprocmask", __PNR_sigprocmask },
- { "sigreturn", __PNR_sigreturn },
- { "sigsuspend", __PNR_sigsuspend },
- { "socket", 198 },
- { "socketcall", __PNR_socketcall },
- { "socketpair", 199 },
- { "splice", 76 },
- { "spu_create", __PNR_spu_create },
- { "spu_run", __PNR_spu_run },
- { "ssetmask", __PNR_ssetmask },
- { "stat", __PNR_stat },
- { "stat64", __PNR_stat64 },
- { "statfs", 43 },
- { "statfs64", __PNR_statfs64 },
- { "statx", 291 },
- { "stime", __PNR_stime },
- { "stty", __PNR_stty },
- { "subpage_prot", __PNR_subpage_prot },
- { "swapcontext", __PNR_swapcontext },
- { "swapoff", 225 },
- { "swapon", 224 },
- { "switch_endian", __PNR_switch_endian },
- { "symlink", __PNR_symlink },
- { "symlinkat", 36 },
- { "sync", 81 },
- { "sync_file_range", 84 },
- { "sync_file_range2", __PNR_sync_file_range2 },
- { "syncfs", 267 },
- { "syscall", __PNR_syscall },
- { "sys_debug_setcontext", __PNR_sys_debug_setcontext },
- { "sysfs", __PNR_sysfs },
- { "sysinfo", 179 },
- { "syslog", 116 },
- { "sysmips", __PNR_sysmips },
- { "tee", 77 },
- { "tgkill", 131 },
- { "time", __PNR_time },
- { "timer_create", 107 },
- { "timer_delete", 111 },
- { "timer_getoverrun", 109 },
- { "timer_gettime", 108 },
- { "timer_gettime64", __PNR_timer_gettime64 },
- { "timer_settime", 110 },
- { "timer_settime64", __PNR_timer_settime64 },
- { "timerfd", __PNR_timerfd },
- { "timerfd_create", 85 },
- { "timerfd_gettime", 87 },
- { "timerfd_gettime64", __PNR_timerfd_gettime64 },
- { "timerfd_settime", 86 },
- { "timerfd_settime64", __PNR_timerfd_settime64 },
- { "times", 153 },
- { "tkill", 130 },
- { "truncate", 45 },
- { "truncate64", __PNR_truncate64 },
- { "tuxcall", __PNR_tuxcall },
- { "ugetrlimit", __PNR_ugetrlimit },
- { "ulimit", __PNR_ulimit },
- { "umask", 166 },
- { "umount", __PNR_umount },
- { "umount2", 39 },
- { "uname", 160 },
- { "unlink", __PNR_unlink },
- { "unlinkat", 35 },
- { "unshare", 97 },
- { "uselib", __PNR_uselib },
- { "userfaultfd", 282 },
- { "usr26", __PNR_usr26 },
- { "usr32", __PNR_usr32 },
- { "ustat", __PNR_ustat },
- { "utime", __PNR_utime },
- { "utimensat", 88 },
- { "utimensat_time64", __PNR_utimensat_time64 },
- { "utimes", __PNR_utimes },
- { "vfork", __PNR_vfork },
- { "vhangup", 58 },
- { "vm86", __PNR_vm86 },
- { "vm86old", __PNR_vm86old },
- { "vmsplice", 75 },
- { "vserver", __PNR_vserver },
- { "wait4", 260 },
- { "waitid", 95 },
- { "waitpid", __PNR_waitpid },
- { "write", 64 },
- { "writev", 66 },
- { NULL, __NR_SCMP_ERROR },
-};
-
-/**
- * Resolve a syscall name to a number
- * @param name the syscall name
- *
- * Resolve the given syscall name to the syscall number using the syscall table.
- * Returns the syscall number on success, including negative pseudo syscall
- * numbers; returns __NR_SCMP_ERROR on failure.
- *
- */
-int aarch64_syscall_resolve_name(const char *name)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = aarch64_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].name != NULL; iter++) {
- if (strcmp(name, table[iter].name) == 0)
- return table[iter].num;
- }
-
- return __NR_SCMP_ERROR;
-}
-
-/**
- * Resolve a syscall number to a name
- * @param num the syscall number
- *
- * Resolve the given syscall number to the syscall name using the syscall table.
- * Returns a pointer to the syscall name string on success, including pseudo
- * syscall names; returns NULL on failure.
- *
- */
-const char *aarch64_syscall_resolve_num(int num)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = aarch64_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
- if (num == table[iter].num)
- return table[iter].name;
- }
-
- return NULL;
-}
-
-
-/**
- * Iterate through the syscall table and return the syscall mapping
- * @param spot the offset into the syscall table
- *
- * Return the syscall mapping at position @spot or NULL on failure. This
- * function should only ever be used internally by libseccomp.
- *
- */
-const struct arch_syscall_def *aarch64_syscall_iterate(unsigned int spot)
-{
- /* XXX - no safety checks here */
- return &aarch64_syscall_table[spot];
-}
diff --git a/src/arch-arm-syscalls.c b/src/arch-arm-syscalls.c
deleted file mode 100644
index 923aae9..0000000
--- a/src/arch-arm-syscalls.c
+++ /dev/null
@@ -1,570 +0,0 @@
-/**
- * Enhanced Seccomp ARM Syscall Table
- *
- * Copyright (c) 2013 Red Hat <pmoore@redhat.com>
- * Author: Paul Moore <paul@paul-moore.com>
- */
-
-/*
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License as
- * published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, see <http://www.gnu.org/licenses>.
- */
-
-#include <string.h>
-
-#include <seccomp.h>
-
-#include "arch.h"
-#include "arch-arm.h"
-
-#define __SCMP_NR_OABI_SYSCALL_BASE 0x900000
-#define __SCMP_ARM_NR_BASE 0x0f0000
-
-/* NOTE: we currently only support the ARM EABI, more info at the URL below:
- * -> http://wiki.embeddedarm.com/wiki/EABI_vs_OABI */
-#if 1
-#define __SCMP_NR_BASE 0
-#else
-#define __SCMP_NR_BASE __SCMP_NR_OABI_SYSCALL_BASE
-#endif
-
-/* NOTE: based on Linux v5.4-rc4 */
-const struct arch_syscall_def arm_syscall_table[] = { \
- /* NOTE: arm_sync_file_range() and sync_file_range2() share values */
- { "_llseek", (__SCMP_NR_BASE + 140) },
- { "_newselect", (__SCMP_NR_BASE + 142) },
- { "_sysctl", (__SCMP_NR_BASE + 149) },
- { "accept", (__SCMP_NR_BASE + 285) },
- { "accept4", (__SCMP_NR_BASE + 366) },
- { "access", (__SCMP_NR_BASE + 33) },
- { "acct", (__SCMP_NR_BASE + 51) },
- { "add_key", (__SCMP_NR_BASE + 309) },
- { "adjtimex", (__SCMP_NR_BASE + 124) },
- { "afs_syscall", __PNR_afs_syscall },
- { "alarm", __PNR_alarm },
- { "arm_fadvise64_64", (__SCMP_NR_BASE + 270) },
- { "arm_sync_file_range", (__SCMP_NR_BASE + 341) },
- { "arch_prctl", __PNR_arch_prctl },
- { "bdflush", (__SCMP_NR_BASE + 134) },
- { "bind", (__SCMP_NR_BASE + 282) },
- { "bpf", (__SCMP_NR_BASE + 386) },
- { "break", __PNR_break },
- { "breakpoint", (__SCMP_NR_BASE + (__SCMP_ARM_NR_BASE + 1)) },
- { "brk", (__SCMP_NR_BASE + 45) },
- { "cachectl", __PNR_cachectl },
- { "cacheflush", (__SCMP_NR_BASE + (__SCMP_ARM_NR_BASE + 2)) },
- { "capget", (__SCMP_NR_BASE + 184) },
- { "capset", (__SCMP_NR_BASE + 185) },
- { "chdir", (__SCMP_NR_BASE + 12) },
- { "chmod", (__SCMP_NR_BASE + 15) },
- { "chown", (__SCMP_NR_BASE + 182) },
- { "chown32", (__SCMP_NR_BASE + 212) },
- { "chroot", (__SCMP_NR_BASE + 61) },
- { "clock_adjtime", (__SCMP_NR_BASE + 372) },
- { "clock_adjtime64", (__SCMP_NR_BASE + 405) },
- { "clock_getres", (__SCMP_NR_BASE + 264) },
- { "clock_getres_time64", (__SCMP_NR_BASE + 406) },
- { "clock_gettime", (__SCMP_NR_BASE + 263) },
- { "clock_gettime64", (__SCMP_NR_BASE + 403) },
- { "clock_nanosleep", (__SCMP_NR_BASE + 265) },
- { "clock_nanosleep_time64", (__SCMP_NR_BASE + 407) },
- { "clock_settime", (__SCMP_NR_BASE + 262) },
- { "clock_settime64", (__SCMP_NR_BASE + 404) },
- { "clone", (__SCMP_NR_BASE + 120) },
- { "clone3", (__SCMP_NR_BASE + 435) },
- { "close", (__SCMP_NR_BASE + 6) },
- { "connect", (__SCMP_NR_BASE + 283) },
- { "copy_file_range", (__SCMP_NR_BASE + 391) },
- { "creat", (__SCMP_NR_BASE + 8) },
- { "create_module", __PNR_create_module },
- { "delete_module", (__SCMP_NR_BASE + 129) },
- { "dup", (__SCMP_NR_BASE + 41) },
- { "dup2", (__SCMP_NR_BASE + 63) },
- { "dup3", (__SCMP_NR_BASE + 358) },
- { "epoll_create", (__SCMP_NR_BASE + 250) },
- { "epoll_create1", (__SCMP_NR_BASE + 357) },
- { "epoll_ctl", (__SCMP_NR_BASE + 251) },
- { "epoll_ctl_old", __PNR_epoll_ctl_old },
- { "epoll_pwait", (__SCMP_NR_BASE + 346) },
- { "epoll_wait", (__SCMP_NR_BASE + 252) },
- { "epoll_wait_old", __PNR_epoll_wait_old },
- { "eventfd", (__SCMP_NR_BASE + 351) },
- { "eventfd2", (__SCMP_NR_BASE + 356) },
- { "execve", (__SCMP_NR_BASE + 11) },
- { "execveat", (__SCMP_NR_BASE + 387) },
- { "exit", (__SCMP_NR_BASE + 1) },
- { "exit_group", (__SCMP_NR_BASE + 248) },
- { "faccessat", (__SCMP_NR_BASE + 334) },
- { "fadvise64", __PNR_fadvise64 },
- { "fadvise64_64", __PNR_fadvise64_64 },
- { "fallocate", (__SCMP_NR_BASE + 352) },
- { "fanotify_init", (__SCMP_NR_BASE + 367) },
- { "fanotify_mark", (__SCMP_NR_BASE + 368) },
- { "fchdir", (__SCMP_NR_BASE + 133) },
- { "fchmod", (__SCMP_NR_BASE + 94) },
- { "fchmodat", (__SCMP_NR_BASE + 333) },
- { "fchown", (__SCMP_NR_BASE + 95) },
- { "fchown32", (__SCMP_NR_BASE + 207) },
- { "fchownat", (__SCMP_NR_BASE + 325) },
- { "fcntl", (__SCMP_NR_BASE + 55) },
- { "fcntl64", (__SCMP_NR_BASE + 221) },
- { "fdatasync", (__SCMP_NR_BASE + 148) },
- { "fgetxattr", (__SCMP_NR_BASE + 231) },
- { "finit_module", (__SCMP_NR_BASE + 379) },
- { "flistxattr", (__SCMP_NR_BASE + 234) },
- { "flock", (__SCMP_NR_BASE + 143) },
- { "fork", (__SCMP_NR_BASE + 2) },
- { "fremovexattr", (__SCMP_NR_BASE + 237) },
- { "fsconfig", (__SCMP_NR_BASE + 431) },
- { "fsetxattr", (__SCMP_NR_BASE + 228) },
- { "fsmount", (__SCMP_NR_BASE + 432) },
- { "fsopen", (__SCMP_NR_BASE + 430) },
- { "fspick", (__SCMP_NR_BASE + 433) },
- { "fstat", (__SCMP_NR_BASE + 108) },
- { "fstat64", (__SCMP_NR_BASE + 197) },
- { "fstatat64", (__SCMP_NR_BASE + 327) },
- { "fstatfs", (__SCMP_NR_BASE + 100) },
- { "fstatfs64", (__SCMP_NR_BASE + 267) },
- { "fsync", (__SCMP_NR_BASE + 118) },
- { "ftime", __PNR_ftime },
- { "ftruncate", (__SCMP_NR_BASE + 93) },
- { "ftruncate64", (__SCMP_NR_BASE + 194) },
- { "futex", (__SCMP_NR_BASE + 240) },
- { "futex_time64", (__SCMP_NR_BASE + 422) },
- { "futimesat", (__SCMP_NR_BASE + 326) },
- { "get_kernel_syms", __PNR_get_kernel_syms },
- { "get_mempolicy", (__SCMP_NR_BASE + 320) },
- { "get_robust_list", (__SCMP_NR_BASE + 339) },
- { "get_thread_area", __PNR_get_thread_area },
- { "get_tls", (__SCMP_NR_BASE + (__SCMP_ARM_NR_BASE + 6)) },
- { "getcpu", (__SCMP_NR_BASE + 345) },
- { "getcwd", (__SCMP_NR_BASE + 183) },
- { "getdents", (__SCMP_NR_BASE + 141) },
- { "getdents64", (__SCMP_NR_BASE + 217) },
- { "getegid", (__SCMP_NR_BASE + 50) },
- { "getegid32", (__SCMP_NR_BASE + 202) },
- { "geteuid", (__SCMP_NR_BASE + 49) },
- { "geteuid32", (__SCMP_NR_BASE + 201) },
- { "getgid", (__SCMP_NR_BASE + 47) },
- { "getgid32", (__SCMP_NR_BASE + 200) },
- { "getgroups", (__SCMP_NR_BASE + 80) },
- { "getgroups32", (__SCMP_NR_BASE + 205) },
- { "getitimer", (__SCMP_NR_BASE + 105) },
- { "getpeername", (__SCMP_NR_BASE + 287) },
- { "getpgid", (__SCMP_NR_BASE + 132) },
- { "getpgrp", (__SCMP_NR_BASE + 65) },
- { "getpid", (__SCMP_NR_BASE + 20) },
- { "getpmsg", __PNR_getpmsg },
- { "getppid", (__SCMP_NR_BASE + 64) },
- { "getpriority", (__SCMP_NR_BASE + 96) },
- { "getrandom", (__SCMP_NR_BASE + 384) },
- { "getresgid", (__SCMP_NR_BASE + 171) },
- { "getresgid32", (__SCMP_NR_BASE + 211) },
- { "getresuid", (__SCMP_NR_BASE + 165) },
- { "getresuid32", (__SCMP_NR_BASE + 209) },
- { "getrlimit", __PNR_getrlimit },
- { "getrusage", (__SCMP_NR_BASE + 77) },
- { "getsid", (__SCMP_NR_BASE + 147) },
- { "getsockname", (__SCMP_NR_BASE + 286) },
- { "getsockopt", (__SCMP_NR_BASE + 295) },
- { "gettid", (__SCMP_NR_BASE + 224) },
- { "gettimeofday", (__SCMP_NR_BASE + 78) },
- { "getuid", (__SCMP_NR_BASE + 24) },
- { "getuid32", (__SCMP_NR_BASE + 199) },
- { "getxattr", (__SCMP_NR_BASE + 229) },
- { "gtty", __PNR_gtty },
- { "idle", __PNR_idle },
- { "init_module", (__SCMP_NR_BASE + 128) },
- { "inotify_add_watch", (__SCMP_NR_BASE + 317) },
- { "inotify_init", (__SCMP_NR_BASE + 316) },
- { "inotify_init1", (__SCMP_NR_BASE + 360) },
- { "inotify_rm_watch", (__SCMP_NR_BASE + 318) },
- { "io_cancel", (__SCMP_NR_BASE + 247) },
- { "io_destroy", (__SCMP_NR_BASE + 244) },
- { "io_getevents", (__SCMP_NR_BASE + 245) },
- { "io_pgetevents", (__SCMP_NR_BASE + 399) },
- { "io_pgetevents_time64", (__SCMP_NR_BASE + 416) },
- { "io_setup", (__SCMP_NR_BASE + 243) },
- { "io_submit", (__SCMP_NR_BASE + 246) },
- { "io_uring_setup", (__SCMP_NR_BASE + 425) },
- { "io_uring_enter", (__SCMP_NR_BASE + 426) },
- { "io_uring_register", (__SCMP_NR_BASE + 427) },
- { "ioctl", (__SCMP_NR_BASE + 54) },
- { "ioperm", __PNR_ioperm },
- { "iopl", __PNR_iopl },
- { "ioprio_get", (__SCMP_NR_BASE + 315) },
- { "ioprio_set", (__SCMP_NR_BASE + 314) },
- { "ipc", __PNR_ipc },
- { "kcmp", (__SCMP_NR_BASE + 378) },
- { "kexec_file_load", (__SCMP_NR_BASE + 401) },
- { "kexec_load", (__SCMP_NR_BASE + 347) },
- { "keyctl", (__SCMP_NR_BASE + 311) },
- { "kill", (__SCMP_NR_BASE + 37) },
- { "lchown", (__SCMP_NR_BASE + 16) },
- { "lchown32", (__SCMP_NR_BASE + 198) },
- { "lgetxattr", (__SCMP_NR_BASE + 230) },
- { "link", (__SCMP_NR_BASE + 9) },
- { "linkat", (__SCMP_NR_BASE + 330) },
- { "listen", (__SCMP_NR_BASE + 284) },
- { "listxattr", (__SCMP_NR_BASE + 232) },
- { "llistxattr", (__SCMP_NR_BASE + 233) },
- { "lock", __PNR_lock },
- { "lookup_dcookie", (__SCMP_NR_BASE + 249) },
- { "lremovexattr", (__SCMP_NR_BASE + 236) },
- { "lseek", (__SCMP_NR_BASE + 19) },
- { "lsetxattr", (__SCMP_NR_BASE + 227) },
- { "lstat", (__SCMP_NR_BASE + 107) },
- { "lstat64", (__SCMP_NR_BASE + 196) },
- { "madvise", (__SCMP_NR_BASE + 220) },
- { "mbind", (__SCMP_NR_BASE + 319) },
- { "membarrier", (__SCMP_NR_BASE + 389) },
- { "memfd_create", (__SCMP_NR_BASE + 385) },
- { "migrate_pages", (__SCMP_NR_BASE + 400) },
- { "mincore", (__SCMP_NR_BASE + 219) },
- { "mkdir", (__SCMP_NR_BASE + 39) },
- { "mkdirat", (__SCMP_NR_BASE + 323) },
- { "mknod", (__SCMP_NR_BASE + 14) },
- { "mknodat", (__SCMP_NR_BASE + 324) },
- { "mlock", (__SCMP_NR_BASE + 150) },
- { "mlock2", (__SCMP_NR_BASE + 390) },
- { "mlockall", (__SCMP_NR_BASE + 152) },
- { "mmap", __PNR_mmap },
- { "mmap2", (__SCMP_NR_BASE + 192) },
- { "modify_ldt", __PNR_modify_ldt },
- { "mount", (__SCMP_NR_BASE + 21) },
- { "move_mount", (__SCMP_NR_BASE + 429) },
- { "move_pages", (__SCMP_NR_BASE + 344) },
- { "mprotect", (__SCMP_NR_BASE + 125) },
- { "mpx", __PNR_mpx },
- { "mq_getsetattr", (__SCMP_NR_BASE + 279) },
- { "mq_notify", (__SCMP_NR_BASE + 278) },
- { "mq_open", (__SCMP_NR_BASE + 274) },
- { "mq_timedreceive", (__SCMP_NR_BASE + 277) },
- { "mq_timedreceive_time64", (__SCMP_NR_BASE + 419) },
- { "mq_timedsend", (__SCMP_NR_BASE + 276) },
- { "mq_timedsend_time64", (__SCMP_NR_BASE + 418) },
- { "mq_unlink", (__SCMP_NR_BASE + 275) },
- { "mremap", (__SCMP_NR_BASE + 163) },
- { "msgctl", (__SCMP_NR_BASE + 304) },
- { "msgget", (__SCMP_NR_BASE + 303) },
- { "msgrcv", (__SCMP_NR_BASE + 302) },
- { "msgsnd", (__SCMP_NR_BASE + 301) },
- { "msync", (__SCMP_NR_BASE + 144) },
- { "multiplexer", __PNR_multiplexer },
- { "munlock", (__SCMP_NR_BASE + 151) },
- { "munlockall", (__SCMP_NR_BASE + 153) },
- { "munmap", (__SCMP_NR_BASE + 91) },
- { "name_to_handle_at", (__SCMP_NR_BASE + 370) },
- { "nanosleep", (__SCMP_NR_BASE + 162) },
- { "newfstatat", __PNR_newfstatat },
- { "nfsservctl", (__SCMP_NR_BASE + 169) },
- { "nice", (__SCMP_NR_BASE + 34) },
- { "oldfstat", __PNR_oldfstat },
- { "oldlstat", __PNR_oldlstat },
- { "oldolduname", __PNR_oldolduname },
- { "oldstat", __PNR_oldstat },
- { "olduname", __PNR_olduname },
- { "oldwait4", __PNR_oldwait4 },
- { "open", (__SCMP_NR_BASE + 5) },
- { "open_by_handle_at", (__SCMP_NR_BASE + 371) },
- { "open_tree", (__SCMP_NR_BASE + 428) },
- { "openat", (__SCMP_NR_BASE + 322) },
- { "pause", (__SCMP_NR_BASE + 29) },
- { "pciconfig_iobase", (__SCMP_NR_BASE + 271) },
- { "pciconfig_read", (__SCMP_NR_BASE + 272) },
- { "pciconfig_write", (__SCMP_NR_BASE + 273) },
- { "perf_event_open", (__SCMP_NR_BASE + 364) },
- { "personality", (__SCMP_NR_BASE + 136) },
- { "pidfd_open", (__SCMP_NR_BASE + 434) },
- { "pidfd_send_signal", (__SCMP_NR_BASE + 424) },
- { "pipe", (__SCMP_NR_BASE + 42) },
- { "pipe2", (__SCMP_NR_BASE + 359) },
- { "pivot_root", (__SCMP_NR_BASE + 218) },
- { "pkey_alloc", (__SCMP_NR_BASE + 395) },
- { "pkey_free", (__SCMP_NR_BASE + 396) },
- { "pkey_mprotect", (__SCMP_NR_BASE + 394) },
- { "poll", (__SCMP_NR_BASE + 168) },
- { "ppoll", (__SCMP_NR_BASE + 336) },
- { "ppoll_time64", (__SCMP_NR_BASE + 414) },
- { "prctl", (__SCMP_NR_BASE + 172) },
- { "pread64", (__SCMP_NR_BASE + 180) },
- { "preadv", (__SCMP_NR_BASE + 361) },
- { "preadv2", (__SCMP_NR_BASE + 392) },
- { "prlimit64", (__SCMP_NR_BASE + 369) },
- { "process_vm_readv", (__SCMP_NR_BASE + 376) },
- { "process_vm_writev", (__SCMP_NR_BASE + 377) },
- { "prof", __PNR_prof },
- { "profil", __PNR_profil },
- { "pselect6", (__SCMP_NR_BASE + 335) },
- { "pselect6_time64", (__SCMP_NR_BASE + 413) },
- { "ptrace", (__SCMP_NR_BASE + 26) },
- { "putpmsg", __PNR_putpmsg },
- { "pwrite64", (__SCMP_NR_BASE + 181) },
- { "pwritev", (__SCMP_NR_BASE + 362) },
- { "pwritev2", (__SCMP_NR_BASE + 393) },
- { "query_module", __PNR_query_module },
- { "quotactl", (__SCMP_NR_BASE + 131) },
- { "read", (__SCMP_NR_BASE + 3) },
- { "readahead", (__SCMP_NR_BASE + 225) },
- { "readdir", __PNR_readdir },
- { "readlink", (__SCMP_NR_BASE + 85) },
- { "readlinkat", (__SCMP_NR_BASE + 332) },
- { "readv", (__SCMP_NR_BASE + 145) },
- { "reboot", (__SCMP_NR_BASE + 88) },
- { "recv", (__SCMP_NR_BASE + 291) },
- { "recvfrom", (__SCMP_NR_BASE + 292) },
- { "recvmmsg", (__SCMP_NR_BASE + 365) },
- { "recvmmsg_time64", (__SCMP_NR_BASE + 417) },
- { "recvmsg", (__SCMP_NR_BASE + 297) },
- { "remap_file_pages", (__SCMP_NR_BASE + 253) },
- { "removexattr", (__SCMP_NR_BASE + 235) },
- { "rename", (__SCMP_NR_BASE + 38) },
- { "renameat", (__SCMP_NR_BASE + 329) },
- { "renameat2", (__SCMP_NR_BASE + 382) },
- { "request_key", (__SCMP_NR_BASE + 310) },
- { "restart_syscall", (__SCMP_NR_BASE + 0) },
- { "rmdir", (__SCMP_NR_BASE + 40) },
- { "rseq", (__SCMP_NR_BASE + 398) },
- { "rt_sigaction", (__SCMP_NR_BASE + 174) },
- { "rt_sigpending", (__SCMP_NR_BASE + 176) },
- { "rt_sigprocmask", (__SCMP_NR_BASE + 175) },
- { "rt_sigqueueinfo", (__SCMP_NR_BASE + 178) },
- { "rt_sigreturn", (__SCMP_NR_BASE + 173) },
- { "rt_sigsuspend", (__SCMP_NR_BASE + 179) },
- { "rt_sigtimedwait", (__SCMP_NR_BASE + 177) },
- { "rt_sigtimedwait_time64", (__SCMP_NR_BASE + 421) },
- { "rt_tgsigqueueinfo", (__SCMP_NR_BASE + 363) },
- { "rtas", __PNR_rtas },
- { "s390_guarded_storage", __PNR_s390_guarded_storage },
- { "s390_pci_mmio_read", __PNR_s390_pci_mmio_read },
- { "s390_pci_mmio_write", __PNR_s390_pci_mmio_write },
- { "s390_runtime_instr", __PNR_s390_runtime_instr },
- { "s390_sthyi", __PNR_s390_sthyi },
- { "sched_get_priority_max", (__SCMP_NR_BASE + 159) },
- { "sched_get_priority_min", (__SCMP_NR_BASE + 160) },
- { "sched_getaffinity", (__SCMP_NR_BASE + 242) },
- { "sched_getattr", (__SCMP_NR_BASE + 381) },
- { "sched_getparam", (__SCMP_NR_BASE + 155) },
- { "sched_getscheduler", (__SCMP_NR_BASE + 157) },
- { "sched_rr_get_interval", (__SCMP_NR_BASE + 161) },
- { "sched_rr_get_interval_time64", (__SCMP_NR_BASE + 423) },
- { "sched_setaffinity", (__SCMP_NR_BASE + 241) },
- { "sched_setattr", (__SCMP_NR_BASE + 380) },
- { "sched_setparam", (__SCMP_NR_BASE + 154) },
- { "sched_setscheduler", (__SCMP_NR_BASE + 156) },
- { "sched_yield", (__SCMP_NR_BASE + 158) },
- { "seccomp", (__SCMP_NR_BASE + 383) },
- { "security", __PNR_security },
- { "select", __PNR_select },
- { "semctl", (__SCMP_NR_BASE + 300) },
- { "semget", (__SCMP_NR_BASE + 299) },
- { "semop", (__SCMP_NR_BASE + 298) },
- { "semtimedop", (__SCMP_NR_BASE + 312) },
- { "semtimedop_time64", (__SCMP_NR_BASE + 420) },
- { "send", (__SCMP_NR_BASE + 289) },
- { "sendfile", (__SCMP_NR_BASE + 187) },
- { "sendfile64", (__SCMP_NR_BASE + 239) },
- { "sendmmsg", (__SCMP_NR_BASE + 374) },
- { "sendmsg", (__SCMP_NR_BASE + 296) },
- { "sendto", (__SCMP_NR_BASE + 290) },
- { "set_mempolicy", (__SCMP_NR_BASE + 321) },
- { "set_robust_list", (__SCMP_NR_BASE + 338) },
- { "set_thread_area", __PNR_set_thread_area },
- { "set_tid_address", (__SCMP_NR_BASE + 256) },
- { "set_tls", (__SCMP_NR_BASE + (__SCMP_ARM_NR_BASE + 5)) },
- { "setdomainname", (__SCMP_NR_BASE + 121) },
- { "setfsgid", (__SCMP_NR_BASE + 139) },
- { "setfsgid32", (__SCMP_NR_BASE + 216) },
- { "setfsuid", (__SCMP_NR_BASE + 138) },
- { "setfsuid32", (__SCMP_NR_BASE + 215) },
- { "setgid", (__SCMP_NR_BASE + 46) },
- { "setgid32", (__SCMP_NR_BASE + 214) },
- { "setgroups", (__SCMP_NR_BASE + 81) },
- { "setgroups32", (__SCMP_NR_BASE + 206) },
- { "sethostname", (__SCMP_NR_BASE + 74) },
- { "setitimer", (__SCMP_NR_BASE + 104) },
- { "setns", (__SCMP_NR_BASE + 375) },
- { "setpgid", (__SCMP_NR_BASE + 57) },
- { "setpriority", (__SCMP_NR_BASE + 97) },
- { "setregid", (__SCMP_NR_BASE + 71) },
- { "setregid32", (__SCMP_NR_BASE + 204) },
- { "setresgid", (__SCMP_NR_BASE + 170) },
- { "setresgid32", (__SCMP_NR_BASE + 210) },
- { "setresuid", (__SCMP_NR_BASE + 164) },
- { "setresuid32", (__SCMP_NR_BASE + 208) },
- { "setreuid", (__SCMP_NR_BASE + 70) },
- { "setreuid32", (__SCMP_NR_BASE + 203) },
- { "setrlimit", (__SCMP_NR_BASE + 75) },
- { "setsid", (__SCMP_NR_BASE + 66) },
- { "setsockopt", (__SCMP_NR_BASE + 294) },
- { "settimeofday", (__SCMP_NR_BASE + 79) },
- { "setuid", (__SCMP_NR_BASE + 23) },
- { "setuid32", (__SCMP_NR_BASE + 213) },
- { "setxattr", (__SCMP_NR_BASE + 226) },
- { "sgetmask", __PNR_sgetmask },
- { "shmat", (__SCMP_NR_BASE + 305) },
- { "shmctl", (__SCMP_NR_BASE + 308) },
- { "shmdt", (__SCMP_NR_BASE + 306) },
- { "shmget", (__SCMP_NR_BASE + 307) },
- { "shutdown", (__SCMP_NR_BASE + 293) },
- { "sigaction", (__SCMP_NR_BASE + 67) },
- { "sigaltstack", (__SCMP_NR_BASE + 186) },
- { "signal", __PNR_signal },
- { "signalfd", (__SCMP_NR_BASE + 349) },
- { "signalfd4", (__SCMP_NR_BASE + 355) },
- { "sigpending", (__SCMP_NR_BASE + 73) },
- { "sigprocmask", (__SCMP_NR_BASE + 126) },
- { "sigreturn", (__SCMP_NR_BASE + 119) },
- { "sigsuspend", (__SCMP_NR_BASE + 72) },
- { "socket", (__SCMP_NR_BASE + 281) },
- { "socketcall", __PNR_socketcall },
- { "socketpair", (__SCMP_NR_BASE + 288) },
- { "splice", (__SCMP_NR_BASE + 340) },
- { "spu_create", __PNR_spu_create },
- { "spu_run", __PNR_spu_run },
- { "ssetmask", __PNR_ssetmask },
- { "stat", (__SCMP_NR_BASE + 106) },
- { "stat64", (__SCMP_NR_BASE + 195) },
- { "statfs", (__SCMP_NR_BASE + 99) },
- { "statfs64", (__SCMP_NR_BASE + 266) },
- { "statx", (__SCMP_NR_BASE + 397) },
- { "stime", __PNR_stime },
- { "stty", __PNR_stty },
- { "subpage_prot", __PNR_subpage_prot },
- { "swapcontext", __PNR_swapcontext },
- { "swapoff", (__SCMP_NR_BASE + 115) },
- { "swapon", (__SCMP_NR_BASE + 87) },
- { "switch_endian", __PNR_switch_endian },
- { "symlink", (__SCMP_NR_BASE + 83) },
- { "symlinkat", (__SCMP_NR_BASE + 331) },
- { "sync", (__SCMP_NR_BASE + 36) },
- { "sync_file_range", __PNR_sync_file_range },
- { "sync_file_range2", (__SCMP_NR_BASE + 341) },
- { "syncfs", (__SCMP_NR_BASE + 373) },
- { "syscall", (__PNR_syscall) },
- { "sys_debug_setcontext", __PNR_sys_debug_setcontext },
- { "sysfs", (__SCMP_NR_BASE + 135) },
- { "sysinfo", (__SCMP_NR_BASE + 116) },
- { "syslog", (__SCMP_NR_BASE + 103) },
- { "sysmips", __PNR_sysmips },
- { "tee", (__SCMP_NR_BASE + 342) },
- { "tgkill", (__SCMP_NR_BASE + 268) },
- { "time", __PNR_time },
- { "timer_create", (__SCMP_NR_BASE + 257) },
- { "timer_delete", (__SCMP_NR_BASE + 261) },
- { "timer_getoverrun", (__SCMP_NR_BASE + 260) },
- { "timer_gettime", (__SCMP_NR_BASE + 259) },
- { "timer_gettime64", (__SCMP_NR_BASE + 408) },
- { "timer_settime", (__SCMP_NR_BASE + 258) },
- { "timer_settime64", (__SCMP_NR_BASE + 409) },
- { "timerfd", __PNR_timerfd },
- { "timerfd_create", (__SCMP_NR_BASE + 350) },
- { "timerfd_gettime", (__SCMP_NR_BASE + 354) },
- { "timerfd_gettime64", (__SCMP_NR_BASE + 410) },
- { "timerfd_settime", (__SCMP_NR_BASE + 353) },
- { "timerfd_settime64", (__SCMP_NR_BASE + 411) },
- { "times", (__SCMP_NR_BASE + 43) },
- { "tkill", (__SCMP_NR_BASE + 238) },
- { "truncate", (__SCMP_NR_BASE + 92) },
- { "truncate64", (__SCMP_NR_BASE + 193) },
- { "tuxcall", __PNR_tuxcall },
- { "ugetrlimit", (__SCMP_NR_BASE + 191) },
- { "ulimit", __PNR_ulimit },
- { "umask", (__SCMP_NR_BASE + 60) },
- { "umount", __PNR_umount },
- { "umount2", (__SCMP_NR_BASE + 52) },
- { "uname", (__SCMP_NR_BASE + 122) },
- { "unlink", (__SCMP_NR_BASE + 10) },
- { "unlinkat", (__SCMP_NR_BASE + 328) },
- { "unshare", (__SCMP_NR_BASE + 337) },
- { "uselib", (__SCMP_NR_BASE + 86) },
- { "userfaultfd", (__SCMP_NR_BASE + 388) },
- { "usr26", (__SCMP_NR_BASE + (__SCMP_ARM_NR_BASE + 3)) },
- { "usr32", (__SCMP_NR_BASE + (__SCMP_ARM_NR_BASE + 4)) },
- { "ustat", (__SCMP_NR_BASE + 62) },
- { "utime", __PNR_utime },
- { "utimensat", (__SCMP_NR_BASE + 348) },
- { "utimensat_time64", (__SCMP_NR_BASE + 412) },
- { "utimes", (__SCMP_NR_BASE + 269) },
- { "vfork", (__SCMP_NR_BASE + 190) },
- { "vhangup", (__SCMP_NR_BASE + 111) },
- { "vm86", __PNR_vm86 },
- { "vm86old", __PNR_vm86old },
- { "vmsplice", (__SCMP_NR_BASE + 343) },
- { "vserver", (__SCMP_NR_BASE + 313) },
- { "wait4", (__SCMP_NR_BASE + 114) },
- { "waitid", (__SCMP_NR_BASE + 280) },
- { "waitpid", __PNR_waitpid },
- { "write", (__SCMP_NR_BASE + 4) },
- { "writev", (__SCMP_NR_BASE + 146) },
- { NULL, __NR_SCMP_ERROR },
-};
-
-/**
- * Resolve a syscall name to a number
- * @param name the syscall name
- *
- * Resolve the given syscall name to the syscall number using the syscall table.
- * Returns the syscall number on success, including negative pseudo syscall
- * numbers; returns __NR_SCMP_ERROR on failure.
- *
- */
-int arm_syscall_resolve_name(const char *name)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = arm_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].name != NULL; iter++) {
- if (strcmp(name, table[iter].name) == 0)
- return table[iter].num;
- }
-
- return __NR_SCMP_ERROR;
-}
-
-/**
- * Resolve a syscall number to a name
- * @param num the syscall number
- *
- * Resolve the given syscall number to the syscall name using the syscall table.
- * Returns a pointer to the syscall name string on success, including pseudo
- * syscall names; returns NULL on failure.
- *
- */
-const char *arm_syscall_resolve_num(int num)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = arm_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
- if (num == table[iter].num)
- return table[iter].name;
- }
-
- return NULL;
-}
-
-/**
- * Iterate through the syscall table and return the syscall mapping
- * @param spot the offset into the syscall table
- *
- * Return the syscall mapping at position @spot or NULL on failure. This
- * function should only ever be used internally by libseccomp.
- *
- */
-const struct arch_syscall_def *arm_syscall_iterate(unsigned int spot)
-{
- /* XXX - no safety checks here */
- return &arm_syscall_table[spot];
-}
diff --git a/src/arch-mips-syscalls.c b/src/arch-mips-syscalls.c
deleted file mode 100644
index c0c5d40..0000000
--- a/src/arch-mips-syscalls.c
+++ /dev/null
@@ -1,562 +0,0 @@
-/**
- * Enhanced Seccomp MIPS Specific Code
- *
- * Copyright (c) 2014 Imagination Technologies Ltd.
- * Author: Markos Chandras <markos.chandras@imgtec.com>
- *
- */
-
-/*
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License as
- * published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, see <http://www.gnu.org/licenses>.
- */
-
-#include <string.h>
-
-#include <seccomp.h>
-
-#include "arch.h"
-#include "arch-mips.h"
-
-/* O32 ABI */
-#define __SCMP_NR_BASE 4000
-
-/* NOTE: based on Linux v5.4-rc4 */
-const struct arch_syscall_def mips_syscall_table[] = { \
- { "_llseek", (__SCMP_NR_BASE + 140) },
- { "_newselect", (__SCMP_NR_BASE + 142) },
- { "_sysctl", (__SCMP_NR_BASE + 153) },
- { "accept", (__SCMP_NR_BASE + 168) },
- { "accept4", (__SCMP_NR_BASE + 334) },
- { "access", (__SCMP_NR_BASE + 33) },
- { "acct", (__SCMP_NR_BASE + 51) },
- { "add_key", (__SCMP_NR_BASE + 280) },
- { "adjtimex", (__SCMP_NR_BASE + 124) },
- { "afs_syscall", __SCMP_NR_BASE + 137 },
- { "alarm", (__SCMP_NR_BASE + 27) },
- { "arm_fadvise64_64", __PNR_arm_fadvise64_64 },
- { "arm_sync_file_range", __PNR_arm_sync_file_range },
- { "arch_prctl", __PNR_arch_prctl },
- { "bdflush", (__SCMP_NR_BASE + 134) },
- { "bind", (__SCMP_NR_BASE + 169) },
- { "bpf", (__SCMP_NR_BASE + 355) },
- { "break", __SCMP_NR_BASE + 17 },
- { "breakpoint", __PNR_breakpoint },
- { "brk", (__SCMP_NR_BASE + 45) },
- { "cachectl", (__SCMP_NR_BASE + 148) },
- { "cacheflush", (__SCMP_NR_BASE + 147) },
- { "capget", (__SCMP_NR_BASE + 204) },
- { "capset", (__SCMP_NR_BASE + 205) },
- { "chdir", (__SCMP_NR_BASE + 12) },
- { "chmod", (__SCMP_NR_BASE + 15) },
- { "chown", (__SCMP_NR_BASE + 202) },
- { "chown32", (__PNR_chown32) },
- { "chroot", (__SCMP_NR_BASE + 61) },
- { "clock_adjtime", (__SCMP_NR_BASE + 341) },
- { "clock_adjtime64", (__SCMP_NR_BASE + 405) },
- { "clock_getres", (__SCMP_NR_BASE + 264) },
- { "clock_getres_time64", (__SCMP_NR_BASE + 406) },
- { "clock_gettime", (__SCMP_NR_BASE + 263) },
- { "clock_gettime64", (__SCMP_NR_BASE + 403) },
- { "clock_nanosleep", (__SCMP_NR_BASE + 265) },
- { "clock_nanosleep_time64", (__SCMP_NR_BASE + 407) },
- { "clock_settime", (__SCMP_NR_BASE + 262) },
- { "clock_settime64", (__SCMP_NR_BASE + 404) },
- { "clone", (__SCMP_NR_BASE + 120) },
- { "clone3", (__SCMP_NR_BASE + 435) },
- { "close", (__SCMP_NR_BASE + 6) },
- { "connect", (__SCMP_NR_BASE + 170) },
- { "copy_file_range", (__SCMP_NR_BASE + 360) },
- { "creat", (__SCMP_NR_BASE + 8) },
- { "create_module", __SCMP_NR_BASE + 127 },
- { "delete_module", (__SCMP_NR_BASE + 129) },
- { "dup", (__SCMP_NR_BASE + 41) },
- { "dup2", (__SCMP_NR_BASE + 63) },
- { "dup3", (__SCMP_NR_BASE + 327) },
- { "epoll_create", (__SCMP_NR_BASE + 248) },
- { "epoll_create1", (__SCMP_NR_BASE + 326) },
- { "epoll_ctl", (__SCMP_NR_BASE + 249) },
- { "epoll_ctl_old", __PNR_epoll_ctl_old },
- { "epoll_pwait", (__SCMP_NR_BASE + 313) },
- { "epoll_wait", (__SCMP_NR_BASE + 250) },
- { "epoll_wait_old", __PNR_epoll_wait_old },
- { "eventfd", (__SCMP_NR_BASE + 319) },
- { "eventfd2", (__SCMP_NR_BASE + 325) },
- { "execve", (__SCMP_NR_BASE + 11) },
- { "execveat", (__SCMP_NR_BASE + 356) },
- { "exit", (__SCMP_NR_BASE + 1) },
- { "exit_group", (__SCMP_NR_BASE + 246) },
- { "faccessat", (__SCMP_NR_BASE + 300) },
- { "fadvise64", __SCMP_NR_BASE + 254 },
- { "fadvise64_64", __PNR_fadvise64_64 },
- { "fallocate", (__SCMP_NR_BASE + 320) },
- { "fanotify_init", (__SCMP_NR_BASE + 336) },
- { "fanotify_mark", (__SCMP_NR_BASE + 337) },
- { "fchdir", (__SCMP_NR_BASE + 133) },
- { "fchmod", (__SCMP_NR_BASE + 94) },
- { "fchmodat", (__SCMP_NR_BASE + 299) },
- { "fchown", (__SCMP_NR_BASE + 95) },
- { "fchown32", (__PNR_fchown32) },
- { "fchownat", (__SCMP_NR_BASE + 291) },
- { "fcntl", (__SCMP_NR_BASE + 55) },
- { "fcntl64", (__SCMP_NR_BASE + 220) },
- { "fdatasync", (__SCMP_NR_BASE + 152) },
- { "fgetxattr", (__SCMP_NR_BASE + 229) },
- { "finit_module", (__SCMP_NR_BASE + 348) },
- { "flistxattr", (__SCMP_NR_BASE + 232) },
- { "flock", (__SCMP_NR_BASE + 143) },
- { "fork", (__SCMP_NR_BASE + 2) },
- { "fremovexattr", (__SCMP_NR_BASE + 235) },
- { "fsconfig", (__SCMP_NR_BASE + 431) },
- { "fsetxattr", (__SCMP_NR_BASE + 226) },
- { "fsmount", (__SCMP_NR_BASE + 432) },
- { "fsopen", (__SCMP_NR_BASE + 430) },
- { "fspick", (__SCMP_NR_BASE + 433) },
- { "fstat", (__SCMP_NR_BASE + 108) },
- { "fstat64", (__SCMP_NR_BASE + 215) },
- { "fstatat64", (__SCMP_NR_BASE + 293) },
- { "fstatfs", (__SCMP_NR_BASE + 100) },
- { "fstatfs64", (__SCMP_NR_BASE + 256) },
- { "fsync", (__SCMP_NR_BASE + 118) },
- { "ftime", (__SCMP_NR_BASE + 35) },
- { "ftruncate", (__SCMP_NR_BASE + 93) },
- { "ftruncate64", (__SCMP_NR_BASE + 212) },
- { "futex", (__SCMP_NR_BASE + 238) },
- { "futex_time64", (__SCMP_NR_BASE + 422) },
- { "futimesat", (__SCMP_NR_BASE + 292) },
- { "get_kernel_syms", (__SCMP_NR_BASE + 130) },
- { "get_mempolicy", (__SCMP_NR_BASE + 269) },
- { "get_robust_list", (__SCMP_NR_BASE + 310) },
- { "get_thread_area", __PNR_get_thread_area },
- { "get_tls", __PNR_get_tls },
- { "getcpu", (__SCMP_NR_BASE + 312) },
- { "getcwd", (__SCMP_NR_BASE + 203) },
- { "getdents", (__SCMP_NR_BASE + 141) },
- { "getdents64", (__SCMP_NR_BASE + 219) },
- { "getegid", (__SCMP_NR_BASE + 50) },
- { "getegid32", __PNR_getegid32 },
- { "geteuid", (__SCMP_NR_BASE + 49) },
- { "geteuid32", __PNR_geteuid32 },
- { "getgid", (__SCMP_NR_BASE + 47) },
- { "getgid32", __PNR_getgid32 },
- { "getgroups", (__SCMP_NR_BASE + 80) },
- { "getgroups32", __PNR_getgroups32 },
- { "getitimer", (__SCMP_NR_BASE + 105) },
- { "getpeername", (__SCMP_NR_BASE + 171) },
- { "getpgid", (__SCMP_NR_BASE + 132) },
- { "getpgrp", (__SCMP_NR_BASE + 65) },
- { "getpid", (__SCMP_NR_BASE + 20) },
- { "getpmsg", (__SCMP_NR_BASE + 208) },
- { "getppid", (__SCMP_NR_BASE + 64) },
- { "getpriority", (__SCMP_NR_BASE + 96) },
- { "getrandom", (__SCMP_NR_BASE + 353) },
- { "getresgid", (__SCMP_NR_BASE + 191) },
- { "getresgid32", __PNR_getresgid32 },
- { "getresuid", (__SCMP_NR_BASE + 186) },
- { "getresuid32", __PNR_getresuid32 },
- { "getrlimit", (__SCMP_NR_BASE + 76) },
- { "getrusage", (__SCMP_NR_BASE + 77) },
- { "getsid", (__SCMP_NR_BASE + 151) },
- { "getsockname", (__SCMP_NR_BASE + 172) },
- { "getsockopt", (__SCMP_NR_BASE + 173) },
- { "gettid", (__SCMP_NR_BASE + 222) },
- { "gettimeofday", (__SCMP_NR_BASE + 78) },
- { "getuid", (__SCMP_NR_BASE + 24) },
- { "getuid32", __PNR_getuid32 },
- { "getxattr", (__SCMP_NR_BASE + 227) },
- { "gtty", (__SCMP_NR_BASE + 32) },
- { "idle", (__SCMP_NR_BASE + 112) },
- { "init_module", (__SCMP_NR_BASE + 128) },
- { "inotify_add_watch", (__SCMP_NR_BASE + 285) },
- { "inotify_init", (__SCMP_NR_BASE + 284) },
- { "inotify_init1", (__SCMP_NR_BASE + 329) },
- { "inotify_rm_watch", (__SCMP_NR_BASE + 286) },
- { "io_cancel", (__SCMP_NR_BASE + 245) },
- { "io_destroy", (__SCMP_NR_BASE + 242) },
- { "io_getevents", (__SCMP_NR_BASE + 243) },
- { "io_pgetevents", (__SCMP_NR_BASE + 368) },
- { "io_pgetevents_time64", (__SCMP_NR_BASE + 416) },
- { "io_setup", (__SCMP_NR_BASE + 241) },
- { "io_submit", (__SCMP_NR_BASE + 244) },
- { "io_uring_setup", (__SCMP_NR_BASE + 425) },
- { "io_uring_enter", (__SCMP_NR_BASE + 426) },
- { "io_uring_register", (__SCMP_NR_BASE + 427) },
- { "ioctl", (__SCMP_NR_BASE + 54) },
- { "ioperm", (__SCMP_NR_BASE + 101) },
- { "iopl", (__SCMP_NR_BASE + 110) },
- { "ioprio_get", (__SCMP_NR_BASE + 315) },
- { "ioprio_set", (__SCMP_NR_BASE + 314) },
- { "ipc", (__SCMP_NR_BASE + 117) },
- { "kcmp", (__SCMP_NR_BASE + 347) },
- { "kexec_file_load", __PNR_kexec_file_load },
- { "kexec_load", (__SCMP_NR_BASE + 311) },
- { "keyctl", (__SCMP_NR_BASE + 282) },
- { "kill", (__SCMP_NR_BASE + 37) },
- { "lchown", (__SCMP_NR_BASE + 16) },
- { "lchown32", __PNR_lchown32 },
- { "lgetxattr", (__SCMP_NR_BASE + 228) },
- { "link", (__SCMP_NR_BASE + 9) },
- { "linkat", (__SCMP_NR_BASE + 296) },
- { "listen", (__SCMP_NR_BASE + 174) },
- { "listxattr", (__SCMP_NR_BASE + 230) },
- { "llistxattr", (__SCMP_NR_BASE + 231) },
- { "lock", (__SCMP_NR_BASE + 53) },
- { "lookup_dcookie", (__SCMP_NR_BASE + 247) },
- { "lremovexattr", (__SCMP_NR_BASE + 234) },
- { "lseek", (__SCMP_NR_BASE + 19) },
- { "lsetxattr", (__SCMP_NR_BASE + 225) },
- { "lstat", (__SCMP_NR_BASE + 107) },
- { "lstat64", (__SCMP_NR_BASE + 214) },
- { "madvise", (__SCMP_NR_BASE + 218) },
- { "mbind", (__SCMP_NR_BASE + 268) },
- { "membarrier", (__SCMP_NR_BASE + 358) },
- { "memfd_create", (__SCMP_NR_BASE + 354) },
- { "migrate_pages", (__SCMP_NR_BASE + 287) },
- { "mincore", (__SCMP_NR_BASE + 217) },
- { "mkdir", (__SCMP_NR_BASE + 39) },
- { "mkdirat", (__SCMP_NR_BASE + 289) },
- { "mknod", (__SCMP_NR_BASE + 14) },
- { "mknodat", (__SCMP_NR_BASE + 290) },
- { "mlock", (__SCMP_NR_BASE + 154) },
- { "mlock2", (__SCMP_NR_BASE + 359) },
- { "mlockall", (__SCMP_NR_BASE + 156) },
- { "mmap", (__SCMP_NR_BASE + 90) },
- { "mmap2", (__SCMP_NR_BASE + 210) },
- { "modify_ldt", (__SCMP_NR_BASE + 123) },
- { "mount", (__SCMP_NR_BASE + 21) },
- { "move_mount", (__SCMP_NR_BASE + 429) },
- { "move_pages", (__SCMP_NR_BASE + 308) },
- { "mprotect", (__SCMP_NR_BASE + 125) },
- { "mpx", (__SCMP_NR_BASE + 56) },
- { "mq_getsetattr", (__SCMP_NR_BASE + 276) },
- { "mq_notify", (__SCMP_NR_BASE + 275) },
- { "mq_open", (__SCMP_NR_BASE + 271) },
- { "mq_timedreceive", (__SCMP_NR_BASE + 274) },
- { "mq_timedreceive_time64", (__SCMP_NR_BASE + 419) },
- { "mq_timedsend", (__SCMP_NR_BASE + 273) },
- { "mq_timedsend_time64", (__SCMP_NR_BASE + 418) },
- { "mq_unlink", (__SCMP_NR_BASE + 272) },
- { "mremap", (__SCMP_NR_BASE + 167) },
- { "msgctl", (__SCMP_NR_BASE + 402) },
- { "msgget", (__SCMP_NR_BASE + 399) },
- { "msgrcv", (__SCMP_NR_BASE + 401) },
- { "msgsnd", (__SCMP_NR_BASE + 400) },
- { "msync", (__SCMP_NR_BASE + 144) },
- { "multiplexer", __PNR_multiplexer },
- { "munlock", (__SCMP_NR_BASE + 155) },
- { "munlockall", (__SCMP_NR_BASE + 157) },
- { "munmap", (__SCMP_NR_BASE + 91) },
- { "name_to_handle_at", (__SCMP_NR_BASE + 339) },
- { "nanosleep", (__SCMP_NR_BASE + 166) },
- { "newfstatat", __PNR_newfstatat },
- { "nfsservctl", (__SCMP_NR_BASE + 189) },
- { "nice", (__SCMP_NR_BASE + 34) },
- { "oldfstat", __PNR_oldfstat },
- { "oldlstat", __PNR_oldlstat },
- { "oldolduname", __PNR_oldolduname },
- { "oldstat", __PNR_oldstat },
- { "olduname", __PNR_olduname },
- { "oldwait4", __PNR_oldwait4 },
- { "open", (__SCMP_NR_BASE + 5) },
- { "open_by_handle_at", (__SCMP_NR_BASE + 340) },
- { "open_tree", (__SCMP_NR_BASE + 428) },
- { "openat", (__SCMP_NR_BASE + 288) },
- { "pause", (__SCMP_NR_BASE + 29) },
- { "pciconfig_iobase", __PNR_pciconfig_iobase },
- { "pciconfig_read", __PNR_pciconfig_read },
- { "pciconfig_write", __PNR_pciconfig_write },
- { "perf_event_open", (__SCMP_NR_BASE + 333) },
- { "personality", (__SCMP_NR_BASE + 136) },
- { "pidfd_open", (__SCMP_NR_BASE + 434) },
- { "pidfd_send_signal", (__SCMP_NR_BASE + 424) },
- { "pipe", (__SCMP_NR_BASE + 42) },
- { "pipe2", (__SCMP_NR_BASE + 328) },
- { "pivot_root", (__SCMP_NR_BASE + 216) },
- { "pkey_alloc", (__SCMP_NR_BASE + 364) },
- { "pkey_free", (__SCMP_NR_BASE + 365) },
- { "pkey_mprotect", (__SCMP_NR_BASE + 363) },
- { "poll", (__SCMP_NR_BASE + 188) },
- { "ppoll", (__SCMP_NR_BASE + 302) },
- { "ppoll_time64", (__SCMP_NR_BASE + 414) },
- { "prctl", (__SCMP_NR_BASE + 192) },
- { "pread64", (__SCMP_NR_BASE + 200) },
- { "preadv", (__SCMP_NR_BASE + 330) },
- { "preadv2", (__SCMP_NR_BASE + 361) },
- { "prlimit64", (__SCMP_NR_BASE + 338) },
- { "process_vm_readv", (__SCMP_NR_BASE + 345) },
- { "process_vm_writev", (__SCMP_NR_BASE + 346) },
- { "prof", (__SCMP_NR_BASE + 44) },
- { "profil", (__SCMP_NR_BASE + 98) },
- { "pselect6", (__SCMP_NR_BASE + 301) },
- { "pselect6_time64", (__SCMP_NR_BASE + 413) },
- { "ptrace", (__SCMP_NR_BASE + 26) },
- { "putpmsg", (__SCMP_NR_BASE + 209) },
- { "pwrite64", (__SCMP_NR_BASE + 201) },
- { "pwritev", (__SCMP_NR_BASE + 331) },
- { "pwritev2", (__SCMP_NR_BASE + 362) },
- { "query_module", (__SCMP_NR_BASE + 187) },
- { "quotactl", (__SCMP_NR_BASE + 131) },
- { "read", (__SCMP_NR_BASE + 3) },
- { "readahead", (__SCMP_NR_BASE + 223) },
- { "readdir", (__SCMP_NR_BASE + 89) },
- { "readlink", (__SCMP_NR_BASE + 85) },
- { "readlinkat", (__SCMP_NR_BASE + 298) },
- { "readv", (__SCMP_NR_BASE + 145) },
- { "reboot", (__SCMP_NR_BASE + 88) },
- { "recv", (__SCMP_NR_BASE + 175) },
- { "recvfrom", (__SCMP_NR_BASE + 176) },
- { "recvmmsg", (__SCMP_NR_BASE + 335) },
- { "recvmmsg_time64", (__SCMP_NR_BASE + 417) },
- { "recvmsg", (__SCMP_NR_BASE + 177) },
- { "remap_file_pages", (__SCMP_NR_BASE + 251) },
- { "removexattr", (__SCMP_NR_BASE + 233) },
- { "rename", (__SCMP_NR_BASE + 38) },
- { "renameat", (__SCMP_NR_BASE + 295) },
- { "renameat2", (__SCMP_NR_BASE + 351) },
- { "request_key", (__SCMP_NR_BASE + 281) },
- { "restart_syscall", (__SCMP_NR_BASE + 253) },
- { "rmdir", (__SCMP_NR_BASE + 40) },
- { "rseq", (__SCMP_NR_BASE + 367) },
- { "rt_sigaction", (__SCMP_NR_BASE + 194) },
- { "rt_sigpending", (__SCMP_NR_BASE + 196) },
- { "rt_sigprocmask", (__SCMP_NR_BASE + 195) },
- { "rt_sigqueueinfo", (__SCMP_NR_BASE + 198) },
- { "rt_sigreturn", (__SCMP_NR_BASE + 193) },
- { "rt_sigsuspend", (__SCMP_NR_BASE + 199) },
- { "rt_sigtimedwait", (__SCMP_NR_BASE + 197) },
- { "rt_sigtimedwait_time64", (__SCMP_NR_BASE + 421) },
- { "rt_tgsigqueueinfo", (__SCMP_NR_BASE + 332) },
- { "rtas", __PNR_rtas },
- { "s390_guarded_storage", __PNR_s390_guarded_storage },
- { "s390_pci_mmio_read", __PNR_s390_pci_mmio_read },
- { "s390_pci_mmio_write", __PNR_s390_pci_mmio_write },
- { "s390_runtime_instr", __PNR_s390_runtime_instr },
- { "s390_sthyi", __PNR_s390_sthyi },
- { "sched_get_priority_max", (__SCMP_NR_BASE + 163) },
- { "sched_get_priority_min", (__SCMP_NR_BASE + 164) },
- { "sched_getaffinity", (__SCMP_NR_BASE + 240) },
- { "sched_getattr", (__SCMP_NR_BASE + 350) },
- { "sched_getparam", (__SCMP_NR_BASE + 159) },
- { "sched_getscheduler", (__SCMP_NR_BASE + 161) },
- { "sched_rr_get_interval", (__SCMP_NR_BASE + 165) },
- { "sched_rr_get_interval_time64", (__SCMP_NR_BASE + 423) },
- { "sched_setaffinity", (__SCMP_NR_BASE + 239) },
- { "sched_setattr", (__SCMP_NR_BASE + 349) },
- { "sched_setparam", (__SCMP_NR_BASE + 158) },
- { "sched_setscheduler", (__SCMP_NR_BASE + 160) },
- { "sched_yield", (__SCMP_NR_BASE + 162) },
- { "seccomp", (__SCMP_NR_BASE + 352) },
- { "security", __PNR_security },
- { "select", __PNR_select },
- { "semctl", (__SCMP_NR_BASE + 394) },
- { "semget", (__SCMP_NR_BASE + 393) },
- { "semop", __PNR_semop },
- { "semtimedop", __PNR_semtimedop },
- { "semtimedop_time64", (__SCMP_NR_BASE + 420) },
- { "send", (__SCMP_NR_BASE + 178) },
- { "sendfile", (__SCMP_NR_BASE + 207) },
- { "sendfile64", (__SCMP_NR_BASE + 237) },
- { "sendmmsg", (__SCMP_NR_BASE + 343) },
- { "sendmsg", (__SCMP_NR_BASE + 179) },
- { "sendto", (__SCMP_NR_BASE + 180) },
- { "set_mempolicy", (__SCMP_NR_BASE + 270) },
- { "set_robust_list", (__SCMP_NR_BASE + 309) },
- { "set_thread_area", (__SCMP_NR_BASE + 283) },
- { "set_tid_address", (__SCMP_NR_BASE + 252) },
- { "set_tls", __PNR_set_tls },
- { "setdomainname", (__SCMP_NR_BASE + 121) },
- { "setfsgid", (__SCMP_NR_BASE + 139) },
- { "setfsgid32", __PNR_setfsgid32 },
- { "setfsuid", (__SCMP_NR_BASE + 138) },
- { "setfsuid32", __PNR_setfsuid32 },
- { "setgid", (__SCMP_NR_BASE + 46) },
- { "setgid32", __PNR_setgid32 },
- { "setgroups", (__SCMP_NR_BASE + 81) },
- { "setgroups32", __PNR_setgroups32 },
- { "sethostname", (__SCMP_NR_BASE + 74) },
- { "setitimer", (__SCMP_NR_BASE + 104) },
- { "setns", (__SCMP_NR_BASE + 344) },
- { "setpgid", (__SCMP_NR_BASE + 57) },
- { "setpriority", (__SCMP_NR_BASE + 97) },
- { "setregid", (__SCMP_NR_BASE + 71) },
- { "setregid32", __PNR_setregid32 },
- { "setresgid", (__SCMP_NR_BASE + 190) },
- { "setresgid32", __PNR_setresgid32 },
- { "setresuid", (__SCMP_NR_BASE + 185) },
- { "setresuid32", __PNR_setresuid32 },
- { "setreuid", (__SCMP_NR_BASE + 70) },
- { "setreuid32", __PNR_setreuid32 },
- { "setrlimit", (__SCMP_NR_BASE + 75) },
- { "setsid", (__SCMP_NR_BASE + 66) },
- { "setsockopt", (__SCMP_NR_BASE + 181) },
- { "settimeofday", (__SCMP_NR_BASE + 79) },
- { "setuid", (__SCMP_NR_BASE + 23) },
- { "setuid32", __PNR_setuid32 },
- { "setxattr", (__SCMP_NR_BASE + 224) },
- { "sgetmask", (__SCMP_NR_BASE + 68) },
- { "shmat", (__SCMP_NR_BASE + 397) },
- { "shmctl", (__SCMP_NR_BASE + 396) },
- { "shmdt", (__SCMP_NR_BASE + 398) },
- { "shmget", (__SCMP_NR_BASE + 395) },
- { "shutdown", (__SCMP_NR_BASE + 182) },
- { "sigaction", (__SCMP_NR_BASE + 67) },
- { "sigaltstack", (__SCMP_NR_BASE + 206) },
- { "signal", (__SCMP_NR_BASE + 48) },
- { "signalfd", (__SCMP_NR_BASE + 317) },
- { "signalfd4", (__SCMP_NR_BASE + 324) },
- { "sigpending", (__SCMP_NR_BASE + 73) },
- { "sigprocmask", (__SCMP_NR_BASE + 126) },
- { "sigreturn", (__SCMP_NR_BASE + 119) },
- { "sigsuspend", (__SCMP_NR_BASE + 72) },
- { "socket", (__SCMP_NR_BASE + 183) },
- { "socketcall", (__SCMP_NR_BASE + 102) },
- { "socketpair", (__SCMP_NR_BASE + 184) },
- { "splice", (__SCMP_NR_BASE + 304) },
- { "spu_create", __PNR_spu_create },
- { "spu_run", __PNR_spu_run },
- { "ssetmask", (__SCMP_NR_BASE + 69) },
- { "stat", (__SCMP_NR_BASE + 106) },
- { "stat64", (__SCMP_NR_BASE + 213) },
- { "statfs", (__SCMP_NR_BASE + 99) },
- { "statfs64", (__SCMP_NR_BASE + 255) },
- { "statx", (__SCMP_NR_BASE + 366) },
- { "stime", (__SCMP_NR_BASE + 25) },
- { "stty", (__SCMP_NR_BASE + 31) },
- { "subpage_prot", __PNR_subpage_prot },
- { "swapcontext", __PNR_swapcontext },
- { "swapoff", (__SCMP_NR_BASE + 115) },
- { "swapon", (__SCMP_NR_BASE + 87) },
- { "switch_endian", __PNR_switch_endian },
- { "symlink", (__SCMP_NR_BASE + 83) },
- { "symlinkat", (__SCMP_NR_BASE + 297) },
- { "sync", (__SCMP_NR_BASE + 36) },
- { "sync_file_range", (__SCMP_NR_BASE + 305) },
- { "sync_file_range2", __PNR_sync_file_range2 },
- { "syncfs", (__SCMP_NR_BASE + 342) },
- { "syscall", (__SCMP_NR_BASE + 0) },
- { "sys_debug_setcontext", __PNR_sys_debug_setcontext },
- { "sysfs", (__SCMP_NR_BASE + 135) },
- { "sysinfo", (__SCMP_NR_BASE + 116) },
- { "syslog", (__SCMP_NR_BASE + 103) },
- { "sysmips", (__SCMP_NR_BASE + 149) },
- { "tee", (__SCMP_NR_BASE + 306) },
- { "tgkill", (__SCMP_NR_BASE + 266) },
- { "time", (__SCMP_NR_BASE + 13) },
- { "timer_create", (__SCMP_NR_BASE + 257) },
- { "timer_delete", (__SCMP_NR_BASE + 261) },
- { "timer_getoverrun", (__SCMP_NR_BASE + 260) },
- { "timer_gettime", (__SCMP_NR_BASE + 259) },
- { "timer_gettime64", (__SCMP_NR_BASE + 408) },
- { "timer_settime", (__SCMP_NR_BASE + 258) },
- { "timer_settime64", (__SCMP_NR_BASE + 409) },
- { "timerfd", (__SCMP_NR_BASE + 318) },
- { "timerfd_create", (__SCMP_NR_BASE + 321) },
- { "timerfd_gettime", (__SCMP_NR_BASE + 322) },
- { "timerfd_gettime64", (__SCMP_NR_BASE + 410) },
- { "timerfd_settime", (__SCMP_NR_BASE + 323) },
- { "timerfd_settime64", (__SCMP_NR_BASE + 411) },
- { "times", (__SCMP_NR_BASE + 43) },
- { "tkill", (__SCMP_NR_BASE + 236) },
- { "truncate", (__SCMP_NR_BASE + 92) },
- { "truncate64", (__SCMP_NR_BASE + 211) },
- { "tuxcall", __PNR_tuxcall },
- { "ugetrlimit", __PNR_ugetrlimit },
- { "ulimit", (__SCMP_NR_BASE + 58) },
- { "umask", (__SCMP_NR_BASE + 60) },
- { "umount", (__SCMP_NR_BASE + 22) },
- { "umount2", (__SCMP_NR_BASE + 52) },
- { "uname", (__SCMP_NR_BASE + 122) },
- { "unlink", (__SCMP_NR_BASE + 10) },
- { "unlinkat", (__SCMP_NR_BASE + 294) },
- { "unshare", (__SCMP_NR_BASE + 303) },
- { "uselib", (__SCMP_NR_BASE + 86) },
- { "userfaultfd", (__SCMP_NR_BASE + 357) },
- { "usr26", __PNR_usr26 },
- { "usr32", __PNR_usr32 },
- { "ustat", (__SCMP_NR_BASE + 62) },
- { "utime", (__SCMP_NR_BASE + 30) },
- { "utimensat", (__SCMP_NR_BASE + 316) },
- { "utimensat_time64", (__SCMP_NR_BASE + 412) },
- { "utimes", (__SCMP_NR_BASE + 267) },
- { "vfork", __PNR_vfork },
- { "vhangup", (__SCMP_NR_BASE + 111) },
- { "vm86", (__SCMP_NR_BASE + 113) },
- { "vm86old", __PNR_vm86old },
- { "vmsplice", (__SCMP_NR_BASE + 307) },
- { "vserver", (__SCMP_NR_BASE + 277) },
- { "wait4", (__SCMP_NR_BASE + 114) },
- { "waitid", (__SCMP_NR_BASE + 278) },
- { "waitpid", (__SCMP_NR_BASE + 7) },
- { "write", (__SCMP_NR_BASE + 4) },
- { "writev", (__SCMP_NR_BASE + 146) },
- { NULL, __NR_SCMP_ERROR },
-};
-
-/**
- * Resolve a syscall name to a number
- * @param name the syscall name
- *
- * Resolve the given syscall name to the syscall number using the syscall table.
- * Returns the syscall number on success, including negative pseudo syscall
- * numbers; returns __NR_SCMP_ERROR on failure.
- *
- */
-int mips_syscall_resolve_name(const char *name)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = mips_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].name != NULL; iter++) {
- if (strcmp(name, table[iter].name) == 0)
- return table[iter].num;
- }
-
- return __NR_SCMP_ERROR;
-}
-
-/**
- * Resolve a syscall number to a name
- * @param num the syscall number
- *
- * Resolve the given syscall number to the syscall name using the syscall table.
- * Returns a pointer to the syscall name string on success, including pseudo
- * syscall names; returns NULL on failure.
- *
- */
-const char *mips_syscall_resolve_num(int num)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = mips_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
- if (num == table[iter].num)
- return table[iter].name;
- }
-
- return NULL;
-}
-
-/**
- * Iterate through the syscall table and return the syscall mapping
- * @param spot the offset into the syscall table
- *
- * Return the syscall mapping at position @spot or NULL on failure. This
- * function should only ever be used internally by libseccomp.
- *
- */
-const struct arch_syscall_def *mips_syscall_iterate(unsigned int spot)
-{
- /* XXX - no safety checks here */
- return &mips_syscall_table[spot];
-}
diff --git a/src/arch-mips64-syscalls.c b/src/arch-mips64-syscalls.c
deleted file mode 100644
index af23ff4..0000000
--- a/src/arch-mips64-syscalls.c
+++ /dev/null
@@ -1,562 +0,0 @@
-/**
- * Enhanced Seccomp MIPS64 Specific Code
- *
- * Copyright (c) 2014 Red Hat <pmoore@redhat.com>
- * Author: Paul Moore <paul@paul-moore.com>
- *
- */
-
-/*
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License as
- * published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, see <http://www.gnu.org/licenses>.
- */
-
-#include <string.h>
-
-#include <seccomp.h>
-
-#include "arch.h"
-#include "arch-mips64.h"
-
-/* 64 ABI */
-#define __SCMP_NR_BASE 5000
-
-/* NOTE: based on Linux v5.4-rc4 */
-const struct arch_syscall_def mips64_syscall_table[] = { \
- { "_llseek", __PNR__llseek },
- { "_newselect", (__SCMP_NR_BASE + 22) },
- { "_sysctl", (__SCMP_NR_BASE + 152) },
- { "accept", (__SCMP_NR_BASE + 42) },
- { "accept4", (__SCMP_NR_BASE + 293) },
- { "access", (__SCMP_NR_BASE + 20) },
- { "acct", (__SCMP_NR_BASE + 158) },
- { "add_key", (__SCMP_NR_BASE + 239) },
- { "adjtimex", (__SCMP_NR_BASE + 154) },
- { "afs_syscall", (__SCMP_NR_BASE + 176) },
- { "alarm", (__SCMP_NR_BASE + 37) },
- { "arm_fadvise64_64", __PNR_arm_fadvise64_64 },
- { "arm_sync_file_range", __PNR_arm_sync_file_range },
- { "arch_prctl", __PNR_arch_prctl },
- { "bdflush", __PNR_bdflush },
- { "bind", (__SCMP_NR_BASE + 48) },
- { "bpf", (__SCMP_NR_BASE + 315) },
- { "break", __PNR_break },
- { "breakpoint", __PNR_breakpoint },
- { "brk", (__SCMP_NR_BASE + 12) },
- { "cachectl", (__SCMP_NR_BASE + 198) },
- { "cacheflush", (__SCMP_NR_BASE + 197) },
- { "capget", (__SCMP_NR_BASE + 123) },
- { "capset", (__SCMP_NR_BASE + 124) },
- { "chdir", (__SCMP_NR_BASE + 78) },
- { "chmod", (__SCMP_NR_BASE + 88) },
- { "chown", (__SCMP_NR_BASE + 90) },
- { "chown32", __PNR_chown32 },
- { "chroot", (__SCMP_NR_BASE + 156) },
- { "clock_adjtime", (__SCMP_NR_BASE + 300) },
- { "clock_adjtime64", __PNR_clock_adjtime64 },
- { "clock_getres", (__SCMP_NR_BASE + 223) },
- { "clock_getres_time64", __PNR_clock_getres_time64 },
- { "clock_gettime", (__SCMP_NR_BASE + 222) },
- { "clock_gettime64", __PNR_clock_gettime64 },
- { "clock_nanosleep", (__SCMP_NR_BASE + 224) },
- { "clock_nanosleep_time64", __PNR_clock_nanosleep_time64 },
- { "clock_settime", (__SCMP_NR_BASE + 221) },
- { "clock_settime64", __PNR_clock_settime64 },
- { "clone", (__SCMP_NR_BASE + 55) },
- { "clone3", (__SCMP_NR_BASE + 435) },
- { "close", (__SCMP_NR_BASE + 3) },
- { "connect", (__SCMP_NR_BASE + 41) },
- { "copy_file_range", (__SCMP_NR_BASE + 320) },
- { "creat", (__SCMP_NR_BASE + 83) },
- { "create_module", (__SCMP_NR_BASE + 167) },
- { "delete_module", (__SCMP_NR_BASE + 169) },
- { "dup", (__SCMP_NR_BASE + 31) },
- { "dup2", (__SCMP_NR_BASE + 32) },
- { "dup3", (__SCMP_NR_BASE + 286) },
- { "epoll_create", (__SCMP_NR_BASE + 207) },
- { "epoll_create1", (__SCMP_NR_BASE + 285) },
- { "epoll_ctl", (__SCMP_NR_BASE + 208) },
- { "epoll_ctl_old", __PNR_epoll_ctl_old },
- { "epoll_pwait", (__SCMP_NR_BASE + 272) },
- { "epoll_wait", (__SCMP_NR_BASE + 209) },
- { "epoll_wait_old", __PNR_epoll_wait_old },
- { "eventfd", (__SCMP_NR_BASE + 278) },
- { "eventfd2", (__SCMP_NR_BASE + 284) },
- { "execve", (__SCMP_NR_BASE + 57) },
- { "execveat", (__SCMP_NR_BASE + 316) },
- { "exit", (__SCMP_NR_BASE + 58) },
- { "exit_group", (__SCMP_NR_BASE + 205) },
- { "faccessat", (__SCMP_NR_BASE + 259) },
- { "fadvise64", (__SCMP_NR_BASE + 215) },
- { "fadvise64_64", __PNR_fadvise64_64 },
- { "fallocate", (__SCMP_NR_BASE + 279) },
- { "fanotify_init", (__SCMP_NR_BASE + 295) },
- { "fanotify_mark", (__SCMP_NR_BASE + 296) },
- { "fchdir", (__SCMP_NR_BASE + 79) },
- { "fchmod", (__SCMP_NR_BASE + 89) },
- { "fchmodat", (__SCMP_NR_BASE + 258) },
- { "fchown", (__SCMP_NR_BASE + 91) },
- { "fchown32", __PNR_fchown32 },
- { "fchownat", (__SCMP_NR_BASE + 250) },
- { "fcntl", (__SCMP_NR_BASE + 70) },
- { "fcntl64", __PNR_fcntl64 },
- { "fdatasync", (__SCMP_NR_BASE + 73) },
- { "fgetxattr", (__SCMP_NR_BASE + 185) },
- { "finit_module", (__SCMP_NR_BASE + 307) },
- { "flistxattr", (__SCMP_NR_BASE + 188) },
- { "flock", (__SCMP_NR_BASE + 71) },
- { "fork", (__SCMP_NR_BASE + 56) },
- { "fremovexattr", (__SCMP_NR_BASE + 191) },
- { "fsconfig", (__SCMP_NR_BASE + 431) },
- { "fsetxattr", (__SCMP_NR_BASE + 182) },
- { "fsmount", (__SCMP_NR_BASE + 432) },
- { "fsopen", (__SCMP_NR_BASE + 430) },
- { "fspick", (__SCMP_NR_BASE + 433) },
- { "fstat", (__SCMP_NR_BASE + 5) },
- { "fstat64", __PNR_fstat64 },
- { "fstatat64", __PNR_fstat64 },
- { "fstatfs", (__SCMP_NR_BASE + 135) },
- { "fstatfs64", __PNR_fstatfs64 },
- { "fsync", (__SCMP_NR_BASE + 72) },
- { "ftime", __PNR_ftime },
- { "ftruncate", (__SCMP_NR_BASE + 75) },
- { "ftruncate64", __PNR_ftruncate64 },
- { "futex", (__SCMP_NR_BASE + 194) },
- { "futex_time64", __PNR_futex_time64 },
- { "futimesat", (__SCMP_NR_BASE + 251) },
- { "get_kernel_syms", (__SCMP_NR_BASE + 170) },
- { "get_mempolicy", (__SCMP_NR_BASE + 228) },
- { "get_robust_list", (__SCMP_NR_BASE + 269) },
- { "get_thread_area", __PNR_get_thread_area },
- { "get_tls", __PNR_get_tls },
- { "getcpu", (__SCMP_NR_BASE + 271) },
- { "getcwd", (__SCMP_NR_BASE + 77) },
- { "getdents", (__SCMP_NR_BASE + 76) },
- { "getdents64", (__SCMP_NR_BASE + 308) },
- { "getegid", (__SCMP_NR_BASE + 106) },
- { "getegid32", __PNR_getegid32 },
- { "geteuid", (__SCMP_NR_BASE + 105) },
- { "geteuid32", __PNR_geteuid32 },
- { "getgid", (__SCMP_NR_BASE + 102) },
- { "getgid32", __PNR_getgid32 },
- { "getgroups", (__SCMP_NR_BASE + 113) },
- { "getgroups32", __PNR_getgroups32 },
- { "getitimer", (__SCMP_NR_BASE + 35) },
- { "getpeername", (__SCMP_NR_BASE + 51) },
- { "getpgid", (__SCMP_NR_BASE + 119) },
- { "getpgrp", (__SCMP_NR_BASE + 109) },
- { "getpid", (__SCMP_NR_BASE + 38) },
- { "getpmsg", (__SCMP_NR_BASE + 174) },
- { "getppid", (__SCMP_NR_BASE + 108) },
- { "getpriority", (__SCMP_NR_BASE + 137) },
- { "getrandom", (__SCMP_NR_BASE + 313) },
- { "getresgid", (__SCMP_NR_BASE + 118) },
- { "getresgid32", __PNR_getresgid32 },
- { "getresuid", (__SCMP_NR_BASE + 116) },
- { "getresuid32", __PNR_getresuid32 },
- { "getrlimit", (__SCMP_NR_BASE + 95) },
- { "getrusage", (__SCMP_NR_BASE + 96) },
- { "getsid", (__SCMP_NR_BASE + 122) },
- { "getsockname", (__SCMP_NR_BASE + 50) },
- { "getsockopt", (__SCMP_NR_BASE + 54) },
- { "gettid", (__SCMP_NR_BASE + 178) },
- { "gettimeofday", (__SCMP_NR_BASE + 94) },
- { "getuid", (__SCMP_NR_BASE + 100) },
- { "getuid32", __PNR_getuid32 },
- { "getxattr", (__SCMP_NR_BASE + 183) },
- { "gtty", __PNR_gtty },
- { "idle", __PNR_idle },
- { "init_module", (__SCMP_NR_BASE + 168) },
- { "inotify_add_watch", (__SCMP_NR_BASE + 244) },
- { "inotify_init", (__SCMP_NR_BASE + 243) },
- { "inotify_init1", (__SCMP_NR_BASE + 288) },
- { "inotify_rm_watch", (__SCMP_NR_BASE + 245) },
- { "io_cancel", (__SCMP_NR_BASE + 204) },
- { "io_destroy", (__SCMP_NR_BASE + 201) },
- { "io_getevents", (__SCMP_NR_BASE + 202) },
- { "io_pgetevents", (__SCMP_NR_BASE + 328) },
- { "io_pgetevents_time64", __PNR_io_pgetevents_time64 },
- { "io_setup", (__SCMP_NR_BASE + 200) },
- { "io_submit", (__SCMP_NR_BASE + 203) },
- { "io_uring_setup", (__SCMP_NR_BASE + 425) },
- { "io_uring_enter", (__SCMP_NR_BASE + 426) },
- { "io_uring_register", (__SCMP_NR_BASE + 427) },
- { "ioctl", (__SCMP_NR_BASE + 15) },
- { "ioperm", __PNR_ioperm },
- { "iopl", __PNR_iopl },
- { "ioprio_get", (__SCMP_NR_BASE + 274) },
- { "ioprio_set", (__SCMP_NR_BASE + 273) },
- { "ipc", __PNR_ipc },
- { "kcmp", (__SCMP_NR_BASE + 306) },
- { "kexec_file_load", __PNR_kexec_file_load },
- { "kexec_load", (__SCMP_NR_BASE + 270) },
- { "keyctl", (__SCMP_NR_BASE + 241) },
- { "kill", (__SCMP_NR_BASE + 60) },
- { "lchown", (__SCMP_NR_BASE + 92) },
- { "lchown32", __PNR_lchown32 },
- { "lgetxattr", (__SCMP_NR_BASE + 184) },
- { "link", (__SCMP_NR_BASE + 84) },
- { "linkat", (__SCMP_NR_BASE + 255) },
- { "listen", (__SCMP_NR_BASE + 49) },
- { "listxattr", (__SCMP_NR_BASE + 186) },
- { "llistxattr", (__SCMP_NR_BASE + 187) },
- { "lock", __PNR_lock },
- { "lookup_dcookie", (__SCMP_NR_BASE + 206) },
- { "lremovexattr", (__SCMP_NR_BASE + 190) },
- { "lseek", (__SCMP_NR_BASE + 8) },
- { "lsetxattr", (__SCMP_NR_BASE + 181) },
- { "lstat", (__SCMP_NR_BASE + 6) },
- { "lstat64", __PNR_lstat64 },
- { "madvise", (__SCMP_NR_BASE + 27) },
- { "mbind", (__SCMP_NR_BASE + 227) },
- { "membarrier", (__SCMP_NR_BASE + 318) },
- { "memfd_create", (__SCMP_NR_BASE + 314) },
- { "migrate_pages", (__SCMP_NR_BASE + 246) },
- { "mincore", (__SCMP_NR_BASE + 26) },
- { "mkdir", (__SCMP_NR_BASE + 81) },
- { "mkdirat", (__SCMP_NR_BASE + 248) },
- { "mknod", (__SCMP_NR_BASE + 131) },
- { "mknodat", (__SCMP_NR_BASE + 249) },
- { "mlock", (__SCMP_NR_BASE + 146) },
- { "mlock2", (__SCMP_NR_BASE + 319) },
- { "mlockall", (__SCMP_NR_BASE + 148) },
- { "mmap", (__SCMP_NR_BASE + 9) },
- { "mmap2", __PNR_mmap2 },
- { "modify_ldt", __PNR_modify_ldt },
- { "mount", (__SCMP_NR_BASE + 160) },
- { "move_mount", (__SCMP_NR_BASE + 429) },
- { "move_pages", (__SCMP_NR_BASE + 267) },
- { "mprotect", (__SCMP_NR_BASE + 10) },
- { "mpx", __PNR_mpx },
- { "mq_getsetattr", (__SCMP_NR_BASE + 235) },
- { "mq_notify", (__SCMP_NR_BASE + 234) },
- { "mq_open", (__SCMP_NR_BASE + 230) },
- { "mq_timedreceive", (__SCMP_NR_BASE + 233) },
- { "mq_timedreceive_time64", __PNR_mq_timedreceive_time64 },
- { "mq_timedsend", (__SCMP_NR_BASE + 232) },
- { "mq_timedsend_time64", __PNR_mq_timedsend_time64 },
- { "mq_unlink", (__SCMP_NR_BASE + 231) },
- { "mremap", (__SCMP_NR_BASE + 24) },
- { "msgctl", (__SCMP_NR_BASE + 69) },
- { "msgget", (__SCMP_NR_BASE + 66) },
- { "msgrcv", (__SCMP_NR_BASE + 68) },
- { "msgsnd", (__SCMP_NR_BASE + 67) },
- { "msync", (__SCMP_NR_BASE + 25) },
- { "multiplexer", __PNR_multiplexer },
- { "munlock", (__SCMP_NR_BASE + 147) },
- { "munlockall", (__SCMP_NR_BASE + 149) },
- { "munmap", (__SCMP_NR_BASE + 11) },
- { "name_to_handle_at", (__SCMP_NR_BASE + 298) },
- { "nanosleep", (__SCMP_NR_BASE + 34) },
- { "newfstatat", (__SCMP_NR_BASE + 252) },
- { "nfsservctl", (__SCMP_NR_BASE + 173) },
- { "nice", __PNR_nice },
- { "oldfstat", __PNR_oldfstat },
- { "oldlstat", __PNR_oldlstat },
- { "oldolduname", __PNR_oldolduname },
- { "oldstat", __PNR_oldstat },
- { "olduname", __PNR_olduname },
- { "oldwait4", __PNR_oldwait4 },
- { "open", (__SCMP_NR_BASE + 2) },
- { "open_by_handle_at", (__SCMP_NR_BASE + 299) },
- { "open_tree", (__SCMP_NR_BASE + 428) },
- { "openat", (__SCMP_NR_BASE + 247) },
- { "pause", (__SCMP_NR_BASE + 33) },
- { "pciconfig_iobase", __PNR_pciconfig_iobase },
- { "pciconfig_read", __PNR_pciconfig_read },
- { "pciconfig_write", __PNR_pciconfig_write },
- { "perf_event_open", (__SCMP_NR_BASE + 292) },
- { "personality", (__SCMP_NR_BASE + 132) },
- { "pidfd_open", (__SCMP_NR_BASE + 434) },
- { "pidfd_send_signal", (__SCMP_NR_BASE + 424) },
- { "pipe", (__SCMP_NR_BASE + 21) },
- { "pipe2", (__SCMP_NR_BASE + 287) },
- { "pivot_root", (__SCMP_NR_BASE + 151) },
- { "pkey_alloc", (__SCMP_NR_BASE + 324) },
- { "pkey_free", (__SCMP_NR_BASE + 325) },
- { "pkey_mprotect", (__SCMP_NR_BASE + 323) },
- { "poll", (__SCMP_NR_BASE + 7) },
- { "ppoll", (__SCMP_NR_BASE + 261) },
- { "ppoll_time64", __PNR_ppoll_time64 },
- { "prctl", (__SCMP_NR_BASE + 153) },
- { "pread64", (__SCMP_NR_BASE + 16) },
- { "preadv", (__SCMP_NR_BASE + 289) },
- { "preadv2", (__SCMP_NR_BASE + 321) },
- { "prlimit64", (__SCMP_NR_BASE + 297) },
- { "process_vm_readv", (__SCMP_NR_BASE + 304) },
- { "process_vm_writev", (__SCMP_NR_BASE + 305) },
- { "prof", __PNR_prof },
- { "profil", __PNR_profil },
- { "pselect6", (__SCMP_NR_BASE + 260) },
- { "pselect6_time64", __PNR_pselect6_time64 },
- { "ptrace", (__SCMP_NR_BASE + 99) },
- { "putpmsg", (__SCMP_NR_BASE + 175) },
- { "pwrite64", (__SCMP_NR_BASE + 17) },
- { "pwritev", (__SCMP_NR_BASE + 290) },
- { "pwritev2", (__SCMP_NR_BASE + 322) },
- { "query_module", (__SCMP_NR_BASE + 171) },
- { "quotactl", (__SCMP_NR_BASE + 172) },
- { "read", (__SCMP_NR_BASE + 0) },
- { "readahead", (__SCMP_NR_BASE + 179) },
- { "readdir", __PNR_readdir },
- { "readlink", (__SCMP_NR_BASE + 87) },
- { "readlinkat", (__SCMP_NR_BASE + 257) },
- { "readv", (__SCMP_NR_BASE + 18) },
- { "reboot", (__SCMP_NR_BASE + 164) },
- { "recv", __PNR_recv },
- { "recvfrom", (__SCMP_NR_BASE + 44) },
- { "recvmmsg", (__SCMP_NR_BASE + 294) },
- { "recvmmsg_time64", __PNR_recvmmsg_time64 },
- { "recvmsg", (__SCMP_NR_BASE + 46) },
- { "remap_file_pages", (__SCMP_NR_BASE + 210) },
- { "removexattr", (__SCMP_NR_BASE + 189) },
- { "rename", (__SCMP_NR_BASE + 80) },
- { "renameat", (__SCMP_NR_BASE + 254) },
- { "renameat2", (__SCMP_NR_BASE + 311) },
- { "request_key", (__SCMP_NR_BASE + 240) },
- { "restart_syscall", (__SCMP_NR_BASE + 213) },
- { "rmdir", (__SCMP_NR_BASE + 82) },
- { "rseq", (__SCMP_NR_BASE + 327) },
- { "rt_sigaction", (__SCMP_NR_BASE + 13) },
- { "rt_sigpending", (__SCMP_NR_BASE + 125) },
- { "rt_sigprocmask", (__SCMP_NR_BASE + 14) },
- { "rt_sigqueueinfo", (__SCMP_NR_BASE + 127) },
- { "rt_sigreturn", (__SCMP_NR_BASE + 211) },
- { "rt_sigsuspend", (__SCMP_NR_BASE + 128) },
- { "rt_sigtimedwait", (__SCMP_NR_BASE + 126) },
- { "rt_sigtimedwait_time64", __PNR_rt_sigtimedwait_time64 },
- { "rt_tgsigqueueinfo", (__SCMP_NR_BASE + 291) },
- { "rtas", __PNR_rtas },
- { "s390_guarded_storage", __PNR_s390_guarded_storage },
- { "s390_pci_mmio_read", __PNR_s390_pci_mmio_read },
- { "s390_pci_mmio_write", __PNR_s390_pci_mmio_write },
- { "s390_runtime_instr", __PNR_s390_runtime_instr },
- { "s390_sthyi", __PNR_s390_sthyi },
- { "sched_get_priority_max", (__SCMP_NR_BASE + 143) },
- { "sched_get_priority_min", (__SCMP_NR_BASE + 144) },
- { "sched_getaffinity", (__SCMP_NR_BASE + 196) },
- { "sched_getattr", (__SCMP_NR_BASE + 310) },
- { "sched_getparam", (__SCMP_NR_BASE + 140) },
- { "sched_getscheduler", (__SCMP_NR_BASE + 142) },
- { "sched_rr_get_interval", (__SCMP_NR_BASE + 145) },
- { "sched_rr_get_interval_time64", __PNR_sched_rr_get_interval_time64 },
- { "sched_setaffinity", (__SCMP_NR_BASE + 195) },
- { "sched_setattr", (__SCMP_NR_BASE + 309) },
- { "sched_setparam", (__SCMP_NR_BASE + 139) },
- { "sched_setscheduler", (__SCMP_NR_BASE + 141) },
- { "sched_yield", (__SCMP_NR_BASE + 23) },
- { "seccomp", (__SCMP_NR_BASE + 312) },
- { "security", __PNR_security },
- { "select", __PNR_select },
- { "semctl", (__SCMP_NR_BASE + 64) },
- { "semget", (__SCMP_NR_BASE + 62) },
- { "semop", (__SCMP_NR_BASE + 63) },
- { "semtimedop", (__SCMP_NR_BASE + 214) },
- { "semtimedop_time64", __PNR_semtimedop_time64 },
- { "send", __PNR_send },
- { "sendfile", (__SCMP_NR_BASE + 39) },
- { "sendfile64", __PNR_sendfile64 },
- { "sendmmsg", (__SCMP_NR_BASE + 302) },
- { "sendmsg", (__SCMP_NR_BASE + 45) },
- { "sendto", (__SCMP_NR_BASE + 43) },
- { "set_mempolicy", (__SCMP_NR_BASE + 229) },
- { "set_robust_list", (__SCMP_NR_BASE + 268) },
- { "set_thread_area", (__SCMP_NR_BASE + 242) },
- { "set_tid_address", (__SCMP_NR_BASE + 212) },
- { "set_tls", __PNR_set_tls },
- { "setdomainname", (__SCMP_NR_BASE + 166) },
- { "setfsgid", (__SCMP_NR_BASE + 121) },
- { "setfsgid32", __PNR_setfsgid32 },
- { "setfsuid", (__SCMP_NR_BASE + 120) },
- { "setfsuid32", __PNR_setfsuid32 },
- { "setgid", (__SCMP_NR_BASE + 104) },
- { "setgid32", __PNR_setgid32 },
- { "setgroups", (__SCMP_NR_BASE + 114) },
- { "setgroups32", __PNR_setgroups32 },
- { "sethostname", (__SCMP_NR_BASE + 165) },
- { "setitimer", (__SCMP_NR_BASE + 36) },
- { "setns", (__SCMP_NR_BASE + 303) },
- { "setpgid", (__SCMP_NR_BASE + 107) },
- { "setpriority", (__SCMP_NR_BASE + 138) },
- { "setregid", (__SCMP_NR_BASE + 112) },
- { "setregid32", __PNR_setregid32 },
- { "setresgid", (__SCMP_NR_BASE + 117) },
- { "setresgid32", __PNR_setresgid32 },
- { "setresuid", (__SCMP_NR_BASE + 115) },
- { "setresuid32", __PNR_setresuid32 },
- { "setreuid", (__SCMP_NR_BASE + 111) },
- { "setreuid32", __PNR_setreuid32 },
- { "setrlimit", (__SCMP_NR_BASE + 155) },
- { "setsid", (__SCMP_NR_BASE + 110) },
- { "setsockopt", (__SCMP_NR_BASE + 53) },
- { "settimeofday", (__SCMP_NR_BASE + 159) },
- { "setuid", (__SCMP_NR_BASE + 103) },
- { "setuid32", __PNR_setuid32 },
- { "setxattr", (__SCMP_NR_BASE + 180) },
- { "sgetmask", __PNR_sgetmask },
- { "shmat", (__SCMP_NR_BASE + 29) },
- { "shmctl", (__SCMP_NR_BASE + 30) },
- { "shmdt", (__SCMP_NR_BASE + 65) },
- { "shmget", (__SCMP_NR_BASE + 28) },
- { "shutdown", (__SCMP_NR_BASE + 47) },
- { "sigaction", __PNR_sigaction },
- { "sigaltstack", (__SCMP_NR_BASE + 129) },
- { "signal", __PNR_signal },
- { "signalfd", (__SCMP_NR_BASE + 276) },
- { "signalfd4", (__SCMP_NR_BASE + 283) },
- { "sigpending", __PNR_sigpending },
- { "sigprocmask", __PNR_sigprocmask },
- { "sigreturn", __PNR_sigreturn },
- { "sigsuspend", __PNR_sigsuspend },
- { "socket", (__SCMP_NR_BASE + 40) },
- { "socketcall", __PNR_socketcall },
- { "socketpair", (__SCMP_NR_BASE + 52) },
- { "splice", (__SCMP_NR_BASE + 263) },
- { "spu_create", __PNR_spu_create },
- { "spu_run", __PNR_spu_run },
- { "ssetmask", __PNR_ssetmask },
- { "stat", (__SCMP_NR_BASE + 4) },
- { "stat64", __PNR_stat64 },
- { "statfs", (__SCMP_NR_BASE + 134) },
- { "statfs64", __PNR_statfs64 },
- { "statx", (__SCMP_NR_BASE + 326) },
- { "stime", __PNR_stime },
- { "stty", __PNR_stty },
- { "subpage_prot", __PNR_subpage_prot },
- { "swapcontext", __PNR_swapcontext },
- { "swapoff", (__SCMP_NR_BASE + 163) },
- { "swapon", (__SCMP_NR_BASE + 162) },
- { "switch_endian", __PNR_switch_endian },
- { "symlink", (__SCMP_NR_BASE + 86) },
- { "symlinkat", (__SCMP_NR_BASE + 256) },
- { "sync", (__SCMP_NR_BASE + 157) },
- { "sync_file_range", (__SCMP_NR_BASE + 264) },
- { "sync_file_range2", __PNR_sync_file_range2 },
- { "syncfs", (__SCMP_NR_BASE + 301) },
- { "syscall", __PNR_syscall },
- { "sys_debug_setcontext", __PNR_sys_debug_setcontext },
- { "sysfs", (__SCMP_NR_BASE + 136) },
- { "sysinfo", (__SCMP_NR_BASE + 97) },
- { "syslog", (__SCMP_NR_BASE + 101) },
- { "sysmips", (__SCMP_NR_BASE + 199) },
- { "tee", (__SCMP_NR_BASE + 265) },
- { "tgkill", (__SCMP_NR_BASE + 225) },
- { "time", __PNR_time },
- { "timer_create", (__SCMP_NR_BASE + 216) },
- { "timer_delete", (__SCMP_NR_BASE + 220) },
- { "timer_getoverrun", (__SCMP_NR_BASE + 219) },
- { "timer_gettime", (__SCMP_NR_BASE + 218) },
- { "timer_gettime64", __PNR_timer_gettime64 },
- { "timer_settime", (__SCMP_NR_BASE + 217) },
- { "timer_settime64", __PNR_timer_settime64 },
- { "timerfd", (__SCMP_NR_BASE + 277) },
- { "timerfd_create", (__SCMP_NR_BASE + 280) },
- { "timerfd_gettime", (__SCMP_NR_BASE + 281) },
- { "timerfd_gettime64", __PNR_timerfd_gettime64 },
- { "timerfd_settime", (__SCMP_NR_BASE + 282) },
- { "timerfd_settime64", __PNR_timerfd_settime64 },
- { "times", (__SCMP_NR_BASE + 98) },
- { "tkill", (__SCMP_NR_BASE + 192) },
- { "truncate", (__SCMP_NR_BASE + 74) },
- { "truncate64", __PNR_truncate64 },
- { "tuxcall", __PNR_tuxcall },
- { "ugetrlimit", __PNR_ugetrlimit },
- { "ulimit", __PNR_ulimit },
- { "umask", (__SCMP_NR_BASE + 93) },
- { "umount", __PNR_umount },
- { "umount2", (__SCMP_NR_BASE + 161) },
- { "uname", (__SCMP_NR_BASE + 61) },
- { "unlink", (__SCMP_NR_BASE + 85) },
- { "unlinkat", (__SCMP_NR_BASE + 253) },
- { "unshare", (__SCMP_NR_BASE + 262) },
- { "uselib", __PNR_uselib },
- { "userfaultfd", (__SCMP_NR_BASE + 317) },
- { "usr26", __PNR_usr26 },
- { "usr32", __PNR_usr32 },
- { "ustat", (__SCMP_NR_BASE + 133) },
- { "utime", (__SCMP_NR_BASE + 130) },
- { "utimensat", (__SCMP_NR_BASE + 275) },
- { "utimensat_time64", __PNR_utimensat_time64 },
- { "utimes", (__SCMP_NR_BASE + 226) },
- { "vfork", __PNR_vfork },
- { "vhangup", (__SCMP_NR_BASE + 150) },
- { "vm86", __PNR_vm86 },
- { "vm86old", __PNR_vm86old },
- { "vmsplice", (__SCMP_NR_BASE + 266) },
- { "vserver", (__SCMP_NR_BASE + 236) },
- { "wait4", (__SCMP_NR_BASE + 59) },
- { "waitid", (__SCMP_NR_BASE + 237) },
- { "waitpid", __PNR_waitpid },
- { "write", (__SCMP_NR_BASE + 1) },
- { "writev", (__SCMP_NR_BASE + 19) },
- { NULL, __NR_SCMP_ERROR },
-};
-
-/**
- * Resolve a syscall name to a number
- * @param name the syscall name
- *
- * Resolve the given syscall name to the syscall number using the syscall table.
- * Returns the syscall number on success, including negative pseudo syscall
- * numbers; returns __NR_SCMP_ERROR on failure.
- *
- */
-int mips64_syscall_resolve_name(const char *name)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = mips64_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].name != NULL; iter++) {
- if (strcmp(name, table[iter].name) == 0)
- return table[iter].num;
- }
-
- return __NR_SCMP_ERROR;
-}
-
-/**
- * Resolve a syscall number to a name
- * @param num the syscall number
- *
- * Resolve the given syscall number to the syscall name using the syscall table.
- * Returns a pointer to the syscall name string on success, including pseudo
- * syscall names; returns NULL on failure.
- *
- */
-const char *mips64_syscall_resolve_num(int num)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = mips64_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
- if (num == table[iter].num)
- return table[iter].name;
- }
-
- return NULL;
-}
-
-/**
- * Iterate through the syscall table and return the syscall mapping
- * @param spot the offset into the syscall table
- *
- * Return the syscall mapping at position @spot or NULL on failure. This
- * function should only ever be used internally by libseccomp.
- *
- */
-const struct arch_syscall_def *mips64_syscall_iterate(unsigned int spot)
-{
- /* XXX - no safety checks here */
- return &mips64_syscall_table[spot];
-}
diff --git a/src/arch-mips64n32-syscalls.c b/src/arch-mips64n32-syscalls.c
deleted file mode 100644
index 2159bcc..0000000
--- a/src/arch-mips64n32-syscalls.c
+++ /dev/null
@@ -1,562 +0,0 @@
-/**
- * Enhanced Seccomp MIPS Specific Code
- *
- * Copyright (c) 2014 Red Hat <pmoore@redhat.com>
- * Author: Paul Moore <paul@paul-moore.com>
- *
- */
-
-/*
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License as
- * published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, see <http://www.gnu.org/licenses>.
- */
-
-#include <string.h>
-
-#include <seccomp.h>
-
-#include "arch.h"
-#include "arch-mips64n32.h"
-
-/* N32 ABI */
-#define __SCMP_NR_BASE 6000
-
-/* NOTE: based on Linux v5.4-rc4 */
-const struct arch_syscall_def mips64n32_syscall_table[] = { \
- { "_llseek", __PNR__llseek },
- { "_newselect", (__SCMP_NR_BASE + 22) },
- { "_sysctl", (__SCMP_NR_BASE + 152) },
- { "accept", (__SCMP_NR_BASE + 42) },
- { "accept4", (__SCMP_NR_BASE + 297) },
- { "access", (__SCMP_NR_BASE + 20) },
- { "acct", (__SCMP_NR_BASE + 158) },
- { "add_key", (__SCMP_NR_BASE + 243) },
- { "adjtimex", (__SCMP_NR_BASE + 154) },
- { "afs_syscall", (__SCMP_NR_BASE + 176) },
- { "alarm", (__SCMP_NR_BASE + 37) },
- { "arm_fadvise64_64", __PNR_arm_fadvise64_64 },
- { "arm_sync_file_range", __PNR_arm_sync_file_range },
- { "arch_prctl", __PNR_arch_prctl },
- { "bdflush", __PNR_bdflush },
- { "bind", (__SCMP_NR_BASE + 48) },
- { "bpf", (__SCMP_NR_BASE + 319) },
- { "break", __PNR_break },
- { "breakpoint", __PNR_breakpoint },
- { "brk", (__SCMP_NR_BASE + 12) },
- { "cachectl", (__SCMP_NR_BASE + 198) },
- { "cacheflush", (__SCMP_NR_BASE + 197) },
- { "capget", (__SCMP_NR_BASE + 123) },
- { "capset", (__SCMP_NR_BASE + 124) },
- { "chdir", (__SCMP_NR_BASE + 78) },
- { "chmod", (__SCMP_NR_BASE + 88) },
- { "chown", (__SCMP_NR_BASE + 90) },
- { "chown32", __PNR_chown32 },
- { "chroot", (__SCMP_NR_BASE + 156) },
- { "clock_adjtime", (__SCMP_NR_BASE + 305) },
- { "clock_adjtime64", (__SCMP_NR_BASE + 405) },
- { "clock_getres", (__SCMP_NR_BASE + 227) },
- { "clock_getres_time64", (__SCMP_NR_BASE + 406) },
- { "clock_gettime", (__SCMP_NR_BASE + 226) },
- { "clock_gettime64", (__SCMP_NR_BASE + 403) },
- { "clock_nanosleep", (__SCMP_NR_BASE + 228) },
- { "clock_nanosleep_time64", (__SCMP_NR_BASE + 407) },
- { "clock_settime", (__SCMP_NR_BASE + 225) },
- { "clock_settime64", (__SCMP_NR_BASE + 404) },
- { "clone", (__SCMP_NR_BASE + 55) },
- { "clone3", (__SCMP_NR_BASE + 435) },
- { "close", (__SCMP_NR_BASE + 3) },
- { "connect", (__SCMP_NR_BASE + 41) },
- { "copy_file_range", (__SCMP_NR_BASE + 324) },
- { "creat", (__SCMP_NR_BASE + 83) },
- { "create_module", (__SCMP_NR_BASE + 167) },
- { "delete_module", (__SCMP_NR_BASE + 169) },
- { "dup", (__SCMP_NR_BASE + 31) },
- { "dup2", (__SCMP_NR_BASE + 32) },
- { "dup3", (__SCMP_NR_BASE + 290) },
- { "epoll_create", (__SCMP_NR_BASE + 207) },
- { "epoll_create1", (__SCMP_NR_BASE + 289) },
- { "epoll_ctl", (__SCMP_NR_BASE + 208) },
- { "epoll_ctl_old", __PNR_epoll_ctl_old },
- { "epoll_pwait", (__SCMP_NR_BASE + 276) },
- { "epoll_wait", (__SCMP_NR_BASE + 209) },
- { "epoll_wait_old", __PNR_epoll_wait_old },
- { "eventfd", (__SCMP_NR_BASE + 282) },
- { "eventfd2", (__SCMP_NR_BASE + 288) },
- { "execve", (__SCMP_NR_BASE + 57) },
- { "execveat", (__SCMP_NR_BASE + 320) },
- { "exit", (__SCMP_NR_BASE + 58) },
- { "exit_group", (__SCMP_NR_BASE + 205) },
- { "faccessat", (__SCMP_NR_BASE + 263) },
- { "fadvise64", (__SCMP_NR_BASE + 216) },
- { "fadvise64_64", __PNR_fadvise64_64 },
- { "fallocate", (__SCMP_NR_BASE + 283) },
- { "fanotify_init", (__SCMP_NR_BASE + 300) },
- { "fanotify_mark", (__SCMP_NR_BASE + 301) },
- { "fchdir", (__SCMP_NR_BASE + 79) },
- { "fchmod", (__SCMP_NR_BASE + 89) },
- { "fchmodat", (__SCMP_NR_BASE + 262) },
- { "fchown", (__SCMP_NR_BASE + 91) },
- { "fchown32", __PNR_fchown32 },
- { "fchownat", (__SCMP_NR_BASE + 254) },
- { "fcntl", (__SCMP_NR_BASE + 70) },
- { "fcntl64", (__SCMP_NR_BASE + 212) },
- { "fdatasync", (__SCMP_NR_BASE + 73) },
- { "fgetxattr", (__SCMP_NR_BASE + 185) },
- { "finit_module", (__SCMP_NR_BASE + 312) },
- { "flistxattr", (__SCMP_NR_BASE + 188) },
- { "flock", (__SCMP_NR_BASE + 71) },
- { "fork", (__SCMP_NR_BASE + 56) },
- { "fremovexattr", (__SCMP_NR_BASE + 191) },
- { "fsconfig", (__SCMP_NR_BASE + 431) },
- { "fsetxattr", (__SCMP_NR_BASE + 182) },
- { "fsmount", (__SCMP_NR_BASE + 432) },
- { "fsopen", (__SCMP_NR_BASE + 430) },
- { "fspick", (__SCMP_NR_BASE + 433) },
- { "fstat", (__SCMP_NR_BASE + 5) },
- { "fstat64", __PNR_fstat64 },
- { "fstatat64", __PNR_fstat64 },
- { "fstatfs", (__SCMP_NR_BASE + 135) },
- { "fstatfs64", (__SCMP_NR_BASE + 218) },
- { "fsync", (__SCMP_NR_BASE + 72) },
- { "ftime", __PNR_ftime },
- { "ftruncate", (__SCMP_NR_BASE + 75) },
- { "ftruncate64", __PNR_ftruncate64 },
- { "futex", (__SCMP_NR_BASE + 194) },
- { "futex_time64", (__SCMP_NR_BASE + 422) },
- { "futimesat", (__SCMP_NR_BASE + 255) },
- { "get_kernel_syms", (__SCMP_NR_BASE + 170) },
- { "get_mempolicy", (__SCMP_NR_BASE + 232) },
- { "get_robust_list", (__SCMP_NR_BASE + 273) },
- { "get_thread_area", __PNR_get_thread_area },
- { "get_tls", __PNR_get_tls },
- { "getcpu", (__SCMP_NR_BASE + 275) },
- { "getcwd", (__SCMP_NR_BASE + 77) },
- { "getdents", (__SCMP_NR_BASE + 76) },
- { "getdents64", (__SCMP_NR_BASE + 299) },
- { "getegid", (__SCMP_NR_BASE + 106) },
- { "getegid32", __PNR_getegid32 },
- { "geteuid", (__SCMP_NR_BASE + 105) },
- { "geteuid32", __PNR_geteuid32 },
- { "getgid", (__SCMP_NR_BASE + 102) },
- { "getgid32", __PNR_getgid32 },
- { "getgroups", (__SCMP_NR_BASE + 113) },
- { "getgroups32", __PNR_getgroups32 },
- { "getitimer", (__SCMP_NR_BASE + 35) },
- { "getpeername", (__SCMP_NR_BASE + 51) },
- { "getpgid", (__SCMP_NR_BASE + 119) },
- { "getpgrp", (__SCMP_NR_BASE + 109) },
- { "getpid", (__SCMP_NR_BASE + 38) },
- { "getpmsg", (__SCMP_NR_BASE + 174) },
- { "getppid", (__SCMP_NR_BASE + 108) },
- { "getpriority", (__SCMP_NR_BASE + 137) },
- { "getrandom", (__SCMP_NR_BASE + 317) },
- { "getresgid", (__SCMP_NR_BASE + 118) },
- { "getresgid32", __PNR_getresgid32 },
- { "getresuid", (__SCMP_NR_BASE + 116) },
- { "getresuid32", __PNR_getresuid32 },
- { "getrlimit", (__SCMP_NR_BASE + 95) },
- { "getrusage", (__SCMP_NR_BASE + 96) },
- { "getsid", (__SCMP_NR_BASE + 122) },
- { "getsockname", (__SCMP_NR_BASE + 50) },
- { "getsockopt", (__SCMP_NR_BASE + 54) },
- { "gettid", (__SCMP_NR_BASE + 178) },
- { "gettimeofday", (__SCMP_NR_BASE + 94) },
- { "getuid", (__SCMP_NR_BASE + 100) },
- { "getuid32", __PNR_getuid32 },
- { "getxattr", (__SCMP_NR_BASE + 183) },
- { "gtty", __PNR_gtty },
- { "idle", __PNR_idle },
- { "init_module", (__SCMP_NR_BASE + 168) },
- { "inotify_add_watch", (__SCMP_NR_BASE + 248) },
- { "inotify_init", (__SCMP_NR_BASE + 247) },
- { "inotify_init1", (__SCMP_NR_BASE + 292) },
- { "inotify_rm_watch", (__SCMP_NR_BASE + 249) },
- { "io_cancel", (__SCMP_NR_BASE + 204) },
- { "io_destroy", (__SCMP_NR_BASE + 201) },
- { "io_getevents", (__SCMP_NR_BASE + 202) },
- { "io_pgetevents", (__SCMP_NR_BASE + 332) },
- { "io_pgetevents_time64", (__SCMP_NR_BASE + 416) },
- { "io_setup", (__SCMP_NR_BASE + 200) },
- { "io_submit", (__SCMP_NR_BASE + 203) },
- { "io_uring_setup", (__SCMP_NR_BASE + 425) },
- { "io_uring_enter", (__SCMP_NR_BASE + 426) },
- { "io_uring_register", (__SCMP_NR_BASE + 427) },
- { "ioctl", (__SCMP_NR_BASE + 15) },
- { "ioperm", __PNR_ioperm },
- { "iopl", __PNR_iopl },
- { "ioprio_get", (__SCMP_NR_BASE + 278) },
- { "ioprio_set", (__SCMP_NR_BASE + 277) },
- { "ipc", __PNR_ipc },
- { "kcmp", (__SCMP_NR_BASE + 311) },
- { "kexec_file_load", __PNR_kexec_file_load },
- { "kexec_load", (__SCMP_NR_BASE + 274) },
- { "keyctl", (__SCMP_NR_BASE + 245) },
- { "kill", (__SCMP_NR_BASE + 60) },
- { "lchown", (__SCMP_NR_BASE + 92) },
- { "lchown32", __PNR_lchown32 },
- { "lgetxattr", (__SCMP_NR_BASE + 184) },
- { "link", (__SCMP_NR_BASE + 84) },
- { "linkat", (__SCMP_NR_BASE + 259) },
- { "listen", (__SCMP_NR_BASE + 49) },
- { "listxattr", (__SCMP_NR_BASE + 186) },
- { "llistxattr", (__SCMP_NR_BASE + 187) },
- { "lock", __PNR_lock },
- { "lookup_dcookie", (__SCMP_NR_BASE + 206) },
- { "lremovexattr", (__SCMP_NR_BASE + 190) },
- { "lseek", (__SCMP_NR_BASE + 8) },
- { "lsetxattr", (__SCMP_NR_BASE + 181) },
- { "lstat", (__SCMP_NR_BASE + 6) },
- { "lstat64", __PNR_lstat64 },
- { "madvise", (__SCMP_NR_BASE + 27) },
- { "mbind", (__SCMP_NR_BASE + 231) },
- { "membarrier", (__SCMP_NR_BASE + 322) },
- { "memfd_create", (__SCMP_NR_BASE + 318) },
- { "migrate_pages", (__SCMP_NR_BASE + 250) },
- { "mincore", (__SCMP_NR_BASE + 26) },
- { "mkdir", (__SCMP_NR_BASE + 81) },
- { "mkdirat", (__SCMP_NR_BASE + 252) },
- { "mknod", (__SCMP_NR_BASE + 131) },
- { "mknodat", (__SCMP_NR_BASE + 253) },
- { "mlock", (__SCMP_NR_BASE + 146) },
- { "mlock2", (__SCMP_NR_BASE + 323) },
- { "mlockall", (__SCMP_NR_BASE + 148) },
- { "mmap", (__SCMP_NR_BASE + 9) },
- { "mmap2", __PNR_mmap2 },
- { "modify_ldt", __PNR_modify_ldt },
- { "mount", (__SCMP_NR_BASE + 160) },
- { "move_mount", (__SCMP_NR_BASE + 429) },
- { "move_pages", (__SCMP_NR_BASE + 271) },
- { "mprotect", (__SCMP_NR_BASE + 10) },
- { "mpx", __PNR_mpx },
- { "mq_getsetattr", (__SCMP_NR_BASE + 239) },
- { "mq_notify", (__SCMP_NR_BASE + 238) },
- { "mq_open", (__SCMP_NR_BASE + 234) },
- { "mq_timedreceive", (__SCMP_NR_BASE + 237) },
- { "mq_timedreceive_time64", (__SCMP_NR_BASE + 419) },
- { "mq_timedsend", (__SCMP_NR_BASE + 236) },
- { "mq_timedsend_time64", (__SCMP_NR_BASE + 418) },
- { "mq_unlink", (__SCMP_NR_BASE + 235) },
- { "mremap", (__SCMP_NR_BASE + 24) },
- { "msgctl", (__SCMP_NR_BASE + 69) },
- { "msgget", (__SCMP_NR_BASE + 66) },
- { "msgrcv", (__SCMP_NR_BASE + 68) },
- { "msgsnd", (__SCMP_NR_BASE + 67) },
- { "msync", (__SCMP_NR_BASE + 25) },
- { "multiplexer", __PNR_multiplexer },
- { "munlock", (__SCMP_NR_BASE + 147) },
- { "munlockall", (__SCMP_NR_BASE + 149) },
- { "munmap", (__SCMP_NR_BASE + 11) },
- { "name_to_handle_at", (__SCMP_NR_BASE + 303) },
- { "nanosleep", (__SCMP_NR_BASE + 34) },
- { "newfstatat", (__SCMP_NR_BASE + 256) },
- { "nfsservctl", (__SCMP_NR_BASE + 173) },
- { "nice", __PNR_nice },
- { "oldfstat", __PNR_oldfstat },
- { "oldlstat", __PNR_oldlstat },
- { "oldolduname", __PNR_oldolduname },
- { "oldstat", __PNR_oldstat },
- { "olduname", __PNR_olduname },
- { "oldwait4", __PNR_oldwait4 },
- { "open", (__SCMP_NR_BASE + 2) },
- { "open_by_handle_at", (__SCMP_NR_BASE + 304) },
- { "open_tree", (__SCMP_NR_BASE + 428) },
- { "openat", (__SCMP_NR_BASE + 251) },
- { "pause", (__SCMP_NR_BASE + 33) },
- { "pciconfig_iobase", __PNR_pciconfig_iobase },
- { "pciconfig_read", __PNR_pciconfig_read },
- { "pciconfig_write", __PNR_pciconfig_write },
- { "perf_event_open", (__SCMP_NR_BASE + 296) },
- { "personality", (__SCMP_NR_BASE + 132) },
- { "pidfd_open", (__SCMP_NR_BASE + 434) },
- { "pidfd_send_signal", (__SCMP_NR_BASE + 424) },
- { "pipe", (__SCMP_NR_BASE + 21) },
- { "pipe2", (__SCMP_NR_BASE + 291) },
- { "pivot_root", (__SCMP_NR_BASE + 151) },
- { "pkey_alloc", (__SCMP_NR_BASE + 328) },
- { "pkey_free", (__SCMP_NR_BASE + 329) },
- { "pkey_mprotect", (__SCMP_NR_BASE + 327) },
- { "poll", (__SCMP_NR_BASE + 7) },
- { "ppoll", (__SCMP_NR_BASE + 265) },
- { "ppoll_time64", (__SCMP_NR_BASE + 414) },
- { "prctl", (__SCMP_NR_BASE + 153) },
- { "pread64", (__SCMP_NR_BASE + 16) },
- { "preadv", (__SCMP_NR_BASE + 293) },
- { "preadv2", (__SCMP_NR_BASE + 325) },
- { "prlimit64", (__SCMP_NR_BASE + 302) },
- { "process_vm_readv", (__SCMP_NR_BASE + 309) },
- { "process_vm_writev", (__SCMP_NR_BASE + 310) },
- { "prof", __PNR_prof },
- { "profil", __PNR_profil },
- { "pselect6", (__SCMP_NR_BASE + 264) },
- { "pselect6_time64", (__SCMP_NR_BASE + 413) },
- { "ptrace", (__SCMP_NR_BASE + 99) },
- { "putpmsg", (__SCMP_NR_BASE + 175) },
- { "pwrite64", (__SCMP_NR_BASE + 17) },
- { "pwritev", (__SCMP_NR_BASE + 294) },
- { "pwritev2", (__SCMP_NR_BASE + 326) },
- { "query_module", (__SCMP_NR_BASE + 171) },
- { "quotactl", (__SCMP_NR_BASE + 172) },
- { "read", (__SCMP_NR_BASE + 0) },
- { "readahead", (__SCMP_NR_BASE + 179) },
- { "readdir", __PNR_readdir },
- { "readlink", (__SCMP_NR_BASE + 87) },
- { "readlinkat", (__SCMP_NR_BASE + 261) },
- { "readv", (__SCMP_NR_BASE + 18) },
- { "reboot", (__SCMP_NR_BASE + 164) },
- { "recv", __PNR_recv },
- { "recvfrom", (__SCMP_NR_BASE + 44) },
- { "recvmmsg", (__SCMP_NR_BASE + 298) },
- { "recvmmsg_time64", (__SCMP_NR_BASE + 417) },
- { "recvmsg", (__SCMP_NR_BASE + 46) },
- { "remap_file_pages", (__SCMP_NR_BASE + 210) },
- { "removexattr", (__SCMP_NR_BASE + 189) },
- { "rename", (__SCMP_NR_BASE + 80) },
- { "renameat", (__SCMP_NR_BASE + 258) },
- { "renameat2", (__SCMP_NR_BASE + 315) },
- { "request_key", (__SCMP_NR_BASE + 244) },
- { "restart_syscall", (__SCMP_NR_BASE + 214) },
- { "rmdir", (__SCMP_NR_BASE + 82) },
- { "rseq", (__SCMP_NR_BASE + 331) },
- { "rt_sigaction", (__SCMP_NR_BASE + 13) },
- { "rt_sigpending", (__SCMP_NR_BASE + 125) },
- { "rt_sigprocmask", (__SCMP_NR_BASE + 14) },
- { "rt_sigqueueinfo", (__SCMP_NR_BASE + 127) },
- { "rt_sigreturn", (__SCMP_NR_BASE + 211) },
- { "rt_sigsuspend", (__SCMP_NR_BASE + 128) },
- { "rt_sigtimedwait", (__SCMP_NR_BASE + 126) },
- { "rt_sigtimedwait_time64", (__SCMP_NR_BASE + 421) },
- { "rt_tgsigqueueinfo", (__SCMP_NR_BASE + 295) },
- { "rtas", __PNR_rtas },
- { "s390_guarded_storage", __PNR_s390_guarded_storage },
- { "s390_pci_mmio_read", __PNR_s390_pci_mmio_read },
- { "s390_pci_mmio_write", __PNR_s390_pci_mmio_write },
- { "s390_runtime_instr", __PNR_s390_runtime_instr },
- { "s390_sthyi", __PNR_s390_sthyi },
- { "sched_get_priority_max", (__SCMP_NR_BASE + 143) },
- { "sched_get_priority_min", (__SCMP_NR_BASE + 144) },
- { "sched_getaffinity", (__SCMP_NR_BASE + 196) },
- { "sched_getattr", (__SCMP_NR_BASE + 314) },
- { "sched_getparam", (__SCMP_NR_BASE + 140) },
- { "sched_getscheduler", (__SCMP_NR_BASE + 142) },
- { "sched_rr_get_interval", (__SCMP_NR_BASE + 145) },
- { "sched_rr_get_interval_time64", (__SCMP_NR_BASE + 423) },
- { "sched_setaffinity", (__SCMP_NR_BASE + 195) },
- { "sched_setattr", (__SCMP_NR_BASE + 313) },
- { "sched_setparam", (__SCMP_NR_BASE + 139) },
- { "sched_setscheduler", (__SCMP_NR_BASE + 141) },
- { "sched_yield", (__SCMP_NR_BASE + 23) },
- { "seccomp", (__SCMP_NR_BASE + 316) },
- { "security", __PNR_security },
- { "select", __PNR_select },
- { "semctl", (__SCMP_NR_BASE + 64) },
- { "semget", (__SCMP_NR_BASE + 62) },
- { "semop", (__SCMP_NR_BASE + 63) },
- { "semtimedop", (__SCMP_NR_BASE + 215) },
- { "semtimedop_time64", (__SCMP_NR_BASE + 420) },
- { "send", __PNR_send },
- { "sendfile", (__SCMP_NR_BASE + 39) },
- { "sendfile64", (__SCMP_NR_BASE + 219) },
- { "sendmmsg", (__SCMP_NR_BASE + 307) },
- { "sendmsg", (__SCMP_NR_BASE + 45) },
- { "sendto", (__SCMP_NR_BASE + 43) },
- { "set_mempolicy", (__SCMP_NR_BASE + 233) },
- { "set_robust_list", (__SCMP_NR_BASE + 272) },
- { "set_thread_area", (__SCMP_NR_BASE + 246) },
- { "set_tid_address", (__SCMP_NR_BASE + 213) },
- { "set_tls", __PNR_set_tls },
- { "setdomainname", (__SCMP_NR_BASE + 166) },
- { "setfsgid", (__SCMP_NR_BASE + 121) },
- { "setfsgid32", __PNR_setfsgid32 },
- { "setfsuid", (__SCMP_NR_BASE + 120) },
- { "setfsuid32", __PNR_setfsuid32 },
- { "setgid", (__SCMP_NR_BASE + 104) },
- { "setgid32", __PNR_setgid32 },
- { "setgroups", (__SCMP_NR_BASE + 114) },
- { "setgroups32", __PNR_setgroups32 },
- { "sethostname", (__SCMP_NR_BASE + 165) },
- { "setitimer", (__SCMP_NR_BASE + 36) },
- { "setns", (__SCMP_NR_BASE + 308) },
- { "setpgid", (__SCMP_NR_BASE + 107) },
- { "setpriority", (__SCMP_NR_BASE + 138) },
- { "setregid", (__SCMP_NR_BASE + 112) },
- { "setregid32", __PNR_setregid32 },
- { "setresgid", (__SCMP_NR_BASE + 117) },
- { "setresgid32", __PNR_setresgid32 },
- { "setresuid", (__SCMP_NR_BASE + 115) },
- { "setresuid32", __PNR_setresuid32 },
- { "setreuid", (__SCMP_NR_BASE + 111) },
- { "setreuid32", __PNR_setreuid32 },
- { "setrlimit", (__SCMP_NR_BASE + 155) },
- { "setsid", (__SCMP_NR_BASE + 110) },
- { "setsockopt", (__SCMP_NR_BASE + 53) },
- { "settimeofday", (__SCMP_NR_BASE + 159) },
- { "setuid", (__SCMP_NR_BASE + 103) },
- { "setuid32", __PNR_setuid32 },
- { "setxattr", (__SCMP_NR_BASE + 180) },
- { "sgetmask", __PNR_sgetmask },
- { "shmat", (__SCMP_NR_BASE + 29) },
- { "shmctl", (__SCMP_NR_BASE + 30) },
- { "shmdt", (__SCMP_NR_BASE + 65) },
- { "shmget", (__SCMP_NR_BASE + 28) },
- { "shutdown", (__SCMP_NR_BASE + 47) },
- { "sigaction", __PNR_sigaction },
- { "sigaltstack", (__SCMP_NR_BASE + 129) },
- { "signal", __PNR_signal },
- { "signalfd", (__SCMP_NR_BASE + 280) },
- { "signalfd4", (__SCMP_NR_BASE + 287) },
- { "sigpending", __PNR_sigpending },
- { "sigprocmask", __PNR_sigprocmask },
- { "sigreturn", __PNR_sigreturn },
- { "sigsuspend", __PNR_sigsuspend },
- { "socket", (__SCMP_NR_BASE + 40) },
- { "socketcall", __PNR_socketcall },
- { "socketpair", (__SCMP_NR_BASE + 52) },
- { "splice", (__SCMP_NR_BASE + 267) },
- { "spu_create", __PNR_spu_create },
- { "spu_run", __PNR_spu_run },
- { "ssetmask", __PNR_ssetmask },
- { "stat", (__SCMP_NR_BASE + 4) },
- { "stat64", __PNR_stat64 },
- { "statfs", (__SCMP_NR_BASE + 134) },
- { "statfs64", (__SCMP_NR_BASE + 217) },
- { "statx", (__SCMP_NR_BASE + 330) },
- { "stime", __PNR_stime },
- { "stty", __PNR_stty },
- { "subpage_prot", __PNR_subpage_prot },
- { "swapcontext", __PNR_swapcontext },
- { "swapoff", (__SCMP_NR_BASE + 163) },
- { "swapon", (__SCMP_NR_BASE + 162) },
- { "switch_endian", __PNR_switch_endian },
- { "symlink", (__SCMP_NR_BASE + 86) },
- { "symlinkat", (__SCMP_NR_BASE + 260) },
- { "sync", (__SCMP_NR_BASE + 157) },
- { "sync_file_range", (__SCMP_NR_BASE + 268) },
- { "sync_file_range2", __PNR_sync_file_range2 },
- { "syncfs", (__SCMP_NR_BASE + 306) },
- { "syscall", __PNR_syscall },
- { "sys_debug_setcontext", __PNR_sys_debug_setcontext },
- { "sysfs", (__SCMP_NR_BASE + 136) },
- { "sysinfo", (__SCMP_NR_BASE + 97) },
- { "syslog", (__SCMP_NR_BASE + 101) },
- { "sysmips", (__SCMP_NR_BASE + 199) },
- { "tee", (__SCMP_NR_BASE + 269) },
- { "tgkill", (__SCMP_NR_BASE + 229) },
- { "time", __PNR_time },
- { "timer_create", (__SCMP_NR_BASE + 220) },
- { "timer_delete", (__SCMP_NR_BASE + 224) },
- { "timer_getoverrun", (__SCMP_NR_BASE + 223) },
- { "timer_gettime", (__SCMP_NR_BASE + 222) },
- { "timer_gettime64", (__SCMP_NR_BASE + 408) },
- { "timer_settime", (__SCMP_NR_BASE + 221) },
- { "timer_settime64", (__SCMP_NR_BASE + 409) },
- { "timerfd", (__SCMP_NR_BASE + 281) },
- { "timerfd_create", (__SCMP_NR_BASE + 284) },
- { "timerfd_gettime", (__SCMP_NR_BASE + 285) },
- { "timerfd_gettime64", (__SCMP_NR_BASE + 410) },
- { "timerfd_settime", (__SCMP_NR_BASE + 286) },
- { "timerfd_settime64", (__SCMP_NR_BASE + 411) },
- { "times", (__SCMP_NR_BASE + 98) },
- { "tkill", (__SCMP_NR_BASE + 192) },
- { "truncate", (__SCMP_NR_BASE + 74) },
- { "truncate64", __PNR_truncate64 },
- { "tuxcall", __PNR_tuxcall },
- { "ugetrlimit", __PNR_ugetrlimit },
- { "ulimit", __PNR_ulimit },
- { "umask", (__SCMP_NR_BASE + 93) },
- { "umount", __PNR_umount },
- { "umount2", (__SCMP_NR_BASE + 161) },
- { "uname", (__SCMP_NR_BASE + 61) },
- { "unlink", (__SCMP_NR_BASE + 85) },
- { "unlinkat", (__SCMP_NR_BASE + 257) },
- { "unshare", (__SCMP_NR_BASE + 266) },
- { "uselib", __PNR_uselib },
- { "userfaultfd", (__SCMP_NR_BASE + 321) },
- { "usr26", __PNR_usr26 },
- { "usr32", __PNR_usr32 },
- { "ustat", (__SCMP_NR_BASE + 133) },
- { "utime", (__SCMP_NR_BASE + 130) },
- { "utimensat", (__SCMP_NR_BASE + 279) },
- { "utimensat_time64", (__SCMP_NR_BASE + 412) },
- { "utimes", (__SCMP_NR_BASE + 230) },
- { "vfork", __PNR_vfork },
- { "vhangup", (__SCMP_NR_BASE + 150) },
- { "vm86", __PNR_vm86 },
- { "vm86old", __PNR_vm86old },
- { "vmsplice", (__SCMP_NR_BASE + 270) },
- { "vserver", (__SCMP_NR_BASE + 240) },
- { "wait4", (__SCMP_NR_BASE + 59) },
- { "waitid", (__SCMP_NR_BASE + 241) },
- { "waitpid", __PNR_waitpid },
- { "write", (__SCMP_NR_BASE + 1) },
- { "writev", (__SCMP_NR_BASE + 19) },
- { NULL, __NR_SCMP_ERROR },
-};
-
-/**
- * Resolve a syscall name to a number
- * @param name the syscall name
- *
- * Resolve the given syscall name to the syscall number using the syscall table.
- * Returns the syscall number on success, including negative pseudo syscall
- * numbers; returns __NR_SCMP_ERROR on failure.
- *
- */
-int mips64n32_syscall_resolve_name(const char *name)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = mips64n32_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].name != NULL; iter++) {
- if (strcmp(name, table[iter].name) == 0)
- return table[iter].num;
- }
-
- return __NR_SCMP_ERROR;
-}
-
-/**
- * Resolve a syscall number to a name
- * @param num the syscall number
- *
- * Resolve the given syscall number to the syscall name using the syscall table.
- * Returns a pointer to the syscall name string on success, including pseudo
- * syscall names; returns NULL on failure.
- *
- */
-const char *mips64n32_syscall_resolve_num(int num)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = mips64n32_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
- if (num == table[iter].num)
- return table[iter].name;
- }
-
- return NULL;
-}
-
-/**
- * Iterate through the syscall table and return the syscall mapping
- * @param spot the offset into the syscall table
- *
- * Return the syscall mapping at position @spot or NULL on failure. This
- * function should only ever be used internally by libseccomp.
- *
- */
-const struct arch_syscall_def *mips64n32_syscall_iterate(unsigned int spot)
-{
- /* XXX - no safety checks here */
- return &mips64n32_syscall_table[spot];
-}
diff --git a/src/arch-parisc-syscalls.c b/src/arch-parisc-syscalls.c
deleted file mode 100644
index c516c16..0000000
--- a/src/arch-parisc-syscalls.c
+++ /dev/null
@@ -1,542 +0,0 @@
-/*
- * Copyright (c) 2016 Helge Deller <deller@gmx.de>
- * Author: Helge Deller <deller@gmx.de>
- */
-
-#include <string.h>
-
-#include <seccomp.h>
-
-#include "arch.h"
-#include "arch-parisc.h"
-
-/* NOTE: based on Linux v5.4-rc4 */
-const struct arch_syscall_def parisc_syscall_table[] = { \
- { "_llseek", 140 },
- { "_newselect", 142 },
- { "_sysctl", 149 },
- { "accept", 35 },
- { "accept4", 320 },
- { "access", 33 },
- { "acct", 51 },
- { "add_key", 264 },
- { "adjtimex", 124 },
- { "afs_syscall", 137 },
- { "alarm", 27 },
- { "arm_fadvise64_64", __PNR_arm_fadvise64_64 },
- { "arm_sync_file_range", __PNR_arm_sync_file_range },
- { "arch_prctl", __PNR_arch_prctl },
- { "bdflush", 134 },
- { "bind", 22 },
- { "bpf", 341 },
- { "break", __PNR_break },
- { "breakpoint", __PNR_breakpoint },
- { "brk", 45 },
- { "cachectl", __PNR_cachectl },
- { "cacheflush", __PNR_cacheflush },
- { "capget", 106 },
- { "capset", 107 },
- { "chdir", 12 },
- { "chmod", 15 },
- { "chown", 180 },
- { "chown32", __PNR_chown32 },
- { "chroot", 61 },
- { "clock_adjtime", 324 },
- { "clock_adjtime64", __PNR_clock_adjtime64 },
- { "clock_getres", 257 },
- { "clock_getres_time64", __PNR_clock_getres_time64 },
- { "clock_gettime", 256 },
- { "clock_gettime64", __PNR_clock_gettime64 },
- { "clock_nanosleep", 258 },
- { "clock_nanosleep_time64", __PNR_clock_nanosleep_time64 },
- { "clock_settime", 255 },
- { "clock_settime64", __PNR_clock_settime64 },
- { "clone", 120 },
- { "clone3", __PNR_clone3 },
- { "close", 6 },
- { "connect", 31 },
- { "copy_file_range", 346 },
- { "creat", 8 },
- { "create_module", 127 },
- { "delete_module", 129 },
- { "dup", 41 },
- { "dup2", 63 },
- { "dup3", 312 },
- { "epoll_create", 224 },
- { "epoll_create1", 311 },
- { "epoll_ctl", 225 },
- { "epoll_ctl_old", __PNR_epoll_ctl_old },
- { "epoll_pwait", 297 },
- { "epoll_wait", 226 },
- { "epoll_wait_old", __PNR_epoll_wait_old },
- { "eventfd", 304 },
- { "eventfd2", 310 },
- { "execve", 11 },
- { "execveat", 342 },
- { "exit", 1 },
- { "exit_group", 222 },
- { "faccessat", 287 },
- { "fadvise64", __PNR_fadvise64 },
- { "fadvise64_64", 236 },
- { "fallocate", 305 },
- { "fanotify_init", 322 },
- { "fanotify_mark", 323 },
- { "fchdir", 133 },
- { "fchmod", 94 },
- { "fchmodat", 286 },
- { "fchown", 95 },
- { "fchown32", __PNR_fchown32 },
- { "fchownat", 278 },
- { "fcntl", 55 },
- { "fcntl64", 202 },
- { "fdatasync", 148 },
- { "fgetxattr", 243 },
- { "finit_module", 333 },
- { "flistxattr", 246 },
- { "flock", 143 },
- { "fork", 2 },
- { "fremovexattr", 249 },
- { "fsconfig", __PNR_fsconfig },
- { "fsetxattr", 240 },
- { "fsmount", __PNR_fsmount },
- { "fsopen", __PNR_fsopen },
- { "fspick", __PNR_fspick },
- { "fstat", 28 },
- { "fstat64", 112 },
- { "fstatat64", 280 },
- { "fstatfs", 100 },
- { "fstatfs64", 299 },
- { "fsync", 118 },
- { "ftime", __PNR_ftime },
- { "ftruncate", 93 },
- { "ftruncate64", 200 },
- { "futex", 210 },
- { "futex_time64", __PNR_futex_time64 },
- { "futimesat", 279 },
- { "get_kernel_syms", 130 },
- { "get_mempolicy", 261 },
- { "get_robust_list", 290 },
- { "get_thread_area", 214 },
- { "get_tls", __PNR_get_tls },
- { "getcpu", 296 },
- { "getcwd", 110 },
- { "getdents", 141 },
- { "getdents64", 201 },
- { "getegid", 50 },
- { "getegid32", __PNR_getegid32 },
- { "geteuid", 49 },
- { "geteuid32", __PNR_geteuid32 },
- { "getgid", 47 },
- { "getgid32", __PNR_getgid32 },
- { "getgroups", 80 },
- { "getgroups32", __PNR_getgroups32 },
- { "getitimer", 105 },
- { "getpeername", 53 },
- { "getpgid", 132 },
- { "getpgrp", 65 },
- { "getpid", 20 },
- { "getpmsg", 196 },
- { "getppid", 64 },
- { "getpriority", 96 },
- { "getrandom", 339 },
- { "getresgid", 171 },
- { "getresgid32", __PNR_getresgid32 },
- { "getresuid", 165 },
- { "getresuid32", __PNR_getresuid32 },
- { "getrlimit", 76 },
- { "getrusage", 77 },
- { "getsid", 147 },
- { "getsockname", 44 },
- { "getsockopt", 182 },
- { "gettid", 206 },
- { "gettimeofday", 78 },
- { "getuid", 24 },
- { "getuid32", __PNR_getuid32 },
- { "getxattr", 241 },
- { "gtty", __PNR_gtty },
- { "idle", __PNR_idle },
- { "init_module", 128 },
- { "inotify_add_watch", 270 },
- { "inotify_init", 269 },
- { "inotify_init1", 314 },
- { "inotify_rm_watch", 271 },
- { "io_cancel", 219 },
- { "io_destroy", 216 },
- { "io_getevents", 217 },
- { "io_pgetevents", __PNR_io_pgetevents },
- { "io_pgetevents_time64", __PNR_io_pgetevents_time64 },
- { "io_setup", 215 },
- { "io_submit", 218 },
- { "io_uring_setup", 425 },
- { "io_uring_enter", 426 },
- { "io_uring_register", 427 },
- { "ioctl", 54 },
- { "ioperm", __PNR_ioperm },
- { "iopl", __PNR_iopl },
- { "ioprio_get", 268 },
- { "ioprio_set", 267 },
- { "ipc", __PNR_ipc },
- { "kcmp", 332 },
- { "kexec_file_load", __PNR_kexec_file_load },
- { "kexec_load", 300 },
- { "keyctl", 266 },
- { "kill", 37 },
- { "lchown", 16 },
- { "lchown32", __PNR_lchown32 },
- { "lgetxattr", 242 },
- { "link", 9 },
- { "linkat", 283 },
- { "listen", 32 },
- { "listxattr", 244 },
- { "llistxattr", 245 },
- { "lock", __PNR_lock },
- { "lookup_dcookie", 223 },
- { "lremovexattr", 248 },
- { "lseek", 19 },
- { "lsetxattr", 239 },
- { "lstat", 84 },
- { "lstat64", 198 },
- { "madvise", 119 },
- { "mbind", 260 },
- { "membarrier", 343 },
- { "memfd_create", 340 },
- { "migrate_pages", 272 },
- { "mincore", 72 },
- { "mkdir", 39 },
- { "mkdirat", 276 },
- { "mknod", 14 },
- { "mknodat", 277 },
- { "mlock", 150 },
- { "mlock2", 345 },
- { "mlockall", 152 },
- { "mmap", 90 },
- { "mmap2", 89 },
- { "modify_ldt", __PNR_modify_ldt },
- { "mount", 21 },
- { "move_mount", __PNR_move_mount },
- { "move_pages", 295 },
- { "mprotect", 125 },
- { "mpx", __PNR_mpx },
- { "mq_getsetattr", 234 },
- { "mq_notify", 233 },
- { "mq_open", 229 },
- { "mq_timedreceive", 232 },
- { "mq_timedreceive_time64", __PNR_mq_timedreceive_time64 },
- { "mq_timedsend", 231 },
- { "mq_timedsend_time64", __PNR_mq_timedsend_time64 },
- { "mq_unlink", 230 },
- { "mremap", 163 },
- { "msgctl", 191 },
- { "msgget", 190 },
- { "msgrcv", 189 },
- { "msgsnd", 188 },
- { "msync", 144 },
- { "multiplexer", __PNR_multiplexer },
- { "munlock", 151 },
- { "munlockall", 153 },
- { "munmap", 91 },
- { "name_to_handle_at", 325 },
- { "nanosleep", 162 },
- { "newfstatat", __PNR_newfstatat },
- { "nfsservctl", 169 },
- { "nice", 34 },
- { "oldfstat", __PNR_oldfstat },
- { "oldlstat", __PNR_oldlstat },
- { "oldolduname", __PNR_oldolduname },
- { "oldstat", __PNR_oldstat },
- { "olduname", __PNR_olduname },
- { "oldwait4", __PNR_oldwait4 },
- { "open", 5 },
- { "open_by_handle_at", 326 },
- { "open_tree", __PNR_open_tree },
- { "openat", 275 },
- { "pause", 29 },
- { "pciconfig_iobase", __PNR_pciconfig_iobase },
- { "pciconfig_read", __PNR_pciconfig_read },
- { "pciconfig_write", __PNR_pciconfig_write },
- { "perf_event_open", 318 },
- { "personality", 136 },
- { "pidfd_open", __PNR_pidfd_open },
- { "pidfd_send_signal", __PNR_pidfd_send_signal },
- { "pipe", 42 },
- { "pipe2", 313 },
- { "pivot_root", 67 },
- { "pkey_alloc", __PNR_pkey_alloc },
- { "pkey_free", __PNR_pkey_free },
- { "pkey_mprotect", __PNR_pkey_mprotect },
- { "poll", 168 },
- { "ppoll", 274 },
- { "ppoll_time64", __PNR_ppoll_time64 },
- { "prctl", 172 },
- { "pread64", 108 },
- { "preadv", 315 },
- { "preadv2", 347 },
- { "prlimit64", 321 },
- { "process_vm_readv", 330 },
- { "process_vm_writev", 331 },
- { "prof", __PNR_prof },
- { "profil", __PNR_profil },
- { "pselect6", 273 },
- { "pselect6_time64", __PNR_pselect6_time64 },
- { "ptrace", 26 },
- { "putpmsg", 197 },
- { "pwrite64", 109 },
- { "pwritev", 316 },
- { "pwritev2", 348 },
- { "query_module", 167 },
- { "quotactl", 131 },
- { "read", 3 },
- { "readahead", 207 },
- { "readdir", __PNR_readdir },
- { "readlink", 85 },
- { "readlinkat", 285 },
- { "readv", 145 },
- { "reboot", 88 },
- { "recv", 98 },
- { "recvfrom", 123 },
- { "recvmmsg", 319 },
- { "recvmmsg_time64", __PNR_recvmmsg_time64 },
- { "recvmsg", 184 },
- { "remap_file_pages", 227 },
- { "removexattr", 247 },
- { "rename", 38 },
- { "renameat", 282 },
- { "renameat2", 337 },
- { "request_key", 265 },
- { "restart_syscall", 0 },
- { "rmdir", 40 },
- { "rseq", __PNR_rseq },
- { "rt_sigaction", 174 },
- { "rt_sigpending", 176 },
- { "rt_sigprocmask", 175 },
- { "rt_sigqueueinfo", 178 },
- { "rt_sigreturn", 173 },
- { "rt_sigsuspend", 179 },
- { "rt_sigtimedwait", 177 },
- { "rt_sigtimedwait_time64", __PNR_rt_sigtimedwait_time64 },
- { "rt_tgsigqueueinfo", 317 },
- { "rtas", __PNR_rtas },
- { "s390_guarded_storage", __PNR_s390_guarded_storage },
- { "s390_pci_mmio_read", __PNR_s390_pci_mmio_read },
- { "s390_pci_mmio_write", __PNR_s390_pci_mmio_write },
- { "s390_runtime_instr", __PNR_s390_runtime_instr },
- { "s390_sthyi", __PNR_s390_sthyi },
- { "sched_get_priority_max", 159 },
- { "sched_get_priority_min", 160 },
- { "sched_getaffinity", 212 },
- { "sched_getattr", 335 },
- { "sched_getparam", 155 },
- { "sched_getscheduler", 157 },
- { "sched_rr_get_interval", 161 },
- { "sched_rr_get_interval_time64", __PNR_sched_rr_get_interval_time64 },
- { "sched_setaffinity", 211 },
- { "sched_setattr", 334 },
- { "sched_setparam", 154 },
- { "sched_setscheduler", 156 },
- { "sched_yield", 158 },
- { "seccomp", 338 },
- { "security", __PNR_security },
- { "select", __PNR_select },
- { "semctl", 187 },
- { "semget", 186 },
- { "semop", 185 },
- { "semtimedop", 228 },
- { "semtimedop_time64", __PNR_semtimedop_time64 },
- { "send", 58 },
- { "sendfile", 122 },
- { "sendfile64", 209 },
- { "sendmmsg", 329 },
- { "sendmsg", 183 },
- { "sendto", 82 },
- { "set_mempolicy", 262 },
- { "set_robust_list", 289 },
- { "set_thread_area", 213 },
- { "set_tid_address", 237 },
- { "set_tls", __PNR_set_tls },
- { "setdomainname", 121 },
- { "setfsgid", 139 },
- { "setfsgid32", __PNR_setfsgid32 },
- { "setfsuid", 138 },
- { "setfsuid32", __PNR_setfsuid32 },
- { "setgid", 46 },
- { "setgid32", __PNR_setgid32 },
- { "setgroups", 81 },
- { "setgroups32", __PNR_setgroups32},
- { "sethostname", 74 },
- { "setitimer", 104 },
- { "setns", 328 },
- { "setpgid", 57 },
- { "setpriority", 97 },
- { "setregid", 71 },
- { "setregid32", __PNR_setregid32 },
- { "setresgid", 170 },
- { "setresgid32", __PNR_setresgid32 },
- { "setresuid", 164 },
- { "setresuid32", __PNR_setresuid32 },
- { "setreuid", 70 },
- { "setreuid32", __PNR_setreuid32 },
- { "setrlimit", 75 },
- { "setsid", 66 },
- { "setsockopt", 181 },
- { "settimeofday", 79 },
- { "setuid", 23 },
- { "setuid32", __PNR_setuid32 },
- { "setxattr", 238 },
- { "sgetmask", 68 },
- { "shmat", 192 },
- { "shmctl", 195 },
- { "shmdt", 193 },
- { "shmget", 194 },
- { "shutdown", 117 },
- { "sigaction", __PNR_sigaction },
- { "sigaltstack", 166 },
- { "signal", 48 },
- { "signalfd", 302 },
- { "signalfd4", 309 },
- { "sigpending", 73 },
- { "sigprocmask", 126 },
- { "sigreturn", __PNR_sigreturn },
- { "sigsuspend", __PNR_sigsuspend },
- { "socket", 17 },
- { "socketcall", __PNR_socketcall },
- { "socketpair", 56 },
- { "splice", 291 },
- { "spu_create", __PNR_spu_create },
- { "spu_run", __PNR_spu_run },
- { "ssetmask", 69 },
- { "stat", 18 },
- { "stat64", 101 },
- { "statfs", 99 },
- { "statfs64", 298 },
- { "statx", 349 },
- { "stime", 25 },
- { "stty", __PNR_stty },
- { "subpage_prot", __PNR_subpage_prot },
- { "swapcontext", __PNR_swapcontext },
- { "swapoff", 115 },
- { "swapon", 87 },
- { "switch_endian", __PNR_switch_endian },
- { "symlink", 83 },
- { "symlinkat", 284 },
- { "sync", 36 },
- { "sync_file_range", 292 },
- { "sync_file_range2", __PNR_sync_file_range2 },
- { "syncfs", 327 },
- { "syscall", __PNR_syscall },
- { "sys_debug_setcontext", __PNR_sys_debug_setcontext },
- { "sysfs", 135 },
- { "sysinfo", 116 },
- { "syslog", 103 },
- { "sysmips", __PNR_sysmips },
- { "tee", 293 },
- { "tgkill", 259 },
- { "time", 13 },
- { "timer_create", 250 },
- { "timer_delete", 254 },
- { "timer_getoverrun", 253 },
- { "timer_gettime", 252 },
- { "timer_gettime64", __PNR_timer_gettime64 },
- { "timer_settime", 251 },
- { "timer_settime64", __PNR_timer_settime64 },
- { "timerfd", 303 },
- { "timerfd_create", 306 },
- { "timerfd_gettime", 308 },
- { "timerfd_gettime64", __PNR_timerfd_gettime64 },
- { "timerfd_settime", 307 },
- { "timerfd_settime64", __PNR_timerfd_settime64 },
- { "times", 43 },
- { "tkill", 208 },
- { "truncate", 92 },
- { "truncate64", 199 },
- { "tuxcall", __PNR_tuxcall },
- { "ugetrlimit", __PNR_ugetrlimit },
- { "ulimit", __PNR_ulimit },
- { "umask", 60 },
- { "umount", __PNR_umount },
- { "umount2", 52 },
- { "uname", 59 },
- { "unlink", 10 },
- { "unlinkat", 281 },
- { "unshare", 288 },
- { "uselib", 86 },
- { "userfaultfd", 344 },
- { "usr26", __PNR_usr26 },
- { "usr32", __PNR_usr32 },
- { "ustat", 62 },
- { "utime", 30 },
- { "utimensat", 301 },
- { "utimensat_time64", __PNR_utimensat_time64 },
- { "utimes", 336 },
- { "vfork", 113 },
- { "vhangup", 111 },
- { "vm86", __PNR_vm86 },
- { "vm86old", __PNR_vm86old },
- { "vmsplice", 294 },
- { "vserver", 263 },
- { "wait4", 114 },
- { "waitid", 235 },
- { "waitpid", 7 },
- { "write", 4 },
- { "writev", 146 },
- { NULL, __NR_SCMP_ERROR },
-};
-
-/**
- * Resolve a syscall name to a number
- * @param name the syscall name
- *
- * Resolve the given syscall name to the syscall number using the syscall table.
- * Returns the syscall number on success, including negative pseudo syscall
- * numbers; returns __NR_SCMP_ERROR on failure.
- *
- */
-int parisc_syscall_resolve_name(const char *name)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = parisc_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].name != NULL; iter++) {
- if (strcmp(name, table[iter].name) == 0)
- return table[iter].num;
- }
-
- return __NR_SCMP_ERROR;
-}
-
-/**
- * Resolve a syscall number to a name
- * @param num the syscall number
- *
- * Resolve the given syscall number to the syscall name using the syscall table.
- * Returns a pointer to the syscall name string on success, including pseudo
- * syscall names; returns NULL on failure.
- *
- */
-const char *parisc_syscall_resolve_num(int num)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = parisc_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
- if (num == table[iter].num)
- return table[iter].name;
- }
-
- return NULL;
-}
-
-/**
- * Iterate through the syscall table and return the syscall mapping
- * @param spot the offset into the syscall table
- *
- * Return the syscall mapping at position @spot or NULL on failure. This
- * function should only ever be used internally by libseccomp.
- *
- */
-const struct arch_syscall_def *parisc_syscall_iterate(unsigned int spot)
-{
- /* XXX - no safety checks here */
- return &parisc_syscall_table[spot];
-}
diff --git a/src/arch-ppc-syscalls.c b/src/arch-ppc-syscalls.c
deleted file mode 100644
index fbfa1df..0000000
--- a/src/arch-ppc-syscalls.c
+++ /dev/null
@@ -1,559 +0,0 @@
-/**
- * Enhanced Seccomp PPC Specific Code
- *
- * Copyright (c) 2015 Freescale <bogdan.purcareata@freescale.com>
- * Author: Bogdan Purcareata <bogdan.purcareata@freescale.com>
- *
- */
-
-/*
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License as
- * published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, see <http://www.gnu.org/licenses>.
- */
-
-#include <string.h>
-
-#include <seccomp.h>
-
-#include "arch.h"
-#include "arch-ppc.h"
-
-/* NOTE: based on Linux v5.4-rc4 */
-const struct arch_syscall_def ppc_syscall_table[] = { \
- { "_llseek", 140 },
- { "_newselect", 142 },
- { "_sysctl", 149 },
- { "accept", 330 },
- { "accept4", 344 },
- { "access", 33 },
- { "acct", 51 },
- { "add_key", 269 },
- { "adjtimex", 124 },
- { "afs_syscall", 137 },
- { "alarm", 27 },
- { "arm_fadvise64_64", __PNR_arm_fadvise64_64 },
- { "arm_sync_file_range", __PNR_arm_sync_file_range },
- { "arch_prctl", __PNR_arch_prctl },
- { "bdflush", 134 },
- { "bind", 327 },
- { "bpf", 361 },
- { "break", 17 },
- { "breakpoint", __PNR_breakpoint },
- { "brk", 45 },
- { "cachectl", __PNR_cachectl },
- { "cacheflush", __PNR_cacheflush },
- { "capget", 183 },
- { "capset", 184 },
- { "chdir", 12 },
- { "chmod", 15 },
- { "chown", 181 },
- { "chown32", __PNR_chown32 },
- { "chroot", 61 },
- { "clock_adjtime", 347 },
- { "clock_adjtime64", 405 },
- { "clock_getres", 247 },
- { "clock_getres_time64", 406 },
- { "clock_gettime", 246 },
- { "clock_gettime64", 403 },
- { "clock_nanosleep", 248 },
- { "clock_nanosleep_time64", 407 },
- { "clock_settime", 245 },
- { "clock_settime64", 404 },
- { "clone", 120 },
- { "clone3", 435 },
- { "close", 6 },
- { "connect", 328 },
- { "copy_file_range", 379 },
- { "creat", 8 },
- { "create_module", 127 },
- { "delete_module", 129 },
- { "dup", 41 },
- { "dup2", 63 },
- { "dup3", 316 },
- { "epoll_create", 236 },
- { "epoll_create1", 315 },
- { "epoll_ctl", 237 },
- { "epoll_ctl_old", __PNR_epoll_ctl_old },
- { "epoll_pwait", 303 },
- { "epoll_wait", 238 },
- { "epoll_wait_old", __PNR_epoll_wait_old },
- { "eventfd", 307 },
- { "eventfd2", 314 },
- { "execve", 11 },
- { "execveat", 362 },
- { "exit", 1 },
- { "exit_group", 234 },
- { "faccessat", 298 },
- { "fadvise64", 233 },
- { "fadvise64_64", 254 },
- { "fallocate", 309 },
- { "fanotify_init", 323 },
- { "fanotify_mark", 324 },
- { "fchdir", 133 },
- { "fchmod", 94 },
- { "fchmodat", 297 },
- { "fchown", 95 },
- { "fchown32", __PNR_fchown32 },
- { "fchownat", 289 },
- { "fcntl", 55 },
- { "fcntl64", 204 },
- { "fdatasync", 148 },
- { "fgetxattr", 214 },
- { "finit_module", 353 },
- { "flistxattr", 217 },
- { "flock", 143 },
- { "fork", 2 },
- { "fremovexattr", 220 },
- { "fsconfig", 431 },
- { "fsetxattr", 211 },
- { "fsmount", 432 },
- { "fsopen", 430 },
- { "fspick", 433 },
- { "fstat", 108 },
- { "fstat64", 197 },
- { "fstatat64", 291 },
- { "fstatfs", 100 },
- { "fstatfs64", 253 },
- { "fsync", 118 },
- { "ftime", 35 },
- { "ftruncate", 93 },
- { "ftruncate64", 194 },
- { "futex", 221 },
- { "futex_time64", 422 },
- { "futimesat", 290 },
- { "get_kernel_syms", 130 },
- { "get_mempolicy", 260 },
- { "get_robust_list", 299 },
- { "get_thread_area", __PNR_get_thread_area },
- { "get_tls", __PNR_get_tls },
- { "getcpu", 302 },
- { "getcwd", 182 },
- { "getdents", 141 },
- { "getdents64", 202 },
- { "getegid", 50 },
- { "getegid32", __PNR_getegid32 },
- { "geteuid", 49 },
- { "geteuid32", __PNR_geteuid32 },
- { "getgid", 47 },
- { "getgid32", __PNR_getgid32 },
- { "getgroups", 80 },
- { "getgroups32", __PNR_getgroups32 },
- { "getitimer", 105 },
- { "getpeername", 332 },
- { "getpgid", 132 },
- { "getpgrp", 65 },
- { "getpid", 20 },
- { "getpmsg", 187 },
- { "getppid", 64 },
- { "getpriority", 96 },
- { "getrandom", 359 },
- { "getresgid", 170 },
- { "getresgid32", __PNR_getresgid32 },
- { "getresuid", 165 },
- { "getresuid32", __PNR_getresuid32 },
- { "getrlimit", 76 },
- { "getrusage", 77 },
- { "getsid", 147 },
- { "getsockname", 331 },
- { "getsockopt", 340 },
- { "gettid", 207 },
- { "gettimeofday", 78 },
- { "getuid", 24 },
- { "getuid32", __PNR_getuid32 },
- { "getxattr", 212 },
- { "gtty", 32 },
- { "idle", 112 },
- { "init_module", 128 },
- { "inotify_add_watch", 276 },
- { "inotify_init", 275 },
- { "inotify_init1", 318 },
- { "inotify_rm_watch", 277 },
- { "io_cancel", 231 },
- { "io_destroy", 228 },
- { "io_getevents", 229 },
- { "io_pgetevents", 388 },
- { "io_pgetevents_time64", 416 },
- { "io_setup", 227 },
- { "io_submit", 230 },
- { "io_uring_setup", 425 },
- { "io_uring_enter", 426 },
- { "io_uring_register", 427 },
- { "ioctl", 54 },
- { "ioperm", 101 },
- { "iopl", 110 },
- { "ioprio_get", 274 },
- { "ioprio_set", 273 },
- { "ipc", 117 },
- { "kcmp", 354 },
- { "kexec_file_load", 382 },
- { "kexec_load", 268 },
- { "keyctl", 271 },
- { "kill", 37 },
- { "lchown", 16 },
- { "lchown32", __PNR_lchown32 },
- { "lgetxattr", 213 },
- { "link", 9 },
- { "linkat", 294 },
- { "listen", 329 },
- { "listxattr", 215 },
- { "llistxattr", 216 },
- { "lock", 53 },
- { "lookup_dcookie", 235 },
- { "lremovexattr", 219 },
- { "lseek", 19 },
- { "lsetxattr", 210 },
- { "lstat", 107 },
- { "lstat64", 196 },
- { "madvise", 205 },
- { "mbind", 259 },
- { "membarrier", 365 },
- { "memfd_create", 360 },
- { "migrate_pages", 258 },
- { "mincore", 206 },
- { "mkdir", 39 },
- { "mkdirat", 287 },
- { "mknod", 14 },
- { "mknodat", 288 },
- { "mlock", 150 },
- { "mlock2", 378 },
- { "mlockall", 152 },
- { "mmap", 90 },
- { "mmap2", 192 },
- { "modify_ldt", 123 },
- { "mount", 21 },
- { "move_mount", 429 },
- { "move_pages", 301 },
- { "mprotect", 125 },
- { "mpx", 56 },
- { "mq_getsetattr", 267 },
- { "mq_notify", 266 },
- { "mq_open", 262 },
- { "mq_timedreceive", 265 },
- { "mq_timedreceive_time64", 419 },
- { "mq_timedsend", 264 },
- { "mq_timedsend_time64", 418 },
- { "mq_unlink", 263 },
- { "mremap", 163 },
- { "msgctl", 402 },
- { "msgget", 399 },
- { "msgrcv", 401 },
- { "msgsnd", 400 },
- { "msync", 144 },
- { "multiplexer", 201 },
- { "munlock", 151 },
- { "munlockall", 153 },
- { "munmap", 91 },
- { "name_to_handle_at", 345 },
- { "nanosleep", 162 },
- { "newfstatat", __PNR_newfstatat },
- { "nfsservctl", 168 },
- { "nice", 34 },
- { "oldfstat", 28 },
- { "oldlstat", 84 },
- { "oldolduname", 59 },
- { "oldstat", 18 },
- { "olduname", 109 },
- { "oldwait4", __PNR_oldwait4 },
- { "open", 5 },
- { "open_by_handle_at", 346 },
- { "open_tree", 428 },
- { "openat", 286 },
- { "pause", 29 },
- { "pciconfig_iobase", 200 },
- { "pciconfig_read", 198 },
- { "pciconfig_write", 199 },
- { "perf_event_open", 319 },
- { "personality", 136 },
- { "pidfd_open", 434 },
- { "pidfd_send_signal", 424 },
- { "pipe", 42 },
- { "pipe2", 317 },
- { "pivot_root", 203 },
- { "pkey_alloc", 384 },
- { "pkey_free", 385 },
- { "pkey_mprotect", 386 },
- { "poll", 167 },
- { "ppoll", 281 },
- { "ppoll_time64", 414 },
- { "prctl", 171 },
- { "pread64", 179 },
- { "preadv", 320 },
- { "preadv2", 380 },
- { "prlimit64", 325 },
- { "process_vm_readv", 351 },
- { "process_vm_writev", 352 },
- { "prof", 44 },
- { "profil", 98 },
- { "pselect6", 280 },
- { "pselect6_time64", 413 },
- { "ptrace", 26 },
- { "putpmsg", 188 },
- { "pwrite64", 180 },
- { "pwritev", 321 },
- { "pwritev2", 381 },
- { "query_module", 166 },
- { "quotactl", 131 },
- { "read", 3 },
- { "readahead", 191 },
- { "readdir", 89 },
- { "readlink", 85 },
- { "readlinkat", 296 },
- { "readv", 145 },
- { "reboot", 88 },
- { "recv", 336 },
- { "recvfrom", 337 },
- { "recvmmsg", 343 },
- { "recvmmsg_time64", 417 },
- { "recvmsg", 342 },
- { "remap_file_pages", 239 },
- { "removexattr", 218 },
- { "rename", 38 },
- { "renameat", 293 },
- { "renameat2", 357 },
- { "request_key", 270 },
- { "restart_syscall", 0 },
- { "rmdir", 40 },
- { "rseq", 387 },
- { "rt_sigaction", 173 },
- { "rt_sigpending", 175 },
- { "rt_sigprocmask", 174 },
- { "rt_sigqueueinfo", 177 },
- { "rt_sigreturn", 172 },
- { "rt_sigsuspend", 178 },
- { "rt_sigtimedwait", 176 },
- { "rt_sigtimedwait_time64", 421 },
- { "rt_tgsigqueueinfo", 322 },
- { "rtas", 255 },
- { "s390_guarded_storage", __PNR_s390_guarded_storage },
- { "s390_pci_mmio_read", __PNR_s390_pci_mmio_read },
- { "s390_pci_mmio_write", __PNR_s390_pci_mmio_write },
- { "s390_runtime_instr", __PNR_s390_runtime_instr },
- { "s390_sthyi", __PNR_s390_sthyi },
- { "sched_get_priority_max", 159 },
- { "sched_get_priority_min", 160 },
- { "sched_getaffinity", 223 },
- { "sched_getattr", 356 },
- { "sched_getparam", 155 },
- { "sched_getscheduler", 157 },
- { "sched_rr_get_interval", 161 },
- { "sched_rr_get_interval_time64", 423 },
- { "sched_setaffinity", 222 },
- { "sched_setattr", 355 },
- { "sched_setparam", 154 },
- { "sched_setscheduler", 156 },
- { "sched_yield", 158 },
- { "seccomp", 358 },
- { "security", __PNR_security },
- { "select", 82 },
- { "semctl", 394 },
- { "semget", 393 },
- { "semop", __PNR_semop },
- { "semtimedop", __PNR_semtimedop },
- { "semtimedop_time64", 420 },
- { "send", 334 },
- { "sendfile", 186 },
- { "sendfile64", 226 },
- { "sendmmsg", 349 },
- { "sendmsg", 341 },
- { "sendto", 335 },
- { "set_mempolicy", 261 },
- { "set_robust_list", 300 },
- { "set_thread_area", __PNR_set_thread_area },
- { "set_tid_address", 232 },
- { "set_tls", __PNR_set_tls },
- { "setdomainname", 121 },
- { "setfsgid", 139 },
- { "setfsgid32", __PNR_setfsgid32 },
- { "setfsuid", 138 },
- { "setfsuid32", __PNR_setfsuid32 },
- { "setgid", 46 },
- { "setgid32", __PNR_setgid32 },
- { "setgroups", 81 },
- { "setgroups32", __PNR_setgroups32 },
- { "sethostname", 74 },
- { "setitimer", 104 },
- { "setns", 350 },
- { "setpgid", 57 },
- { "setpriority", 97 },
- { "setregid", 71 },
- { "setregid32", __PNR_setregid32 },
- { "setresgid", 169 },
- { "setresgid32", __PNR_setresgid32 },
- { "setresuid", 164 },
- { "setresuid32", __PNR_setresuid32 },
- { "setreuid", 70 },
- { "setreuid32", __PNR_setreuid32 },
- { "setrlimit", 75 },
- { "setsid", 66 },
- { "setsockopt", 339 },
- { "settimeofday", 79 },
- { "setuid", 23 },
- { "setuid32", __PNR_setuid32 },
- { "setxattr", 209 },
- { "sgetmask", 68 },
- { "shmat", 397 },
- { "shmctl", 396 },
- { "shmdt", 398 },
- { "shmget", 395 },
- { "shutdown", 338 },
- { "sigaction", 67 },
- { "sigaltstack", 185 },
- { "signal", 48 },
- { "signalfd", 305 },
- { "signalfd4", 313 },
- { "sigpending", 73 },
- { "sigprocmask", 126 },
- { "sigreturn", 119 },
- { "sigsuspend", 72 },
- { "socket", 326 },
- { "socketcall", 102 },
- { "socketpair", 333 },
- { "splice", 283 },
- { "spu_create", 279 },
- { "spu_run", 278 },
- { "ssetmask", 69 },
- { "stat", 106 },
- { "stat64", 195 },
- { "statfs", 99 },
- { "statfs64", 252 },
- { "statx", 383},
- { "stime", 25 },
- { "stty", 31 },
- { "subpage_prot", 310 },
- { "swapcontext", 249 },
- { "swapoff", 115 },
- { "swapon", 87 },
- { "switch_endian", 363 },
- { "symlink", 83 },
- { "symlinkat", 295 },
- { "sync", 36 },
- { "sync_file_range", __PNR_sync_file_range },
- { "sync_file_range2", 308 },
- { "syncfs", 348 },
- { "syscall", __PNR_syscall },
- { "sys_debug_setcontext", 256 },
- { "sysfs", 135 },
- { "sysinfo", 116 },
- { "syslog", 103 },
- { "sysmips", __PNR_sysmips },
- { "tee", 284 },
- { "tgkill", 250 },
- { "time", 13 },
- { "timer_create", 240 },
- { "timer_delete", 244 },
- { "timer_getoverrun", 243 },
- { "timer_gettime", 242 },
- { "timer_gettime64", 408 },
- { "timer_settime", 241 },
- { "timer_settime64", 409 },
- { "timerfd", __PNR_timerfd },
- { "timerfd_create", 306 },
- { "timerfd_gettime", 312 },
- { "timerfd_gettime64", 410 },
- { "timerfd_settime", 311 },
- { "timerfd_settime64", 411 },
- { "times", 43 },
- { "tkill", 208 },
- { "truncate", 92 },
- { "truncate64", 193 },
- { "tuxcall", 225 },
- { "ugetrlimit", 190 },
- { "ulimit", 58 },
- { "umask", 60 },
- { "umount", 22 },
- { "umount2", 52 },
- { "uname", 122 },
- { "unlink", 10 },
- { "unlinkat", 292 },
- { "unshare", 282 },
- { "uselib", 86 },
- { "userfaultfd", 364 },
- { "usr26", __PNR_usr26 },
- { "usr32", __PNR_usr32 },
- { "ustat", 62 },
- { "utime", 30 },
- { "utimensat", 304 },
- { "utimensat_time64", 412 },
- { "utimes", 251 },
- { "vfork", 189 },
- { "vhangup", 111 },
- { "vm86", 113 },
- { "vm86old", __PNR_vm86old },
- { "vmsplice", 285 },
- { "vserver", __PNR_vserver },
- { "wait4", 114 },
- { "waitid", 272 },
- { "waitpid", 7 },
- { "write", 4 },
- { "writev", 146 },
- { NULL, __NR_SCMP_ERROR },
-};
-
-/**
- * Resolve a syscall name to a number
- * @param name the syscall name
- *
- * Resolve the given syscall name to the syscall number using the syscall table.
- * Returns the syscall number on success, including negative pseudo syscall
- * numbers; returns __NR_SCMP_ERROR on failure.
- *
- */
-int ppc_syscall_resolve_name(const char *name)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = ppc_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].name != NULL; iter++) {
- if (strcmp(name, table[iter].name) == 0)
- return table[iter].num;
- }
-
- return __NR_SCMP_ERROR;
-}
-
-/**
- * Resolve a syscall number to a name
- * @param num the syscall number
- *
- * Resolve the given syscall number to the syscall name using the syscall table.
- * Returns a pointer to the syscall name string on success, including pseudo
- * syscall names; returns NULL on failure.
- *
- */
-const char *ppc_syscall_resolve_num(int num)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = ppc_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
- if (num == table[iter].num)
- return table[iter].name;
- }
-
- return NULL;
-}
-
-/**
- * Iterate through the syscall table and return the syscall mapping
- * @param spot the offset into the syscall table
- *
- * Return the syscall mapping at position @spot or NULL on failure. This
- * function should only ever be used internally by libseccomp.
- *
- */
-const struct arch_syscall_def *ppc_syscall_iterate(unsigned int spot)
-{
- /* XXX - no safety checks here */
- return &ppc_syscall_table[spot];
-}
diff --git a/src/arch-ppc64-syscalls.c b/src/arch-ppc64-syscalls.c
deleted file mode 100644
index 41f82af..0000000
--- a/src/arch-ppc64-syscalls.c
+++ /dev/null
@@ -1,559 +0,0 @@
-/**
- * Enhanced Seccomp PPC64 Specific Code
- *
- * Copyright (c) 2014 Red Hat <pmoore@redhat.com>
- * Author: Paul Moore <paul@paul-moore.com>
- *
- */
-
-/*
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License as
- * published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, see <http://www.gnu.org/licenses>.
- */
-
-#include <string.h>
-
-#include <seccomp.h>
-
-#include "arch.h"
-#include "arch-ppc64.h"
-
-/* NOTE: based on Linux v5.4-rc4 */
-const struct arch_syscall_def ppc64_syscall_table[] = { \
- { "_llseek", 140 },
- { "_newselect", 142 },
- { "_sysctl", 149 },
- { "accept", 330 },
- { "accept4", 344 },
- { "access", 33 },
- { "acct", 51 },
- { "add_key", 269 },
- { "adjtimex", 124 },
- { "afs_syscall", 137 },
- { "alarm", 27 },
- { "arm_fadvise64_64", __PNR_arm_fadvise64_64 },
- { "arm_sync_file_range", __PNR_arm_sync_file_range },
- { "arch_prctl", __PNR_arch_prctl },
- { "bdflush", 134 },
- { "bind", 327 },
- { "bpf", 361 },
- { "break", 17 },
- { "breakpoint", __PNR_breakpoint },
- { "brk", 45 },
- { "cachectl", __PNR_cachectl },
- { "cacheflush", __PNR_cacheflush },
- { "capget", 183 },
- { "capset", 184 },
- { "chdir", 12 },
- { "chmod", 15 },
- { "chown", 181 },
- { "chown32", __PNR_chown32 },
- { "chroot", 61 },
- { "clock_adjtime", 347 },
- { "clock_adjtime64", __PNR_clock_adjtime64 },
- { "clock_getres", 247 },
- { "clock_getres_time64", __PNR_clock_getres_time64 },
- { "clock_gettime", 246 },
- { "clock_gettime64", __PNR_clock_gettime64 },
- { "clock_nanosleep", 248 },
- { "clock_nanosleep_time64", __PNR_clock_nanosleep_time64 },
- { "clock_settime", 245 },
- { "clock_settime64", __PNR_clock_settime64 },
- { "clone", 120 },
- { "clone3", 435 },
- { "close", 6 },
- { "connect", 328 },
- { "copy_file_range", 379 },
- { "creat", 8 },
- { "create_module", 127 },
- { "delete_module", 129 },
- { "dup", 41 },
- { "dup2", 63 },
- { "dup3", 316 },
- { "epoll_create", 236 },
- { "epoll_create1", 315 },
- { "epoll_ctl", 237 },
- { "epoll_ctl_old", __PNR_epoll_ctl_old },
- { "epoll_pwait", 303 },
- { "epoll_wait", 238 },
- { "epoll_wait_old", __PNR_epoll_wait_old },
- { "eventfd", 307 },
- { "eventfd2", 314 },
- { "execve", 11 },
- { "execveat", 362 },
- { "exit", 1 },
- { "exit_group", 234 },
- { "faccessat", 298 },
- { "fadvise64", 233 },
- { "fadvise64_64", __PNR_fadvise64_64 },
- { "fallocate", 309 },
- { "fanotify_init", 323 },
- { "fanotify_mark", 324 },
- { "fchdir", 133 },
- { "fchmod", 94 },
- { "fchmodat", 297 },
- { "fchown", 95 },
- { "fchown32", __PNR_fchown32 },
- { "fchownat", 289 },
- { "fcntl", 55 },
- { "fcntl64", __PNR_fcntl64 },
- { "fdatasync", 148 },
- { "fgetxattr", 214 },
- { "finit_module", 353 },
- { "flistxattr", 217 },
- { "flock", 143 },
- { "fork", 2 },
- { "fremovexattr", 220 },
- { "fsconfig", 431 },
- { "fsetxattr", 211 },
- { "fsmount", 432 },
- { "fsopen", 430 },
- { "fspick", 433 },
- { "fstat", 108 },
- { "fstat64", __PNR_fstat64 },
- { "fstatat64", __PNR_fstatat64 },
- { "fstatfs", 100 },
- { "fstatfs64", 253 },
- { "fsync", 118 },
- { "ftime", 35 },
- { "ftruncate", 93 },
- { "ftruncate64", __PNR_ftruncate64 },
- { "futex", 221 },
- { "futex_time64", __PNR_futex_time64 },
- { "futimesat", 290 },
- { "get_kernel_syms", 130 },
- { "get_mempolicy", 260 },
- { "get_robust_list", 299 },
- { "get_thread_area", __PNR_get_thread_area },
- { "get_tls", __PNR_get_tls },
- { "getcpu", 302 },
- { "getcwd", 182 },
- { "getdents", 141 },
- { "getdents64", 202 },
- { "getegid", 50 },
- { "getegid32", __PNR_getegid32 },
- { "geteuid", 49 },
- { "geteuid32", __PNR_geteuid32 },
- { "getgid", 47 },
- { "getgid32", __PNR_getgid32 },
- { "getgroups", 80 },
- { "getgroups32", __PNR_getgroups32 },
- { "getitimer", 105 },
- { "getpeername", 332 },
- { "getpgid", 132 },
- { "getpgrp", 65 },
- { "getpid", 20 },
- { "getpmsg", 187 },
- { "getppid", 64 },
- { "getpriority", 96 },
- { "getrandom", 359 },
- { "getresgid", 170 },
- { "getresgid32", __PNR_getresgid32 },
- { "getresuid", 165 },
- { "getresuid32", __PNR_getresuid32 },
- { "getrlimit", 76 },
- { "getrusage", 77 },
- { "getsid", 147 },
- { "getsockname", 331 },
- { "getsockopt", 340 },
- { "gettid", 207 },
- { "gettimeofday", 78 },
- { "getuid", 24 },
- { "getuid32", __PNR_getuid32 },
- { "getxattr", 212 },
- { "gtty", 32 },
- { "idle", 112 },
- { "init_module", 128 },
- { "inotify_add_watch", 276 },
- { "inotify_init", 275 },
- { "inotify_init1", 318 },
- { "inotify_rm_watch", 277 },
- { "io_cancel", 231 },
- { "io_destroy", 228 },
- { "io_getevents", 229 },
- { "io_pgetevents", 388 },
- { "io_pgetevents_time64", __PNR_io_pgetevents_time64 },
- { "io_setup", 227 },
- { "io_submit", 230 },
- { "io_uring_setup", 425 },
- { "io_uring_enter", 426 },
- { "io_uring_register", 427 },
- { "ioctl", 54 },
- { "ioperm", 101 },
- { "iopl", 110 },
- { "ioprio_get", 274 },
- { "ioprio_set", 273 },
- { "ipc", 117 },
- { "kcmp", 354 },
- { "kexec_file_load", 382 },
- { "kexec_load", 268 },
- { "keyctl", 271 },
- { "kill", 37 },
- { "lchown", 16 },
- { "lchown32", __PNR_lchown32 },
- { "lgetxattr", 213 },
- { "link", 9 },
- { "linkat", 294 },
- { "listen", 329 },
- { "listxattr", 215 },
- { "llistxattr", 216 },
- { "lock", 53 },
- { "lookup_dcookie", 235 },
- { "lremovexattr", 219 },
- { "lseek", 19 },
- { "lsetxattr", 210 },
- { "lstat", 107 },
- { "lstat64", __PNR_lstat64 },
- { "madvise", 205 },
- { "mbind", 259 },
- { "membarrier", 365 },
- { "memfd_create", 360 },
- { "migrate_pages", 258 },
- { "mincore", 206 },
- { "mkdir", 39 },
- { "mkdirat", 287 },
- { "mknod", 14 },
- { "mknodat", 288 },
- { "mlock", 150 },
- { "mlock2", 378 },
- { "mlockall", 152 },
- { "mmap", 90 },
- { "mmap2", __PNR_mmap2 },
- { "modify_ldt", 123 },
- { "mount", 21 },
- { "move_mount", 429 },
- { "move_pages", 301 },
- { "mprotect", 125 },
- { "mpx", 56 },
- { "mq_getsetattr", 267 },
- { "mq_notify", 266 },
- { "mq_open", 262 },
- { "mq_timedreceive", 265 },
- { "mq_timedreceive_time64", __PNR_mq_timedreceive_time64 },
- { "mq_timedsend", 264 },
- { "mq_timedsend_time64", __PNR_mq_timedsend_time64 },
- { "mq_unlink", 263 },
- { "mremap", 163 },
- { "msgctl", 402 },
- { "msgget", 399 },
- { "msgrcv", 401 },
- { "msgsnd", 400 },
- { "msync", 144 },
- { "multiplexer", 201 },
- { "munlock", 151 },
- { "munlockall", 153 },
- { "munmap", 91 },
- { "name_to_handle_at", 345 },
- { "nanosleep", 162 },
- { "newfstatat", 291 },
- { "nfsservctl", 168 },
- { "nice", 34 },
- { "oldfstat", 28 },
- { "oldlstat", 84 },
- { "oldolduname", 59 },
- { "oldstat", 18 },
- { "olduname", 109 },
- { "oldwait4", __PNR_oldwait4 },
- { "open", 5 },
- { "open_by_handle_at", 346 },
- { "open_tree", 428 },
- { "openat", 286 },
- { "pause", 29 },
- { "pciconfig_iobase", 200 },
- { "pciconfig_read", 198 },
- { "pciconfig_write", 199 },
- { "perf_event_open", 319 },
- { "personality", 136 },
- { "pidfd_open", 434 },
- { "pidfd_send_signal", 424 },
- { "pipe", 42 },
- { "pipe2", 317 },
- { "pivot_root", 203 },
- { "pkey_alloc", 384 },
- { "pkey_free", 385 },
- { "pkey_mprotect", 386 },
- { "poll", 167 },
- { "ppoll", 281 },
- { "ppoll_time64", __PNR_ppoll_time64 },
- { "prctl", 171 },
- { "pread64", 179 },
- { "preadv", 320 },
- { "preadv2", 380 },
- { "prlimit64", 325 },
- { "process_vm_readv", 351 },
- { "process_vm_writev", 352 },
- { "prof", 44 },
- { "profil", 98 },
- { "pselect6", 280 },
- { "pselect6_time64", __PNR_pselect6_time64 },
- { "ptrace", 26 },
- { "putpmsg", 188 },
- { "pwrite64", 180 },
- { "pwritev", 321 },
- { "pwritev2", 381 },
- { "query_module", 166 },
- { "quotactl", 131 },
- { "read", 3 },
- { "readahead", 191 },
- { "readdir", 89 },
- { "readlink", 85 },
- { "readlinkat", 296 },
- { "readv", 145 },
- { "reboot", 88 },
- { "recv", 336 },
- { "recvfrom", 337 },
- { "recvmmsg", 343 },
- { "recvmmsg_time64", __PNR_recvmmsg_time64 },
- { "recvmsg", 342 },
- { "remap_file_pages", 239 },
- { "removexattr", 218 },
- { "rename", 38 },
- { "renameat", 293 },
- { "renameat2", 357 },
- { "request_key", 270 },
- { "restart_syscall", 0 },
- { "rmdir", 40 },
- { "rseq", 387 },
- { "rt_sigaction", 173 },
- { "rt_sigpending", 175 },
- { "rt_sigprocmask", 174 },
- { "rt_sigqueueinfo", 177 },
- { "rt_sigreturn", 172 },
- { "rt_sigsuspend", 178 },
- { "rt_sigtimedwait", 176 },
- { "rt_sigtimedwait_time64", __PNR_rt_sigtimedwait_time64 },
- { "rt_tgsigqueueinfo", 322 },
- { "rtas", 255 },
- { "s390_guarded_storage", __PNR_s390_guarded_storage },
- { "s390_pci_mmio_read", __PNR_s390_pci_mmio_read },
- { "s390_pci_mmio_write", __PNR_s390_pci_mmio_write },
- { "s390_runtime_instr", __PNR_s390_runtime_instr },
- { "s390_sthyi", __PNR_s390_sthyi },
- { "sched_get_priority_max", 159 },
- { "sched_get_priority_min", 160 },
- { "sched_getaffinity", 223 },
- { "sched_getattr", 356 },
- { "sched_getparam", 155 },
- { "sched_getscheduler", 157 },
- { "sched_rr_get_interval", 161 },
- { "sched_rr_get_interval_time64", __PNR_sched_rr_get_interval_time64 },
- { "sched_setaffinity", 222 },
- { "sched_setattr", 355 },
- { "sched_setparam", 154 },
- { "sched_setscheduler", 156 },
- { "sched_yield", 158 },
- { "seccomp", 358 },
- { "security", __PNR_security },
- { "select", 82 },
- { "semctl", 394 },
- { "semget", 393 },
- { "semop", __PNR_semop },
- { "semtimedop", 392 },
- { "semtimedop_time64", __PNR_semtimedop_time64 },
- { "send", 334 },
- { "sendfile", 186 },
- { "sendfile64", __PNR_sendfile64 },
- { "sendmmsg", 349 },
- { "sendmsg", 341 },
- { "sendto", 335 },
- { "set_mempolicy", 261 },
- { "set_robust_list", 300 },
- { "set_thread_area", __PNR_set_thread_area },
- { "set_tid_address", 232 },
- { "set_tls", __PNR_set_tls },
- { "setdomainname", 121 },
- { "setfsgid", 139 },
- { "setfsgid32", __PNR_setfsgid32 },
- { "setfsuid", 138 },
- { "setfsuid32", __PNR_setfsuid32 },
- { "setgid", 46 },
- { "setgid32", __PNR_setgid32 },
- { "setgroups", 81 },
- { "setgroups32", __PNR_setgroups32 },
- { "sethostname", 74 },
- { "setitimer", 104 },
- { "setns", 350 },
- { "setpgid", 57 },
- { "setpriority", 97 },
- { "setregid", 71 },
- { "setregid32", __PNR_setregid32 },
- { "setresgid", 169 },
- { "setresgid32", __PNR_setresgid32 },
- { "setresuid", 164 },
- { "setresuid32", __PNR_setresuid32 },
- { "setreuid", 70 },
- { "setreuid32", __PNR_setreuid32 },
- { "setrlimit", 75 },
- { "setsid", 66 },
- { "setsockopt", 339 },
- { "settimeofday", 79 },
- { "setuid", 23 },
- { "setuid32", __PNR_setuid32 },
- { "setxattr", 209 },
- { "sgetmask", 68 },
- { "shmat", 397 },
- { "shmctl", 396 },
- { "shmdt", 398 },
- { "shmget", 395 },
- { "shutdown", 338 },
- { "sigaction", 67 },
- { "sigaltstack", 185 },
- { "signal", 48 },
- { "signalfd", 305 },
- { "signalfd4", 313 },
- { "sigpending", 73 },
- { "sigprocmask", 126 },
- { "sigreturn", 119 },
- { "sigsuspend", 72 },
- { "socket", 326 },
- { "socketcall", 102 },
- { "socketpair", 333 },
- { "splice", 283 },
- { "spu_create", 279 },
- { "spu_run", 278 },
- { "ssetmask", 69 },
- { "stat", 106 },
- { "stat64", __PNR_stat64 },
- { "statfs", 99 },
- { "statfs64", 252 },
- { "statx", 383},
- { "stime", 25 },
- { "stty", 31 },
- { "subpage_prot", 310 },
- { "swapcontext", 249 },
- { "swapoff", 115 },
- { "swapon", 87 },
- { "switch_endian", 363 },
- { "symlink", 83 },
- { "symlinkat", 295 },
- { "sync", 36 },
- { "sync_file_range", __PNR_sync_file_range },
- { "sync_file_range2", 308 },
- { "syncfs", 348 },
- { "syscall", __PNR_syscall },
- { "sys_debug_setcontext", 256 },
- { "sysfs", 135 },
- { "sysinfo", 116 },
- { "syslog", 103 },
- { "sysmips", __PNR_sysmips },
- { "tee", 284 },
- { "tgkill", 250 },
- { "time", 13 },
- { "timer_create", 240 },
- { "timer_delete", 244 },
- { "timer_getoverrun", 243 },
- { "timer_gettime", 242 },
- { "timer_gettime64", __PNR_timer_gettime64 },
- { "timer_settime", 241 },
- { "timer_settime64", __PNR_timer_settime64 },
- { "timerfd", __PNR_timerfd },
- { "timerfd_create", 306 },
- { "timerfd_gettime", 312 },
- { "timerfd_gettime64", __PNR_timerfd_gettime64 },
- { "timerfd_settime", 311 },
- { "timerfd_settime64", __PNR_timerfd_settime64 },
- { "times", 43 },
- { "tkill", 208 },
- { "truncate", 92 },
- { "truncate64", __PNR_truncate64 },
- { "tuxcall", 225 },
- { "ugetrlimit", 190 },
- { "ulimit", 58 },
- { "umask", 60 },
- { "umount", 22 },
- { "umount2", 52 },
- { "uname", 122 },
- { "unlink", 10 },
- { "unlinkat", 292 },
- { "unshare", 282 },
- { "uselib", 86 },
- { "userfaultfd", 364 },
- { "usr26", __PNR_usr26 },
- { "usr32", __PNR_usr32 },
- { "ustat", 62 },
- { "utime", 30 },
- { "utimensat", 304 },
- { "utimensat_time64", __PNR_utimensat_time64 },
- { "utimes", 251 },
- { "vfork", 189 },
- { "vhangup", 111 },
- { "vm86", 113 },
- { "vm86old", __PNR_vm86old },
- { "vmsplice", 285 },
- { "vserver", __PNR_vserver },
- { "wait4", 114 },
- { "waitid", 272 },
- { "waitpid", 7 },
- { "write", 4 },
- { "writev", 146 },
- { NULL, __NR_SCMP_ERROR },
-};
-
-/**
- * Resolve a syscall name to a number
- * @param name the syscall name
- *
- * Resolve the given syscall name to the syscall number using the syscall table.
- * Returns the syscall number on success, including negative pseudo syscall
- * numbers; returns __NR_SCMP_ERROR on failure.
- *
- */
-int ppc64_syscall_resolve_name(const char *name)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = ppc64_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].name != NULL; iter++) {
- if (strcmp(name, table[iter].name) == 0)
- return table[iter].num;
- }
-
- return __NR_SCMP_ERROR;
-}
-
-/**
- * Resolve a syscall number to a name
- * @param num the syscall number
- *
- * Resolve the given syscall number to the syscall name using the syscall table.
- * Returns a pointer to the syscall name string on success, including pseudo
- * syscall names; returns NULL on failure.
- *
- */
-const char *ppc64_syscall_resolve_num(int num)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = ppc64_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
- if (num == table[iter].num)
- return table[iter].name;
- }
-
- return NULL;
-}
-
-/**
- * Iterate through the syscall table and return the syscall mapping
- * @param spot the offset into the syscall table
- *
- * Return the syscall mapping at position @spot or NULL on failure. This
- * function should only ever be used internally by libseccomp.
- *
- */
-const struct arch_syscall_def *ppc64_syscall_iterate(unsigned int spot)
-{
- /* XXX - no safety checks here */
- return &ppc64_syscall_table[spot];
-}
diff --git a/src/arch-riscv64-syscalls.c b/src/arch-riscv64-syscalls.c
deleted file mode 100644
index ceebece..0000000
--- a/src/arch-riscv64-syscalls.c
+++ /dev/null
@@ -1,553 +0,0 @@
-/*
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License as
- * published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, see <http://www.gnu.org/licenses>.
- */
-
-#include <string.h>
-
-#include <seccomp.h>
-
-#include "arch.h"
-#include "arch-riscv64.h"
-
-/* NOTE: based on Linux 5.4 */
-const struct arch_syscall_def riscv64_syscall_table[] = { \
- { "_llseek", __PNR__llseek },
- { "_newselect", __PNR__newselect },
- { "_sysctl", __PNR__sysctl },
- { "accept", 202 },
- { "accept4", 242 },
- { "access", __PNR_access },
- { "acct", 89 },
- { "add_key", 217 },
- { "adjtimex", 171 },
- { "afs_syscall", __PNR_afs_syscall },
- { "alarm", __PNR_alarm },
- { "arm_fadvise64_64", __PNR_arm_fadvise64_64 },
- { "arm_sync_file_range", __PNR_arm_sync_file_range },
- { "arch_prctl", __PNR_arch_prctl },
- { "bdflush", __PNR_bdflush },
- { "bind", 200 },
- { "bpf", 280 },
- { "break", __PNR_break },
- { "breakpoint", __PNR_breakpoint },
- { "brk", 214 },
- { "cachectl", __PNR_cachectl },
- { "cacheflush", __PNR_cacheflush },
- { "capget", 90 },
- { "capset", 91 },
- { "chdir", 49 },
- { "chmod", __PNR_chmod },
- { "chown", __PNR_chown },
- { "chown32", __PNR_chown32 },
- { "chroot", 51 },
- { "clock_adjtime", 266 },
- { "clock_adjtime64", __PNR_clock_adjtime64 },
- { "clock_getres", 114 },
- { "clock_getres_time64", __PNR_clock_getres_time64 },
- { "clock_gettime", 113 },
- { "clock_gettime64", __PNR_clock_gettime64 },
- { "clock_nanosleep", 115 },
- { "clock_nanosleep_time64", __PNR_clock_nanosleep_time64 },
- { "clock_settime", 112 },
- { "clock_settime64", __PNR_clock_settime64 },
- { "clone", 220 },
- { "clone3", 435 },
- { "close", 57 },
- { "connect", 203 },
- { "copy_file_range", 285 },
- { "creat", __PNR_creat },
- { "create_module", __PNR_create_module },
- { "delete_module", 106 },
- { "dup", 23 },
- { "dup2", __PNR_dup2 },
- { "dup3", 24 },
- { "epoll_create", __PNR_epoll_create },
- { "epoll_create1", 20 },
- { "epoll_ctl", 21 },
- { "epoll_ctl_old", __PNR_epoll_ctl_old },
- { "epoll_pwait", 22 },
- { "epoll_wait", __PNR_epoll_wait },
- { "epoll_wait_old", __PNR_epoll_wait_old },
- { "eventfd", __PNR_eventfd },
- { "eventfd2", 19 },
- { "execve", 221 },
- { "execveat", 281 },
- { "exit", 93 },
- { "exit_group", 94 },
- { "faccessat", 48 },
- { "fadvise64", 223 },
- { "fadvise64_64", __PNR_fadvise64_64 },
- { "fallocate", 47 },
- { "fanotify_init", 262 },
- { "fanotify_mark", 263 },
- { "fchdir", 50 },
- { "fchmod", 52 },
- { "fchmodat", 53 },
- { "fchown", 55 },
- { "fchown32", __PNR_fchown32 },
- { "fchownat", 54 },
- { "fcntl", 25 },
- { "fcntl64", __PNR_fcntl64 },
- { "fdatasync", 83 },
- { "fgetxattr", 10 },
- { "finit_module", 273 },
- { "flistxattr", 13 },
- { "flock", 32 },
- { "fork", __PNR_fork },
- { "fremovexattr", 16 },
- { "fsconfig", 431 },
- { "fsetxattr", 7 },
- { "fsmount", 432 },
- { "fsopen", 430 },
- { "fspick", 433 },
- { "fstat", 80 },
- { "fstat64", __PNR_fstat64 },
- { "fstatat64", __PNR_fstatat64 },
- { "fstatfs", 44 },
- { "fstatfs64", __PNR_fstatfs64 },
- { "fsync", 82 },
- { "ftime", __PNR_ftime },
- { "ftruncate", 46 },
- { "ftruncate64", __PNR_ftruncate64 },
- { "futex", 98 },
- { "futex_time64", __PNR_futex_time64 },
- { "futimesat", __PNR_futimesat },
- { "get_kernel_syms", __PNR_get_kernel_syms },
- { "get_mempolicy", 236 },
- { "get_robust_list", 100 },
- { "get_thread_area", __PNR_get_thread_area },
- { "get_tls", __PNR_get_tls },
- { "getcpu", 168 },
- { "getcwd", 17 },
- { "getdents", __PNR_getdents },
- { "getdents64", 61 },
- { "getegid", 177 },
- { "getegid32", __PNR_getegid32 },
- { "geteuid", 175 },
- { "geteuid32", __PNR_geteuid32 },
- { "getgid", 176 },
- { "getgid32", __PNR_getgid32 },
- { "getgroups", 158 },
- { "getgroups32", __PNR_getgroups32 },
- { "getitimer", 102 },
- { "getpeername", 205 },
- { "getpgid", 155 },
- { "getpgrp", __PNR_getpgrp },
- { "getpid", 172 },
- { "getpmsg", __PNR_getpmsg },
- { "getppid", 173 },
- { "getpriority", 141 },
- { "getrandom", 278 },
- { "getresgid", 150 },
- { "getresgid32", __PNR_getresgid32 },
- { "getresuid", 148 },
- { "getresuid32", __PNR_getresuid32 },
- { "getrlimit", 163 },
- { "getrusage", 165 },
- { "getsid", 156 },
- { "getsockname", 204 },
- { "getsockopt", 209 },
- { "gettid", 178 },
- { "gettimeofday", 169 },
- { "getuid", 174 },
- { "getuid32", __PNR_getuid32 },
- { "getxattr", 8 },
- { "gtty", __PNR_gtty },
- { "idle", __PNR_idle },
- { "init_module", 105 },
- { "inotify_add_watch", 27 },
- { "inotify_init", __PNR_inotify_init },
- { "inotify_init1", 26 },
- { "inotify_rm_watch", 28 },
- { "io_cancel", 3 },
- { "io_destroy", 1 },
- { "io_getevents", 4 },
- { "io_pgetevents", 292 },
- { "io_pgetevents_time64", __PNR_io_pgetevents_time64 },
- { "io_setup", 0 },
- { "io_submit", 2 },
- { "io_uring_enter", 426 },
- { "io_uring_register", 427 },
- { "io_uring_setup", 425 },
- { "ioctl", 29 },
- { "ioperm", __PNR_ioperm },
- { "iopl", __PNR_iopl },
- { "ioprio_get", 31 },
- { "ioprio_set", 30 },
- { "ipc", __PNR_ipc },
- { "kcmp", 272 },
- { "kexec_file_load", 294 },
- { "kexec_load", 104 },
- { "keyctl", 219 },
- { "kill", 129 },
- { "lchown", __PNR_lchown },
- { "lchown32", __PNR_lchown32 },
- { "lgetxattr", 9 },
- { "link", __PNR_link },
- { "linkat", 37 },
- { "listen", 201 },
- { "listxattr", 11 },
- { "llistxattr", 12 },
- { "lock", __PNR_lock },
- { "lookup_dcookie", 18 },
- { "lremovexattr", 15 },
- { "lseek", 62 },
- { "lsetxattr", 6 },
- { "lstat", __PNR_lstat },
- { "lstat64", __PNR_lstat64 },
- { "madvise", 233 },
- { "mbind", 235 },
- { "membarrier", 283 },
- { "memfd_create", 279 },
- { "migrate_pages", 238 },
- { "mincore", 232 },
- { "mkdir", __PNR_mkdir },
- { "mkdirat", 34 },
- { "mknod", __PNR_mknod },
- { "mknodat", 33 },
- { "mlock", 228 },
- { "mlock2", 284 },
- { "mlockall", 230 },
- { "mmap", 222 },
- { "mmap2", __PNR_mmap2 },
- { "modify_ldt", __PNR_modify_ldt },
- { "mount", 40 },
- { "move_mount", 429 },
- { "move_pages", 239 },
- { "mprotect", 226 },
- { "mpx", __PNR_mpx },
- { "mq_getsetattr", 185 },
- { "mq_notify", 184 },
- { "mq_open", 180 },
- { "mq_timedreceive", 183 },
- { "mq_timedreceive_time64", __PNR_mq_timedreceive_time64 },
- { "mq_timedsend", 182 },
- { "mq_timedsend_time64", __PNR_mq_timedsend_time64 },
- { "mq_unlink", 181 },
- { "mremap", 216 },
- { "msgctl", 187 },
- { "msgget", 186 },
- { "msgrcv", 188 },
- { "msgsnd", 189 },
- { "msync", 227 },
- { "multiplexer", __PNR_multiplexer },
- { "munlock", 229 },
- { "munlockall", 231 },
- { "munmap", 215 },
- { "name_to_handle_at", 264 },
- { "nanosleep", 101 },
- { "newfstatat", 79 },
- { "nfsservctl", 42 },
- { "nice", __PNR_nice },
- { "oldfstat", __PNR_oldfstat },
- { "oldlstat", __PNR_oldlstat },
- { "oldolduname", __PNR_oldolduname },
- { "oldstat", __PNR_oldstat },
- { "olduname", __PNR_olduname },
- { "oldwait4", __PNR_oldwait4 },
- { "open", __PNR_open },
- { "open_by_handle_at", 265 },
- { "open_tree", 428 },
- { "openat", 56 },
- { "pause", __PNR_pause },
- { "pciconfig_iobase", __PNR_pciconfig_iobase },
- { "pciconfig_read", __PNR_pciconfig_read },
- { "pciconfig_write", __PNR_pciconfig_write },
- { "perf_event_open", 241 },
- { "personality", 92 },
- { "pidfd_open", 434 },
- { "pidfd_send_signal", 424 },
- { "pipe", __PNR_pipe },
- { "pipe2", 59 },
- { "pivot_root", 41 },
- { "pkey_alloc", 289 },
- { "pkey_free", 290 },
- { "pkey_mprotect", 288 },
- { "poll", __PNR_poll },
- { "ppoll", 73 },
- { "ppoll_time64", __PNR_ppoll_time64 },
- { "prctl", 167 },
- { "pread64", 67 },
- { "preadv", 69 },
- { "preadv2", 286 },
- { "prlimit64", 261 },
- { "process_vm_readv", 270 },
- { "process_vm_writev", 271 },
- { "prof", __PNR_prof },
- { "profil", __PNR_profil },
- { "pselect6", 72 },
- { "pselect6_time64", __PNR_pselect6_time64 },
- { "ptrace", 117 },
- { "putpmsg", __PNR_putpmsg },
- { "pwrite64", 68 },
- { "pwritev", 70 },
- { "pwritev2", 287 },
- { "query_module", __PNR_query_module },
- { "quotactl", 60 },
- { "read", 63 },
- { "readahead", 213 },
- { "readdir", __PNR_readdir },
- { "readlink", __PNR_readlink },
- { "readlinkat", 78 },
- { "readv", 65 },
- { "reboot", 142 },
- { "recv", __PNR_recv },
- { "recvfrom", 207 },
- { "recvmmsg", 243 },
- { "recvmmsg_time64", __PNR_recvmmsg_time64 },
- { "recvmsg", 212 },
- { "remap_file_pages", 234 },
- { "removexattr", 14 },
- { "rename", __PNR_rename },
- { "renameat", __PNR_renameat },
- { "renameat2", 276 },
- { "request_key", 218 },
- { "restart_syscall", 128 },
- { "rmdir", __PNR_rmdir },
- { "riscv_flush_icache", 244 },
- { "rseq", 293 },
- { "rt_sigaction", 134 },
- { "rt_sigpending", 136 },
- { "rt_sigprocmask", 135 },
- { "rt_sigqueueinfo", 138 },
- { "rt_sigreturn", 139 },
- { "rt_sigsuspend", 133 },
- { "rt_sigtimedwait", 137 },
- { "rt_sigtimedwait_time64", __PNR_rt_sigtimedwait_time64 },
- { "rt_tgsigqueueinfo", 240 },
- { "rtas", __PNR_rtas },
- { "s390_guarded_storage", __PNR_s390_guarded_storage },
- { "s390_pci_mmio_read", __PNR_s390_pci_mmio_read },
- { "s390_pci_mmio_write", __PNR_s390_pci_mmio_write },
- { "s390_runtime_instr", __PNR_s390_runtime_instr },
- { "s390_sthyi", __PNR_s390_sthyi },
- { "sched_get_priority_max", 125 },
- { "sched_get_priority_min", 126 },
- { "sched_getaffinity", 123 },
- { "sched_getattr", 275 },
- { "sched_getparam", 121 },
- { "sched_getscheduler", 120 },
- { "sched_rr_get_interval", 127 },
- { "sched_rr_get_interval_time64", __PNR_sched_rr_get_interval_time64 },
- { "sched_setaffinity", 122 },
- { "sched_setattr", 274 },
- { "sched_setparam", 118 },
- { "sched_setscheduler", 119 },
- { "sched_yield", 124 },
- { "seccomp", 277 },
- { "security", __PNR_security },
- { "select", __PNR_select },
- { "semctl", 191 },
- { "semget", 190 },
- { "semop", 193 },
- { "semtimedop", 192 },
- { "semtimedop_time64", __PNR_semtimedop_time64 },
- { "send", __PNR_send },
- { "sendfile", 71 },
- { "sendfile64", __PNR_sendfile64 },
- { "sendmmsg", 269 },
- { "sendmsg", 211 },
- { "sendto", 206 },
- { "set_mempolicy", 237 },
- { "set_robust_list", 99 },
- { "set_thread_area", __PNR_set_thread_area },
- { "set_tid_address", 96 },
- { "set_tls", __PNR_set_tls },
- { "setdomainname", 162 },
- { "setfsgid", 152 },
- { "setfsgid32", __PNR_setfsgid32 },
- { "setfsuid", 151 },
- { "setfsuid32", __PNR_setfsuid32 },
- { "setgid", 144 },
- { "setgid32", __PNR_setgid32 },
- { "setgroups", 159 },
- { "setgroups32", __PNR_setgroups32 },
- { "sethostname", 161 },
- { "setitimer", 103 },
- { "setns", 268 },
- { "setpgid", 154 },
- { "setpriority", 140 },
- { "setregid", 143 },
- { "setregid32", __PNR_setregid32 },
- { "setresgid", 149 },
- { "setresgid32", __PNR_setresgid32 },
- { "setresuid", 147 },
- { "setresuid32", __PNR_setresuid32 },
- { "setreuid", 145 },
- { "setreuid32", __PNR_setreuid32 },
- { "setrlimit", 164 },
- { "setsid", 157 },
- { "setsockopt", 208 },
- { "settimeofday", 170 },
- { "setuid", 146 },
- { "setuid32", __PNR_setuid32 },
- { "setxattr", 5 },
- { "sgetmask", __PNR_sgetmask },
- { "shmat", 196 },
- { "shmctl", 195 },
- { "shmdt", 197 },
- { "shmget", 194 },
- { "shutdown", 210 },
- { "sigaction", __PNR_sigaction },
- { "sigaltstack", 132 },
- { "signal", __PNR_signal },
- { "signalfd", __PNR_signalfd },
- { "signalfd4", 74 },
- { "sigpending", __PNR_sigpending },
- { "sigprocmask", __PNR_sigprocmask },
- { "sigreturn", __PNR_sigreturn },
- { "sigsuspend", __PNR_sigsuspend },
- { "socket", 198 },
- { "socketcall", __PNR_socketcall },
- { "socketpair", 199 },
- { "splice", 76 },
- { "spu_create", __PNR_spu_create },
- { "spu_run", __PNR_spu_run },
- { "ssetmask", __PNR_ssetmask },
- { "stat", __PNR_stat },
- { "stat64", __PNR_stat64 },
- { "statfs", 43 },
- { "statfs64", __PNR_statfs64 },
- { "statx", 291 },
- { "stime", __PNR_stime },
- { "stty", __PNR_stty },
- { "subpage_prot", __PNR_subpage_prot },
- { "swapcontext", __PNR_swapcontext },
- { "swapoff", 225 },
- { "swapon", 224 },
- { "switch_endian", __PNR_switch_endian },
- { "symlink", __PNR_symlink },
- { "symlinkat", 36 },
- { "sync", 81 },
- { "sync_file_range", 84 },
- { "sync_file_range2", __PNR_sync_file_range2 },
- { "syncfs", 267 },
- { "syscall", __PNR_syscall },
- { "sys_debug_setcontext", __PNR_sys_debug_setcontext },
- { "sysfs", __PNR_sysfs },
- { "sysinfo", 179 },
- { "syslog", 116 },
- { "sysmips", __PNR_sysmips },
- { "tee", 77 },
- { "tgkill", 131 },
- { "time", __PNR_time },
- { "timer_create", 107 },
- { "timer_delete", 111 },
- { "timer_getoverrun", 109 },
- { "timer_gettime", 108 },
- { "timer_gettime64", __PNR_timer_gettime64 },
- { "timer_settime", 110 },
- { "timer_settime64", __PNR_timer_settime64 },
- { "timerfd", __PNR_timerfd },
- { "timerfd_create", 85 },
- { "timerfd_gettime", 87 },
- { "timerfd_gettime64", __PNR_timerfd_gettime64 },
- { "timerfd_settime", 86 },
- { "timerfd_settime64", __PNR_timerfd_settime64 },
- { "times", 153 },
- { "tkill", 130 },
- { "truncate", 45 },
- { "truncate64", __PNR_truncate64 },
- { "tuxcall", __PNR_tuxcall },
- { "ugetrlimit", __PNR_ugetrlimit },
- { "ulimit", __PNR_ulimit },
- { "umask", 166 },
- { "umount", __PNR_umount },
- { "umount2", 39 },
- { "uname", 160 },
- { "unlink", __PNR_unlink },
- { "unlinkat", 35 },
- { "unshare", 97 },
- { "uselib", __PNR_uselib },
- { "userfaultfd", 282 },
- { "usr26", __PNR_usr26 },
- { "usr32", __PNR_usr32 },
- { "ustat", __PNR_ustat },
- { "utime", __PNR_utime },
- { "utimensat", 88 },
- { "utimensat_time64", __PNR_utimensat_time64 },
- { "utimes", __PNR_utimes },
- { "vfork", __PNR_vfork },
- { "vhangup", 58 },
- { "vm86", __PNR_vm86 },
- { "vm86old", __PNR_vm86old },
- { "vmsplice", 75 },
- { "vserver", __PNR_vserver },
- { "wait4", 260 },
- { "waitid", 95 },
- { "waitpid", __PNR_waitpid },
- { "write", 64 },
- { "writev", 66 },
- { NULL, __NR_SCMP_ERROR },
-};
-
-/**
- * Resolve a syscall name to a number
- * @param name the syscall name
- *
- * Resolve the given syscall name to the syscall number using the syscall table.
- * Returns the syscall number on success, including negative pseudo syscall
- * numbers; returns __NR_SCMP_ERROR on failure.
- *
- */
-int riscv64_syscall_resolve_name(const char *name)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = riscv64_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].name != NULL; iter++) {
- if (strcmp(name, table[iter].name) == 0)
- return table[iter].num;
- }
-
- return __NR_SCMP_ERROR;
-}
-
-/**
- * Resolve a syscall number to a name
- * @param num the syscall number
- *
- * Resolve the given syscall number to the syscall name using the syscall table.
- * Returns a pointer to the syscall name string on success, including pseudo
- * syscall names; returns NULL on failure.
- *
- */
-const char *riscv64_syscall_resolve_num(int num)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = riscv64_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
- if (num == table[iter].num)
- return table[iter].name;
- }
-
- return NULL;
-}
-
-
-/**
- * Iterate through the syscall table and return the syscall mapping
- * @param spot the offset into the syscall table
- *
- * Return the syscall mapping at position @spot or NULL on failure. This
- * function should only ever be used internally by libseccomp.
- *
- */
-const struct arch_syscall_def *riscv64_syscall_iterate(unsigned int spot)
-{
- /* XXX - no safety checks here */
- return &riscv64_syscall_table[spot];
-}
diff --git a/src/arch-s390-syscalls.c b/src/arch-s390-syscalls.c
deleted file mode 100644
index 6dd84db..0000000
--- a/src/arch-s390-syscalls.c
+++ /dev/null
@@ -1,642 +0,0 @@
-/*
- * Copyright 2015 IBM
- * Author: Jan Willeke <willeke@linux.vnet.com.com>
- */
-
-#include <string.h>
-
-#include <seccomp.h>
-
-#include "arch.h"
-#include "arch-s390.h"
-
-/* NOTE: based on Linux v5.4-rc4 */
-const struct arch_syscall_def s390_syscall_table[] = { \
- { "_llseek", 140 },
- { "_newselect", 142 },
- { "_sysctl", 149 },
- { "accept", __PNR_accept },
- { "accept4", 364 },
- { "access", 33 },
- { "acct", 51 },
- { "add_key", 278 },
- { "adjtimex", 124 },
- { "afs_syscall", 137 },
- { "alarm", 27 },
- { "arm_fadvise64_64", __PNR_arm_fadvise64_64 },
- { "arm_sync_file_range", __PNR_arm_sync_file_range },
- { "arch_prctl", __PNR_arch_prctl },
- { "bdflush", 134 },
- { "bind", 361 },
- { "bpf", 351 },
- { "break", __PNR_break },
- { "breakpoint", __PNR_breakpoint },
- { "brk", 45 },
- { "cachectl", __PNR_cachectl },
- { "cacheflush", __PNR_cacheflush },
- { "capget", 184 },
- { "capset", 185 },
- { "chdir", 12 },
- { "chmod", 15 },
- { "chown", 182 },
- { "chown32", 212 },
- { "chroot", 61 },
- { "clock_adjtime", 337 },
- { "clock_adjtime64", 405 },
- { "clock_getres", 261 },
- { "clock_getres_time64", 406 },
- { "clock_gettime", 260 },
- { "clock_gettime64", 403 },
- { "clock_nanosleep", 262 },
- { "clock_nanosleep_time64", 407 },
- { "clock_settime", 259 },
- { "clock_settime64", 404 },
- { "clone", 120 },
- { "clone3", 435 },
- { "close", 6 },
- { "connect", 362 },
- { "copy_file_range", 375 },
- { "creat", 8 },
- { "create_module", 127 },
- { "delete_module", 129 },
- { "dup", 41 },
- { "dup2", 63 },
- { "dup3", 326 },
- { "epoll_create", 249 },
- { "epoll_create1", 327 },
- { "epoll_ctl", 250 },
- { "epoll_ctl_old", __PNR_epoll_ctl_old },
- { "epoll_pwait", 312 },
- { "epoll_wait", 251 },
- { "epoll_wait_old", __PNR_epoll_wait_old },
- { "eventfd", 318 },
- { "eventfd2", 323 },
- { "execve", 11 },
- { "execveat", 354 },
- { "exit", 1 },
- { "exit_group", 248 },
- { "faccessat", 300 },
- { "fadvise64", 253 },
- { "fadvise64_64", 264 },
- { "fallocate", 314 },
- { "fanotify_init", 332 },
- { "fanotify_mark", 333 },
- { "fchdir", 133 },
- { "fchmod", 94 },
- { "fchmodat", 299 },
- { "fchown", 95 },
- { "fchown32", 207 },
- { "fchownat", 291 },
- { "fcntl", 55 },
- { "fcntl64", 221 },
- { "fdatasync", 148 },
- { "fgetxattr", 229 },
- { "finit_module", 344 },
- { "flistxattr", 232 },
- { "flock", 143 },
- { "fork", 2 },
- { "fremovexattr", 235 },
- { "fsconfig", 431 },
- { "fsetxattr", 226 },
- { "fsmount", 432 },
- { "fsopen", 430 },
- { "fspick", 433 },
- { "fstat", 108 },
- { "fstat64", 197 },
- { "fstatat64", 293 },
- { "fstatfs", 100 },
- { "fstatfs64", 266 },
- { "fsync", 118 },
- { "ftime", __PNR_ftime },
- { "ftruncate", 93 },
- { "ftruncate64", 194 },
- { "futex", 238 },
- { "futex_time64", 422 },
- { "futimesat", 292 },
- { "get_kernel_syms", 130 },
- { "get_mempolicy", 269 },
- { "get_robust_list", 305 },
- { "get_thread_area", __PNR_get_thread_area },
- { "get_tls", __PNR_get_tls },
- { "getcpu", 311 },
- { "getcwd", 183 },
- { "getdents", 141 },
- { "getdents64", 220 },
- { "getegid", 50 },
- { "getegid32", 202 },
- { "geteuid", 49 },
- { "geteuid32", 201 },
- { "getgid", 47 },
- { "getgid32", 200 },
- { "getgroups", 80 },
- { "getgroups32", 205 },
- { "getitimer", 105 },
- { "getpeername", 368 },
- { "getpgid", 132 },
- { "getpgrp", 65 },
- { "getpid", 20 },
- { "getpmsg", 188 },
- { "getppid", 64 },
- { "getpriority", 96 },
- { "getrandom", 349 },
- { "getresgid", 171 },
- { "getresgid32", 211 },
- { "getresuid", 165 },
- { "getresuid32", 209 },
- { "getrlimit", 76 },
- { "getrusage", 77 },
- { "getsid", 147 },
- { "getsockname", 367 },
- { "getsockopt", 365 },
- { "gettid", 236 },
- { "gettimeofday", 78 },
- { "getuid", 24 },
- { "getuid32", 199 },
- { "getxattr", 227 },
- { "gtty", __PNR_gtty },
- { "idle", 112 },
- { "init_module", 128 },
- { "inotify_add_watch", 285 },
- { "inotify_init", 284 },
- { "inotify_init1", 324 },
- { "inotify_rm_watch", 286 },
- { "io_cancel", 247 },
- { "io_destroy", 244 },
- { "io_getevents", 245 },
- { "io_pgetevents", 382 },
- { "io_pgetevents_time64", 416 },
- { "io_setup", 243 },
- { "io_submit", 246 },
- { "io_uring_setup", 425 },
- { "io_uring_enter", 426 },
- { "io_uring_register", 427 },
- { "ioctl", 54 },
- { "ioperm", 101 },
- { "iopl", __PNR_iopl },
- { "ioprio_get", 283 },
- { "ioprio_set", 282 },
- { "ipc", 117 },
- { "kcmp", 343 },
- { "kexec_file_load", 381 },
- { "kexec_load", 277 },
- { "keyctl", 280 },
- { "kill", 37 },
- { "lchown", 16 },
- { "lchown32", 198 },
- { "lgetxattr", 228 },
- { "link", 9 },
- { "linkat", 296 },
- { "listen", 363 },
- { "listxattr", 230 },
- { "llistxattr", 231 },
- { "lock", __PNR_lock },
- { "lookup_dcookie", 110 },
- { "lremovexattr", 234 },
- { "lseek", 19 },
- { "lsetxattr", 225 },
- { "lstat", 107 },
- { "lstat64", 196 },
- { "madvise", 219 },
- { "mbind", 268 },
- { "membarrier", 356 },
- { "memfd_create", 350 },
- { "migrate_pages", 287 },
- { "mincore", 218 },
- { "mkdir", 39 },
- { "mkdirat", 289 },
- { "mknod", 14 },
- { "mknodat", 290 },
- { "mlock", 150 },
- { "mlock2", 374 },
- { "mlockall", 152 },
- { "mmap", 90 },
- { "mmap2", 192 },
- { "modify_ldt", __PNR_modify_ldt },
- { "mount", 21 },
- { "move_mount", 429 },
- { "move_pages", 310 },
- { "mprotect", 125 },
- { "mpx", __PNR_mpx },
- { "mq_getsetattr", 276 },
- { "mq_notify", 275 },
- { "mq_open", 271 },
- { "mq_timedreceive", 274 },
- { "mq_timedreceive_time64", 419 },
- { "mq_timedsend", 273 },
- { "mq_timedsend_time64", 418 },
- { "mq_unlink", 272 },
- { "mremap", 163 },
- { "msgctl", 402 },
- { "msgget", 399 },
- { "msgrcv", 401 },
- { "msgsnd", 400 },
- { "msync", 144 },
- { "multiplexer", __PNR_multiplexer },
- { "munlock", 151 },
- { "munlockall", 153 },
- { "munmap", 91 },
- { "name_to_handle_at", 335 },
- { "nanosleep", 162 },
- { "newfstatat", __PNR_newfstatat },
- { "nfsservctl", 169 },
- { "nice", 34 },
- { "oldfstat", __PNR_oldfstat },
- { "oldlstat", __PNR_oldlstat },
- { "oldolduname", __PNR_oldolduname },
- { "oldstat", __PNR_oldstat },
- { "olduname", __PNR_olduname },
- { "oldwait4", __PNR_oldwait4 },
- { "open", 5 },
- { "open_by_handle_at", 336 },
- { "open_tree", 428 },
- { "openat", 288 },
- { "pause", 29 },
- { "pciconfig_iobase", __PNR_pciconfig_iobase },
- { "pciconfig_read", __PNR_pciconfig_read },
- { "pciconfig_write", __PNR_pciconfig_write },
- { "perf_event_open", 331 },
- { "personality", 136 },
- { "pidfd_open", 434 },
- { "pidfd_send_signal", 424 },
- { "pipe", 42 },
- { "pipe2", 325 },
- { "pivot_root", 217 },
- { "pkey_alloc", 385 },
- { "pkey_free", 386 },
- { "pkey_mprotect", 384 },
- { "poll", 168 },
- { "ppoll", 302 },
- { "ppoll_time64", 414 },
- { "prctl", 172 },
- { "pread64", 180 },
- { "preadv", 328 },
- { "preadv2", 376 },
- { "prlimit64", 334 },
- { "process_vm_readv", 340 },
- { "process_vm_writev", 341 },
- { "prof", __PNR_prof },
- { "profil", __PNR_profil },
- { "pselect6", 301 },
- { "pselect6_time64", 413 },
- { "ptrace", 26 },
- { "putpmsg", 189 },
- { "pwrite64", 181 },
- { "pwritev", 329 },
- { "pwritev2", 377 },
- { "query_module", 167 },
- { "quotactl", 131 },
- { "read", 3 },
- { "readahead", 222 },
- { "readdir", 89 },
- { "readlink", 85 },
- { "readlinkat", 298 },
- { "readv", 145 },
- { "reboot", 88 },
- { "recv", __PNR_recv },
- { "recvfrom", 371 },
- { "recvmmsg", 357 },
- { "recvmmsg_time64", 417 },
- { "recvmsg", 372 },
- { "remap_file_pages", 267 },
- { "removexattr", 233 },
- { "rename", 38 },
- { "renameat", 295 },
- { "renameat2", 347 },
- { "request_key", 279 },
- { "restart_syscall", 7 },
- { "rmdir", 40 },
- { "rseq", 383 },
- { "rt_sigaction", 174 },
- { "rt_sigpending", 176 },
- { "rt_sigprocmask", 175 },
- { "rt_sigqueueinfo", 178 },
- { "rt_sigreturn", 173 },
- { "rt_sigsuspend", 179 },
- { "rt_sigtimedwait", 177 },
- { "rt_sigtimedwait_time64", 421 },
- { "rt_tgsigqueueinfo", 330 },
- { "rtas", __PNR_rtas },
- { "s390_guarded_storage", 378 },
- { "s390_pci_mmio_read", 353 },
- { "s390_pci_mmio_write", 352 },
- { "s390_runtime_instr", 342 },
- { "s390_sthyi", 380 },
- { "sched_get_priority_max", 159 },
- { "sched_get_priority_min", 160 },
- { "sched_getaffinity", 240 },
- { "sched_getattr", 346 },
- { "sched_getparam", 155 },
- { "sched_getscheduler", 157 },
- { "sched_rr_get_interval", 161 },
- { "sched_rr_get_interval_time64", 423 },
- { "sched_setaffinity", 239 },
- { "sched_setattr", 345 },
- { "sched_setparam", 154 },
- { "sched_setscheduler", 156 },
- { "sched_yield", 158 },
- { "seccomp", 348 },
- { "security", __PNR_security },
- { "select", __PNR_select },
- { "semctl", 394 },
- { "semget", 393 },
- { "semop", __PNR_semop },
- { "semtimedop", __PNR_semtimedop },
- { "semtimedop_time64", 420 },
- { "send", __PNR_send },
- { "sendfile", 187 },
- { "sendfile64", 223 },
- { "sendmmsg", 358 },
- { "sendmsg", 370 },
- { "sendto", 369 },
- { "set_mempolicy", 270 },
- { "set_robust_list", 304 },
- { "set_thread_area", __PNR_set_thread_area },
- { "set_tid_address", 252 },
- { "set_tls", __PNR_set_tls },
- { "setdomainname", 121 },
- { "setfsgid", 139 },
- { "setfsgid32", 216 },
- { "setfsuid", 138 },
- { "setfsuid32", 215 },
- { "setgid", 46 },
- { "setgid32", 214 },
- { "setgroups", 81 },
- { "setgroups32", 206 },
- { "sethostname", 74 },
- { "setitimer", 104 },
- { "setns", 339 },
- { "setpgid", 57 },
- { "setpriority", 97 },
- { "setregid", 71 },
- { "setregid32", 204 },
- { "setresgid", 170 },
- { "setresgid32", 210 },
- { "setresuid", 164 },
- { "setresuid32", 208 },
- { "setreuid", 70 },
- { "setreuid32", 203 },
- { "setrlimit", 75 },
- { "setsid", 66 },
- { "setsockopt", 366 },
- { "settimeofday", 79 },
- { "setuid", 23 },
- { "setuid32", 213 },
- { "setxattr", 224 },
- { "sgetmask", __PNR_sgetmask },
- { "shmat", 397 },
- { "shmctl", 396 },
- { "shmdt", 398 },
- { "shmget", 395 },
- { "shutdown", 373 },
- { "sigaction", 67 },
- { "sigaltstack", 186 },
- { "signal", 48 },
- { "signalfd", 316 },
- { "signalfd4", 322 },
- { "sigpending", 73 },
- { "sigprocmask", 126 },
- { "sigreturn", 119 },
- { "sigsuspend", 72 },
- { "socket", 359 },
- { "socketcall", 102 },
- { "socketpair", 360 },
- { "splice", 306 },
- { "spu_create", __PNR_spu_create },
- { "spu_run", __PNR_spu_run },
- { "ssetmask", __PNR_ssetmask },
- { "stat", 106 },
- { "stat64", 195 },
- { "statfs", 99 },
- { "statfs64", 265 },
- { "statx", 379 },
- { "stime", 25 },
- { "stty", __PNR_stty },
- { "subpage_prot", __PNR_subpage_prot },
- { "swapcontext", __PNR_swapcontext },
- { "swapoff", 115 },
- { "swapon", 87 },
- { "switch_endian", __PNR_switch_endian },
- { "symlink", 83 },
- { "symlinkat", 297 },
- { "sync", 36 },
- { "sync_file_range", 307 },
- { "sync_file_range2", __PNR_sync_file_range2 },
- { "syncfs", 338 },
- { "syscall", __PNR_syscall },
- { "sys_debug_setcontext", __PNR_sys_debug_setcontext },
- { "sysfs", 135 },
- { "sysinfo", 116 },
- { "syslog", 103 },
- { "sysmips", __PNR_sysmips },
- { "tee", 308 },
- { "tgkill", 241 },
- { "time", 13 },
- { "timer_create", 254 },
- { "timer_delete", 258 },
- { "timer_getoverrun", 257 },
- { "timer_gettime", 256 },
- { "timer_gettime64", 408 },
- { "timer_settime", 255 },
- { "timer_settime64", 409 },
- { "timerfd", 317 },
- { "timerfd_create", 319 },
- { "timerfd_gettime", 321 },
- { "timerfd_gettime64", 410 },
- { "timerfd_settime", 320 },
- { "timerfd_settime64", 411 },
- { "times", 43 },
- { "tkill", 237 },
- { "truncate", 92 },
- { "truncate64", 193 },
- { "tuxcall", __PNR_tuxcall },
- { "ugetrlimit", 191 },
- { "ulimit", __PNR_ulimit },
- { "umask", 60 },
- { "umount", 22 },
- { "umount2", 52 },
- { "uname", 122 },
- { "unlink", 10 },
- { "unlinkat", 294 },
- { "unshare", 303 },
- { "uselib", 86 },
- { "userfaultfd", 355 },
- { "usr26", __PNR_usr26 },
- { "usr32", __PNR_usr32 },
- { "ustat", 62 },
- { "utime", 30 },
- { "utimensat", 315 },
- { "utimensat_time64", 412 },
- { "utimes", 313 },
- { "vfork", 190 },
- { "vhangup", 111 },
- { "vm86", __PNR_vm86 },
- { "vm86old", __PNR_vm86old },
- { "vmsplice", 309 },
- { "vserver", __PNR_vserver },
- { "wait4", 114 },
- { "waitid", 281 },
- { "waitpid", __PNR_waitpid },
- { "write", 4 },
- { "writev", 146 },
- { NULL, __NR_SCMP_ERROR },
-};
-
-/**
- * Resolve a syscall name to a number
- * @param name the syscall name
- *
- * Resolve the given syscall name to the syscall number using the syscall table.
- * Returns the syscall number on success, including negative pseudo syscall
- * numbers; returns __NR_SCMP_ERROR on failure.
- *
- */
-int s390_syscall_resolve_name(const char *name)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = s390_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
-
- if (strcmp(name, "accept") == 0)
- return __PNR_accept;
- if (strcmp(name, "accept4") == 0)
- return __PNR_accept4;
- else if (strcmp(name, "bind") == 0)
- return __PNR_bind;
- else if (strcmp(name, "connect") == 0)
- return __PNR_connect;
- else if (strcmp(name, "getpeername") == 0)
- return __PNR_getpeername;
- else if (strcmp(name, "getsockname") == 0)
- return __PNR_getsockname;
- else if (strcmp(name, "getsockopt") == 0)
- return __PNR_getsockopt;
- else if (strcmp(name, "listen") == 0)
- return __PNR_listen;
- else if (strcmp(name, "recv") == 0)
- return __PNR_recv;
- else if (strcmp(name, "recvfrom") == 0)
- return __PNR_recvfrom;
- else if (strcmp(name, "recvmsg") == 0)
- return __PNR_recvmsg;
- else if (strcmp(name, "recvmmsg") == 0)
- return __PNR_recvmmsg;
- else if (strcmp(name, "send") == 0)
- return __PNR_send;
- else if (strcmp(name, "sendmsg") == 0)
- return __PNR_sendmsg;
- else if (strcmp(name, "sendmmsg") == 0)
- return __PNR_sendmmsg;
- else if (strcmp(name, "sendto") == 0)
- return __PNR_sendto;
- else if (strcmp(name, "setsockopt") == 0)
- return __PNR_setsockopt;
- else if (strcmp(name, "shmat") == 0)
- return __PNR_shmat;
- else if (strcmp(name, "shmdt") == 0)
- return __PNR_shmdt;
- else if (strcmp(name, "shmget") == 0)
- return __PNR_shmget;
- else if (strcmp(name, "shmctl") == 0)
- return __PNR_shmctl;
- else if (strcmp(name, "shutdown") == 0)
- return __PNR_shutdown;
- else if (strcmp(name, "socket") == 0)
- return __PNR_socket;
- else if (strcmp(name, "socketpair") == 0)
- return __PNR_socketpair;
-
- for (iter = 0; table[iter].name != NULL; iter++) {
- if (strcmp(name, table[iter].name) == 0)
- return table[iter].num;
- }
-
- return __NR_SCMP_ERROR;
-}
-
-/**
- * Resolve a syscall number to a name
- * @param num the syscall number
- *
- * Resolve the given syscall number to the syscall name using the syscall table.
- * Returns a pointer to the syscall name string on success, including pseudo
- * syscall names; returns NULL on failure.
- *
- */
-const char *s390_syscall_resolve_num(int num)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = s390_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
-
- if (num == __PNR_accept)
- return "accept";
- else if (num == __PNR_accept4)
- return "accept4";
- else if (num == __PNR_bind)
- return "bind";
- else if (num == __PNR_connect)
- return "connect";
- else if (num == __PNR_getpeername)
- return "getpeername";
- else if (num == __PNR_getsockname)
- return "getsockname";
- else if (num == __PNR_getsockopt)
- return "getsockopt";
- else if (num == __PNR_listen)
- return "listen";
- else if (num == __PNR_recv)
- return "recv";
- else if (num == __PNR_recvfrom)
- return "recvfrom";
- else if (num == __PNR_recvmsg)
- return "recvmsg";
- else if (num == __PNR_recvmmsg)
- return "recvmmsg";
- else if (num == __PNR_send)
- return "send";
- else if (num == __PNR_sendmsg)
- return "sendmsg";
- else if (num == __PNR_sendmmsg)
- return "sendmmsg";
- else if (num == __PNR_sendto)
- return "sendto";
- else if (num == __PNR_setsockopt)
- return "setsockopt";
- else if (num == __PNR_shmat)
- return "shmat";
- else if (num == __PNR_shmdt)
- return "shmdt";
- else if (num == __PNR_shmget)
- return "shmget";
- else if (num == __PNR_shmctl)
- return "shmctl";
- else if (num == __PNR_shutdown)
- return "shutdown";
- else if (num == __PNR_socket)
- return "socket";
- else if (num == __PNR_socketpair)
- return "socketpair";
-
- for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
- if (num == table[iter].num)
- return table[iter].name;
- }
-
- return NULL;
-}
-
-/**
- * Iterate through the syscall table and return the syscall mapping
- * @param spot the offset into the syscall table
- *
- * Return the syscall mapping at position @spot or NULL on failure. This
- * function should only ever be used internally by libseccomp.
- *
- */
-const struct arch_syscall_def *s390_syscall_iterate(unsigned int spot)
-{
- /* XXX - no safety checks here */
- return &s390_syscall_table[spot];
-}
diff --git a/src/arch-s390x-syscalls.c b/src/arch-s390x-syscalls.c
deleted file mode 100644
index 703eaf1..0000000
--- a/src/arch-s390x-syscalls.c
+++ /dev/null
@@ -1,642 +0,0 @@
-/*
- * Copyright 2015 IBM
- * Author: Jan Willeke <willeke@linux.vnet.com.com>
- */
-
-#include <string.h>
-
-#include <seccomp.h>
-
-#include "arch.h"
-#include "arch-s390x.h"
-
-/* NOTE: based on Linux v5.4-rc4 */
-const struct arch_syscall_def s390x_syscall_table[] = { \
- { "_llseek", __PNR__llseek },
- { "_newselect", __PNR__newselect },
- { "_sysctl", 149 },
- { "accept", __PNR_accept },
- { "accept4", 364 },
- { "access", 33 },
- { "acct", 51 },
- { "add_key", 278 },
- { "adjtimex", 124 },
- { "afs_syscall", 137 },
- { "alarm", 27 },
- { "arm_fadvise64_64", __PNR_arm_fadvise64_64 },
- { "arm_sync_file_range", __PNR_arm_sync_file_range },
- { "arch_prctl", __PNR_arch_prctl },
- { "bdflush", 134 },
- { "bind", 361 },
- { "bpf", 351 },
- { "break", __PNR_break },
- { "breakpoint", __PNR_breakpoint },
- { "brk", 45 },
- { "cachectl", __PNR_cachectl },
- { "cacheflush", __PNR_cacheflush },
- { "capget", 184 },
- { "capset", 185 },
- { "chdir", 12 },
- { "chmod", 15 },
- { "chown", 212 },
- { "chown32", __PNR_chown32 },
- { "chroot", 61 },
- { "clock_adjtime", 337 },
- { "clock_adjtime64", __PNR_clock_adjtime64 },
- { "clock_getres", 261 },
- { "clock_getres_time64", __PNR_clock_getres_time64 },
- { "clock_gettime", 260 },
- { "clock_gettime64", __PNR_clock_gettime64 },
- { "clock_nanosleep", 262 },
- { "clock_nanosleep_time64", __PNR_clock_nanosleep_time64 },
- { "clock_settime", 259 },
- { "clock_settime64", __PNR_clock_settime64 },
- { "clone", 120 },
- { "clone3", 435 },
- { "close", 6 },
- { "connect", 362 },
- { "copy_file_range", 375 },
- { "creat", 8 },
- { "create_module", 127 },
- { "delete_module", 129 },
- { "dup", 41 },
- { "dup2", 63 },
- { "dup3", 326 },
- { "epoll_create", 249 },
- { "epoll_create1", 327 },
- { "epoll_ctl", 250 },
- { "epoll_ctl_old", __PNR_epoll_ctl_old },
- { "epoll_pwait", 312 },
- { "epoll_wait", 251 },
- { "epoll_wait_old", __PNR_epoll_wait_old },
- { "eventfd", 318 },
- { "eventfd2", 323 },
- { "execve", 11 },
- { "execveat", 354 },
- { "exit", 1 },
- { "exit_group", 248 },
- { "faccessat", 300 },
- { "fadvise64", 253 },
- { "fadvise64_64", __PNR_fadvise64_64 },
- { "fallocate", 314 },
- { "fanotify_init", 332 },
- { "fanotify_mark", 333 },
- { "fchdir", 133 },
- { "fchmod", 94 },
- { "fchmodat", 299 },
- { "fchown", 207 },
- { "fchown32", __PNR_fchown32 },
- { "fchownat", 291 },
- { "fcntl", 55 },
- { "fcntl64", __PNR_fcntl64 },
- { "fdatasync", 148 },
- { "fgetxattr", 229 },
- { "finit_module", 344 },
- { "flistxattr", 232 },
- { "flock", 143 },
- { "fork", 2 },
- { "fremovexattr", 235 },
- { "fsconfig", 431 },
- { "fsetxattr", 226 },
- { "fsmount", 432 },
- { "fsopen", 430 },
- { "fspick", 433 },
- { "fstat", 108 },
- { "fstat64", __PNR_fstat64 },
- { "fstatat64", __PNR_fstatat64 },
- { "fstatfs", 100 },
- { "fstatfs64", 266 },
- { "fsync", 118 },
- { "ftime", __PNR_ftime },
- { "ftruncate", 93 },
- { "ftruncate64", __PNR_ftruncate64 },
- { "futex", 238 },
- { "futex_time64", __PNR_futex_time64 },
- { "futimesat", 292 },
- { "get_kernel_syms", 130 },
- { "get_mempolicy", 269 },
- { "get_robust_list", 305 },
- { "get_thread_area", __PNR_get_thread_area },
- { "get_tls", __PNR_get_tls },
- { "getcpu", 311 },
- { "getcwd", 183 },
- { "getdents", 141 },
- { "getdents64", 220 },
- { "getegid", 202 },
- { "getegid32", __PNR_getegid32 },
- { "geteuid", 201 },
- { "geteuid32", __PNR_geteuid32 },
- { "getgid", 200 },
- { "getgid32", __PNR_getgid32 },
- { "getgroups", 205 },
- { "getgroups32", __PNR_getgroups32 },
- { "getitimer", 105 },
- { "getpeername", 368 },
- { "getpgid", 132 },
- { "getpgrp", 65 },
- { "getpid", 20 },
- { "getpmsg", 188 },
- { "getppid", 64 },
- { "getpriority", 96 },
- { "getrandom", 349 },
- { "getresgid", 211 },
- { "getresgid32", __PNR_getresgid32 },
- { "getresuid", 209 },
- { "getresuid32", __PNR_getresuid32 },
- { "getrlimit", 191 },
- { "getrusage", 77 },
- { "getsid", 147 },
- { "getsockname", 367 },
- { "getsockopt", 365 },
- { "gettid", 236 },
- { "gettimeofday", 78 },
- { "getuid", 199 },
- { "getuid32", __PNR_getuid32 },
- { "getxattr", 227 },
- { "gtty", __PNR_gtty },
- { "idle", 112 },
- { "init_module", 128 },
- { "inotify_add_watch", 285 },
- { "inotify_init", 284 },
- { "inotify_init1", 324 },
- { "inotify_rm_watch", 286 },
- { "io_cancel", 247 },
- { "io_destroy", 244 },
- { "io_getevents", 245 },
- { "io_pgetevents", 382 },
- { "io_pgetevents_time64", __PNR_io_pgetevents_time64 },
- { "io_setup", 243 },
- { "io_submit", 246 },
- { "io_uring_setup", 425 },
- { "io_uring_enter", 426 },
- { "io_uring_register", 427 },
- { "ioctl", 54 },
- { "ioperm", __PNR_ioperm},
- { "iopl", __PNR_iopl },
- { "ioprio_get", 283 },
- { "ioprio_set", 282 },
- { "ipc", 117 },
- { "kcmp", 343 },
- { "kexec_file_load", 381 },
- { "kexec_load", 277 },
- { "keyctl", 280 },
- { "kill", 37 },
- { "lchown", 198 },
- { "lchown32", __PNR_lchown32 },
- { "lgetxattr", 228 },
- { "link", 9 },
- { "linkat", 296 },
- { "listen", 363 },
- { "listxattr", 230 },
- { "llistxattr", 231 },
- { "lock", __PNR_lock },
- { "lookup_dcookie", 110 },
- { "lremovexattr", 234 },
- { "lseek", 19 },
- { "lsetxattr", 225 },
- { "lstat", 107 },
- { "lstat64", __PNR_lstat64 },
- { "madvise", 219 },
- { "mbind", 268 },
- { "membarrier", 356 },
- { "memfd_create", 350 },
- { "migrate_pages", 287 },
- { "mincore", 218 },
- { "mkdir", 39 },
- { "mkdirat", 289 },
- { "mknod", 14 },
- { "mknodat", 290 },
- { "mlock", 150 },
- { "mlock2", 374 },
- { "mlockall", 152 },
- { "mmap", 90 },
- { "mmap2", __PNR_mmap2 },
- { "modify_ldt", __PNR_modify_ldt },
- { "mount", 21 },
- { "move_mount", 429 },
- { "move_pages", 310 },
- { "mprotect", 125 },
- { "mpx", __PNR_mpx },
- { "mq_getsetattr", 276 },
- { "mq_notify", 275 },
- { "mq_open", 271 },
- { "mq_timedreceive", 274 },
- { "mq_timedreceive_time64", __PNR_mq_timedreceive_time64 },
- { "mq_timedsend", 273 },
- { "mq_timedsend_time64", __PNR_mq_timedsend_time64 },
- { "mq_unlink", 272 },
- { "mremap", 163 },
- { "msgctl", 402 },
- { "msgget", 399 },
- { "msgrcv", 401 },
- { "msgsnd", 400 },
- { "msync", 144 },
- { "multiplexer", __PNR_multiplexer },
- { "munlock", 151 },
- { "munlockall", 153 },
- { "munmap", 91 },
- { "name_to_handle_at", 335 },
- { "nanosleep", 162 },
- { "newfstatat", 293 },
- { "nfsservctl", 169 },
- { "nice", 34 },
- { "oldfstat", __PNR_oldfstat },
- { "oldlstat", __PNR_oldlstat },
- { "oldolduname", __PNR_oldolduname },
- { "oldstat", __PNR_oldstat },
- { "olduname", __PNR_olduname },
- { "oldwait4", __PNR_oldwait4 },
- { "open", 5 },
- { "open_by_handle_at", 336 },
- { "open_tree", 428 },
- { "openat", 288 },
- { "pause", 29 },
- { "pciconfig_iobase", __PNR_pciconfig_iobase },
- { "pciconfig_read", __PNR_pciconfig_read },
- { "pciconfig_write", __PNR_pciconfig_write },
- { "perf_event_open", 331 },
- { "personality", 136 },
- { "pidfd_open", 434 },
- { "pidfd_send_signal", 424 },
- { "pipe", 42 },
- { "pipe2", 325 },
- { "pivot_root", 217 },
- { "pkey_alloc", 385 },
- { "pkey_free", 386 },
- { "pkey_mprotect", 384 },
- { "poll", 168 },
- { "ppoll", 302 },
- { "ppoll_time64", __PNR_ppoll_time64 },
- { "prctl", 172 },
- { "pread64", 180 },
- { "preadv", 328 },
- { "preadv2", 376 },
- { "prlimit64", 334 },
- { "process_vm_readv", 340 },
- { "process_vm_writev", 341 },
- { "prof", __PNR_prof },
- { "profil", __PNR_profil },
- { "pselect6", 301 },
- { "pselect6_time64", __PNR_pselect6_time64 },
- { "ptrace", 26 },
- { "putpmsg", 189 },
- { "pwrite64", 181 },
- { "pwritev", 329 },
- { "pwritev2", 377 },
- { "query_module", 167 },
- { "quotactl", 131 },
- { "read", 3 },
- { "readahead", 222 },
- { "readdir", 89 },
- { "readlink", 85 },
- { "readlinkat", 298 },
- { "readv", 145 },
- { "reboot", 88 },
- { "recv", __PNR_recv },
- { "recvfrom", 371 },
- { "recvmmsg", 357 },
- { "recvmmsg_time64", __PNR_recvmmsg_time64 },
- { "recvmsg", 372 },
- { "remap_file_pages", 267 },
- { "removexattr", 233 },
- { "rename", 38 },
- { "renameat", 295 },
- { "renameat2", 347 },
- { "request_key", 279 },
- { "restart_syscall", 7 },
- { "rmdir", 40 },
- { "rseq", 383 },
- { "rt_sigaction", 174 },
- { "rt_sigpending", 176 },
- { "rt_sigprocmask", 175 },
- { "rt_sigqueueinfo", 178 },
- { "rt_sigreturn", 173 },
- { "rt_sigsuspend", 179 },
- { "rt_sigtimedwait", 177 },
- { "rt_sigtimedwait_time64", __PNR_rt_sigtimedwait_time64 },
- { "rt_tgsigqueueinfo", 330 },
- { "rtas", __PNR_rtas },
- { "s390_guarded_storage", 378 },
- { "s390_pci_mmio_read", 353 },
- { "s390_pci_mmio_write", 352 },
- { "s390_runtime_instr", 342 },
- { "s390_sthyi", 380 },
- { "sched_get_priority_max", 159 },
- { "sched_get_priority_min", 160 },
- { "sched_getaffinity", 240 },
- { "sched_getattr", 346 },
- { "sched_getparam", 155 },
- { "sched_getscheduler", 157 },
- { "sched_rr_get_interval", 161 },
- { "sched_rr_get_interval_time64", __PNR_sched_rr_get_interval_time64 },
- { "sched_setaffinity", 239 },
- { "sched_setattr", 345 },
- { "sched_setparam", 154 },
- { "sched_setscheduler", 156 },
- { "sched_yield", 158 },
- { "seccomp", 348 },
- { "security", __PNR_security },
- { "select", 142 },
- { "semctl", 394 },
- { "semget", 393 },
- { "semop", __PNR_semop },
- { "semtimedop", 392 },
- { "semtimedop_time64", __PNR_semtimedop_time64 },
- { "send", __PNR_send },
- { "sendfile", 187 },
- { "sendfile64", __PNR_sendfile64 },
- { "sendmmsg", 358 },
- { "sendmsg", 370 },
- { "sendto", 369 },
- { "set_mempolicy", 270 },
- { "set_robust_list", 304 },
- { "set_thread_area", __PNR_set_thread_area },
- { "set_tid_address", 252 },
- { "set_tls", __PNR_set_tls },
- { "setdomainname", 121 },
- { "setfsgid", 216 },
- { "setfsgid32", __PNR_setfsgid32 },
- { "setfsuid", 215 },
- { "setfsuid32", __PNR_setfsuid32 },
- { "setgid", 214 },
- { "setgid32", __PNR_setgid32 },
- { "setgroups", 206 },
- { "setgroups32", __PNR_setgroups32 },
- { "sethostname", 74 },
- { "setitimer", 104 },
- { "setns", 339 },
- { "setpgid", 57 },
- { "setpriority", 97 },
- { "setregid", 204 },
- { "setregid32", __PNR_setregid32 },
- { "setresgid", 210 },
- { "setresgid32", __PNR_setresgid32 },
- { "setresuid", 208 },
- { "setresuid32", __PNR_setresuid32 },
- { "setreuid", 203 },
- { "setreuid32", __PNR_setreuid32 },
- { "setrlimit", 75 },
- { "setsid", 66 },
- { "setsockopt", 366 },
- { "settimeofday", 79 },
- { "setuid", 213 },
- { "setuid32", __PNR_setuid32 },
- { "setxattr", 224 },
- { "sgetmask", __PNR_sgetmask },
- { "shmat", 397 },
- { "shmctl", 396 },
- { "shmdt", 398 },
- { "shmget", 395 },
- { "shutdown", 373 },
- { "sigaction", 67 },
- { "sigaltstack", 186 },
- { "signal", 48 },
- { "signalfd", 316 },
- { "signalfd4", 322 },
- { "sigpending", 73 },
- { "sigprocmask", 126 },
- { "sigreturn", 119 },
- { "sigsuspend", 72 },
- { "socket", 359 },
- { "socketcall", 102 },
- { "socketpair", 360 },
- { "splice", 306 },
- { "spu_create", __PNR_spu_create },
- { "spu_run", __PNR_spu_run },
- { "ssetmask", __PNR_ssetmask },
- { "stat", 106 },
- { "stat64", __PNR_stat64 },
- { "statfs", 99 },
- { "statfs64", 265 },
- { "statx", 379 },
- { "stime", __PNR_stime },
- { "stty", __PNR_stty },
- { "subpage_prot", __PNR_subpage_prot },
- { "swapcontext", __PNR_swapcontext },
- { "swapoff", 115 },
- { "swapon", 87 },
- { "switch_endian", __PNR_switch_endian },
- { "symlink", 83 },
- { "symlinkat", 297 },
- { "sync", 36 },
- { "sync_file_range", 307 },
- { "sync_file_range2", __PNR_sync_file_range2 },
- { "syncfs", 338 },
- { "syscall", __PNR_syscall },
- { "sys_debug_setcontext", __PNR_sys_debug_setcontext },
- { "sysfs", 135 },
- { "sysinfo", 116 },
- { "syslog", 103 },
- { "sysmips", __PNR_sysmips },
- { "tee", 308 },
- { "tgkill", 241 },
- { "time", __PNR_time },
- { "timer_create", 254 },
- { "timer_delete", 258 },
- { "timer_getoverrun", 257 },
- { "timer_gettime", 256 },
- { "timer_gettime64", __PNR_timer_gettime64 },
- { "timer_settime", 255 },
- { "timer_settime64", __PNR_timer_settime64 },
- { "timerfd", 317 },
- { "timerfd_create", 319 },
- { "timerfd_gettime", 321 },
- { "timerfd_gettime64", __PNR_timerfd_gettime64 },
- { "timerfd_settime", 320 },
- { "timerfd_settime64", __PNR_timerfd_settime64 },
- { "times", 43 },
- { "tkill", 237 },
- { "truncate", 92 },
- { "truncate64", __PNR_truncate64 },
- { "tuxcall", __PNR_tuxcall },
- { "ugetrlimit", __PNR_ugetrlimit },
- { "ulimit", __PNR_ulimit },
- { "umask", 60 },
- { "umount", 22 },
- { "umount2", 52 },
- { "uname", 122 },
- { "unlink", 10 },
- { "unlinkat", 294 },
- { "unshare", 303 },
- { "uselib", 86 },
- { "userfaultfd", 355 },
- { "usr26", __PNR_usr26 },
- { "usr32", __PNR_usr32 },
- { "ustat", 62 },
- { "utime", 30 },
- { "utimensat", 315 },
- { "utimensat_time64", __PNR_utimensat_time64 },
- { "utimes", 313 },
- { "vfork", 190 },
- { "vhangup", 111 },
- { "vm86", __PNR_vm86 },
- { "vm86old", __PNR_vm86old },
- { "vmsplice", 309 },
- { "vserver", __PNR_vserver },
- { "wait4", 114 },
- { "waitid", 281 },
- { "waitpid", __PNR_waitpid },
- { "write", 4 },
- { "writev", 146 },
- { NULL, __NR_SCMP_ERROR },
-};
-
-/**
- * Resolve a syscall name to a number
- * @param name the syscall name
- *
- * Resolve the given syscall name to the syscall number using the syscall table.
- * Returns the syscall number on success, including negative pseudo syscall
- * numbers; returns __NR_SCMP_ERROR on failure.
- *
- */
-int s390x_syscall_resolve_name(const char *name)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = s390x_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
-
- if (strcmp(name, "accept") == 0)
- return __PNR_accept;
- if (strcmp(name, "accept4") == 0)
- return __PNR_accept4;
- else if (strcmp(name, "bind") == 0)
- return __PNR_bind;
- else if (strcmp(name, "connect") == 0)
- return __PNR_connect;
- else if (strcmp(name, "getpeername") == 0)
- return __PNR_getpeername;
- else if (strcmp(name, "getsockname") == 0)
- return __PNR_getsockname;
- else if (strcmp(name, "getsockopt") == 0)
- return __PNR_getsockopt;
- else if (strcmp(name, "listen") == 0)
- return __PNR_listen;
- else if (strcmp(name, "recv") == 0)
- return __PNR_recv;
- else if (strcmp(name, "recvfrom") == 0)
- return __PNR_recvfrom;
- else if (strcmp(name, "recvmsg") == 0)
- return __PNR_recvmsg;
- else if (strcmp(name, "recvmmsg") == 0)
- return __PNR_recvmmsg;
- else if (strcmp(name, "send") == 0)
- return __PNR_send;
- else if (strcmp(name, "sendmsg") == 0)
- return __PNR_sendmsg;
- else if (strcmp(name, "sendmmsg") == 0)
- return __PNR_sendmmsg;
- else if (strcmp(name, "sendto") == 0)
- return __PNR_sendto;
- else if (strcmp(name, "setsockopt") == 0)
- return __PNR_setsockopt;
- else if (strcmp(name, "shmat") == 0)
- return __PNR_shmat;
- else if (strcmp(name, "shmdt") == 0)
- return __PNR_shmdt;
- else if (strcmp(name, "shmget") == 0)
- return __PNR_shmget;
- else if (strcmp(name, "shmctl") == 0)
- return __PNR_shmctl;
- else if (strcmp(name, "shutdown") == 0)
- return __PNR_shutdown;
- else if (strcmp(name, "socket") == 0)
- return __PNR_socket;
- else if (strcmp(name, "socketpair") == 0)
- return __PNR_socketpair;
-
- for (iter = 0; table[iter].name != NULL; iter++) {
- if (strcmp(name, table[iter].name) == 0)
- return table[iter].num;
- }
-
- return __NR_SCMP_ERROR;
-}
-
-/**
- * Resolve a syscall number to a name
- * @param num the syscall number
- *
- * Resolve the given syscall number to the syscall name using the syscall table.
- * Returns a pointer to the syscall name string on success, including pseudo
- * syscall names; returns NULL on failure.
- *
- */
-const char *s390x_syscall_resolve_num(int num)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = s390x_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
-
- if (num == __PNR_accept)
- return "accept";
- else if (num == __PNR_accept4)
- return "accept4";
- else if (num == __PNR_bind)
- return "bind";
- else if (num == __PNR_connect)
- return "connect";
- else if (num == __PNR_getpeername)
- return "getpeername";
- else if (num == __PNR_getsockname)
- return "getsockname";
- else if (num == __PNR_getsockopt)
- return "getsockopt";
- else if (num == __PNR_listen)
- return "listen";
- else if (num == __PNR_recv)
- return "recv";
- else if (num == __PNR_recvfrom)
- return "recvfrom";
- else if (num == __PNR_recvmsg)
- return "recvmsg";
- else if (num == __PNR_recvmmsg)
- return "recvmmsg";
- else if (num == __PNR_send)
- return "send";
- else if (num == __PNR_sendmsg)
- return "sendmsg";
- else if (num == __PNR_sendmmsg)
- return "sendmmsg";
- else if (num == __PNR_sendto)
- return "sendto";
- else if (num == __PNR_setsockopt)
- return "setsockopt";
- else if (num == __PNR_shmat)
- return "shmat";
- else if (num == __PNR_shmdt)
- return "shmdt";
- else if (num == __PNR_shmget)
- return "shmget";
- else if (num == __PNR_shmctl)
- return "shmctl";
- else if (num == __PNR_shutdown)
- return "shutdown";
- else if (num == __PNR_socket)
- return "socket";
- else if (num == __PNR_socketpair)
- return "socketpair";
-
- for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
- if (num == table[iter].num)
- return table[iter].name;
- }
-
- return NULL;
-}
-
-/**
- * Iterate through the syscall table and return the syscall mapping
- * @param spot the offset into the syscall table
- *
- * Return the syscall mapping at position @spot or NULL on failure. This
- * function should only ever be used internally by libseccomp.
- *
- */
-const struct arch_syscall_def *s390x_syscall_iterate(unsigned int spot)
-{
- /* XXX - no safety checks here */
- return &s390x_syscall_table[spot];
-}
diff --git a/src/arch-x32-syscalls.c b/src/arch-x32-syscalls.c
deleted file mode 100644
index e5cfadb..0000000
--- a/src/arch-x32-syscalls.c
+++ /dev/null
@@ -1,558 +0,0 @@
-/**
- * Enhanced Seccomp x32 Syscall Table
- *
- * Copyright (c) 2013 Red Hat <pmoore@redhat.com>
- * Author: Paul Moore <paul@paul-moore.com>
- */
-
-/*
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License as
- * published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, see <http://www.gnu.org/licenses>.
- */
-
-#include <string.h>
-
-#include <seccomp.h>
-
-#include "arch.h"
-#include "arch-x32.h"
-
-/* NOTE: based on Linux v5.4-rc4 */
-const struct arch_syscall_def x32_syscall_table[] = { \
- { "_llseek", __PNR__llseek },
- { "_newselect", __PNR__newselect },
- { "_sysctl", __PNR__sysctl },
- { "accept", (X32_SYSCALL_BIT + 43) },
- { "accept4", (X32_SYSCALL_BIT + 288) },
- { "access", (X32_SYSCALL_BIT + 21) },
- { "acct", (X32_SYSCALL_BIT + 163) },
- { "add_key", (X32_SYSCALL_BIT + 248) },
- { "adjtimex", (X32_SYSCALL_BIT + 159) },
- { "afs_syscall", (X32_SYSCALL_BIT + 183) },
- { "alarm", (X32_SYSCALL_BIT + 37) },
- { "arm_fadvise64_64", __PNR_arm_fadvise64_64 },
- { "arm_sync_file_range", __PNR_arm_sync_file_range },
- { "arch_prctl", (X32_SYSCALL_BIT + 158) },
- { "bdflush", __PNR_bdflush },
- { "bind", (X32_SYSCALL_BIT + 49) },
- { "bpf", (X32_SYSCALL_BIT + 321) },
- { "break", __PNR_break },
- { "breakpoint", __PNR_breakpoint },
- { "brk", (X32_SYSCALL_BIT + 12) },
- { "cachectl", __PNR_cachectl },
- { "cacheflush", __PNR_cacheflush },
- { "capget", (X32_SYSCALL_BIT + 125) },
- { "capset", (X32_SYSCALL_BIT + 126) },
- { "chdir", (X32_SYSCALL_BIT + 80) },
- { "chmod", (X32_SYSCALL_BIT + 90) },
- { "chown", (X32_SYSCALL_BIT + 92) },
- { "chown32", __PNR_chown32 },
- { "chroot", (X32_SYSCALL_BIT + 161) },
- { "clock_adjtime", (X32_SYSCALL_BIT + 305) },
- { "clock_adjtime64", __PNR_clock_adjtime64 },
- { "clock_getres", (X32_SYSCALL_BIT + 229) },
- { "clock_getres_time64", __PNR_clock_getres_time64 },
- { "clock_gettime", (X32_SYSCALL_BIT + 228) },
- { "clock_gettime64", __PNR_clock_gettime64 },
- { "clock_nanosleep", (X32_SYSCALL_BIT + 230) },
- { "clock_nanosleep_time64", __PNR_clock_nanosleep_time64 },
- { "clock_settime", (X32_SYSCALL_BIT + 227) },
- { "clock_settime64", __PNR_clock_settime64 },
- { "clone", (X32_SYSCALL_BIT + 56) },
- { "clone3", (X32_SYSCALL_BIT + 435) },
- { "close", (X32_SYSCALL_BIT + 3) },
- { "connect", (X32_SYSCALL_BIT + 42) },
- { "copy_file_range", (X32_SYSCALL_BIT + 326) },
- { "creat", (X32_SYSCALL_BIT + 85) },
- { "create_module", __PNR_create_module },
- { "delete_module", (X32_SYSCALL_BIT + 176) },
- { "dup", (X32_SYSCALL_BIT + 32) },
- { "dup2", (X32_SYSCALL_BIT + 33) },
- { "dup3", (X32_SYSCALL_BIT + 292) },
- { "epoll_create", (X32_SYSCALL_BIT + 213) },
- { "epoll_create1", (X32_SYSCALL_BIT + 291) },
- { "epoll_ctl", (X32_SYSCALL_BIT + 233) },
- { "epoll_ctl_old", __PNR_epoll_ctl_old },
- { "epoll_pwait", (X32_SYSCALL_BIT + 281) },
- { "epoll_wait", (X32_SYSCALL_BIT + 232) },
- { "epoll_wait_old", __PNR_epoll_wait_old },
- { "eventfd", (X32_SYSCALL_BIT + 284) },
- { "eventfd2", (X32_SYSCALL_BIT + 290) },
- { "execve", (X32_SYSCALL_BIT + 520) },
- { "execveat", (X32_SYSCALL_BIT + 545) },
- { "exit", (X32_SYSCALL_BIT + 60) },
- { "exit_group", (X32_SYSCALL_BIT + 231) },
- { "faccessat", (X32_SYSCALL_BIT + 269) },
- { "fadvise64", (X32_SYSCALL_BIT + 221) },
- { "fadvise64_64", __PNR_fadvise64_64 },
- { "fallocate", (X32_SYSCALL_BIT + 285) },
- { "fanotify_init", (X32_SYSCALL_BIT + 300) },
- { "fanotify_mark", (X32_SYSCALL_BIT + 301) },
- { "fchdir", (X32_SYSCALL_BIT + 81) },
- { "fchmod", (X32_SYSCALL_BIT + 91) },
- { "fchmodat", (X32_SYSCALL_BIT + 268) },
- { "fchown", (X32_SYSCALL_BIT + 93) },
- { "fchown32", __PNR_fchown32 },
- { "fchownat", (X32_SYSCALL_BIT + 260) },
- { "fcntl", (X32_SYSCALL_BIT + 72) },
- { "fcntl64", __PNR_fcntl64 },
- { "fdatasync", (X32_SYSCALL_BIT + 75) },
- { "fgetxattr", (X32_SYSCALL_BIT + 193) },
- { "finit_module", (X32_SYSCALL_BIT + 313) },
- { "flistxattr", (X32_SYSCALL_BIT + 196) },
- { "flock", (X32_SYSCALL_BIT + 73) },
- { "fork", (X32_SYSCALL_BIT + 57) },
- { "fremovexattr", (X32_SYSCALL_BIT + 199) },
- { "fsconfig", (X32_SYSCALL_BIT + 431) },
- { "fsetxattr", (X32_SYSCALL_BIT + 190) },
- { "fsmount", (X32_SYSCALL_BIT + 432) },
- { "fsopen", (X32_SYSCALL_BIT + 430) },
- { "fspick", (X32_SYSCALL_BIT + 433) },
- { "fstat", (X32_SYSCALL_BIT + 5) },
- { "fstat64", __PNR_fstat64 },
- { "fstatat64", __PNR_fstatat64 },
- { "fstatfs", (X32_SYSCALL_BIT + 138) },
- { "fstatfs64", __PNR_fstatfs64 },
- { "fsync", (X32_SYSCALL_BIT + 74) },
- { "ftime", __PNR_ftime },
- { "ftruncate", (X32_SYSCALL_BIT + 77) },
- { "ftruncate64", __PNR_ftruncate64 },
- { "futex", (X32_SYSCALL_BIT + 202) },
- { "futex_time64", __PNR_futex_time64 },
- { "futimesat", (X32_SYSCALL_BIT + 261) },
- { "get_kernel_syms", __PNR_get_kernel_syms },
- { "get_mempolicy", (X32_SYSCALL_BIT + 239) },
- { "get_robust_list", (X32_SYSCALL_BIT + 531) },
- { "get_thread_area", __PNR_get_thread_area },
- { "get_tls", __PNR_get_tls },
- { "getcpu", (X32_SYSCALL_BIT + 309) },
- { "getcwd", (X32_SYSCALL_BIT + 79) },
- { "getdents", (X32_SYSCALL_BIT + 78) },
- { "getdents64", (X32_SYSCALL_BIT + 217) },
- { "getegid", (X32_SYSCALL_BIT + 108) },
- { "getegid32", __PNR_getegid32 },
- { "geteuid", (X32_SYSCALL_BIT + 107) },
- { "geteuid32", __PNR_geteuid32 },
- { "getgid", (X32_SYSCALL_BIT + 104) },
- { "getgid32", __PNR_getgid32 },
- { "getgroups", (X32_SYSCALL_BIT + 115) },
- { "getgroups32", __PNR_getgroups32 },
- { "getitimer", (X32_SYSCALL_BIT + 36) },
- { "getpeername", (X32_SYSCALL_BIT + 52) },
- { "getpgid", (X32_SYSCALL_BIT + 121) },
- { "getpgrp", (X32_SYSCALL_BIT + 111) },
- { "getpid", (X32_SYSCALL_BIT + 39) },
- { "getpmsg", (X32_SYSCALL_BIT + 181) },
- { "getppid", (X32_SYSCALL_BIT + 110) },
- { "getpriority", (X32_SYSCALL_BIT + 140) },
- { "getrandom", (X32_SYSCALL_BIT + 318) },
- { "getresgid", (X32_SYSCALL_BIT + 120) },
- { "getresgid32", __PNR_getresgid32 },
- { "getresuid", (X32_SYSCALL_BIT + 118) },
- { "getresuid32", __PNR_getresuid32 },
- { "getrlimit", (X32_SYSCALL_BIT + 97) },
- { "getrusage", (X32_SYSCALL_BIT + 98) },
- { "getsid", (X32_SYSCALL_BIT + 124) },
- { "getsockname", (X32_SYSCALL_BIT + 51) },
- { "getsockopt", (X32_SYSCALL_BIT + 542) },
- { "gettid", (X32_SYSCALL_BIT + 186) },
- { "gettimeofday", (X32_SYSCALL_BIT + 96) },
- { "getuid", (X32_SYSCALL_BIT + 102) },
- { "getuid32", __PNR_getuid32 },
- { "getxattr", (X32_SYSCALL_BIT + 191) },
- { "gtty", __PNR_gtty },
- { "idle", __PNR_idle },
- { "init_module", (X32_SYSCALL_BIT + 175) },
- { "inotify_add_watch", (X32_SYSCALL_BIT + 254) },
- { "inotify_init", (X32_SYSCALL_BIT + 253) },
- { "inotify_init1", (X32_SYSCALL_BIT + 294) },
- { "inotify_rm_watch", (X32_SYSCALL_BIT + 255) },
- { "io_cancel", (X32_SYSCALL_BIT + 210) },
- { "io_destroy", (X32_SYSCALL_BIT + 207) },
- { "io_getevents", (X32_SYSCALL_BIT + 208) },
- { "io_pgetevents", (X32_SYSCALL_BIT + 333) },
- { "io_pgetevents_time64", __PNR_io_pgetevents_time64 },
- { "io_setup", (X32_SYSCALL_BIT + 543) },
- { "io_submit", (X32_SYSCALL_BIT + 544) },
- { "io_uring_setup", (X32_SYSCALL_BIT + 425) },
- { "io_uring_enter", (X32_SYSCALL_BIT + 426) },
- { "io_uring_register", (X32_SYSCALL_BIT + 427) },
- { "ioctl", (X32_SYSCALL_BIT + 514) },
- { "ioperm", (X32_SYSCALL_BIT + 173) },
- { "iopl", (X32_SYSCALL_BIT + 172) },
- { "ioprio_get", (X32_SYSCALL_BIT + 252) },
- { "ioprio_set", (X32_SYSCALL_BIT + 251) },
- { "ipc", __PNR_ipc },
- { "kcmp", (X32_SYSCALL_BIT + 312) },
- { "kexec_file_load", (X32_SYSCALL_BIT + 320) },
- { "kexec_load", (X32_SYSCALL_BIT + 528) },
- { "keyctl", (X32_SYSCALL_BIT + 250) },
- { "kill", (X32_SYSCALL_BIT + 62) },
- { "lchown", (X32_SYSCALL_BIT + 94) },
- { "lchown32", __PNR_lchown32 },
- { "lgetxattr", (X32_SYSCALL_BIT + 192) },
- { "link", (X32_SYSCALL_BIT + 86) },
- { "linkat", (X32_SYSCALL_BIT + 265) },
- { "listen", (X32_SYSCALL_BIT + 50) },
- { "listxattr", (X32_SYSCALL_BIT + 194) },
- { "llistxattr", (X32_SYSCALL_BIT + 195) },
- { "lock", __PNR_lock },
- { "lookup_dcookie", (X32_SYSCALL_BIT + 212) },
- { "lremovexattr", (X32_SYSCALL_BIT + 198) },
- { "lseek", (X32_SYSCALL_BIT + 8) },
- { "lsetxattr", (X32_SYSCALL_BIT + 189) },
- { "lstat", (X32_SYSCALL_BIT + 6) },
- { "lstat64", __PNR_lstat64 },
- { "madvise", (X32_SYSCALL_BIT + 28) },
- { "mbind", (X32_SYSCALL_BIT + 237) },
- { "membarrier", (X32_SYSCALL_BIT + 324) },
- { "memfd_create", (X32_SYSCALL_BIT + 319) },
- { "migrate_pages", (X32_SYSCALL_BIT + 256) },
- { "mincore", (X32_SYSCALL_BIT + 27) },
- { "mkdir", (X32_SYSCALL_BIT + 83) },
- { "mkdirat", (X32_SYSCALL_BIT + 258) },
- { "mknod", (X32_SYSCALL_BIT + 133) },
- { "mknodat", (X32_SYSCALL_BIT + 259) },
- { "mlock", (X32_SYSCALL_BIT + 149) },
- { "mlock2", (X32_SYSCALL_BIT + 325) },
- { "mlockall", (X32_SYSCALL_BIT + 151) },
- { "mmap", (X32_SYSCALL_BIT + 9) },
- { "mmap2", __PNR_mmap2 },
- { "modify_ldt", (X32_SYSCALL_BIT + 154) },
- { "mount", (X32_SYSCALL_BIT + 165) },
- { "move_mount", (X32_SYSCALL_BIT + 429) },
- { "move_pages", (X32_SYSCALL_BIT + 533) },
- { "mprotect", (X32_SYSCALL_BIT + 10) },
- { "mpx", __PNR_mpx },
- { "mq_getsetattr", (X32_SYSCALL_BIT + 245) },
- { "mq_notify", (X32_SYSCALL_BIT + 527) },
- { "mq_open", (X32_SYSCALL_BIT + 240) },
- { "mq_timedreceive", (X32_SYSCALL_BIT + 243) },
- { "mq_timedreceive_time64", __PNR_mq_timedreceive_time64 },
- { "mq_timedsend", (X32_SYSCALL_BIT + 242) },
- { "mq_timedsend_time64", __PNR_mq_timedsend_time64 },
- { "mq_unlink", (X32_SYSCALL_BIT + 241) },
- { "mremap", (X32_SYSCALL_BIT + 25) },
- { "msgctl", (X32_SYSCALL_BIT + 71) },
- { "msgget", (X32_SYSCALL_BIT + 68) },
- { "msgrcv", (X32_SYSCALL_BIT + 70) },
- { "msgsnd", (X32_SYSCALL_BIT + 69) },
- { "msync", (X32_SYSCALL_BIT + 26) },
- { "multiplexer", __PNR_multiplexer },
- { "munlock", (X32_SYSCALL_BIT + 150) },
- { "munlockall", (X32_SYSCALL_BIT + 152) },
- { "munmap", (X32_SYSCALL_BIT + 11) },
- { "name_to_handle_at", (X32_SYSCALL_BIT + 303) },
- { "nanosleep", (X32_SYSCALL_BIT + 35) },
- { "newfstatat", (X32_SYSCALL_BIT + 262) },
- { "nfsservctl", __PNR_nfsservctl },
- { "nice", __PNR_nice },
- { "oldfstat", __PNR_oldfstat },
- { "oldlstat", __PNR_oldlstat },
- { "oldolduname", __PNR_oldolduname },
- { "oldstat", __PNR_oldstat },
- { "olduname", __PNR_olduname },
- { "oldwait4", __PNR_oldwait4 },
- { "open", (X32_SYSCALL_BIT + 2) },
- { "open_by_handle_at", (X32_SYSCALL_BIT + 304) },
- { "open_tree", (X32_SYSCALL_BIT + 428) },
- { "openat", (X32_SYSCALL_BIT + 257) },
- { "pause", (X32_SYSCALL_BIT + 34) },
- { "pciconfig_iobase", __PNR_pciconfig_iobase },
- { "pciconfig_read", __PNR_pciconfig_read },
- { "pciconfig_write", __PNR_pciconfig_write },
- { "perf_event_open", (X32_SYSCALL_BIT + 298) },
- { "personality", (X32_SYSCALL_BIT + 135) },
- { "pidfd_open", (X32_SYSCALL_BIT + 434) },
- { "pidfd_send_signal", (X32_SYSCALL_BIT + 424) },
- { "pipe", (X32_SYSCALL_BIT + 22) },
- { "pipe2", (X32_SYSCALL_BIT + 293) },
- { "pivot_root", (X32_SYSCALL_BIT + 155) },
- { "pkey_alloc", (X32_SYSCALL_BIT + 330) },
- { "pkey_free", (X32_SYSCALL_BIT + 331) },
- { "pkey_mprotect", (X32_SYSCALL_BIT + 329) },
- { "poll", (X32_SYSCALL_BIT + 7) },
- { "ppoll", (X32_SYSCALL_BIT + 271) },
- { "ppoll_time64", __PNR_ppoll_time64 },
- { "prctl", (X32_SYSCALL_BIT + 157) },
- { "pread64", (X32_SYSCALL_BIT + 17) },
- { "preadv", (X32_SYSCALL_BIT + 534) },
- { "preadv2", (X32_SYSCALL_BIT + 546) },
- { "prlimit64", (X32_SYSCALL_BIT + 302) },
- { "process_vm_readv", (X32_SYSCALL_BIT + 539) },
- { "process_vm_writev", (X32_SYSCALL_BIT + 540) },
- { "prof", __PNR_prof },
- { "profil", __PNR_profil },
- { "pselect6", (X32_SYSCALL_BIT + 270) },
- { "pselect6_time64", __PNR_pselect6_time64 },
- { "ptrace", (X32_SYSCALL_BIT + 521) },
- { "putpmsg", (X32_SYSCALL_BIT + 182) },
- { "pwrite64", (X32_SYSCALL_BIT + 18) },
- { "pwritev", (X32_SYSCALL_BIT + 535) },
- { "pwritev2", (X32_SYSCALL_BIT + 547) },
- { "query_module", __PNR_query_module },
- { "quotactl", (X32_SYSCALL_BIT + 179) },
- { "read", (X32_SYSCALL_BIT + 0) },
- { "readahead", (X32_SYSCALL_BIT + 187) },
- { "readdir", __PNR_readdir },
- { "readlink", (X32_SYSCALL_BIT + 89) },
- { "readlinkat", (X32_SYSCALL_BIT + 267) },
- { "readv", (X32_SYSCALL_BIT + 515) },
- { "reboot", (X32_SYSCALL_BIT + 169) },
- { "recv", __PNR_recv },
- { "recvfrom", (X32_SYSCALL_BIT + 517) },
- { "recvmmsg", (X32_SYSCALL_BIT + 537) },
- { "recvmmsg_time64", __PNR_recvmmsg_time64 },
- { "recvmsg", (X32_SYSCALL_BIT + 519) },
- { "remap_file_pages", (X32_SYSCALL_BIT + 216) },
- { "removexattr", (X32_SYSCALL_BIT + 197) },
- { "rename", (X32_SYSCALL_BIT + 82) },
- { "renameat", (X32_SYSCALL_BIT + 264) },
- { "renameat2", (X32_SYSCALL_BIT + 316) },
- { "request_key", (X32_SYSCALL_BIT + 249) },
- { "restart_syscall", (X32_SYSCALL_BIT + 219) },
- { "rmdir", (X32_SYSCALL_BIT + 84) },
- { "rseq", (X32_SYSCALL_BIT + 334) },
- { "rt_sigaction", (X32_SYSCALL_BIT + 512) },
- { "rt_sigpending", (X32_SYSCALL_BIT + 522) },
- { "rt_sigprocmask", (X32_SYSCALL_BIT + 14) },
- { "rt_sigqueueinfo", (X32_SYSCALL_BIT + 524) },
- { "rt_sigreturn", (X32_SYSCALL_BIT + 513) },
- { "rt_sigsuspend", (X32_SYSCALL_BIT + 130) },
- { "rt_sigtimedwait", (X32_SYSCALL_BIT + 523) },
- { "rt_sigtimedwait_time64", __PNR_rt_sigtimedwait_time64 },
- { "rt_tgsigqueueinfo", (X32_SYSCALL_BIT + 536) },
- { "rtas", __PNR_rtas },
- { "s390_guarded_storage", __PNR_s390_guarded_storage },
- { "s390_pci_mmio_read", __PNR_s390_pci_mmio_read },
- { "s390_pci_mmio_write", __PNR_s390_pci_mmio_write },
- { "s390_runtime_instr", __PNR_s390_runtime_instr },
- { "s390_sthyi", __PNR_s390_sthyi },
- { "sched_get_priority_max", (X32_SYSCALL_BIT + 146) },
- { "sched_get_priority_min", (X32_SYSCALL_BIT + 147) },
- { "sched_getaffinity", (X32_SYSCALL_BIT + 204) },
- { "sched_getattr", (X32_SYSCALL_BIT + 315) },
- { "sched_getparam", (X32_SYSCALL_BIT + 143) },
- { "sched_getscheduler", (X32_SYSCALL_BIT + 145) },
- { "sched_rr_get_interval", (X32_SYSCALL_BIT + 148) },
- { "sched_rr_get_interval_time64", __PNR_sched_rr_get_interval_time64 },
- { "sched_setaffinity", (X32_SYSCALL_BIT + 203) },
- { "sched_setattr", (X32_SYSCALL_BIT + 314) },
- { "sched_setparam", (X32_SYSCALL_BIT + 142) },
- { "sched_setscheduler", (X32_SYSCALL_BIT + 144) },
- { "sched_yield", (X32_SYSCALL_BIT + 24) },
- { "seccomp", (X32_SYSCALL_BIT + 317) },
- { "security", (X32_SYSCALL_BIT + 185) },
- { "select", (X32_SYSCALL_BIT + 23) },
- { "semctl", (X32_SYSCALL_BIT + 66) },
- { "semget", (X32_SYSCALL_BIT + 64) },
- { "semop", (X32_SYSCALL_BIT + 65) },
- { "semtimedop", (X32_SYSCALL_BIT + 220) },
- { "semtimedop_time64", __PNR_semtimedop_time64 },
- { "send", __PNR_send },
- { "sendfile", (X32_SYSCALL_BIT + 40) },
- { "sendfile64", __PNR_sendfile64 },
- { "sendmmsg", (X32_SYSCALL_BIT + 538) },
- { "sendmsg", (X32_SYSCALL_BIT + 518) },
- { "sendto", (X32_SYSCALL_BIT + 44) },
- { "set_mempolicy", (X32_SYSCALL_BIT + 238) },
- { "set_robust_list", (X32_SYSCALL_BIT + 530) },
- { "set_thread_area", __PNR_set_thread_area },
- { "set_tid_address", (X32_SYSCALL_BIT + 218) },
- { "set_tls", __PNR_set_tls },
- { "setdomainname", (X32_SYSCALL_BIT + 171) },
- { "setfsgid", (X32_SYSCALL_BIT + 123) },
- { "setfsgid32", __PNR_setfsgid32 },
- { "setfsuid", (X32_SYSCALL_BIT + 122) },
- { "setfsuid32", __PNR_setfsuid32 },
- { "setgid", (X32_SYSCALL_BIT + 106) },
- { "setgid32", __PNR_setgid32 },
- { "setgroups", (X32_SYSCALL_BIT + 116) },
- { "setgroups32", __PNR_setgroups32 },
- { "sethostname", (X32_SYSCALL_BIT + 170) },
- { "setitimer", (X32_SYSCALL_BIT + 38) },
- { "setns", (X32_SYSCALL_BIT + 308) },
- { "setpgid", (X32_SYSCALL_BIT + 109) },
- { "setpriority", (X32_SYSCALL_BIT + 141) },
- { "setregid", (X32_SYSCALL_BIT + 114) },
- { "setregid32", __PNR_setregid32 },
- { "setresgid", (X32_SYSCALL_BIT + 119) },
- { "setresgid32", __PNR_setresgid32 },
- { "setresuid", (X32_SYSCALL_BIT + 117) },
- { "setresuid32", __PNR_setresuid32 },
- { "setreuid", (X32_SYSCALL_BIT + 113) },
- { "setreuid32", __PNR_setreuid32 },
- { "setrlimit", (X32_SYSCALL_BIT + 160) },
- { "setsid", (X32_SYSCALL_BIT + 112) },
- { "setsockopt", (X32_SYSCALL_BIT + 541) },
- { "settimeofday", (X32_SYSCALL_BIT + 164) },
- { "setuid", (X32_SYSCALL_BIT + 105) },
- { "setuid32", __PNR_setuid32 },
- { "setxattr", (X32_SYSCALL_BIT + 188) },
- { "sgetmask", __PNR_sgetmask },
- { "shmat", (X32_SYSCALL_BIT + 30) },
- { "shmctl", (X32_SYSCALL_BIT + 31) },
- { "shmdt", (X32_SYSCALL_BIT + 67) },
- { "shmget", (X32_SYSCALL_BIT + 29) },
- { "shutdown", (X32_SYSCALL_BIT + 48) },
- { "sigaction", __PNR_sigaction },
- { "sigaltstack", (X32_SYSCALL_BIT + 525) },
- { "signal", __PNR_signal },
- { "signalfd", (X32_SYSCALL_BIT + 282) },
- { "signalfd4", (X32_SYSCALL_BIT + 289) },
- { "sigpending", __PNR_sigpending },
- { "sigprocmask", __PNR_sigprocmask },
- { "sigreturn", __PNR_sigreturn },
- { "sigsuspend", __PNR_sigsuspend },
- { "socket", (X32_SYSCALL_BIT + 41) },
- { "socketcall", __PNR_socketcall },
- { "socketpair", (X32_SYSCALL_BIT + 53) },
- { "splice", (X32_SYSCALL_BIT + 275) },
- { "spu_create", __PNR_spu_create },
- { "spu_run", __PNR_spu_run },
- { "ssetmask", __PNR_ssetmask },
- { "stat", (X32_SYSCALL_BIT + 4) },
- { "stat64", __PNR_stat64 },
- { "statfs", (X32_SYSCALL_BIT + 137) },
- { "statfs64", __PNR_statfs64 },
- { "statx", (X32_SYSCALL_BIT + 332) },
- { "stime", __PNR_stime },
- { "stty", __PNR_stty },
- { "subpage_prot", __PNR_subpage_prot },
- { "swapcontext", __PNR_swapcontext },
- { "swapoff", (X32_SYSCALL_BIT + 168) },
- { "swapon", (X32_SYSCALL_BIT + 167) },
- { "switch_endian", __PNR_switch_endian },
- { "symlink", (X32_SYSCALL_BIT + 88) },
- { "symlinkat", (X32_SYSCALL_BIT + 266) },
- { "sync", (X32_SYSCALL_BIT + 162) },
- { "sync_file_range", (X32_SYSCALL_BIT + 277) },
- { "sync_file_range2", __PNR_sync_file_range2 },
- { "syncfs", (X32_SYSCALL_BIT + 306) },
- { "syscall", __PNR_syscall },
- { "sys_debug_setcontext", __PNR_sys_debug_setcontext },
- { "sysfs", (X32_SYSCALL_BIT + 139) },
- { "sysinfo", (X32_SYSCALL_BIT + 99) },
- { "syslog", (X32_SYSCALL_BIT + 103) },
- { "sysmips", __PNR_sysmips },
- { "tee", (X32_SYSCALL_BIT + 276) },
- { "tgkill", (X32_SYSCALL_BIT + 234) },
- { "time", (X32_SYSCALL_BIT + 201) },
- { "timer_create", (X32_SYSCALL_BIT + 526) },
- { "timer_delete", (X32_SYSCALL_BIT + 226) },
- { "timer_getoverrun", (X32_SYSCALL_BIT + 225) },
- { "timer_gettime", (X32_SYSCALL_BIT + 224) },
- { "timer_gettime64", __PNR_timer_gettime64 },
- { "timer_settime", (X32_SYSCALL_BIT + 223) },
- { "timer_settime64", __PNR_timer_settime64 },
- { "timerfd", __PNR_timerfd },
- { "timerfd_create", (X32_SYSCALL_BIT + 283) },
- { "timerfd_gettime", (X32_SYSCALL_BIT + 287) },
- { "timerfd_gettime64", __PNR_timerfd_gettime64 },
- { "timerfd_settime", (X32_SYSCALL_BIT + 286) },
- { "timerfd_settime64", __PNR_timerfd_settime64 },
- { "times", (X32_SYSCALL_BIT + 100) },
- { "tkill", (X32_SYSCALL_BIT + 200) },
- { "truncate", (X32_SYSCALL_BIT + 76) },
- { "truncate64", __PNR_truncate64 },
- { "tuxcall", (X32_SYSCALL_BIT + 184) },
- { "ugetrlimit", __PNR_ugetrlimit },
- { "ulimit", __PNR_ulimit },
- { "umask", (X32_SYSCALL_BIT + 95) },
- { "umount", __PNR_umount },
- { "umount2", (X32_SYSCALL_BIT + 166) },
- { "uname", (X32_SYSCALL_BIT + 63) },
- { "unlink", (X32_SYSCALL_BIT + 87) },
- { "unlinkat", (X32_SYSCALL_BIT + 263) },
- { "unshare", (X32_SYSCALL_BIT + 272) },
- { "uselib", __PNR_uselib },
- { "userfaultfd", (X32_SYSCALL_BIT + 323) },
- { "usr26", __PNR_usr26 },
- { "usr32", __PNR_usr32 },
- { "ustat", (X32_SYSCALL_BIT + 136) },
- { "utime", (X32_SYSCALL_BIT + 132) },
- { "utimensat", (X32_SYSCALL_BIT + 280) },
- { "utimensat_time64", __PNR_utimensat_time64 },
- { "utimes", (X32_SYSCALL_BIT + 235) },
- { "vfork", (X32_SYSCALL_BIT + 58) },
- { "vhangup", (X32_SYSCALL_BIT + 153) },
- { "vm86", __PNR_vm86 },
- { "vm86old", __PNR_vm86old },
- { "vmsplice", (X32_SYSCALL_BIT + 532) },
- { "vserver", __PNR_vserver },
- { "wait4", (X32_SYSCALL_BIT + 61) },
- { "waitid", (X32_SYSCALL_BIT + 529) },
- { "waitpid", __PNR_waitpid },
- { "write", (X32_SYSCALL_BIT + 1) },
- { "writev", (X32_SYSCALL_BIT + 516) },
- { NULL, __NR_SCMP_ERROR},
-};
-
-/**
- * Resolve a syscall name to a number
- * @param name the syscall name
- *
- * Resolve the given syscall name to the syscall number using the syscall table.
- * Returns the syscall number on success, including negative pseudo syscall
- * numbers; returns __NR_SCMP_ERROR on failure.
- *
- */
-int x32_syscall_resolve_name(const char *name)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = x32_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].name != NULL; iter++) {
- if (strcmp(name, table[iter].name) == 0)
- return table[iter].num;
- }
-
- return __NR_SCMP_ERROR;
-}
-
-/**
- * Resolve a syscall number to a name
- * @param num the syscall number
- *
- * Resolve the given syscall number to the syscall name using the syscall table.
- * Returns a pointer to the syscall name string on success, including pseudo
- * syscall names; returns NULL on failure.
- *
- */
-const char *x32_syscall_resolve_num(int num)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = x32_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
- if (num == table[iter].num)
- return table[iter].name;
- }
-
- return NULL;
-}
-
-/**
- * Iterate through the syscall table and return the syscall mapping
- * @param spot the offset into the syscall table
- *
- * Return the syscall mapping at position @spot or NULL on failure. This
- * function should only ever be used internally by libseccomp.
- *
- */
-const struct arch_syscall_def *x32_syscall_iterate(unsigned int spot)
-{
- /* XXX - no safety checks here */
- return &x32_syscall_table[spot];
-}
diff --git a/src/arch-x86-syscalls.c b/src/arch-x86-syscalls.c
deleted file mode 100644
index ff555e9..0000000
--- a/src/arch-x86-syscalls.c
+++ /dev/null
@@ -1,692 +0,0 @@
-/**
- * Enhanced Seccomp x86 Syscall Table
- *
- * Copyright (c) 2012 Red Hat <pmoore@redhat.com>
- * Author: Paul Moore <paul@paul-moore.com>
- */
-
-/*
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License as
- * published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, see <http://www.gnu.org/licenses>.
- */
-
-#include <string.h>
-
-#include <seccomp.h>
-
-#include "arch.h"
-#include "arch-x86.h"
-
-/* NOTE: based on Linux v5.4-rc4 */
-const struct arch_syscall_def x86_syscall_table[] = { \
- { "_llseek", 140 },
- { "_newselect", 142 },
- { "_sysctl", 149 },
- { "accept", __PNR_accept },
- { "accept4", 364 },
- { "access", 33 },
- { "acct", 51 },
- { "add_key", 286 },
- { "adjtimex", 124 },
- { "afs_syscall", 137 },
- { "alarm", 27 },
- { "arm_fadvise64_64", __PNR_arm_fadvise64_64 },
- { "arm_sync_file_range", __PNR_arm_sync_file_range },
- { "arch_prctl", 384 },
- { "bdflush", 134 },
- { "bind", 361 },
- { "bpf", 357 },
- { "break", 17 },
- { "breakpoint", __PNR_breakpoint },
- { "brk", 45 },
- { "cachectl", __PNR_cachectl },
- { "cacheflush", __PNR_cacheflush },
- { "capget", 184 },
- { "capset", 185 },
- { "chdir", 12 },
- { "chmod", 15 },
- { "chown", 182 },
- { "chown32", 212 },
- { "chroot", 61 },
- { "clock_adjtime", 343 },
- { "clock_adjtime64", 405 },
- { "clock_getres", 266 },
- { "clock_getres_time64", 406 },
- { "clock_gettime", 265 },
- { "clock_gettime64", 403 },
- { "clock_nanosleep", 267 },
- { "clock_nanosleep_time64", 407 },
- { "clock_settime", 264 },
- { "clock_settime64", 404 },
- { "clone", 120 },
- { "clone3", 435 },
- { "close", 6 },
- { "connect", 362 },
- { "copy_file_range", 377 },
- { "creat", 8 },
- { "create_module", 127 },
- { "delete_module", 129 },
- { "dup", 41 },
- { "dup2", 63 },
- { "dup3", 330 },
- { "epoll_create", 254 },
- { "epoll_create1", 329 },
- { "epoll_ctl", 255 },
- { "epoll_ctl_old", __PNR_epoll_ctl_old },
- { "epoll_pwait", 319 },
- { "epoll_wait", 256 },
- { "epoll_wait_old", __PNR_epoll_wait_old },
- { "eventfd", 323 },
- { "eventfd2", 328 },
- { "execve", 11 },
- { "execveat", 358 },
- { "exit", 1 },
- { "exit_group", 252 },
- { "faccessat", 307 },
- { "fadvise64", 250 },
- { "fadvise64_64", 272 },
- { "fallocate", 324 },
- { "fanotify_init", 338 },
- { "fanotify_mark", 339 },
- { "fchdir", 133 },
- { "fchmod", 94 },
- { "fchmodat", 306 },
- { "fchown", 95 },
- { "fchown32", 207 },
- { "fchownat", 298 },
- { "fcntl", 55 },
- { "fcntl64", 221 },
- { "fdatasync", 148 },
- { "fgetxattr", 231 },
- { "finit_module", 350 },
- { "flistxattr", 234 },
- { "flock", 143 },
- { "fork", 2 },
- { "fremovexattr", 237 },
- { "fsconfig", 431 },
- { "fsetxattr", 228 },
- { "fsmount", 432 },
- { "fsopen", 430 },
- { "fspick", 433 },
- { "fstat", 108 },
- { "fstat64", 197 },
- { "fstatat64", 300 },
- { "fstatfs", 100 },
- { "fstatfs64", 269 },
- { "fsync", 118 },
- { "ftime", 35 },
- { "ftruncate", 93 },
- { "ftruncate64", 194 },
- { "futex", 240 },
- { "futex_time64", 422 },
- { "futimesat", 299 },
- { "get_kernel_syms", 130 },
- { "get_mempolicy", 275 },
- { "get_robust_list", 312 },
- { "get_thread_area", 244 },
- { "get_tls", __PNR_get_tls },
- { "getcpu", 318 },
- { "getcwd", 183 },
- { "getdents", 141 },
- { "getdents64", 220 },
- { "getegid", 50 },
- { "getegid32", 202 },
- { "geteuid", 49 },
- { "geteuid32", 201 },
- { "getgid", 47 },
- { "getgid32", 200 },
- { "getgroups", 80 },
- { "getgroups32", 205 },
- { "getitimer", 105 },
- { "getpeername", 368 },
- { "getpgid", 132 },
- { "getpgrp", 65 },
- { "getpid", 20 },
- { "getpmsg", 188 },
- { "getppid", 64 },
- { "getpriority", 96 },
- { "getrandom", 355 },
- { "getresgid", 171 },
- { "getresgid32", 211 },
- { "getresuid", 165 },
- { "getresuid32", 209 },
- { "getrlimit", 76 },
- { "getrusage", 77 },
- { "getsid", 147 },
- { "getsockname", 367 },
- { "getsockopt", 365 },
- { "gettid", 224 },
- { "gettimeofday", 78 },
- { "getuid", 24 },
- { "getuid32", 199 },
- { "getxattr", 229 },
- { "gtty", 32 },
- { "idle", 112 },
- { "init_module", 128 },
- { "inotify_add_watch", 292 },
- { "inotify_init", 291 },
- { "inotify_init1", 332 },
- { "inotify_rm_watch", 293 },
- { "io_cancel", 249 },
- { "io_destroy", 246 },
- { "io_getevents", 247 },
- { "io_pgetevents", 385 },
- { "io_pgetevents_time64", 416 },
- { "io_setup", 245 },
- { "io_submit", 248 },
- { "io_uring_setup", 425 },
- { "io_uring_enter", 426 },
- { "io_uring_register", 427 },
- { "ioctl", 54 },
- { "ioperm", 101 },
- { "iopl", 110 },
- { "ioprio_get", 290 },
- { "ioprio_set", 289 },
- { "ipc", 117 },
- { "kcmp", 349 },
- { "kexec_file_load", __PNR_kexec_file_load },
- { "kexec_load", 283 },
- { "keyctl", 288 },
- { "kill", 37 },
- { "lchown", 16 },
- { "lchown32", 198 },
- { "lgetxattr", 230 },
- { "link", 9 },
- { "linkat", 303 },
- { "listen", 363 },
- { "listxattr", 232 },
- { "llistxattr", 233 },
- { "lock", 53 },
- { "lookup_dcookie", 253 },
- { "lremovexattr", 236 },
- { "lseek", 19 },
- { "lsetxattr", 227 },
- { "lstat", 107 },
- { "lstat64", 196 },
- { "madvise", 219 },
- { "mbind", 274 },
- { "membarrier", 375 },
- { "memfd_create", 356 },
- { "migrate_pages", 294 },
- { "mincore", 218 },
- { "mkdir", 39 },
- { "mkdirat", 296 },
- { "mknod", 14 },
- { "mknodat", 297 },
- { "mlock", 150 },
- { "mlock2", 376 },
- { "mlockall", 152 },
- { "mmap", 90 },
- { "mmap2", 192 },
- { "modify_ldt", 123 },
- { "mount", 21 },
- { "move_mount", 429 },
- { "move_pages", 317 },
- { "mprotect", 125 },
- { "mpx", 56 },
- { "mq_getsetattr", 282 },
- { "mq_notify", 281 },
- { "mq_open", 277 },
- { "mq_timedreceive", 280 },
- { "mq_timedreceive_time64", 419 },
- { "mq_timedsend", 279 },
- { "mq_timedsend_time64", 418 },
- { "mq_unlink", 278 },
- { "mremap", 163 },
- { "msgctl", 402 },
- { "msgget", 399 },
- { "msgrcv", 401 },
- { "msgsnd", 400 },
- { "msync", 144 },
- { "multiplexer", __PNR_multiplexer },
- { "munlock", 151 },
- { "munlockall", 153 },
- { "munmap", 91 },
- { "name_to_handle_at", 341 },
- { "nanosleep", 162 },
- { "newfstatat", __PNR_newfstatat },
- { "nfsservctl", 169 },
- { "nice", 34 },
- { "oldfstat", 28 },
- { "oldlstat", 84 },
- { "oldolduname", 59 },
- { "oldstat", 18 },
- { "olduname", 109 },
- { "oldwait4", __PNR_oldwait4 },
- { "open", 5 },
- { "open_by_handle_at", 342 },
- { "open_tree", 428 },
- { "openat", 295 },
- { "pause", 29 },
- { "pciconfig_iobase", __PNR_pciconfig_iobase },
- { "pciconfig_read", __PNR_pciconfig_read },
- { "pciconfig_write", __PNR_pciconfig_write },
- { "perf_event_open", 336 },
- { "personality", 136 },
- { "pidfd_open", 434 },
- { "pidfd_send_signal", 424 },
- { "pipe", 42 },
- { "pipe2", 331 },
- { "pivot_root", 217 },
- { "pkey_alloc", 381 },
- { "pkey_free", 382 },
- { "pkey_mprotect", 380 },
- { "poll", 168 },
- { "ppoll", 309 },
- { "ppoll_time64", 414 },
- { "prctl", 172 },
- { "pread64", 180 },
- { "preadv", 333 },
- { "preadv2", 378 },
- { "prlimit64", 340 },
- { "process_vm_readv", 347 },
- { "process_vm_writev", 348 },
- { "prof", 44 },
- { "profil", 98 },
- { "pselect6", 308 },
- { "pselect6_time64", 413 },
- { "ptrace", 26 },
- { "putpmsg", 189 },
- { "pwrite64", 181 },
- { "pwritev", 334 },
- { "pwritev2", 379 },
- { "query_module", 167 },
- { "quotactl", 131 },
- { "read", 3 },
- { "readahead", 225 },
- { "readdir", 89 },
- { "readlink", 85 },
- { "readlinkat", 305 },
- { "readv", 145 },
- { "reboot", 88 },
- { "recv", __PNR_recv },
- { "recvfrom", 371 },
- { "recvmmsg", 337 },
- { "recvmmsg_time64", 417 },
- { "recvmsg", 372 },
- { "remap_file_pages", 257 },
- { "removexattr", 235 },
- { "rename", 38 },
- { "renameat", 302 },
- { "renameat2", 353 },
- { "request_key", 287 },
- { "restart_syscall", 0 },
- { "rmdir", 40 },
- { "rseq", 386 },
- { "rt_sigaction", 174 },
- { "rt_sigpending", 176 },
- { "rt_sigprocmask", 175 },
- { "rt_sigqueueinfo", 178 },
- { "rt_sigreturn", 173 },
- { "rt_sigsuspend", 179 },
- { "rt_sigtimedwait", 177 },
- { "rt_sigtimedwait_time64", 421 },
- { "rt_tgsigqueueinfo", 335 },
- { "rtas", __PNR_rtas },
- { "s390_guarded_storage", __PNR_s390_guarded_storage },
- { "s390_pci_mmio_read", __PNR_s390_pci_mmio_read },
- { "s390_pci_mmio_write", __PNR_s390_pci_mmio_write },
- { "s390_runtime_instr", __PNR_s390_runtime_instr },
- { "s390_sthyi", __PNR_s390_sthyi },
- { "sched_get_priority_max", 159 },
- { "sched_get_priority_min", 160 },
- { "sched_getaffinity", 242 },
- { "sched_getattr", 352 },
- { "sched_getparam", 155 },
- { "sched_getscheduler", 157 },
- { "sched_rr_get_interval", 161 },
- { "sched_rr_get_interval_time64", 423 },
- { "sched_setaffinity", 241 },
- { "sched_setattr", 351 },
- { "sched_setparam", 154 },
- { "sched_setscheduler", 156 },
- { "sched_yield", 158 },
- { "seccomp", 354 },
- { "security", __PNR_security },
- { "select", 82 },
- { "semctl", 394 },
- { "semget", 393 },
- { "semop", __PNR_semop },
- { "semtimedop", __PNR_semtimedop },
- { "semtimedop_time64", 420 },
- { "send", __PNR_send },
- { "sendfile", 187 },
- { "sendfile64", 239 },
- { "sendmmsg", 345 },
- { "sendmsg", 370 },
- { "sendto", 369 },
- { "set_mempolicy", 276 },
- { "set_robust_list", 311 },
- { "set_thread_area", 243 },
- { "set_tid_address", 258 },
- { "set_tls", __PNR_set_tls },
- { "setdomainname", 121 },
- { "setfsgid", 139 },
- { "setfsgid32", 216 },
- { "setfsuid", 138 },
- { "setfsuid32", 215 },
- { "setgid", 46 },
- { "setgid32", 214 },
- { "setgroups", 81 },
- { "setgroups32", 206 },
- { "sethostname", 74 },
- { "setitimer", 104 },
- { "setns", 346 },
- { "setpgid", 57 },
- { "setpriority", 97 },
- { "setregid", 71 },
- { "setregid32", 204 },
- { "setresgid", 170 },
- { "setresgid32", 210 },
- { "setresuid", 164 },
- { "setresuid32", 208 },
- { "setreuid", 70 },
- { "setreuid32", 203 },
- { "setrlimit", 75 },
- { "setsid", 66 },
- { "setsockopt", 366 },
- { "settimeofday", 79 },
- { "setuid", 23 },
- { "setuid32", 213 },
- { "setxattr", 226 },
- { "sgetmask", 68 },
- { "shmat", 397 },
- { "shmctl", 396 },
- { "shmdt", 398 },
- { "shmget", 395 },
- { "shutdown", 373 },
- { "sigaction", 67 },
- { "sigaltstack", 186 },
- { "signal", 48 },
- { "signalfd", 321 },
- { "signalfd4", 327 },
- { "sigpending", 73 },
- { "sigprocmask", 126 },
- { "sigreturn", 119 },
- { "sigsuspend", 72 },
- { "socket", 359 },
- { "socketcall", 102 },
- { "socketpair", 360 },
- { "splice", 313 },
- { "spu_create", __PNR_spu_create },
- { "spu_run", __PNR_spu_run },
- { "ssetmask", 69 },
- { "stat", 106 },
- { "stat64", 195 },
- { "statfs", 99 },
- { "statfs64", 268 },
- { "statx", 383 },
- { "stime", 25 },
- { "stty", 31 },
- { "subpage_prot", __PNR_subpage_prot },
- { "swapcontext", __PNR_swapcontext },
- { "swapoff", 115 },
- { "swapon", 87 },
- { "switch_endian", __PNR_switch_endian },
- { "symlink", 83 },
- { "symlinkat", 304 },
- { "sync", 36 },
- { "sync_file_range", 314 },
- { "sync_file_range2", __PNR_sync_file_range2 },
- { "syncfs", 344 },
- { "syscall", __PNR_syscall },
- { "sys_debug_setcontext", __PNR_sys_debug_setcontext },
- { "sysfs", 135 },
- { "sysinfo", 116 },
- { "syslog", 103 },
- { "sysmips", __PNR_sysmips },
- { "tee", 315 },
- { "tgkill", 270 },
- { "time", 13 },
- { "timer_create", 259 },
- { "timer_delete", 263 },
- { "timer_getoverrun", 262 },
- { "timer_gettime", 261 },
- { "timer_gettime64", 408 },
- { "timer_settime", 260 },
- { "timer_settime64", 409 },
- { "timerfd", __PNR_timerfd },
- { "timerfd_create", 322 },
- { "timerfd_gettime", 326 },
- { "timerfd_gettime64", 410 },
- { "timerfd_settime", 325 },
- { "timerfd_settime64", 411 },
- { "times", 43 },
- { "tkill", 238 },
- { "truncate", 92 },
- { "truncate64", 193 },
- { "tuxcall", __PNR_tuxcall },
- { "ugetrlimit", 191 },
- { "ulimit", 58 },
- { "umask", 60 },
- { "umount", 22 },
- { "umount2", 52 },
- { "uname", 122 },
- { "unlink", 10 },
- { "unlinkat", 301 },
- { "unshare", 310 },
- { "uselib", 86 },
- { "userfaultfd", 374 },
- { "usr26", __PNR_usr26 },
- { "usr32", __PNR_usr32 },
- { "ustat", 62 },
- { "utime", 30 },
- { "utimensat", 320 },
- { "utimensat_time64", 412 },
- { "utimes", 271 },
- { "vfork", 190 },
- { "vhangup", 111 },
- { "vm86", 166 },
- { "vm86old", 113 },
- { "vmsplice", 316 },
- { "vserver", 273 },
- { "wait4", 114 },
- { "waitid", 284 },
- { "waitpid", 7 },
- { "write", 4 },
- { "writev", 146 },
- { NULL, __NR_SCMP_ERROR },
-};
-
-/**
- * Resolve a syscall name to a number
- * @param name the syscall name
- *
- * Resolve the given syscall name to the syscall number using the syscall table.
- * Returns the syscall number on success, including negative pseudo syscall
- * numbers; returns __NR_SCMP_ERROR on failure.
- *
- */
-int x86_syscall_resolve_name(const char *name)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = x86_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
-
- if (strcmp(name, "accept") == 0)
- return __PNR_accept;
- else if (strcmp(name, "accept4") == 0)
- return __PNR_accept4;
- else if (strcmp(name, "bind") == 0)
- return __PNR_bind;
- else if (strcmp(name, "connect") == 0)
- return __PNR_connect;
- else if (strcmp(name, "getpeername") == 0)
- return __PNR_getpeername;
- else if (strcmp(name, "getsockname") == 0)
- return __PNR_getsockname;
- else if (strcmp(name, "getsockopt") == 0)
- return __PNR_getsockopt;
- else if (strcmp(name, "listen") == 0)
- return __PNR_listen;
- else if (strcmp(name, "recv") == 0)
- return __PNR_recv;
- else if (strcmp(name, "recvfrom") == 0)
- return __PNR_recvfrom;
- else if (strcmp(name, "recvmsg") == 0)
- return __PNR_recvmsg;
- else if (strcmp(name, "recvmmsg") == 0)
- return __PNR_recvmmsg;
- else if (strcmp(name, "send") == 0)
- return __PNR_send;
- else if (strcmp(name, "sendmsg") == 0)
- return __PNR_sendmsg;
- else if (strcmp(name, "sendmmsg") == 0)
- return __PNR_sendmmsg;
- else if (strcmp(name, "sendto") == 0)
- return __PNR_sendto;
- else if (strcmp(name, "setsockopt") == 0)
- return __PNR_setsockopt;
- else if (strcmp(name, "shutdown") == 0)
- return __PNR_shutdown;
- else if (strcmp(name, "socket") == 0)
- return __PNR_socket;
- else if (strcmp(name, "socketpair") == 0)
- return __PNR_socketpair;
-
- if (strcmp(name, "semop") == 0)
- return __PNR_semop;
- else if (strcmp(name, "semget") == 0)
- return __PNR_semget;
- else if (strcmp(name, "semctl") == 0)
- return __PNR_semctl;
- else if (strcmp(name, "semtimedop") == 0)
- return __PNR_semtimedop;
- else if (strcmp(name, "msgsnd") == 0)
- return __PNR_msgsnd;
- else if (strcmp(name, "msgrcv") == 0)
- return __PNR_msgrcv;
- else if (strcmp(name, "msgget") == 0)
- return __PNR_msgget;
- else if (strcmp(name, "msgctl") == 0)
- return __PNR_msgctl;
- else if (strcmp(name, "shmat") == 0)
- return __PNR_shmat;
- else if (strcmp(name, "shmdt") == 0)
- return __PNR_shmdt;
- else if (strcmp(name, "shmget") == 0)
- return __PNR_shmget;
- else if (strcmp(name, "shmctl") == 0)
- return __PNR_shmctl;
-
- for (iter = 0; table[iter].name != NULL; iter++) {
- if (strcmp(name, table[iter].name) == 0)
- return table[iter].num;
- }
-
- return __NR_SCMP_ERROR;
-}
-
-/**
- * Resolve a syscall number to a name
- * @param num the syscall number
- *
- * Resolve the given syscall number to the syscall name using the syscall table.
- * Returns a pointer to the syscall name string on success, including pseudo
- * syscall names; returns NULL on failure.
- *
- */
-const char *x86_syscall_resolve_num(int num)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = x86_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
-
- if (num == __PNR_accept)
- return "accept";
- else if (num == __PNR_accept4)
- return "accept4";
- else if (num == __PNR_bind)
- return "bind";
- else if (num == __PNR_connect)
- return "connect";
- else if (num == __PNR_getpeername)
- return "getpeername";
- else if (num == __PNR_getsockname)
- return "getsockname";
- else if (num == __PNR_getsockopt)
- return "getsockopt";
- else if (num == __PNR_listen)
- return "listen";
- else if (num == __PNR_recv)
- return "recv";
- else if (num == __PNR_recvfrom)
- return "recvfrom";
- else if (num == __PNR_recvmsg)
- return "recvmsg";
- else if (num == __PNR_recvmmsg)
- return "recvmmsg";
- else if (num == __PNR_send)
- return "send";
- else if (num == __PNR_sendmsg)
- return "sendmsg";
- else if (num == __PNR_sendmmsg)
- return "sendmmsg";
- else if (num == __PNR_sendto)
- return "sendto";
- else if (num == __PNR_setsockopt)
- return "setsockopt";
- else if (num == __PNR_shutdown)
- return "shutdown";
- else if (num == __PNR_socket)
- return "socket";
- else if (num == __PNR_socketpair)
- return "socketpair";
-
- if (num == __PNR_semop)
- return "semop";
- else if (num == __PNR_semget)
- return "semget";
- else if (num == __PNR_semctl)
- return "semctl";
- else if (num == __PNR_semtimedop)
- return "semtimedop";
- else if (num == __PNR_msgsnd)
- return "msgsnd";
- else if (num == __PNR_msgrcv)
- return "msgrcv";
- else if (num == __PNR_msgget)
- return "msgget";
- else if (num == __PNR_msgctl)
- return "msgctl";
- else if (num == __PNR_shmat)
- return "shmat";
- else if (num == __PNR_shmdt)
- return "shmdt";
- else if (num == __PNR_shmget)
- return "shmget";
- else if (num == __PNR_shmctl)
- return "shmctl";
-
- for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
- if (num == table[iter].num)
- return table[iter].name;
- }
-
- return NULL;
-}
-
-/**
- * Iterate through the syscall table and return the syscall mapping
- * @param spot the offset into the syscall table
- *
- * Return the syscall mapping at position @spot or NULL on failure. This
- * function should only ever be used internally by libseccomp.
- *
- */
-const struct arch_syscall_def *x86_syscall_iterate(unsigned int spot)
-{
- /* XXX - no safety checks here */
- return &x86_syscall_table[spot];
-}
diff --git a/src/arch-x86_64-syscalls.c b/src/arch-x86_64-syscalls.c
deleted file mode 100644
index a2fdef8..0000000
--- a/src/arch-x86_64-syscalls.c
+++ /dev/null
@@ -1,559 +0,0 @@
-/**
- * Enhanced Seccomp x86_64 Syscall Table
- *
- * Copyright (c) 2012 Red Hat <pmoore@redhat.com>
- * Author: Paul Moore <paul@paul-moore.com>
- */
-
-/*
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License as
- * published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, see <http://www.gnu.org/licenses>.
- */
-
-#include <string.h>
-
-#include <seccomp.h>
-
-#include "arch.h"
-#include "arch-x86_64.h"
-
-/* NOTE: based on Linux v5.4-rc4 */
-const struct arch_syscall_def x86_64_syscall_table[] = { \
- { "_llseek", __PNR__llseek },
- { "_newselect", __PNR__newselect },
- { "_sysctl", 156 },
- { "accept", 43 },
- { "accept4", 288 },
- { "access", 21 },
- { "acct", 163 },
- { "add_key", 248 },
- { "adjtimex", 159 },
- { "afs_syscall", 183 },
- { "alarm", 37 },
- { "arm_fadvise64_64", __PNR_arm_fadvise64_64 },
- { "arm_sync_file_range", __PNR_arm_sync_file_range },
- { "arch_prctl", 158 },
- { "bdflush", __PNR_bdflush },
- { "bind", 49 },
- { "bpf", 321 },
- { "break", __PNR_break },
- { "breakpoint", __PNR_breakpoint },
- { "brk", 12 },
- { "cachectl", __PNR_cachectl },
- { "cacheflush", __PNR_cacheflush },
- { "capget", 125 },
- { "capset", 126 },
- { "chdir", 80 },
- { "chmod", 90 },
- { "chown", 92 },
- { "chown32", __PNR_chown32 },
- { "chroot", 161 },
- { "clock_adjtime", 305 },
- { "clock_adjtime64", __PNR_clock_adjtime64 },
- { "clock_getres", 229 },
- { "clock_getres_time64", __PNR_clock_getres_time64 },
- { "clock_gettime", 228 },
- { "clock_gettime64", __PNR_clock_gettime64 },
- { "clock_nanosleep", 230 },
- { "clock_nanosleep_time64", __PNR_clock_nanosleep_time64 },
- { "clock_settime", 227 },
- { "clock_settime64", __PNR_clock_settime64 },
- { "clone", 56 },
- { "clone3", 435 },
- { "close", 3 },
- { "connect", 42 },
- { "copy_file_range", 326 },
- { "creat", 85 },
- { "create_module", 174 },
- { "delete_module", 176 },
- { "dup", 32 },
- { "dup2", 33 },
- { "dup3", 292 },
- { "epoll_create", 213 },
- { "epoll_create1", 291 },
- { "epoll_ctl", 233 },
- { "epoll_ctl_old", 214 },
- { "epoll_pwait", 281 },
- { "epoll_wait", 232 },
- { "epoll_wait_old", 215 },
- { "eventfd", 284 },
- { "eventfd2", 290 },
- { "execve", 59 },
- { "execveat", 322 },
- { "exit", 60 },
- { "exit_group", 231 },
- { "faccessat", 269 },
- { "fadvise64", 221 },
- { "fadvise64_64", __PNR_fadvise64_64 },
- { "fallocate", 285 },
- { "fanotify_init", 300 },
- { "fanotify_mark", 301 },
- { "fchdir", 81 },
- { "fchmod", 91 },
- { "fchmodat", 268 },
- { "fchown", 93 },
- { "fchown32", __PNR_fchown32 },
- { "fchownat", 260 },
- { "fcntl", 72 },
- { "fcntl64", __PNR_fcntl64 },
- { "fdatasync", 75 },
- { "fgetxattr", 193 },
- { "finit_module", 313 },
- { "flistxattr", 196 },
- { "flock", 73 },
- { "fork", 57 },
- { "fremovexattr", 199 },
- { "fsconfig", 431 },
- { "fsetxattr", 190 },
- { "fsmount", 432 },
- { "fsopen", 430 },
- { "fspick", 433 },
- { "fstat", 5 },
- { "fstat64", __PNR_fstat64 },
- { "fstatat64", __PNR_fstatat64 },
- { "fstatfs", 138 },
- { "fstatfs64", __PNR_fstatfs64 },
- { "fsync", 74 },
- { "ftime", __PNR_ftime },
- { "ftruncate", 77 },
- { "ftruncate64", __PNR_ftruncate64 },
- { "futex", 202 },
- { "futex_time64", __PNR_futex_time64 },
- { "futimesat", 261 },
- { "get_kernel_syms", 177 },
- { "get_mempolicy", 239 },
- { "get_robust_list", 274 },
- { "get_thread_area", 211 },
- { "get_tls", __PNR_get_tls },
- { "getcpu", 309 },
- { "getcwd", 79 },
- { "getdents", 78 },
- { "getdents64", 217 },
- { "getegid", 108 },
- { "getegid32", __PNR_getegid32 },
- { "geteuid", 107 },
- { "geteuid32", __PNR_geteuid32 },
- { "getgid", 104 },
- { "getgid32", __PNR_getgid32 },
- { "getgroups", 115 },
- { "getgroups32", __PNR_getgroups32 },
- { "getitimer", 36 },
- { "getpeername", 52 },
- { "getpgid", 121 },
- { "getpgrp", 111 },
- { "getpid", 39 },
- { "getpmsg", 181 },
- { "getppid", 110 },
- { "getpriority", 140 },
- { "getrandom", 318 },
- { "getresgid", 120 },
- { "getresgid32", __PNR_getresgid32 },
- { "getresuid", 118 },
- { "getresuid32", __PNR_getresuid32 },
- { "getrlimit", 97 },
- { "getrusage", 98 },
- { "getsid", 124 },
- { "getsockname", 51 },
- { "getsockopt", 55 },
- { "gettid", 186 },
- { "gettimeofday", 96 },
- { "getuid", 102 },
- { "getuid32", __PNR_getuid32 },
- { "getxattr", 191 },
- { "gtty", __PNR_gtty },
- { "idle", __PNR_idle },
- { "init_module", 175 },
- { "inotify_add_watch", 254 },
- { "inotify_init", 253 },
- { "inotify_init1", 294 },
- { "inotify_rm_watch", 255 },
- { "io_cancel", 210 },
- { "io_destroy", 207 },
- { "io_getevents", 208 },
- { "io_pgetevents", 333 },
- { "io_pgetevents_time64", __PNR_io_pgetevents_time64 },
- { "io_setup", 206 },
- { "io_submit", 209 },
- { "io_uring_setup", 425 },
- { "io_uring_enter", 426 },
- { "io_uring_register", 427 },
- { "ioctl", 16 },
- { "ioperm", 173 },
- { "iopl", 172 },
- { "ioprio_get", 252 },
- { "ioprio_set", 251 },
- { "ipc", __PNR_ipc },
- { "kcmp", 312 },
- { "kexec_file_load", 320 },
- { "kexec_load", 246 },
- { "keyctl", 250 },
- { "kill", 62 },
- { "lchown", 94 },
- { "lchown32", __PNR_lchown32 },
- { "lgetxattr", 192 },
- { "link", 86 },
- { "linkat", 265 },
- { "listen", 50 },
- { "listxattr", 194 },
- { "llistxattr", 195 },
- { "lock", __PNR_lock },
- { "lookup_dcookie", 212 },
- { "lremovexattr", 198 },
- { "lseek", 8 },
- { "lsetxattr", 189 },
- { "lstat", 6 },
- { "lstat64", __PNR_lstat64 },
- { "madvise", 28 },
- { "mbind", 237 },
- { "membarrier", 324 },
- { "memfd_create", 319 },
- { "migrate_pages", 256 },
- { "mincore", 27 },
- { "mkdir", 83 },
- { "mkdirat", 258 },
- { "mknod", 133 },
- { "mknodat", 259 },
- { "mlock", 149 },
- { "mlock2", 325 },
- { "mlockall", 151 },
- { "mmap", 9 },
- { "mmap2", __PNR_mmap2 },
- { "modify_ldt", 154 },
- { "mount", 165 },
- { "move_mount", 429 },
- { "move_pages", 279 },
- { "mprotect", 10 },
- { "mpx", __PNR_mpx },
- { "mq_getsetattr", 245 },
- { "mq_notify", 244 },
- { "mq_open", 240 },
- { "mq_timedreceive", 243 },
- { "mq_timedreceive_time64", __PNR_mq_timedreceive_time64 },
- { "mq_timedsend", 242 },
- { "mq_timedsend_time64", __PNR_mq_timedsend_time64 },
- { "mq_unlink", 241 },
- { "mremap", 25 },
- { "msgctl", 71 },
- { "msgget", 68 },
- { "msgrcv", 70 },
- { "msgsnd", 69 },
- { "msync", 26 },
- { "multiplexer", __PNR_multiplexer },
- { "munlock", 150 },
- { "munlockall", 152 },
- { "munmap", 11 },
- { "name_to_handle_at", 303 },
- { "nanosleep", 35 },
- { "newfstatat", 262 },
- { "nfsservctl", 180 },
- { "nice", __PNR_nice },
- { "oldfstat", __PNR_oldfstat },
- { "oldlstat", __PNR_oldlstat },
- { "oldolduname", __PNR_oldolduname },
- { "oldstat", __PNR_oldstat },
- { "olduname", __PNR_olduname },
- { "oldwait4", __PNR_oldwait4 },
- { "open", 2 },
- { "open_by_handle_at", 304 },
- { "open_tree", 428 },
- { "openat", 257 },
- { "pause", 34 },
- { "pciconfig_iobase", __PNR_pciconfig_iobase },
- { "pciconfig_read", __PNR_pciconfig_read },
- { "pciconfig_write", __PNR_pciconfig_write },
- { "perf_event_open", 298 },
- { "personality", 135 },
- { "pidfd_open", 434 },
- { "pidfd_send_signal", 424 },
- { "pipe", 22 },
- { "pipe2", 293 },
- { "pivot_root", 155 },
- { "pkey_alloc", 330 },
- { "pkey_free", 331 },
- { "pkey_mprotect", 329 },
- { "poll", 7 },
- { "ppoll", 271 },
- { "ppoll_time64", __PNR_ppoll_time64 },
- { "prctl", 157 },
- { "pread64", 17 },
- { "preadv", 295 },
- { "preadv2", 327 },
- { "prlimit64", 302 },
- { "process_vm_readv", 310 },
- { "process_vm_writev", 311 },
- { "prof", __PNR_prof },
- { "profil", __PNR_profil },
- { "pselect6", 270 },
- { "pselect6_time64", __PNR_pselect6_time64 },
- { "ptrace", 101 },
- { "putpmsg", 182 },
- { "pwrite64", 18 },
- { "pwritev", 296 },
- { "pwritev2", 328 },
- { "query_module", 178 },
- { "quotactl", 179 },
- { "read", 0 },
- { "readahead", 187 },
- { "readdir", __PNR_readdir },
- { "readlink", 89 },
- { "readlinkat", 267 },
- { "readv", 19 },
- { "reboot", 169 },
- { "recv", __PNR_recv },
- { "recvfrom", 45 },
- { "recvmmsg", 299 },
- { "recvmmsg_time64", __PNR_recvmmsg_time64 },
- { "recvmsg", 47 },
- { "remap_file_pages", 216 },
- { "removexattr", 197 },
- { "rename", 82 },
- { "renameat", 264 },
- { "renameat2", 316 },
- { "request_key", 249 },
- { "restart_syscall", 219 },
- { "rmdir", 84 },
- { "rseq", 334 },
- { "rt_sigaction", 13 },
- { "rt_sigpending", 127 },
- { "rt_sigprocmask", 14 },
- { "rt_sigqueueinfo", 129 },
- { "rt_sigreturn", 15 },
- { "rt_sigsuspend", 130 },
- { "rt_sigtimedwait", 128 },
- { "rt_sigtimedwait_time64", __PNR_rt_sigtimedwait_time64 },
- { "rt_tgsigqueueinfo", 297 },
- { "rtas", __PNR_rtas },
- { "s390_guarded_storage", __PNR_s390_guarded_storage },
- { "s390_pci_mmio_read", __PNR_s390_pci_mmio_read },
- { "s390_pci_mmio_write", __PNR_s390_pci_mmio_write },
- { "s390_runtime_instr", __PNR_s390_runtime_instr },
- { "s390_sthyi", __PNR_s390_sthyi },
- { "sched_get_priority_max", 146 },
- { "sched_get_priority_min", 147 },
- { "sched_getaffinity", 204 },
- { "sched_getattr", 315 },
- { "sched_getparam", 143 },
- { "sched_getscheduler", 145 },
- { "sched_rr_get_interval", 148 },
- { "sched_rr_get_interval_time64", __PNR_sched_rr_get_interval_time64 },
- { "sched_setaffinity", 203 },
- { "sched_setattr", 314 },
- { "sched_setparam", 142 },
- { "sched_setscheduler", 144 },
- { "sched_yield", 24 },
- { "seccomp", 317 },
- { "security", 185 },
- { "select", 23 },
- { "semctl", 66 },
- { "semget", 64 },
- { "semop", 65 },
- { "semtimedop", 220 },
- { "semtimedop_time64", __PNR_semtimedop_time64 },
- { "send", __PNR_send },
- { "sendfile", 40 },
- { "sendfile64", __PNR_sendfile64 },
- { "sendmmsg", 307 },
- { "sendmsg", 46 },
- { "sendto", 44 },
- { "set_mempolicy", 238 },
- { "set_robust_list", 273 },
- { "set_thread_area", 205 },
- { "set_tid_address", 218 },
- { "set_tls", __PNR_set_tls },
- { "setdomainname", 171 },
- { "setfsgid", 123 },
- { "setfsgid32", __PNR_setfsgid32 },
- { "setfsuid", 122 },
- { "setfsuid32", __PNR_setfsuid32 },
- { "setgid", 106 },
- { "setgid32", __PNR_setgid32 },
- { "setgroups", 116 },
- { "setgroups32", __PNR_setgroups32 },
- { "sethostname", 170 },
- { "setitimer", 38 },
- { "setns", 308 },
- { "setpgid", 109 },
- { "setpriority", 141 },
- { "setregid", 114 },
- { "setregid32", __PNR_setregid32 },
- { "setresgid", 119 },
- { "setresgid32", __PNR_setresgid32 },
- { "setresuid", 117 },
- { "setresuid32", __PNR_setresuid32 },
- { "setreuid", 113 },
- { "setreuid32", __PNR_setreuid32 },
- { "setrlimit", 160 },
- { "setsid", 112 },
- { "setsockopt", 54 },
- { "settimeofday", 164 },
- { "setuid", 105 },
- { "setuid32", __PNR_setuid32 },
- { "setxattr", 188 },
- { "sgetmask", __PNR_sgetmask },
- { "shmat", 30 },
- { "shmctl", 31 },
- { "shmdt", 67 },
- { "shmget", 29 },
- { "shutdown", 48 },
- { "sigaction", __PNR_sigaction },
- { "sigaltstack", 131 },
- { "signal", __PNR_signal },
- { "signalfd", 282 },
- { "signalfd4", 289 },
- { "sigpending", __PNR_sigpending },
- { "sigprocmask", __PNR_sigprocmask },
- { "sigreturn", __PNR_sigreturn },
- { "sigsuspend", __PNR_sigsuspend },
- { "socket", 41 },
- { "socketcall", __PNR_socketcall },
- { "socketpair", 53 },
- { "splice", 275 },
- { "spu_create", __PNR_spu_create },
- { "spu_run", __PNR_spu_run },
- { "ssetmask", __PNR_ssetmask },
- { "stat", 4 },
- { "stat64", __PNR_stat64 },
- { "statfs", 137 },
- { "statfs64", __PNR_statfs64 },
- { "statx", 332 },
- { "stime", __PNR_stime },
- { "stty", __PNR_stty },
- { "subpage_prot", __PNR_subpage_prot },
- { "swapcontext", __PNR_swapcontext },
- { "swapoff", 168 },
- { "swapon", 167 },
- { "switch_endian", __PNR_switch_endian },
- { "symlink", 88 },
- { "symlinkat", 266 },
- { "sync", 162 },
- { "sync_file_range", 277 },
- { "sync_file_range2", __PNR_sync_file_range2 },
- { "syncfs", 306 },
- { "syscall", __PNR_syscall },
- { "sys_debug_setcontext", __PNR_sys_debug_setcontext },
- { "sysfs", 139 },
- { "sysinfo", 99 },
- { "syslog", 103 },
- { "sysmips", __PNR_sysmips },
- { "tee", 276 },
- { "tgkill", 234 },
- { "time", 201 },
- { "timer_create", 222 },
- { "timer_delete", 226 },
- { "timer_getoverrun", 225 },
- { "timer_gettime", 224 },
- { "timer_gettime64", __PNR_timer_gettime64 },
- { "timer_settime", 223 },
- { "timer_settime64", __PNR_timer_settime64 },
- { "timerfd", __PNR_timerfd },
- { "timerfd_create", 283 },
- { "timerfd_gettime", 287 },
- { "timerfd_gettime64", __PNR_timerfd_gettime64 },
- { "timerfd_settime", 286 },
- { "timerfd_settime64", __PNR_timerfd_settime64 },
- { "times", 100 },
- { "tkill", 200 },
- { "truncate", 76 },
- { "truncate64", __PNR_truncate64 },
- { "tuxcall", 184 },
- { "ugetrlimit", __PNR_ugetrlimit },
- { "ulimit", __PNR_ulimit },
- { "umask", 95 },
- { "umount", __PNR_umount },
- { "umount2", 166 },
- { "uname", 63 },
- { "unlink", 87 },
- { "unlinkat", 263 },
- { "unshare", 272 },
- { "uselib", 134 },
- { "userfaultfd", 323 },
- { "usr26", __PNR_usr26 },
- { "usr32", __PNR_usr32 },
- { "ustat", 136 },
- { "utime", 132 },
- { "utimensat", 280 },
- { "utimensat_time64", __PNR_utimensat_time64 },
- { "utimes", 235 },
- { "vfork", 58 },
- { "vhangup", 153 },
- { "vm86", __PNR_vm86 },
- { "vm86old", __PNR_vm86old },
- { "vmsplice", 278 },
- { "vserver", 236 },
- { "wait4", 61 },
- { "waitid", 247 },
- { "waitpid", __PNR_waitpid },
- { "write", 1 },
- { "writev", 20 },
- { NULL, __NR_SCMP_ERROR },
-};
-
-/**
- * Resolve a syscall name to a number
- * @param name the syscall name
- *
- * Resolve the given syscall name to the syscall number using the syscall table.
- * Returns the syscall number on success, including negative pseudo syscall
- * numbers; returns __NR_SCMP_ERROR on failure.
- *
- */
-int x86_64_syscall_resolve_name(const char *name)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = x86_64_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].name != NULL; iter++) {
- if (strcmp(name, table[iter].name) == 0)
- return table[iter].num;
- }
-
- return __NR_SCMP_ERROR;
-}
-
-/**
- * Resolve a syscall number to a name
- * @param num the syscall number
- *
- * Resolve the given syscall number to the syscall name using the syscall table.
- * Returns a pointer to the syscall name string on success, including pseudo
- * syscall names; returns NULL on failure.
- *
- */
-const char *x86_64_syscall_resolve_num(int num)
-{
- unsigned int iter;
- const struct arch_syscall_def *table = x86_64_syscall_table;
-
- /* XXX - plenty of room for future improvement here */
- for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
- if (num == table[iter].num)
- return table[iter].name;
- }
-
- return NULL;
-}
-
-/**
- * Iterate through the syscall table and return the syscall mapping
- * @param spot the offset into the syscall table
- *
- * Return the syscall mapping at position @spot or NULL on failure. This
- * function should only ever be used internally by libseccomp.
- *
- */
-const struct arch_syscall_def *x86_64_syscall_iterate(unsigned int spot)
-{
- /* XXX - no safety checks here */
- return &x86_64_syscall_table[spot];
-}
-