|
|
1.1 ! root 1: #ifdef POSIX_SIGNALS ! 2: ! 3: #define SIGMASKTYPE sigset_t ! 4: #define SIGEMPTYMASK (signal_empty_mask) ! 5: #define SIGFULLMASK (signal_full_mask) ! 6: extern sigset_t signal_empty_mask, signal_full_mask; ! 7: ! 8: #ifdef sigmask ! 9: #undef sigmask ! 10: #endif ! 11: #define sigmask(SIG) \ ! 12: (_mask = SIGEMPTYMASK, sigaddset (&_mask, SIG), _mask) ! 13: ! 14: /* Local mask is used to avoid problems if code using any of the macros ! 15: below could be reentered due to a signal occurring. ! 16: This can't happen in Emacs 18.58, but just to be safe... - DJB ! 17: These macros require GCC. */ ! 18: #define sigpause(SIG) ({ sigset_t _mask; sys_sigpause(SIG); }) ! 19: #define sigblock(SIG) ({ sigset_t _mask; sys_sigblock(SIG); }) ! 20: #define sigunblock(SIG) ({ sigset_t _mask; sys_sigunblock(SIG); }) ! 21: #define sigsetmask(SIG) ({ sigset_t _mask; sys_sigsetmask(SIG); }) ! 22: #define sighold(SIG) ONLY_USED_IN_BSD_4_1 ! 23: #define sigrelse(SIG) ONLY_USED_IN_BSD_4_1 ! 24: ! 25: int (*sys_signal (int signal_number, int (*action)())) (); ! 26: int sys_sigpause (sigset_t new_mask); ! 27: sigset_t sys_sigblock (sigset_t new_mask); ! 28: sigset_t sys_sigunblock (sigset_t new_mask); ! 29: sigset_t sys_sigsetmask (sigset_t new_mask); ! 30: ! 31: #define sys_sigdel(MASK,SIG) sigdelset(&MASK,SIG) ! 32: #endif /* POSIX_SIGNALS */ ! 33: ! 34: #ifndef SIGMASKTYPE ! 35: #define SIGMASKTYPE int ! 36: #endif ! 37: ! 38: #ifndef SIGEMPTYMASK ! 39: #define SIGEMPTYMASK 0 ! 40: #endif ! 41: ! 42: #ifndef SIGFULLMASK ! 43: #define SIGFULLMASK 0xffffffff ! 44: #endif ! 45: ! 46: #ifndef sigmask ! 47: #define sigmask(no) (1L << ((no) - 1)) ! 48: #endif ! 49: ! 50: #ifndef sigunblock ! 51: #define sigunblock(SIG) \ ! 52: { SIGMASKTYPE omask = sigblock (SIGFULLMASK); sigsetmask (omask & ~SIG); } ! 53: #endif ! 54: ! 55: #ifndef sys_sigdel ! 56: #define sys_sigdel(MASK,SIG) MASK &= ~(1 << SIG) ! 57: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.