oz icon indicating copy to clipboard operation
oz copied to clipboard

Add ARM support (for Novenas)

Open ioerror opened this issue 10 years ago • 4 comments

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.

ioerror avatar Aug 24 '15 19:08 ioerror

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},
    },
}

ioerror avatar Aug 24 '15 19:08 ioerror

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

ioerror avatar Aug 24 '15 19:08 ioerror

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

ioerror avatar Aug 24 '15 19:08 ioerror

:+1: Getting this working on the Novena would be super useful

lispmeister avatar Nov 11 '15 19:11 lispmeister