summaryrefslogtreecommitdiffstats
path: root/sig_block.c
diff options
context:
space:
mode:
Diffstat (limited to 'sig_block.c')
-rw-r--r--sig_block.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/sig_block.c b/sig_block.c
new file mode 100644
index 0000000..c6b096a
--- /dev/null
+++ b/sig_block.c
@@ -0,0 +1,40 @@
1#include <signal.h>
2#include "sig.h"
3#include "hassgprm.h"
4
5void sig_block(sig)
6int sig;
7{
8#ifdef HASSIGPROCMASK
9 sigset_t ss;
10 sigemptyset(&ss);
11 sigaddset(&ss,sig);
12 sigprocmask(SIG_BLOCK,&ss,(sigset_t *) 0);
13#else
14 sigblock(1 << (sig - 1));
15#endif
16}
17
18void sig_unblock(sig)
19int 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
31void sig_blocknone()
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}