1 /* Public domain. */ 2 3 #include <signal.h> 4 #include "sig.h" 5 #include "hassgprm.h" 6 sig_block(int sig)7void sig_block(int sig) 8 { 9 #ifdef HASSIGPROCMASK 10 sigset_t ss; 11 sigemptyset(&ss); 12 sigaddset(&ss,sig); 13 sigprocmask(SIG_BLOCK,&ss,(sigset_t *) 0); 14 #else 15 sigblock(1 << (sig - 1)); 16 #endif 17 } 18 sig_unblock(int sig)19void sig_unblock(int sig) 20 { 21 #ifdef HASSIGPROCMASK 22 sigset_t ss; 23 sigemptyset(&ss); 24 sigaddset(&ss,sig); 25 sigprocmask(SIG_UNBLOCK,&ss,(sigset_t *) 0); 26 #else 27 sigsetmask(sigsetmask(~0) & ~(1 << (sig - 1))); 28 #endif 29 } 30 sig_blocknone(void)31void sig_blocknone(void) 32 { 33 #ifdef HASSIGPROCMASK 34 sigset_t ss; 35 sigemptyset(&ss); 36 sigprocmask(SIG_SETMASK,&ss,(sigset_t *) 0); 37 #else 38 sigsetmask(0); 39 #endif 40 } 41