[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 11/16] [RFC] linux-user: add target_sigdelset() a
From: |
Miloš Stojanović |
Subject: |
[Qemu-devel] [PATCH v2 11/16] [RFC] linux-user: add target_sigdelset() and target_sigorset() |
Date: |
Mon, 15 May 2017 16:59:51 +0200 |
Add two inline functions that work with the signal set of the target.
target_sigdelset() removes a signal from target_sigset_t.
target_sigorset() creates a union of two target_sigset_t.
These functions will be used for introducing support for tracking the
target signal set. Functions for emptying and adding into a target signal
set already exist so this commit will serve as a supplement.
Signed-off-by: Miloš Stojanović <address@hidden>
---
linux-user/signal.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/linux-user/signal.c b/linux-user/signal.c
index 54c3be7..ae4da79 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -120,6 +120,12 @@ static inline void target_sigaddset(target_sigset_t *set,
int signum)
set->sig[signum / TARGET_NSIG_BPW] |= mask;
}
+static inline void target_sigdelset(target_sigset_t *set, int signum)
+{
+ abi_ulong mask = (abi_ulong)1 << (--signum % TARGET_NSIG_BPW);
+ set->sig[signum / TARGET_NSIG_BPW] &= ~mask;
+}
+
static inline int target_sigismember(const target_sigset_t *set, int signum)
{
signum--;
@@ -127,6 +133,16 @@ static inline int target_sigismember(const target_sigset_t
*set, int signum)
return ((set->sig[signum / TARGET_NSIG_BPW] & mask) != 0);
}
+static inline void target_sigorset(target_sigset_t *set,
+ const target_sigset_t *left,
+ const target_sigset_t *right)
+{
+ int i;
+ for (i = 0; i < TARGET_NSIG_WORDS; i++) {
+ set->sig[i] = left->sig[i] | right->sig[i];
+ }
+}
+
static void host_to_target_sigset_internal(target_sigset_t *d,
const sigset_t *s)
{
--
1.9.1
- [Qemu-devel] [PATCH v2 01/16] linux-user: add strace for getuid(), gettid(), getppid(), geteuid(), (continued)
- [Qemu-devel] [PATCH v2 01/16] linux-user: add strace for getuid(), gettid(), getppid(), geteuid(), Miloš Stojanović, 2017/05/15
- [Qemu-devel] [PATCH v2 02/16] linux-user: add tkill(), tgkill() and rt_sigqueueinfo() strace, Miloš Stojanović, 2017/05/15
- [Qemu-devel] [PATCH v2 03/16] linux-user: fix ssetmask() system call, Miloš Stojanović, 2017/05/15
- [Qemu-devel] [PATCH v2 04/16] linux-user: fix mismatch of lock/unlock_user() invocations in rt_sigqueinfo() syscall, Miloš Stojanović, 2017/05/15
- [Qemu-devel] [PATCH v2 05/16] linux-user: fix argument type declaration of rt_sigqueinfo() syscall, Miloš Stojanović, 2017/05/15
- [Qemu-devel] [PATCH v2 06/16] linux-user: add support for rt_tgsigqueueinfo() system call, Miloš Stojanović, 2017/05/15
- [Qemu-devel] [PATCH v2 07/16] linux-user: add rt_tgsigqueueinfo() strace, Miloš Stojanović, 2017/05/15
- [Qemu-devel] [PATCH v2 08/16] linux-user: fix inconsistent spaces in print_siginfo() output, Miloš Stojanović, 2017/05/15
- [Qemu-devel] [PATCH v2 09/16] linux-user: add strace support for uinfo structure of rt_sigqueueinfo() and rt_tgsigqueueinfo(), Miloš Stojanović, 2017/05/15
- [Qemu-devel] [PATCH v2 10/16] [RFC] linux-user: add support for tracking the target signal mask, Miloš Stojanović, 2017/05/15
- [Qemu-devel] [PATCH v2 11/16] [RFC] linux-user: add target_sigdelset() and target_sigorset(),
Miloš Stojanović <=
- [Qemu-devel] [PATCH v2 12/16] [RFC] linux-user: fix sigismember() check, Miloš Stojanović, 2017/05/15
- [Qemu-devel] [PATCH v2 13/16] [RFC] linux-user: add functions for working with the target signal mask, Miloš Stojanović, 2017/05/15
- [Qemu-devel] [PATCH v2 14/16] [RFC] linux-user: add functionality for tracking target signal mask, Miloš Stojanović, 2017/05/15
- [Qemu-devel] [PATCH v2 15/16] [RFC] linux-user: add support for multiplexing larger target signals, Miloš Stojanović, 2017/05/15
- [Qemu-devel] [PATCH v2 16/16] [RFC] linux-user: add support for multiplexing signals in rt_sigqueueinfo(), rt_tgsigqueueinfo(), kill() and tgkill() syscalls., Miloš Stojanović, 2017/05/15