bglibs: sig.h Source File

- Main Page
- Modules
- Data Structures
- Files
- Directories
- Related Pages
- Examples

# sig.h

    00001 /* $Id: sig.h 616 2005-08-19 20:11:01Z bruce $ */
    00002 #ifndef UNIX__SIG__H__
    00003 #define UNIX__SIG__H__
    00004
    00005 typedef void (*signalfn)(int);
    00006
    00007 void sig_block(int sig);
    00008 void sig_unblock(int sig);
    00009 void sig_suspend(void);
    00010 void sig_catch(int sig, signalfn fn);
    00011 void sig_default(int sig);
    00012 void sig_ignore(int sig);
    00013
    00014 void sig_misc_ignore(void);
    00015 void sig_bug_catch(signalfn fn);
    00016
    00017 #define SIG_FUNCTION_DECL(NAME) \
    00018 extern void sig_##NAME##_block(void); \
    00019 extern void sig_##NAME##_unblock(void); \
    00020 extern void sig_##NAME##_catch(signalfn fn); \
    00021 extern void sig_##NAME##_default(void)
    00022
    00023 SIG_FUNCTION_DECL(alarm);
    00024 SIG_FUNCTION_DECL(child);
    00025 SIG_FUNCTION_DECL(hup);
    00026 SIG_FUNCTION_DECL(int);
    00027 SIG_FUNCTION_DECL(pipe);
    00028 SIG_FUNCTION_DECL(quit);
    00029 SIG_FUNCTION_DECL(term);
    00030
    00031 SIG_FUNCTION_DECL(all);
    00032
    00033 #undef SIG_FUNCTION_DECL
    00034
    00035 #define SIG_FUNCTION_MAKE(NAME,SIG) \
    00036 extern void sig_##NAME##_block(void) { sig_block(SIG); } \
    00037 extern void sig_##NAME##_unblock(void) { sig_unblock(SIG); } \
    00038 extern void sig_##NAME##_catch(signalfn fn) { sig_catch(SIG, fn); } \
    00039 extern void sig_##NAME##_default(void) { sig_default(SIG); } \
    00040
    00041 #endif