diff options
author | Warner Losh <imp@bsdimp.com> | 2022-01-08 21:46:07 -0700 |
---|---|---|
committer | Warner Losh <imp@bsdimp.com> | 2022-01-28 15:53:41 -0700 |
commit | 6c6d4b5616b391934851f049f41a7cbde12140d9 (patch) | |
tree | 1eded946ae5a3f3aa1c2290066dddcdb468bb8dd /bsd-user/qemu.h | |
parent | 46f4f76d332d8c2b4eb24c8e6f91ac8bdc205733 (diff) |
bsd-user/signal.c: handle_pending_signal
Handle a queued signal.
Signed-off-by: Stacey Son <sson@FreeBSD.org>
Signed-off-by: Kyle Evans <kevans@freebsd.org>
Signed-off-by: Warner Losh <imp@bsdimp.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'bsd-user/qemu.h')
-rw-r--r-- | bsd-user/qemu.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h index de20650a00..02921ac8b3 100644 --- a/bsd-user/qemu.h +++ b/bsd-user/qemu.h @@ -99,6 +99,8 @@ typedef struct TaskState { * from multiple threads.) */ int signal_pending; + /* True if we're leaving a sigsuspend and sigsuspend_mask is valid. */ + bool in_sigsuspend; /* * This thread's signal mask, as requested by the guest program. * The actual signal mask of this thread may differ: @@ -106,6 +108,11 @@ typedef struct TaskState { * + sometimes we block all signals to avoid races */ sigset_t signal_mask; + /* + * The signal mask imposed by a guest sigsuspend syscall, if we are + * currently in the middle of such a syscall + */ + sigset_t sigsuspend_mask; /* This thread's sigaltstack, if it has one */ struct target_sigaltstack sigaltstack_used; |