From e333a0e2fc94aa27a735e62e713402c21eb2c0ef Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Tue, 18 Jan 2022 19:24:03 +0100 Subject: sys/linux: describe sigaltstack It seems we had a bogus signature for sigaltstack for all that time. It accepts 2 sigaltstack structs according to the kernel code: https://elixir.bootlin.com/linux/v5.16/source/kernel/signal.c#L4217 --- sys/linux/sys.txt | 10 +++++++++- sys/linux/sys.txt.const | 4 +++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/sys/linux/sys.txt b/sys/linux/sys.txt index 2ccb38ab1..a8743922e 100644 --- a/sys/linux/sys.txt +++ b/sys/linux/sys.txt @@ -464,7 +464,7 @@ rt_sigtimedwait(these ptr[in, sigset_t], info ptr[out, siginfo, opt], ts ptr[in, rt_sigsuspend(new ptr[in, sigset_t], sigsetsize len[new]) rt_sigqueueinfo(pid pid, sig signalno, info ptr[in, siginfo]) rt_tgsigqueueinfo(gid pid, tid pid, sig signalno, info ptr[in, siginfo]) -sigaltstack(ss vma, oss ptr[out, intptr, opt]) +sigaltstack(ss ptr[in, sigaltstack], oss ptr[out, sigaltstack, opt]) tgkill(gid pid, tid pid, sig signalno) tkill(tid pid, sig signalno) pause() @@ -1095,6 +1095,14 @@ sigaction { sa_mask sigset_t } +sigaltstack { + ss_sp ptr[out, array[int8]] + ss_flags flags[sigaltstack_flags, int32] + ss_size bytesize[ss_sp, intptr] +} + +sigaltstack_flags = SS_ONSTACK, SS_DISABLE, SS_AUTODISARM + tms { utime intptr stime intptr diff --git a/sys/linux/sys.txt.const b/sys/linux/sys.txt.const index ac952adf5..4fa2a7507 100644 --- a/sys/linux/sys.txt.const +++ b/sys/linux/sys.txt.const @@ -506,6 +506,9 @@ SPLICE_F_GIFT = 8 SPLICE_F_MORE = 4 SPLICE_F_MOVE = 1 SPLICE_F_NONBLOCK = 2 +SS_AUTODISARM = 2147483648 +SS_DISABLE = 2 +SS_ONSTACK = 1 STAT64_SIZE = 104, 386:96, amd64:mips64le:riscv64:s390x:??? STATX_ATIME = 32 STATX_BASIC_STATS = 2047 @@ -630,7 +633,6 @@ __NR_fcntl = 55, amd64:72, arm64:riscv64:25, mips64le:5070 __NR_fdatasync = 148, amd64:75, arm64:riscv64:83, mips64le:5073 __NR_finit_module = 273, 386:350, amd64:313, arm:379, mips64le:5307, ppc64le:353, s390x:344 __NR_flock = 143, amd64:73, arm64:riscv64:32, mips64le:5071 -__NR_fork = 2, amd64:57, arm64:riscv64:???, mips64le:5056 __NR_fstat = 108, amd64:5, arm64:riscv64:80, mips64le:5005 __NR_fstat64 = 197, amd64:arm64:mips64le:ppc64le:riscv64:s390x:??? __NR_fstatat64 = 386:300, amd64:arm64:mips64le:ppc64le:riscv64:s390x:???, arm:327 -- cgit mrf-deployment