github.com/hugelgupf/u-root@v0.0.0-20191023214958-4807c632154c/pkg/strace/syscall_linux_arm.go (about)

     1  // Copyright 2018 Google LLC.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package strace
    16  
    17  import (
    18  	"encoding/binary"
    19  
    20  	"golang.org/x/sys/unix"
    21  )
    22  
    23  const Width = 32
    24  
    25  var ByteOrder = binary.LittleEndian
    26  
    27  // The system call table.
    28  // There is nough variation in linux by architecture that a common
    29  // declaration of SyscallMap is not possible. Simple example:
    30  // ARM has no SYS_OPEN; ppc has no SHMGET.
    31  var syscalls = SyscallMap{
    32  	unix.SYS_READ:                   makeSyscallInfo("read", Hex, ReadBuffer, Hex),
    33  	unix.SYS_WRITE:                  makeSyscallInfo("write", Hex, WriteBuffer, Hex),
    34  	unix.SYS_CLOSE:                  makeSyscallInfo("close", Hex),
    35  	unix.SYS_FSTAT:                  makeSyscallInfo("fstat", Hex, Stat),
    36  	unix.SYS_LSEEK:                  makeSyscallInfo("lseek", Hex, Hex, Hex),
    37  	unix.SYS_MPROTECT:               makeSyscallInfo("mprotect", Hex, Hex, Hex),
    38  	unix.SYS_MUNMAP:                 makeSyscallInfo("munmap", Hex, Hex),
    39  	unix.SYS_BRK:                    makeSyscallInfo("brk", Hex),
    40  	unix.SYS_RT_SIGACTION:           makeSyscallInfo("rt_sigaction", Hex, Hex, Hex),
    41  	unix.SYS_RT_SIGPROCMASK:         makeSyscallInfo("rt_sigprocmask", Hex, Hex, Hex, Hex),
    42  	unix.SYS_RT_SIGRETURN:           makeSyscallInfo("rt_sigreturn"),
    43  	unix.SYS_IOCTL:                  makeSyscallInfo("ioctl", Hex, Hex, Hex),
    44  	unix.SYS_PREAD64:                makeSyscallInfo("pread64", Hex, ReadBuffer, Hex, Hex),
    45  	unix.SYS_PWRITE64:               makeSyscallInfo("pwrite64", Hex, WriteBuffer, Hex, Hex),
    46  	unix.SYS_READV:                  makeSyscallInfo("readv", Hex, ReadIOVec, Hex),
    47  	unix.SYS_WRITEV:                 makeSyscallInfo("writev", Hex, WriteIOVec, Hex),
    48  	unix.SYS_SCHED_YIELD:            makeSyscallInfo("sched_yield"),
    49  	unix.SYS_MREMAP:                 makeSyscallInfo("mremap", Hex, Hex, Hex, Hex, Hex),
    50  	unix.SYS_MSYNC:                  makeSyscallInfo("msync", Hex, Hex, Hex),
    51  	unix.SYS_MINCORE:                makeSyscallInfo("mincore", Hex, Hex, Hex),
    52  	unix.SYS_MADVISE:                makeSyscallInfo("madvise", Hex, Hex, Hex),
    53  	unix.SYS_SHMGET:                 makeSyscallInfo("shmget", Hex, Hex, Hex),
    54  	unix.SYS_SHMAT:                  makeSyscallInfo("shmat", Hex, Hex, Hex),
    55  	unix.SYS_SHMCTL:                 makeSyscallInfo("shmctl", Hex, Hex, Hex),
    56  	unix.SYS_DUP:                    makeSyscallInfo("dup", Hex),
    57  	unix.SYS_NANOSLEEP:              makeSyscallInfo("nanosleep", Timespec, PostTimespec),
    58  	unix.SYS_GETITIMER:              makeSyscallInfo("getitimer", ItimerType, PostItimerVal),
    59  	unix.SYS_SETITIMER:              makeSyscallInfo("setitimer", ItimerType, ItimerVal, PostItimerVal),
    60  	unix.SYS_GETPID:                 makeSyscallInfo("getpid"),
    61  	unix.SYS_SENDFILE:               makeSyscallInfo("sendfile", Hex, Hex, Hex, Hex),
    62  	unix.SYS_SOCKET:                 makeSyscallInfo("socket", SockFamily, SockType, SockProtocol),
    63  	unix.SYS_CONNECT:                makeSyscallInfo("connect", Hex, SockAddr, Hex),
    64  	unix.SYS_ACCEPT:                 makeSyscallInfo("accept", Hex, PostSockAddr, SockLen),
    65  	unix.SYS_SENDTO:                 makeSyscallInfo("sendto", Hex, Hex, Hex, Hex, SockAddr, Hex),
    66  	unix.SYS_RECVFROM:               makeSyscallInfo("recvfrom", Hex, Hex, Hex, Hex, PostSockAddr, SockLen),
    67  	unix.SYS_SENDMSG:                makeSyscallInfo("sendmsg", Hex, SendMsgHdr, Hex),
    68  	unix.SYS_RECVMSG:                makeSyscallInfo("recvmsg", Hex, RecvMsgHdr, Hex),
    69  	unix.SYS_SHUTDOWN:               makeSyscallInfo("shutdown", Hex, Hex),
    70  	unix.SYS_BIND:                   makeSyscallInfo("bind", Hex, SockAddr, Hex),
    71  	unix.SYS_LISTEN:                 makeSyscallInfo("listen", Hex, Hex),
    72  	unix.SYS_GETSOCKNAME:            makeSyscallInfo("getsockname", Hex, PostSockAddr, SockLen),
    73  	unix.SYS_GETPEERNAME:            makeSyscallInfo("getpeername", Hex, PostSockAddr, SockLen),
    74  	unix.SYS_SOCKETPAIR:             makeSyscallInfo("socketpair", SockFamily, SockType, SockProtocol, Hex),
    75  	unix.SYS_SETSOCKOPT:             makeSyscallInfo("setsockopt", Hex, Hex, Hex, Hex, Hex),
    76  	unix.SYS_GETSOCKOPT:             makeSyscallInfo("getsockopt", Hex, Hex, Hex, Hex, Hex),
    77  	unix.SYS_CLONE:                  makeSyscallInfo("clone", CloneFlags, Hex, Hex, Hex, Hex),
    78  	unix.SYS_EXECVE:                 makeSyscallInfo("execve", Path, ExecveStringVector, ExecveStringVector),
    79  	unix.SYS_EXIT:                   makeSyscallInfo("exit", Hex),
    80  	unix.SYS_WAIT4:                  makeSyscallInfo("wait4", Hex, Hex, Hex, Rusage),
    81  	unix.SYS_KILL:                   makeSyscallInfo("kill", Hex, Hex),
    82  	unix.SYS_UNAME:                  makeSyscallInfo("uname", Uname),
    83  	unix.SYS_SEMGET:                 makeSyscallInfo("semget", Hex, Hex, Hex),
    84  	unix.SYS_SEMOP:                  makeSyscallInfo("semop", Hex, Hex, Hex),
    85  	unix.SYS_SEMCTL:                 makeSyscallInfo("semctl", Hex, Hex, Hex, Hex),
    86  	unix.SYS_SHMDT:                  makeSyscallInfo("shmdt", Hex),
    87  	unix.SYS_MSGGET:                 makeSyscallInfo("msgget", Hex, Hex),
    88  	unix.SYS_MSGSND:                 makeSyscallInfo("msgsnd", Hex, Hex, Hex, Hex),
    89  	unix.SYS_MSGRCV:                 makeSyscallInfo("msgrcv", Hex, Hex, Hex, Hex, Hex),
    90  	unix.SYS_MSGCTL:                 makeSyscallInfo("msgctl", Hex, Hex, Hex),
    91  	unix.SYS_FCNTL:                  makeSyscallInfo("fcntl", Hex, Hex, Hex),
    92  	unix.SYS_FLOCK:                  makeSyscallInfo("flock", Hex, Hex),
    93  	unix.SYS_FSYNC:                  makeSyscallInfo("fsync", Hex),
    94  	unix.SYS_FDATASYNC:              makeSyscallInfo("fdatasync", Hex),
    95  	unix.SYS_TRUNCATE:               makeSyscallInfo("truncate", Path, Hex),
    96  	unix.SYS_FTRUNCATE:              makeSyscallInfo("ftruncate", Hex, Hex),
    97  	unix.SYS_GETCWD:                 makeSyscallInfo("getcwd", PostPath, Hex),
    98  	unix.SYS_CHDIR:                  makeSyscallInfo("chdir", Path),
    99  	unix.SYS_FCHDIR:                 makeSyscallInfo("fchdir", Hex),
   100  	unix.SYS_FCHMOD:                 makeSyscallInfo("fchmod", Hex, Mode),
   101  	unix.SYS_FCHOWN:                 makeSyscallInfo("fchown", Hex, Hex, Hex),
   102  	unix.SYS_UMASK:                  makeSyscallInfo("umask", Hex),
   103  	unix.SYS_GETTIMEOFDAY:           makeSyscallInfo("gettimeofday", Timeval, Hex),
   104  	unix.SYS_GETRUSAGE:              makeSyscallInfo("getrusage", Hex, Rusage),
   105  	unix.SYS_SYSINFO:                makeSyscallInfo("sysinfo", Hex),
   106  	unix.SYS_PTRACE:                 makeSyscallInfo("ptrace", PtraceRequest, Hex, Hex, Hex),
   107  	unix.SYS_GETUID:                 makeSyscallInfo("getuid"),
   108  	unix.SYS_SYSLOG:                 makeSyscallInfo("syslog", Hex, Hex, Hex),
   109  	unix.SYS_GETGID:                 makeSyscallInfo("getgid"),
   110  	unix.SYS_SETUID:                 makeSyscallInfo("setuid", Hex),
   111  	unix.SYS_SETGID:                 makeSyscallInfo("setgid", Hex),
   112  	unix.SYS_GETEUID:                makeSyscallInfo("geteuid"),
   113  	unix.SYS_GETEGID:                makeSyscallInfo("getegid"),
   114  	unix.SYS_SETPGID:                makeSyscallInfo("setpgid", Hex, Hex),
   115  	unix.SYS_GETPPID:                makeSyscallInfo("getppid"),
   116  	unix.SYS_SETSID:                 makeSyscallInfo("setsid"),
   117  	unix.SYS_SETREUID:               makeSyscallInfo("setreuid", Hex, Hex),
   118  	unix.SYS_SETREGID:               makeSyscallInfo("setregid", Hex, Hex),
   119  	unix.SYS_GETGROUPS:              makeSyscallInfo("getgroups", Hex, Hex),
   120  	unix.SYS_SETGROUPS:              makeSyscallInfo("setgroups", Hex, Hex),
   121  	unix.SYS_SETRESUID:              makeSyscallInfo("setresuid", Hex, Hex, Hex),
   122  	unix.SYS_GETRESUID:              makeSyscallInfo("getresuid", Hex, Hex, Hex),
   123  	unix.SYS_SETRESGID:              makeSyscallInfo("setresgid", Hex, Hex, Hex),
   124  	unix.SYS_GETRESGID:              makeSyscallInfo("getresgid", Hex, Hex, Hex),
   125  	unix.SYS_GETPGID:                makeSyscallInfo("getpgid", Hex),
   126  	unix.SYS_SETFSUID:               makeSyscallInfo("setfsuid", Hex),
   127  	unix.SYS_SETFSGID:               makeSyscallInfo("setfsgid", Hex),
   128  	unix.SYS_GETSID:                 makeSyscallInfo("getsid", Hex),
   129  	unix.SYS_CAPGET:                 makeSyscallInfo("capget", Hex, Hex),
   130  	unix.SYS_CAPSET:                 makeSyscallInfo("capset", Hex, Hex),
   131  	unix.SYS_RT_SIGPENDING:          makeSyscallInfo("rt_sigpending", Hex),
   132  	unix.SYS_RT_SIGTIMEDWAIT:        makeSyscallInfo("rt_sigtimedwait", Hex, Hex, Timespec, Hex),
   133  	unix.SYS_RT_SIGQUEUEINFO:        makeSyscallInfo("rt_sigqueueinfo", Hex, Hex, Hex),
   134  	unix.SYS_RT_SIGSUSPEND:          makeSyscallInfo("rt_sigsuspend", Hex),
   135  	unix.SYS_SIGALTSTACK:            makeSyscallInfo("sigaltstack", Hex, Hex),
   136  	unix.SYS_PERSONALITY:            makeSyscallInfo("personality", Hex),
   137  	unix.SYS_FSTATFS:                makeSyscallInfo("fstatfs", Hex, Hex),
   138  	unix.SYS_GETPRIORITY:            makeSyscallInfo("getpriority", Hex, Hex),
   139  	unix.SYS_SETPRIORITY:            makeSyscallInfo("setpriority", Hex, Hex, Hex),
   140  	unix.SYS_SCHED_SETPARAM:         makeSyscallInfo("sched_setparam", Hex, Hex),
   141  	unix.SYS_SCHED_GETPARAM:         makeSyscallInfo("sched_getparam", Hex, Hex),
   142  	unix.SYS_SCHED_SETSCHEDULER:     makeSyscallInfo("sched_setscheduler", Hex, Hex, Hex),
   143  	unix.SYS_SCHED_GETSCHEDULER:     makeSyscallInfo("sched_getscheduler", Hex),
   144  	unix.SYS_SCHED_GET_PRIORITY_MAX: makeSyscallInfo("sched_get_priority_max", Hex),
   145  	unix.SYS_SCHED_GET_PRIORITY_MIN: makeSyscallInfo("sched_get_priority_min", Hex),
   146  	unix.SYS_SCHED_RR_GET_INTERVAL:  makeSyscallInfo("sched_rr_get_interval", Hex, Hex),
   147  	unix.SYS_MLOCK:                  makeSyscallInfo("mlock", Hex, Hex),
   148  	unix.SYS_MUNLOCK:                makeSyscallInfo("munlock", Hex, Hex),
   149  	unix.SYS_MLOCKALL:               makeSyscallInfo("mlockall", Hex),
   150  	unix.SYS_MUNLOCKALL:             makeSyscallInfo("munlockall"),
   151  	unix.SYS_VHANGUP:                makeSyscallInfo("vhangup"),
   152  	unix.SYS_PIVOT_ROOT:             makeSyscallInfo("pivot_root", Hex, Hex),
   153  	unix.SYS_PRCTL:                  makeSyscallInfo("prctl", Hex, Hex, Hex, Hex, Hex),
   154  	unix.SYS_ADJTIMEX:               makeSyscallInfo("adjtimex", Hex),
   155  	unix.SYS_SETRLIMIT:              makeSyscallInfo("setrlimit", Hex, Hex),
   156  	unix.SYS_CHROOT:                 makeSyscallInfo("chroot", Path),
   157  	unix.SYS_SYNC:                   makeSyscallInfo("sync"),
   158  	unix.SYS_ACCT:                   makeSyscallInfo("acct", Hex),
   159  	unix.SYS_SETTIMEOFDAY:           makeSyscallInfo("settimeofday", Timeval, Hex),
   160  	unix.SYS_MOUNT:                  makeSyscallInfo("mount", Path, Path, Path, Hex, Path),
   161  	unix.SYS_UMOUNT2:                makeSyscallInfo("umount2", Path, Hex),
   162  	unix.SYS_SWAPON:                 makeSyscallInfo("swapon", Hex, Hex),
   163  	unix.SYS_SWAPOFF:                makeSyscallInfo("swapoff", Hex),
   164  	unix.SYS_REBOOT:                 makeSyscallInfo("reboot", Hex, Hex, Hex, Hex),
   165  	unix.SYS_SETHOSTNAME:            makeSyscallInfo("sethostname", Hex, Hex),
   166  	unix.SYS_SETDOMAINNAME:          makeSyscallInfo("setdomainname", Hex, Hex),
   167  	unix.SYS_INIT_MODULE:            makeSyscallInfo("init_module", Hex, Hex, Hex),
   168  	unix.SYS_DELETE_MODULE:          makeSyscallInfo("delete_module", Hex, Hex),
   169  	//	unix.SYS_QUERY_MODULE:query_module (only present in Linux < 2.6)
   170  	unix.SYS_QUOTACTL:   makeSyscallInfo("quotactl", Hex, Hex, Hex, Hex),
   171  	unix.SYS_NFSSERVCTL: makeSyscallInfo("nfsservctl", Hex, Hex, Hex),
   172  	// 	unix.SYS_GETPMSG:getpmsg (not implemented in the Linux kernel)
   173  	// 	unix.SYS_PUTPMSG:putpmsg (not implemented in the Linux kernel)
   174  	// 	unix.SYSCALL:afs_syscall (not implemented in the Linux kernel)
   175  	// 	unix.SYS_TUXCALL:tuxcall (not implemented in the Linux kernel)
   176  	// 	unix.SYS_SECURITY:security (not implemented in the Linux kernel)
   177  	unix.SYS_GETTID:            makeSyscallInfo("gettid"),
   178  	unix.SYS_READAHEAD:         makeSyscallInfo("readahead", Hex, Hex, Hex),
   179  	unix.SYS_SETXATTR:          makeSyscallInfo("setxattr", Path, Path, Hex, Hex, Hex),
   180  	unix.SYS_LSETXATTR:         makeSyscallInfo("lsetxattr", Path, Path, Hex, Hex, Hex),
   181  	unix.SYS_FSETXATTR:         makeSyscallInfo("fsetxattr", Hex, Path, Hex, Hex, Hex),
   182  	unix.SYS_GETXATTR:          makeSyscallInfo("getxattr", Path, Path, Hex, Hex),
   183  	unix.SYS_LGETXATTR:         makeSyscallInfo("lgetxattr", Path, Path, Hex, Hex),
   184  	unix.SYS_FGETXATTR:         makeSyscallInfo("fgetxattr", Hex, Path, Hex, Hex),
   185  	unix.SYS_LISTXATTR:         makeSyscallInfo("listxattr", Path, Path, Hex),
   186  	unix.SYS_LLISTXATTR:        makeSyscallInfo("llistxattr", Path, Path, Hex),
   187  	unix.SYS_FLISTXATTR:        makeSyscallInfo("flistxattr", Hex, Path, Hex),
   188  	unix.SYS_REMOVEXATTR:       makeSyscallInfo("removexattr", Path, Path),
   189  	unix.SYS_LREMOVEXATTR:      makeSyscallInfo("lremovexattr", Path, Path),
   190  	unix.SYS_FREMOVEXATTR:      makeSyscallInfo("fremovexattr", Hex, Path),
   191  	unix.SYS_TKILL:             makeSyscallInfo("tkill", Hex, Hex),
   192  	unix.SYS_FUTEX:             makeSyscallInfo("futex", Hex, FutexOp, Hex, Timespec, Hex, Hex),
   193  	unix.SYS_SCHED_SETAFFINITY: makeSyscallInfo("sched_setaffinity", Hex, Hex, Hex),
   194  	unix.SYS_SCHED_GETAFFINITY: makeSyscallInfo("sched_getaffinity", Hex, Hex, Hex),
   195  	unix.SYS_IO_SETUP:          makeSyscallInfo("io_setup", Hex, Hex),
   196  	unix.SYS_IO_DESTROY:        makeSyscallInfo("io_destroy", Hex),
   197  	unix.SYS_IO_GETEVENTS:      makeSyscallInfo("io_getevents", Hex, Hex, Hex, Hex, Timespec),
   198  	unix.SYS_IO_SUBMIT:         makeSyscallInfo("io_submit", Hex, Hex, Hex),
   199  	unix.SYS_IO_CANCEL:         makeSyscallInfo("io_cancel", Hex, Hex, Hex),
   200  	unix.SYS_LOOKUP_DCOOKIE:    makeSyscallInfo("lookup_dcookie", Hex, Hex, Hex),
   201  	// 	unix.SYS_EPOLL_CTL_OLD:epoll_ctl_old (not implemented in the Linux kernel)
   202  	unix.SYS_REMAP_FILE_PAGES: makeSyscallInfo("remap_file_pages", Hex, Hex, Hex, Hex, Hex),
   203  	unix.SYS_SET_TID_ADDRESS:  makeSyscallInfo("set_tid_address", Hex),
   204  	unix.SYS_RESTART_SYSCALL:  makeSyscallInfo("restart_syscall"),
   205  	unix.SYS_SEMTIMEDOP:       makeSyscallInfo("semtimedop", Hex, Hex, Hex, Hex),
   206  	unix.SYS_CLOCK_SETTIME:    makeSyscallInfo("clock_settime", Hex, Timespec),
   207  	unix.SYS_CLOCK_GETTIME:    makeSyscallInfo("clock_gettime", Hex, PostTimespec),
   208  	unix.SYS_CLOCK_GETRES:     makeSyscallInfo("clock_getres", Hex, PostTimespec),
   209  	unix.SYS_CLOCK_NANOSLEEP:  makeSyscallInfo("clock_nanosleep", Hex, Hex, Timespec, PostTimespec),
   210  	unix.SYS_EXIT_GROUP:       makeSyscallInfo("exit_group", Hex),
   211  	unix.SYS_EPOLL_CTL:        makeSyscallInfo("epoll_ctl", Hex, Hex, Hex, Hex),
   212  	unix.SYS_TGKILL:           makeSyscallInfo("tgkill", Hex, Hex, Hex),
   213  	// 	unix.SYS_VSERVER:vserver (not implemented in the Linux kernel)
   214  	unix.SYS_MBIND:             makeSyscallInfo("mbind", Hex, Hex, Hex, Hex, Hex, Hex),
   215  	unix.SYS_SET_MEMPOLICY:     makeSyscallInfo("set_mempolicy", Hex, Hex, Hex),
   216  	unix.SYS_GET_MEMPOLICY:     makeSyscallInfo("get_mempolicy", Hex, Hex, Hex, Hex, Hex),
   217  	unix.SYS_MQ_OPEN:           makeSyscallInfo("mq_open", Hex, Hex, Hex, Hex),
   218  	unix.SYS_MQ_UNLINK:         makeSyscallInfo("mq_unlink", Hex),
   219  	unix.SYS_MQ_TIMEDSEND:      makeSyscallInfo("mq_timedsend", Hex, Hex, Hex, Hex, Hex),
   220  	unix.SYS_MQ_TIMEDRECEIVE:   makeSyscallInfo("mq_timedreceive", Hex, Hex, Hex, Hex, Hex),
   221  	unix.SYS_MQ_NOTIFY:         makeSyscallInfo("mq_notify", Hex, Hex),
   222  	unix.SYS_MQ_GETSETATTR:     makeSyscallInfo("mq_getsetattr", Hex, Hex, Hex),
   223  	unix.SYS_KEXEC_LOAD:        makeSyscallInfo("kexec_load", Hex, Hex, Hex, Hex),
   224  	unix.SYS_WAITID:            makeSyscallInfo("waitid", Hex, Hex, Hex, Hex, Rusage),
   225  	unix.SYS_ADD_KEY:           makeSyscallInfo("add_key", Hex, Hex, Hex, Hex, Hex),
   226  	unix.SYS_REQUEST_KEY:       makeSyscallInfo("request_key", Hex, Hex, Hex, Hex),
   227  	unix.SYS_KEYCTL:            makeSyscallInfo("keyctl", Hex, Hex, Hex, Hex, Hex),
   228  	unix.SYS_IOPRIO_SET:        makeSyscallInfo("ioprio_set", Hex, Hex, Hex),
   229  	unix.SYS_IOPRIO_GET:        makeSyscallInfo("ioprio_get", Hex, Hex),
   230  	unix.SYS_INOTIFY_ADD_WATCH: makeSyscallInfo("inotify_add_watch", Hex, Hex, Hex),
   231  	unix.SYS_INOTIFY_RM_WATCH:  makeSyscallInfo("inotify_rm_watch", Hex, Hex),
   232  	unix.SYS_FCHOWNAT:          makeSyscallInfo("fchownat", Hex, Path, Hex, Hex, Hex),
   233  	unix.SYS_FCHMODAT:          makeSyscallInfo("fchmodat", Hex, Path, Mode),
   234  	unix.SYS_FACCESSAT:         makeSyscallInfo("faccessat", Hex, Path, Oct, Hex),
   235  	unix.SYS_PSELECT6:          makeSyscallInfo("pselect6", Hex, Hex, Hex, Hex, Hex, Hex),
   236  	unix.SYS_PPOLL:             makeSyscallInfo("ppoll", Hex, Hex, Timespec, Hex, Hex),
   237  	unix.SYS_UNSHARE:           makeSyscallInfo("unshare", Hex),
   238  	unix.SYS_SET_ROBUST_LIST:   makeSyscallInfo("set_robust_list", Hex, Hex),
   239  	unix.SYS_GET_ROBUST_LIST:   makeSyscallInfo("get_robust_list", Hex, Hex, Hex),
   240  	unix.SYS_SPLICE:            makeSyscallInfo("splice", Hex, Hex, Hex, Hex, Hex, Hex),
   241  	unix.SYS_TEE:               makeSyscallInfo("tee", Hex, Hex, Hex, Hex),
   242  	unix.SYS_VMSPLICE:          makeSyscallInfo("vmsplice", Hex, Hex, Hex, Hex),
   243  	unix.SYS_MOVE_PAGES:        makeSyscallInfo("move_pages", Hex, Hex, Hex, Hex, Hex, Hex),
   244  	unix.SYS_EPOLL_PWAIT:       makeSyscallInfo("epoll_pwait", Hex, Hex, Hex, Hex, Hex, Hex),
   245  	unix.SYS_FALLOCATE:         makeSyscallInfo("fallocate", Hex, Hex, Hex, Hex),
   246  	unix.SYS_ACCEPT4:           makeSyscallInfo("accept4", Hex, PostSockAddr, SockLen, SockFlags),
   247  	unix.SYS_DUP3:              makeSyscallInfo("dup3", Hex, Hex, Hex),
   248  	unix.SYS_PREADV:            makeSyscallInfo("preadv", Hex, ReadIOVec, Hex, Hex),
   249  	unix.SYS_PWRITEV:           makeSyscallInfo("pwritev", Hex, WriteIOVec, Hex, Hex),
   250  	unix.SYS_RT_TGSIGQUEUEINFO: makeSyscallInfo("rt_tgsigqueueinfo", Hex, Hex, Hex, Hex),
   251  	unix.SYS_PERF_EVENT_OPEN:   makeSyscallInfo("perf_event_open", Hex, Hex, Hex, Hex, Hex),
   252  	unix.SYS_RECVMMSG:          makeSyscallInfo("recvmmsg", Hex, Hex, Hex, Hex, Hex),
   253  	unix.SYS_FANOTIFY_INIT:     makeSyscallInfo("fanotify_init", Hex, Hex),
   254  	unix.SYS_FANOTIFY_MARK:     makeSyscallInfo("fanotify_mark", Hex, Hex, Hex, Hex, Hex),
   255  	unix.SYS_PRLIMIT64:         makeSyscallInfo("prlimit64", Hex, Hex, Hex, Hex),
   256  	unix.SYS_NAME_TO_HANDLE_AT: makeSyscallInfo("name_to_handle_at", Hex, Hex, Hex, Hex, Hex),
   257  	unix.SYS_CLOCK_ADJTIME:     makeSyscallInfo("clock_adjtime", Hex, Hex),
   258  	unix.SYS_SYNCFS:            makeSyscallInfo("syncfs", Hex),
   259  	unix.SYS_SENDMMSG:          makeSyscallInfo("sendmmsg", Hex, Hex, Hex, Hex),
   260  	unix.SYS_SETNS:             makeSyscallInfo("setns", Hex, Hex),
   261  	unix.SYS_GETCPU:            makeSyscallInfo("getcpu", Hex, Hex, Hex),
   262  	unix.SYS_PROCESS_VM_READV:  makeSyscallInfo("process_vm_readv", Hex, ReadIOVec, Hex, IOVec, Hex, Hex),
   263  	unix.SYS_PROCESS_VM_WRITEV: makeSyscallInfo("process_vm_writev", Hex, IOVec, Hex, WriteIOVec, Hex, Hex),
   264  	unix.SYS_KCMP:              makeSyscallInfo("kcmp", Hex, Hex, Hex, Hex, Hex),
   265  	unix.SYS_FINIT_MODULE:      makeSyscallInfo("finit_module", Hex, Hex, Hex),
   266  	unix.SYS_SCHED_SETATTR:     makeSyscallInfo("sched_setattr", Hex, Hex, Hex),
   267  	unix.SYS_SCHED_GETATTR:     makeSyscallInfo("sched_getattr", Hex, Hex, Hex),
   268  	unix.SYS_SECCOMP:           makeSyscallInfo("seccomp", Hex, Hex, Hex),
   269  }
   270  
   271  func (rec *TraceRecord) FillArgs() {
   272  	//r := rec.Regs
   273  	rec.Args = SyscallArguments{}
   274  	rec.Sysno = int(uint32(0))
   275  }
   276  
   277  func (rec *TraceRecord) FillRet() {
   278  	//	r := rec.Regs{}
   279  	rec.Ret = [2]SyscallArgument{}
   280  }