bglibs
bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/sig.h
1#ifndef UNIX__SIG__H__
2#define UNIX__SIG__H__
3
4typedef void (*signalfn)(int);
5
6void sig_block(int sig);
7void sig_unblock(int sig);
8void sig_suspend(void);
9void sig_catch(int sig, signalfn fn);
10void sig_default(int sig);
11void sig_ignore(int sig);
12
13void sig_misc_ignore(void);
14void sig_bug_catch(signalfn fn);
15
16#define SIG_FUNCTION_DECL(NAME) \
17extern void sig_##NAME##_block(void); \
18extern void sig_##NAME##_unblock(void); \
19extern void sig_##NAME##_catch(signalfn fn); \
20extern void sig_##NAME##_default(void)
21
22SIG_FUNCTION_DECL(alarm);
23SIG_FUNCTION_DECL(child);
24SIG_FUNCTION_DECL(hup);
25SIG_FUNCTION_DECL(int);
26SIG_FUNCTION_DECL(pipe);
27SIG_FUNCTION_DECL(quit);
28SIG_FUNCTION_DECL(term);
29
30SIG_FUNCTION_DECL(all);
31
32#undef SIG_FUNCTION_DECL
33
34#define SIG_FUNCTION_MAKE(NAME,SIG) \
35extern void sig_##NAME##_block(void) { sig_block(SIG); } \
36extern void sig_##NAME##_unblock(void) { sig_unblock(SIG); } \
37extern void sig_##NAME##_catch(signalfn fn) { sig_catch(SIG, fn); } \
38extern void sig_##NAME##_default(void) { sig_default(SIG); } \
39
40#endif