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

int sigdelset(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;

	set->__bits[byte] ^= (1 << bit);
	return 0;
}
/*
POSIX(1)
*/