oz
oz copied to clipboard
Add ARM support (for Novenas)
I want to use OZ on my Novena - this requires adding support for ARM. At the moment I'm unable to use it because it lacks the seccomp support for this CPU.
I've used the syscalls_gen_args.go program to generate a file for ARM - it looks like the following:
// DO NOT EDIT. Autogenerated by syscalls_gen_args.go
package seccomp
// #include <asm-generic/unistd.h>
import "C"
// syscallNum maps system call names to numbers.
var syscalls = []SystemCall{
SystemCall{
name: "io_setup",
num: 0,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "io_destroy",
num: 1,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "io_submit",
num: 2,
args: SystemCallArgs{3, 3, 2, 0, 0, 0},
},
SystemCall{
name: "io_cancel",
num: 3,
args: SystemCallArgs{3, 2, 2, 0, 0, 0},
},
SystemCall{
name: "io_getevents",
num: 4,
args: SystemCallArgs{3, 3, 3, 2, 2, 0},
},
SystemCall{
name: "setxattr",
num: 5,
args: SystemCallArgs{1, 1, 2, 3, 3, 0},
},
SystemCall{
name: "lsetxattr",
num: 6,
args: SystemCallArgs{1, 1, 2, 3, 3, 0},
},
SystemCall{
name: "fsetxattr",
num: 7,
args: SystemCallArgs{3, 2, 2, 3, 3, 0},
},
SystemCall{
name: "getxattr",
num: 8,
args: SystemCallArgs{1, 1, 2, 3, 0, 0},
},
SystemCall{
name: "lgetxattr",
num: 9,
args: SystemCallArgs{1, 1, 2, 3, 0, 0},
},
SystemCall{
name: "fgetxattr",
num: 10,
args: SystemCallArgs{3, 2, 2, 3, 0, 0},
},
SystemCall{
name: "listxattr",
num: 11,
args: SystemCallArgs{1, 2, 3, 0, 0, 0},
},
SystemCall{
name: "llistxattr",
num: 12,
args: SystemCallArgs{1, 2, 3, 0, 0, 0},
},
SystemCall{
name: "flistxattr",
num: 13,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "removexattr",
num: 14,
args: SystemCallArgs{1, 1, 0, 0, 0, 0},
},
SystemCall{
name: "lremovexattr",
num: 15,
args: SystemCallArgs{1, 1, 0, 0, 0, 0},
},
SystemCall{
name: "fremovexattr",
num: 16,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "getcwd",
num: 17,
args: SystemCallArgs{1, 3, 0, 0, 0, 0},
},
SystemCall{
name: "lookup_dcookie",
num: 18,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "eventfd2",
num: 19,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "epoll_create1",
num: 20,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "epoll_ctl",
num: 21,
args: SystemCallArgs{3, 3, 3, 2, 0, 0},
},
SystemCall{
name: "epoll_pwait",
num: 22,
args: SystemCallArgs{3, 2, 3, 3, 2, 3},
},
SystemCall{
name: "dup",
num: 23,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "dup3",
num: 24,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "inotify_init1",
num: 26,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "inotify_add_watch",
num: 27,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "inotify_rm_watch",
num: 28,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "ioctl",
num: 29,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "ioprio_set",
num: 30,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "ioprio_get",
num: 31,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "flock",
num: 32,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "mknodat",
num: 33,
args: SystemCallArgs{3, 2, 3, 3, 0, 0},
},
SystemCall{
name: "mkdirat",
num: 34,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "unlinkat",
num: 35,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "symlinkat",
num: 36,
args: SystemCallArgs{1, 3, 2, 0, 0, 0},
},
SystemCall{
name: "linkat",
num: 37,
args: SystemCallArgs{3, 2, 3, 2, 3, 0},
},
SystemCall{
name: "renameat",
num: 38,
args: SystemCallArgs{3, 2, 3, 2, 0, 0},
},
SystemCall{
name: "umount2",
num: 39,
args: SystemCallArgs{1, 3, 0, 0, 0, 0},
},
SystemCall{
name: "mount",
num: 40,
args: SystemCallArgs{1, 2, 1, 3, 2, 0},
},
SystemCall{
name: "pivot_root",
num: 41,
args: SystemCallArgs{1, 1, 0, 0, 0, 0},
},
SystemCall{
name: "nfsservctl",
num: 42,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "fallocate",
num: 47,
args: SystemCallArgs{3, 3, 3, 3, 0, 0},
},
SystemCall{
name: "faccessat",
num: 48,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "chdir",
num: 49,
args: SystemCallArgs{1, 0, 0, 0, 0, 0},
},
SystemCall{
name: "fchdir",
num: 50,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "chroot",
num: 51,
args: SystemCallArgs{1, 0, 0, 0, 0, 0},
},
SystemCall{
name: "fchmod",
num: 52,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "fchmodat",
num: 53,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "fchownat",
num: 54,
args: SystemCallArgs{3, 2, 3, 3, 3, 0},
},
SystemCall{
name: "fchown",
num: 55,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "openat",
num: 56,
args: SystemCallArgs{3, 2, 3, 3, 0, 0},
},
SystemCall{
name: "close",
num: 57,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "vhangup",
num: 58,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "pipe2",
num: 59,
args: SystemCallArgs{2, 3, 0, 0, 0, 0},
},
SystemCall{
name: "quotactl",
num: 60,
args: SystemCallArgs{3, 2, 3, 2, 0, 0},
},
SystemCall{
name: "getdents64",
num: 61,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "read",
num: 63,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "write",
num: 64,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "readv",
num: 65,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "writev",
num: 66,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "pread64",
num: 67,
args: SystemCallArgs{3, 2, 3, 3, 0, 0},
},
SystemCall{
name: "pwrite64",
num: 68,
args: SystemCallArgs{3, 2, 3, 3, 0, 0},
},
SystemCall{
name: "preadv",
num: 69,
args: SystemCallArgs{3, 2, 3, 3, 3, 0},
},
SystemCall{
name: "pwritev",
num: 70,
args: SystemCallArgs{3, 2, 3, 3, 3, 0},
},
SystemCall{
name: "pselect6",
num: 72,
args: SystemCallArgs{3, 2, 2, 2, 2, 2},
},
SystemCall{
name: "ppoll",
num: 73,
args: SystemCallArgs{2, 3, 2, 2, 3, 0},
},
SystemCall{
name: "signalfd4",
num: 74,
args: SystemCallArgs{3, 2, 3, 3, 0, 0},
},
SystemCall{
name: "vmsplice",
num: 75,
args: SystemCallArgs{3, 2, 3, 3, 0, 0},
},
SystemCall{
name: "splice",
num: 76,
args: SystemCallArgs{3, 2, 3, 2, 3, 3},
},
SystemCall{
name: "tee",
num: 77,
args: SystemCallArgs{3, 3, 3, 3, 0, 0},
},
SystemCall{
name: "readlinkat",
num: 78,
args: SystemCallArgs{3, 2, 1, 3, 0, 0},
},
SystemCall{
name: "sync",
num: 81,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "fsync",
num: 82,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "fdatasync",
num: 83,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "sync_file_range",
num: 84,
args: SystemCallArgs{3, 3, 3, 3, 0, 0},
},
SystemCall{
name: "timerfd_create",
num: 85,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "timerfd_settime",
num: 86,
args: SystemCallArgs{3, 3, 2, 2, 0, 0},
},
SystemCall{
name: "timerfd_gettime",
num: 87,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "utimensat",
num: 88,
args: SystemCallArgs{3, 2, 2, 3, 0, 0},
},
SystemCall{
name: "acct",
num: 89,
args: SystemCallArgs{1, 0, 0, 0, 0, 0},
},
SystemCall{
name: "capget",
num: 90,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "capset",
num: 91,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "personality",
num: 92,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "exit",
num: 93,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "exit_group",
num: 94,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "waitid",
num: 95,
args: SystemCallArgs{3, 3, 2, 3, 2, 0},
},
SystemCall{
name: "set_tid_address",
num: 96,
args: SystemCallArgs{2, 0, 0, 0, 0, 0},
},
SystemCall{
name: "unshare",
num: 97,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "futex",
num: 98,
args: SystemCallArgs{2, 3, 3, 2, 2, 3},
},
SystemCall{
name: "set_robust_list",
num: 99,
args: SystemCallArgs{2, 3, 0, 0, 0, 0},
},
SystemCall{
name: "get_robust_list",
num: 100,
args: SystemCallArgs{3, 2, 2, 0, 0, 0},
},
SystemCall{
name: "nanosleep",
num: 101,
args: SystemCallArgs{2, 2, 0, 0, 0, 0},
},
SystemCall{
name: "getitimer",
num: 102,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "setitimer",
num: 103,
args: SystemCallArgs{3, 2, 2, 0, 0, 0},
},
SystemCall{
name: "kexec_load",
num: 104,
args: SystemCallArgs{3, 3, 2, 3, 0, 0},
},
SystemCall{
name: "init_module",
num: 105,
args: SystemCallArgs{2, 3, 2, 0, 0, 0},
},
SystemCall{
name: "delete_module",
num: 106,
args: SystemCallArgs{1, 3, 0, 0, 0, 0},
},
SystemCall{
name: "timer_create",
num: 107,
args: SystemCallArgs{3, 2, 2, 0, 0, 0},
},
SystemCall{
name: "timer_gettime",
num: 108,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "timer_getoverrun",
num: 109,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "timer_settime",
num: 110,
args: SystemCallArgs{3, 3, 2, 2, 0, 0},
},
SystemCall{
name: "timer_delete",
num: 111,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "clock_settime",
num: 112,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "clock_gettime",
num: 113,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "clock_getres",
num: 114,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "clock_nanosleep",
num: 115,
args: SystemCallArgs{3, 3, 2, 2, 0, 0},
},
SystemCall{
name: "syslog",
num: 116,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "ptrace",
num: 117,
args: SystemCallArgs{3, 3, 3, 3, 0, 0},
},
SystemCall{
name: "sched_setparam",
num: 118,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "sched_setscheduler",
num: 119,
args: SystemCallArgs{3, 3, 2, 0, 0, 0},
},
SystemCall{
name: "sched_getscheduler",
num: 120,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "sched_getparam",
num: 121,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "sched_setaffinity",
num: 122,
args: SystemCallArgs{3, 3, 2, 0, 0, 0},
},
SystemCall{
name: "sched_getaffinity",
num: 123,
args: SystemCallArgs{3, 3, 2, 0, 0, 0},
},
SystemCall{
name: "sched_yield",
num: 124,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "sched_get_priority_max",
num: 125,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "sched_get_priority_min",
num: 126,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "sched_rr_get_interval",
num: 127,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "restart_syscall",
num: 128,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "kill",
num: 129,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "tkill",
num: 130,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "tgkill",
num: 131,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "sigaltstack",
num: 132,
args: SystemCallArgs{2, 2, 0, 0, 0, 0},
},
SystemCall{
name: "rt_sigsuspend",
num: 133,
args: SystemCallArgs{2, 3, 0, 0, 0, 0},
},
SystemCall{
name: "rt_sigaction",
num: 134,
args: SystemCallArgs{3, 2, 2, 3, 3, 0},
},
SystemCall{
name: "rt_sigprocmask",
num: 135,
args: SystemCallArgs{3, 2, 2, 3, 0, 0},
},
SystemCall{
name: "rt_sigpending",
num: 136,
args: SystemCallArgs{2, 3, 0, 0, 0, 0},
},
SystemCall{
name: "rt_sigtimedwait",
num: 137,
args: SystemCallArgs{2, 2, 2, 3, 0, 0},
},
SystemCall{
name: "rt_sigqueueinfo",
num: 138,
args: SystemCallArgs{3, 3, 2, 0, 0, 0},
},
SystemCall{
name: "rt_sigreturn",
num: 139,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "setpriority",
num: 140,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "getpriority",
num: 141,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "reboot",
num: 142,
args: SystemCallArgs{3, 3, 3, 2, 0, 0},
},
SystemCall{
name: "setregid",
num: 143,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "setgid",
num: 144,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "setreuid",
num: 145,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "setuid",
num: 146,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "setresuid",
num: 147,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "getresuid",
num: 148,
args: SystemCallArgs{2, 2, 2, 0, 0, 0},
},
SystemCall{
name: "setresgid",
num: 149,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "getresgid",
num: 150,
args: SystemCallArgs{2, 2, 2, 0, 0, 0},
},
SystemCall{
name: "setfsuid",
num: 151,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "setfsgid",
num: 152,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "times",
num: 153,
args: SystemCallArgs{2, 0, 0, 0, 0, 0},
},
SystemCall{
name: "setpgid",
num: 154,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "getpgid",
num: 155,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "getsid",
num: 156,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "setsid",
num: 157,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "getgroups",
num: 158,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "setgroups",
num: 159,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "uname",
num: 160,
args: SystemCallArgs{2, 0, 0, 0, 0, 0},
},
SystemCall{
name: "sethostname",
num: 161,
args: SystemCallArgs{1, 3, 0, 0, 0, 0},
},
SystemCall{
name: "setdomainname",
num: 162,
args: SystemCallArgs{1, 3, 0, 0, 0, 0},
},
SystemCall{
name: "getrlimit",
num: 163,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "setrlimit",
num: 164,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "getrusage",
num: 165,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "umask",
num: 166,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "prctl",
num: 167,
args: SystemCallArgs{3, 3, 3, 3, 3, 0},
},
SystemCall{
name: "getcpu",
num: 168,
args: SystemCallArgs{2, 2, 2, 0, 0, 0},
},
SystemCall{
name: "gettimeofday",
num: 169,
args: SystemCallArgs{2, 2, 0, 0, 0, 0},
},
SystemCall{
name: "settimeofday",
num: 170,
args: SystemCallArgs{2, 2, 0, 0, 0, 0},
},
SystemCall{
name: "adjtimex",
num: 171,
args: SystemCallArgs{2, 0, 0, 0, 0, 0},
},
SystemCall{
name: "getpid",
num: 172,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "getppid",
num: 173,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "getuid",
num: 174,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "geteuid",
num: 175,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "getgid",
num: 176,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "getegid",
num: 177,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "gettid",
num: 178,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "sysinfo",
num: 179,
args: SystemCallArgs{2, 0, 0, 0, 0, 0},
},
SystemCall{
name: "mq_open",
num: 180,
args: SystemCallArgs{1, 3, 3, 2, 0, 0},
},
SystemCall{
name: "mq_unlink",
num: 181,
args: SystemCallArgs{1, 0, 0, 0, 0, 0},
},
SystemCall{
name: "mq_timedsend",
num: 182,
args: SystemCallArgs{3, 2, 3, 3, 2, 0},
},
SystemCall{
name: "mq_timedreceive",
num: 183,
args: SystemCallArgs{3, 2, 3, 2, 2, 0},
},
SystemCall{
name: "mq_notify",
num: 184,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "mq_getsetattr",
num: 185,
args: SystemCallArgs{3, 2, 2, 0, 0, 0},
},
SystemCall{
name: "msgget",
num: 186,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "msgctl",
num: 187,
args: SystemCallArgs{3, 3, 2, 0, 0, 0},
},
SystemCall{
name: "msgrcv",
num: 188,
args: SystemCallArgs{3, 2, 3, 3, 3, 0},
},
SystemCall{
name: "msgsnd",
num: 189,
args: SystemCallArgs{3, 2, 3, 3, 0, 0},
},
SystemCall{
name: "semget",
num: 190,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "semctl",
num: 191,
args: SystemCallArgs{3, 3, 3, 3, 0, 0},
},
SystemCall{
name: "semtimedop",
num: 192,
args: SystemCallArgs{3, 2, 3, 2, 0, 0},
},
SystemCall{
name: "semop",
num: 193,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "shmget",
num: 194,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "shmctl",
num: 195,
args: SystemCallArgs{3, 3, 2, 0, 0, 0},
},
SystemCall{
name: "shmat",
num: 196,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "shmdt",
num: 197,
args: SystemCallArgs{1, 0, 0, 0, 0, 0},
},
SystemCall{
name: "socket",
num: 198,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "socketpair",
num: 199,
args: SystemCallArgs{3, 3, 3, 2, 0, 0},
},
SystemCall{
name: "bind",
num: 200,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "listen",
num: 201,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "accept",
num: 202,
args: SystemCallArgs{3, 2, 2, 0, 0, 0},
},
SystemCall{
name: "connect",
num: 203,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "getsockname",
num: 204,
args: SystemCallArgs{3, 2, 2, 0, 0, 0},
},
SystemCall{
name: "getpeername",
num: 205,
args: SystemCallArgs{3, 2, 2, 0, 0, 0},
},
SystemCall{
name: "sendto",
num: 206,
args: SystemCallArgs{3, 2, 3, 3, 2, 3},
},
SystemCall{
name: "recvfrom",
num: 207,
args: SystemCallArgs{3, 2, 3, 3, 2, 2},
},
SystemCall{
name: "setsockopt",
num: 208,
args: SystemCallArgs{3, 3, 3, 1, 3, 0},
},
SystemCall{
name: "getsockopt",
num: 209,
args: SystemCallArgs{3, 3, 3, 1, 2, 0},
},
SystemCall{
name: "shutdown",
num: 210,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "sendmsg",
num: 211,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "recvmsg",
num: 212,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "readahead",
num: 213,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "brk",
num: 214,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "munmap",
num: 215,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "mremap",
num: 216,
args: SystemCallArgs{3, 3, 3, 3, 3, 0},
},
SystemCall{
name: "add_key",
num: 217,
args: SystemCallArgs{1, 1, 2, 3, 3, 0},
},
SystemCall{
name: "request_key",
num: 218,
args: SystemCallArgs{1, 1, 1, 3, 0, 0},
},
SystemCall{
name: "keyctl",
num: 219,
args: SystemCallArgs{3, 3, 3, 3, 3, 0},
},
SystemCall{
name: "clone",
num: 220,
args: SystemCallArgs{3, 3, 2, 2, 3, 3},
},
SystemCall{
name: "execve",
num: 221,
args: SystemCallArgs{1, 2, 2, 0, 0, 0},
},
SystemCall{
name: "swapon",
num: 224,
args: SystemCallArgs{1, 3, 0, 0, 0, 0},
},
SystemCall{
name: "swapoff",
num: 225,
args: SystemCallArgs{1, 0, 0, 0, 0, 0},
},
SystemCall{
name: "mprotect",
num: 226,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "msync",
num: 227,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "mlock",
num: 228,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "munlock",
num: 229,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "mlockall",
num: 230,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "munlockall",
num: 231,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "mincore",
num: 232,
args: SystemCallArgs{3, 3, 2, 0, 0, 0},
},
SystemCall{
name: "madvise",
num: 233,
args: SystemCallArgs{3, 3, 3, 0, 0, 0},
},
SystemCall{
name: "remap_file_pages",
num: 234,
args: SystemCallArgs{3, 3, 3, 3, 3, 0},
},
SystemCall{
name: "mbind",
num: 235,
args: SystemCallArgs{3, 3, 3, 2, 3, 3},
},
SystemCall{
name: "get_mempolicy",
num: 236,
args: SystemCallArgs{2, 2, 3, 3, 3, 0},
},
SystemCall{
name: "set_mempolicy",
num: 237,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "migrate_pages",
num: 238,
args: SystemCallArgs{3, 3, 2, 2, 0, 0},
},
SystemCall{
name: "move_pages",
num: 239,
args: SystemCallArgs{3, 3, 2, 2, 2, 3},
},
SystemCall{
name: "rt_tgsigqueueinfo",
num: 240,
args: SystemCallArgs{3, 3, 3, 2, 0, 0},
},
SystemCall{
name: "perf_event_open",
num: 241,
args: SystemCallArgs{2, 3, 3, 3, 3, 0},
},
SystemCall{
name: "accept4",
num: 242,
args: SystemCallArgs{3, 2, 2, 3, 0, 0},
},
SystemCall{
name: "recvmmsg",
num: 243,
args: SystemCallArgs{3, 2, 3, 3, 2, 0},
},
SystemCall{
name: "arch_specific_syscall",
num: 244,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
SystemCall{
name: "wait4",
num: 260,
args: SystemCallArgs{3, 2, 3, 2, 0, 0},
},
SystemCall{
name: "prlimit64",
num: 261,
args: SystemCallArgs{3, 3, 2, 2, 0, 0},
},
SystemCall{
name: "fanotify_init",
num: 262,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "fanotify_mark",
num: 263,
args: SystemCallArgs{3, 3, 3, 3, 1, 0},
},
SystemCall{
name: "name_to_handle_at",
num: 264,
args: SystemCallArgs{3, 2, 2, 2, 3, 0},
},
SystemCall{
name: "open_by_handle_at",
num: 265,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "clock_adjtime",
num: 266,
args: SystemCallArgs{3, 2, 0, 0, 0, 0},
},
SystemCall{
name: "syncfs",
num: 267,
args: SystemCallArgs{3, 0, 0, 0, 0, 0},
},
SystemCall{
name: "setns",
num: 268,
args: SystemCallArgs{3, 3, 0, 0, 0, 0},
},
SystemCall{
name: "sendmmsg",
num: 269,
args: SystemCallArgs{3, 2, 3, 3, 0, 0},
},
SystemCall{
name: "process_vm_readv",
num: 270,
args: SystemCallArgs{3, 2, 3, 2, 3, 3},
},
SystemCall{
name: "process_vm_writev",
num: 271,
args: SystemCallArgs{3, 2, 3, 2, 3, 3},
},
SystemCall{
name: "kcmp",
num: 272,
args: SystemCallArgs{3, 3, 3, 3, 3, 0},
},
SystemCall{
name: "finit_module",
num: 273,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "sched_setattr",
num: 274,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "sched_getattr",
num: 275,
args: SystemCallArgs{3, 2, 3, 3, 0, 0},
},
SystemCall{
name: "renameat2",
num: 276,
args: SystemCallArgs{3, 2, 3, 2, 3, 0},
},
SystemCall{
name: "seccomp",
num: 277,
args: SystemCallArgs{3, 3, 1, 0, 0, 0},
},
SystemCall{
name: "getrandom",
num: 278,
args: SystemCallArgs{1, 3, 3, 0, 0, 0},
},
SystemCall{
name: "memfd_create",
num: 279,
args: SystemCallArgs{1, 3, 0, 0, 0, 0},
},
SystemCall{
name: "bpf",
num: 280,
args: SystemCallArgs{3, 2, 3, 0, 0, 0},
},
SystemCall{
name: "execveat",
num: 281,
args: SystemCallArgs{3, 2, 2, 2, 3, 0},
},
SystemCall{
name: "syscalls",
num: 282,
args: SystemCallArgs{0, 0, 0, 0, 0, 0},
},
}
The file above was generated on a Novena running the following kernel:
Linux novena-nikita-stick 3.19.0-00270-g3d69696 #654 SMP PREEMPT Mon May 4 13:01:40 SGT 2015 armv7l GNU/Linux
When adding this to the build in the correct location, I found the following issue:
$GOPATH/bin/godep go install ./
...
# github.com/subgraph/go-seccomp
../go-seccomp/blacklist.go:84: undefined: syscallNum
../go-seccomp/blacklist.go:217: undefined: syscallNum
../go-seccomp/seccomp.go:214: undefined: syscallNum
../go-seccomp/seccomp.go:349: undefined: syscallNum
../go-seccomp/syscalls_arm.go:9: undefined: SystemCall
godep: go exit status 2
:+1: Getting this working on the Novena would be super useful