Changeset View
Changeset View
Standalone View
Standalone View
head/lib/libc/gen/sigsetops.c
Show First 20 Lines • Show All 75 Lines • ▼ Show 20 Lines | sigfillset(sigset_t *set) | ||||
int i; | int i; | ||||
for (i = 0; i < _SIG_WORDS; i++) | for (i = 0; i < _SIG_WORDS; i++) | ||||
set->__bits[i] = ~0U; | set->__bits[i] = ~0U; | ||||
return (0); | return (0); | ||||
} | } | ||||
int | int | ||||
sigorset(sigset_t *dest, const sigset_t *left, const sigset_t *right) | |||||
{ | |||||
int i; | |||||
for (i = 0; i < _SIG_WORDS; i++) | |||||
dest->__bits[i] = left->__bits[i] | right->__bits[i]; | |||||
return (0); | |||||
} | |||||
int | |||||
sigandset(sigset_t *dest, const sigset_t *left, const sigset_t *right) | |||||
{ | |||||
int i; | |||||
for (i = 0; i < _SIG_WORDS; i++) | |||||
dest->__bits[i] = left->__bits[i] & right->__bits[i]; | |||||
return (0); | |||||
} | |||||
int | |||||
sigisemptyset(const sigset_t *set) | |||||
{ | |||||
int i; | |||||
for (i = 0; i < _SIG_WORDS; i++) | |||||
if (set->__bits[i] != 0) | |||||
return (0); | |||||
return (1); | |||||
} | |||||
int | |||||
sigismember(const sigset_t *set, int signo) | sigismember(const sigset_t *set, int signo) | ||||
{ | { | ||||
if (signo <= 0 || signo > _SIG_MAXSIG) { | if (signo <= 0 || signo > _SIG_MAXSIG) { | ||||
errno = EINVAL; | errno = EINVAL; | ||||
return (-1); | return (-1); | ||||
} | } | ||||
return ((set->__bits[_SIG_WORD(signo)] & _SIG_BIT(signo)) ? 1 : 0); | return ((set->__bits[_SIG_WORD(signo)] & _SIG_BIT(signo)) ? 1 : 0); | ||||
} | } |