aboutsummaryrefslogtreecommitdiff
path: root/bsd-user/qemu.h
diff options
context:
space:
mode:
authorWarner Losh <imp@bsdimp.com>2022-01-08 21:46:07 -0700
committerWarner Losh <imp@bsdimp.com>2022-01-28 15:53:41 -0700
commit6c6d4b5616b391934851f049f41a7cbde12140d9 (patch)
tree1eded946ae5a3f3aa1c2290066dddcdb468bb8dd /bsd-user/qemu.h
parent46f4f76d332d8c2b4eb24c8e6f91ac8bdc205733 (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.h7
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;