add sigandset and sigorset (needed for qemu)

This commit is contained in:
rofl0r
2012-12-06 20:51:32 +01:00
parent 0182c287ca
commit a1990e1e83
3 changed files with 37 additions and 0 deletions

17
src/signal/sigandset.c Normal file
View File

@ -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;
}

17
src/signal/sigorset.c Normal file
View File

@ -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;
}