summaryrefslogtreecommitdiff
path: root/src/signal/sigismember.c
blob: 6d3c1512f0ecf293e34ff0d1588de0f53a5964ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "sys/types.h"
#include <signal.h>
#include "limits.h"

int sigismember(const sigset_t * set, int signo)
{
	/* TODO: fail with EINVAL if signo is not a valid signal number */

	size_t byte = signo % CHAR_BIT;
	int bit = signo / CHAR_BIT;
	if (set->__bits[byte] & (1 << bit)) {
		return 1;
	}
	return 0;
}
/*
POSIX(1)
*/