aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2021-10-21 10:01:42 +0200
committerDmitry Vyukov <dvyukov@google.com>2021-10-21 15:05:10 +0200
commitcb750656d058a944d71e9fa3559c99fa5cb02772 (patch)
treea64f54a475229f5b046befb5b0cec14098062c6a
parent15532b85931582f968ac7fc49e0cabd35e93baf3 (diff)
sys/linux: add descriptions of epoll_pwait2 syscall
See: https://elixir.bootlin.com/linux/v5.15-rc6/source/fs/eventpoll.c#L2279
-rw-r--r--prog/decl_test.go7
-rw-r--r--sys/linux/sys.txt3
-rw-r--r--sys/linux/sys.txt.const1
3 files changed, 7 insertions, 4 deletions
diff --git a/prog/decl_test.go b/prog/decl_test.go
index b7d25623c..6cec10e27 100644
--- a/prog/decl_test.go
+++ b/prog/decl_test.go
@@ -73,18 +73,19 @@ func TestTransitivelyEnabledCallsLinux(t *testing.T) {
}
delete(calls, target.SyscallMap["epoll_create1"])
trans, disabled := target.TransitivelyEnabledCalls(calls)
- if len(calls)-7 != len(trans) ||
+ if len(calls)-8 != len(trans) ||
trans[target.SyscallMap["epoll_ctl$EPOLL_CTL_ADD"]] ||
trans[target.SyscallMap["epoll_ctl$EPOLL_CTL_MOD"]] ||
trans[target.SyscallMap["epoll_ctl$EPOLL_CTL_DEL"]] ||
trans[target.SyscallMap["epoll_wait"]] ||
trans[target.SyscallMap["epoll_pwait"]] ||
+ trans[target.SyscallMap["epoll_pwait2"]] ||
trans[target.SyscallMap["kcmp$KCMP_EPOLL_TFD"]] ||
trans[target.SyscallMap["syz_io_uring_submit$IORING_OP_EPOLL_CTL"]] {
t.Fatalf("epoll fd is not disabled")
}
- if len(disabled) != 7 {
- t.Fatalf("disabled %v syscalls, want 7", len(disabled))
+ if len(disabled) != 8 {
+ t.Fatalf("disabled %v syscalls, want 8", len(disabled))
}
for c, reason := range disabled {
if !strings.Contains(reason, "no syscalls can create resource fd_epoll,"+
diff --git a/sys/linux/sys.txt b/sys/linux/sys.txt
index 6220e3cd9..2710f71c6 100644
--- a/sys/linux/sys.txt
+++ b/sys/linux/sys.txt
@@ -141,7 +141,8 @@ epoll_ctl$EPOLL_CTL_ADD(epfd fd_epoll, op const[EPOLL_CTL_ADD], fd fd, ev ptr[in
epoll_ctl$EPOLL_CTL_MOD(epfd fd_epoll, op const[EPOLL_CTL_MOD], fd fd, ev ptr[in, epoll_event])
epoll_ctl$EPOLL_CTL_DEL(epfd fd_epoll, op const[EPOLL_CTL_DEL], fd fd)
epoll_wait(epfd fd_epoll, events ptr[out, array[epoll_event]], maxevents len[events], timeout int32)
-epoll_pwait(epfd fd_epoll, events ptr[out, array[epoll_event]], maxevents len[events], timeout int32, sigmask ptr[in, sigset_t], size len[sigmask])
+epoll_pwait(epfd fd_epoll, events ptr[out, array[epoll_event]], maxevents len[events], timeout int32, sigmask ptr[in, sigset_t], size bytesize[sigmask])
+epoll_pwait2(epfd fd_epoll, events ptr[out, array[epoll_event]], maxevents len[events], timeout ptr[in, timespec], sigmask ptr[in, sigset_t], size bytesize[sigmask])
resource fd_timer[fd]
signalfd(fd fd, mask ptr[in, sigset_t], size len[mask]) fd
diff --git a/sys/linux/sys.txt.const b/sys/linux/sys.txt.const
index 8d2d3e6c3..4826b4ea6 100644
--- a/sys/linux/sys.txt.const
+++ b/sys/linux/sys.txt.const
@@ -611,6 +611,7 @@ __NR_epoll_create = 386:254, amd64:213, arm:250, arm64:riscv64:???, mips64le:520
__NR_epoll_create1 = 20, 386:329, amd64:291, arm:357, mips64le:5285, ppc64le:315, s390x:327
__NR_epoll_ctl = 21, 386:255, amd64:233, arm:251, mips64le:5208, ppc64le:237, s390x:250
__NR_epoll_pwait = 22, 386:319, amd64:281, arm:346, mips64le:5272, ppc64le:303, s390x:312
+__NR_epoll_pwait2 = 441, mips64le:5441
__NR_epoll_wait = 386:256, amd64:232, arm:252, arm64:riscv64:???, mips64le:5209, ppc64le:238, s390x:251
__NR_eventfd = 386:323, amd64:284, arm:351, arm64:riscv64:???, mips64le:5278, ppc64le:307, s390x:318
__NR_eventfd2 = 19, 386:328, amd64:290, arm:356, mips64le:5284, ppc64le:314, s390x:323