File:  [Apple XNU] / GNUtools / emacs / src / emacssignal.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:45:23 2018 UTC (8 years, 2 months ago) by root
Branches: MAIN, Apple
CVS tags: HEAD, GNUtools33
GNU tools for NeXTSTEP 3.3

#ifdef POSIX_SIGNALS

#define SIGMASKTYPE sigset_t
#define SIGEMPTYMASK (signal_empty_mask)
#define SIGFULLMASK (signal_full_mask)
extern sigset_t signal_empty_mask, signal_full_mask;

#ifdef sigmask
#undef sigmask
#endif
#define sigmask(SIG) \
(_mask = SIGEMPTYMASK, sigaddset (&_mask, SIG), _mask)

/* Local mask is used to avoid problems if code using any of the macros 
   below could be reentered due to a signal occurring.
   This can't happen in Emacs 18.58, but just to be safe... - DJB
   These macros require GCC.  */
#define sigpause(SIG)    ({ sigset_t _mask; sys_sigpause(SIG); })
#define sigblock(SIG)    ({ sigset_t _mask; sys_sigblock(SIG); })
#define sigunblock(SIG)  ({ sigset_t _mask; sys_sigunblock(SIG); })
#define sigsetmask(SIG)  ({ sigset_t _mask; sys_sigsetmask(SIG); })
#define sighold(SIG)     ONLY_USED_IN_BSD_4_1
#define sigrelse(SIG)    ONLY_USED_IN_BSD_4_1

int (*sys_signal (int signal_number, int (*action)())) ();
int sys_sigpause (sigset_t new_mask);
sigset_t sys_sigblock (sigset_t new_mask);
sigset_t sys_sigunblock (sigset_t new_mask);
sigset_t sys_sigsetmask (sigset_t new_mask);

#define sys_sigdel(MASK,SIG) sigdelset(&MASK,SIG)
#endif /* POSIX_SIGNALS */

#ifndef SIGMASKTYPE
#define SIGMASKTYPE int
#endif

#ifndef SIGEMPTYMASK
#define SIGEMPTYMASK 0
#endif

#ifndef SIGFULLMASK
#define SIGFULLMASK 0xffffffff
#endif

#ifndef sigmask
#define sigmask(no) (1L << ((no) - 1))
#endif

#ifndef sigunblock
#define sigunblock(SIG) \
{ SIGMASKTYPE omask = sigblock (SIGFULLMASK); sigsetmask (omask & ~SIG); }
#endif

#ifndef sys_sigdel
#define sys_sigdel(MASK,SIG) MASK &= ~(1 << SIG)
#endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.