Add all upstream syscalls to tables

Package strace is missing some syscalls we actually implement (e.g.,
getrandom). We also see newer syscalls sometimes (e.g., membarrier) that would
be handy to have formatted.

Let's go ahead and add all syscalls in the latest upstream release (v5.4), even
though we only intend to implement v4.4. None of them are implemented, just
included as placeholders.

PiperOrigin-RevId: 284797577
This commit is contained in:
Michael Pratt 2019-12-10 10:25:30 -08:00 committed by gVisor bot
parent 30f7316dc4
commit c15be3f8cf
3 changed files with 68 additions and 1 deletions

View File

@ -335,5 +335,33 @@ var linuxAMD64 = SyscallMap{
315: makeSyscallInfo("sched_getattr", Hex, Hex, Hex),
316: makeSyscallInfo("renameat2", FD, Path, Hex, Path, Hex),
317: makeSyscallInfo("seccomp", Hex, Hex, Hex),
318: makeSyscallInfo("getrandom", Hex, Hex, Hex),
319: makeSyscallInfo("memfd_create", Path, Hex), // Not quite a path, but close.
320: makeSyscallInfo("kexec_file_load", FD, FD, Hex, Hex, Hex),
321: makeSyscallInfo("bpf", Hex, Hex, Hex),
322: makeSyscallInfo("execveat", FD, Path, ExecveStringVector, ExecveStringVector, Hex),
323: makeSyscallInfo("userfaultfd", Hex),
324: makeSyscallInfo("membarrier", Hex, Hex),
325: makeSyscallInfo("mlock2", Hex, Hex, Hex),
326: makeSyscallInfo("copy_file_range", FD, Hex, FD, Hex, Hex, Hex),
327: makeSyscallInfo("preadv2", FD, ReadIOVec, Hex, Hex, Hex),
328: makeSyscallInfo("pwritev2", FD, WriteIOVec, Hex, Hex, Hex),
329: makeSyscallInfo("pkey_mprotect", Hex, Hex, Hex, Hex),
330: makeSyscallInfo("pkey_alloc", Hex, Hex),
331: makeSyscallInfo("pkey_free", Hex),
332: makeSyscallInfo("statx", FD, Path, Hex, Hex, Hex),
333: makeSyscallInfo("io_pgetevents", Hex, Hex, Hex, Hex, Timespec, SigSet),
334: makeSyscallInfo("rseq", Hex, Hex, Hex, Hex),
424: makeSyscallInfo("pidfd_send_signal", FD, Signal, Hex, Hex),
425: makeSyscallInfo("io_uring_setup", Hex, Hex),
426: makeSyscallInfo("io_uring_enter", FD, Hex, Hex, Hex, SigSet, Hex),
427: makeSyscallInfo("io_uring_register", FD, Hex, Hex, Hex),
428: makeSyscallInfo("open_tree", FD, Path, Hex),
429: makeSyscallInfo("move_mount", FD, Path, FD, Path, Hex),
430: makeSyscallInfo("fsopen", Path, Hex), // Not quite a path, but close.
431: makeSyscallInfo("fsconfig", FD, Hex, Hex, Hex, Hex),
432: makeSyscallInfo("fsmount", FD, Hex, Hex),
433: makeSyscallInfo("fspick", FD, Path, Hex),
434: makeSyscallInfo("pidfd_open", Hex, Hex),
435: makeSyscallInfo("clone3", Hex, Hex),
}

View File

