1 /* Public domain. */
2 
3 #include <signal.h>
4 #include "sig.h"
5 #include "hassgprm.h"
6 
sig_block(int sig)7 void 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)19 void 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)31 void 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