Linux-Seccomp

 view release on metacpan or  search on metacpan

libseccomp/src/arch-x32-syscalls.c  view on Meta::CPAN

/**
 * 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 4.5-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_getres", (X32_SYSCALL_BIT + 229) },
	{ "clock_gettime", (X32_SYSCALL_BIT + 228) },
	{ "clock_nanosleep", (X32_SYSCALL_BIT + 230) },
	{ "clock_settime", (X32_SYSCALL_BIT + 227) },
	{ "clone", (X32_SYSCALL_BIT + 56) },
	{ "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) },
	{ "fsetxattr", (X32_SYSCALL_BIT + 190) },
	{ "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) },
	{ "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 },
	{ "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_setup", (X32_SYSCALL_BIT + 543) },
	{ "io_submit", (X32_SYSCALL_BIT + 544) },
	{ "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_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_timedsend", (X32_SYSCALL_BIT + 242) },
	{ "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 },



( run in 0.779 second using v1.01-cache-2.11-cpan-71847e10f99 )