From a1990e1e833624b26b0ca55aa7fce56bb594f814 Mon Sep 17 00:00:00 2001
From: rofl0r <retnyg@gmx.net>
Date: Thu, 6 Dec 2012 20:51:32 +0100
Subject: add sigandset and sigorset (needed for qemu)

---
 src/signal/sigandset.c | 17 +++++++++++++++++
 src/signal/sigorset.c  | 17 +++++++++++++++++
 2 files changed, 34 insertions(+)
 create mode 100644 src/signal/sigandset.c
 create mode 100644 src/signal/sigorset.c

(limited to 'src')

diff --git a/src/signal/sigandset.c b/src/signal/sigandset.c
new file mode 100644
index 00000000..f62c7fec
--- /dev/null
+++ b/src/signal/sigandset.c
@@ -0,0 +1,17 @@
+#define _GNU_SOURCE
+#include <signal.h>
+#include <errno.h>
+
+#define SST_SIZE (sizeof(sigset_t) / sizeof(long))
+
+int sigandset(sigset_t *dest, sigset_t *left, sigset_t *right)
+{
+	if(!dest || !left || !right) {
+		errno = EINVAL;
+		return -1;
+	}
+	unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right;
+	for(; i < SST_SIZE; i++) d[i] = l[i] & r[i];
+	return 0;
+}
+
diff --git a/src/signal/sigorset.c b/src/signal/sigorset.c
new file mode 100644
index 00000000..232075b1
--- /dev/null
+++ b/src/signal/sigorset.c
@@ -0,0 +1,17 @@
+#define _GNU_SOURCE
+#include <signal.h>
+#include <errno.h>
+
+#define SST_SIZE (sizeof(sigset_t) / sizeof(long))
+
+int sigorset(sigset_t *dest, sigset_t *left, sigset_t *right)
+{
+	if(!dest || !left || !right) {
+		errno = EINVAL;
+		return -1;
+	}
+	unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right;
+	for(; i < SST_SIZE; i++) d[i] = l[i] | r[i];
+	return 0;
+}
+
-- 
cgit v1.2.3-70-g09d2