On 2/8/22 21:59, Peter Maydell wrote:
On Tue, 8 Feb 2022 at 08:03, Richard Henderson
<richard.hender...@linaro.org> wrote:
Do not directly access the uc_sigmask member.
This is preparation for a sparc64 fix.
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
linux-user/include/host/aarch64/host-signal.h | 5 +++++
linux-user/include/host/alpha/host-signal.h | 5 +++++
linux-user/include/host/arm/host-signal.h | 5 +++++
linux-user/include/host/i386/host-signal.h | 5 +++++
.../include/host/loongarch64/host-signal.h | 5 +++++
linux-user/include/host/mips/host-signal.h | 5 +++++
linux-user/include/host/ppc/host-signal.h | 5 +++++
linux-user/include/host/riscv/host-signal.h | 5 +++++
linux-user/include/host/s390/host-signal.h | 5 +++++
linux-user/include/host/sparc/host-signal.h | 5 +++++
linux-user/include/host/x86_64/host-signal.h | 5 +++++
linux-user/signal.c | 18 ++++++++----------
12 files changed, 63 insertions(+), 10 deletions(-)
diff --git a/linux-user/include/host/aarch64/host-signal.h
b/linux-user/include/host/aarch64/host-signal.h
index 9770b36dc1..76ab078069 100644
--- a/linux-user/include/host/aarch64/host-signal.h
+++ b/linux-user/include/host/aarch64/host-signal.h
@@ -40,6 +40,11 @@ static inline void host_signal_set_pc(ucontext_t *uc,
uintptr_t pc)
uc->uc_mcontext.pc = pc;
}
+static inline void *host_signal_mask(ucontext_t *uc)
+{
+ return &uc->uc_sigmask;
+}
Why void* rather than sigset_t* ?
Because it's not really a sigset_t, even when it is in ucontext_t.
It's a kernel_sigset_t, as per the comment in host_signal_handler.
When it comes to sparc64 in the last patch, the glibc type will turn out to be
unsigned long.
Got a better suggestion?
r~