@ -367,11 +367,31 @@ var AMD64 = &kernel.SyscallTable{
324: syscalls.ErrorWithEvent("membarrier", syserror.ENOSYS, "", []string{"gvisor.dev/issue/267"}), // TODO(gvisor.dev/issue/267)
325: syscalls.PartiallySupported("mlock2", Mlock2, "Stub implementation. The sandbox lacks appropriate permissions.", nil),
// Syscalls after 325 are "backports" from versions of Linux after 4.4.
// Syscalls implemented after 325 are "backports" from versions
// of Linux after 4.4.
326: syscalls.ErrorWithEvent("copy_file_range", syserror.ENOSYS, "", nil),
327: syscalls.Supported("preadv2", Preadv2),
328: syscalls.PartiallySupported("pwritev2", Pwritev2, "Flag RWF_HIPRI is not supported.", nil),
329: syscalls.ErrorWithEvent("pkey_mprotect", syserror.ENOSYS, "", nil),
330: syscalls.ErrorWithEvent("pkey_alloc", syserror.ENOSYS, "", nil),
331: syscalls.ErrorWithEvent("pkey_free", syserror.ENOSYS, "", nil),
332: syscalls.Supported("statx", Statx),
333: syscalls.ErrorWithEvent("io_pgetevents", syserror.ENOSYS, "", nil),
334: syscalls.ErrorWithEvent("rseq", syserror.ENOSYS, "", nil),
// Linux skips ahead to syscall 424 to sync numbers between arches.
424: syscalls.ErrorWithEvent("pidfd_send_signal", syserror.ENOSYS, "", nil),
425: syscalls.ErrorWithEvent("io_uring_setup", syserror.ENOSYS, "", nil),
426: syscalls.ErrorWithEvent("io_uring_enter", syserror.ENOSYS, "", nil),
427: syscalls.ErrorWithEvent("io_uring_register", syserror.ENOSYS, "", nil),
428: syscalls.ErrorWithEvent("open_tree", syserror.ENOSYS, "", nil),
429: syscalls.ErrorWithEvent("move_mount", syserror.ENOSYS, "", nil),
430: syscalls.ErrorWithEvent("fsopen", syserror.ENOSYS, "", nil),
431: syscalls.ErrorWithEvent("fsconfig", syserror.ENOSYS, "", nil),
432: syscalls.ErrorWithEvent("fsmount", syserror.ENOSYS, "", nil),
433: syscalls.ErrorWithEvent("fspick", syserror.ENOSYS, "", nil),
434: syscalls.ErrorWithEvent("pidfd_open", syserror.ENOSYS, "", nil),
435: syscalls.ErrorWithEvent("clone3", syserror.ENOSYS, "", nil),
},
Emulate: map[usermem.Addr]uintptr{

View File

@ -302,7 +302,26 @@ var ARM64 = &kernel.SyscallTable{
285: syscalls.ErrorWithEvent("copy_file_range", syserror.ENOSYS, "", nil),
286: syscalls.Supported("preadv2", Preadv2),
287: syscalls.PartiallySupported("pwritev2", Pwritev2, "Flag RWF_HIPRI is not supported.", nil),
288: syscalls.ErrorWithEvent("pkey_mprotect", syserror.ENOSYS, "", nil),
289: syscalls.ErrorWithEvent("pkey_alloc", syserror.ENOSYS, "", nil),
290: syscalls.ErrorWithEvent("pkey_free", syserror.ENOSYS, "", nil),
291: syscalls.Supported("statx", Statx),
292: syscalls.ErrorWithEvent("io_pgetevents", syserror.ENOSYS, "", nil),
293: syscalls.ErrorWithEvent("rseq", syserror.ENOSYS, "", nil),
// Linux skips ahead to syscall 424 to sync numbers between arches.
424: syscalls.ErrorWithEvent("pidfd_send_signal", syserror.ENOSYS, "", nil),
425: syscalls.ErrorWithEvent("io_uring_setup", syserror.ENOSYS, "", nil),
426: syscalls.ErrorWithEvent("io_uring_enter", syserror.ENOSYS, "", nil),
427: syscalls.ErrorWithEvent("io_uring_register", syserror.ENOSYS, "", nil),
428: syscalls.ErrorWithEvent("open_tree", syserror.ENOSYS, "", nil),
429: syscalls.ErrorWithEvent("move_mount", syserror.ENOSYS, "", nil),
430: syscalls.ErrorWithEvent("fsopen", syserror.ENOSYS, "", nil),
431: syscalls.ErrorWithEvent("fsconfig", syserror.ENOSYS, "", nil),
432: syscalls.ErrorWithEvent("fsmount", syserror.ENOSYS, "", nil),
433: syscalls.ErrorWithEvent("fspick", syserror.ENOSYS, "", nil),
434: syscalls.ErrorWithEvent("pidfd_open", syserror.ENOSYS, "", nil),
435: syscalls.ErrorWithEvent("clone3", syserror.ENOSYS, "", nil),
},
Emulate: map[usermem.Addr]uintptr{},