1#include <errno.h> 2#include <signal.h> 3 4int sigaddset(sigset_t* set, int sig) { 5 unsigned s = sig - 1; 6 if (s >= _NSIG - 1 || sig - 32U < 3) { 7 errno = EINVAL; 8 return -1; 9 } 10 set->__bits[s / 8 / sizeof *set->__bits] |= 1UL << (s & (8 * sizeof *set->__bits - 1)); 11 return 0; 12} 13