home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Source / GNU / emacs / src / emacssignal.h < prev    next >
C/C++ Source or Header  |  1991-12-31  |  2KB  |  58 lines

  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
  58.