/***************************************************************************** * * * sys/signal.h * * * * Freely redistributable and modifiable. Use at your own risk. * * * * Copyright 1994 The Downhill Project * * * *****************************************************************************/ /* * HISTORY * Allow selection of macro definitions only. * That is, provide a compatibility layer that requires no library * functions only macro definitions. This is enabled by defining the * macro DOWNHILL_NO_FUNCTIONS. * [1997/06/23 12:12:24 tbartley] */ #if !defined(_DOWNHILL_SYS_SIGNAL_H) #define _DOWNHILL_SYS_SIGNAL_H /* Include stuff *************************************************************/ #include "DOWNHILL/DH_POSIX.H" #include "DOWNHILL/DH_INC.H" #include _DOWNHILL_INCLUDE_DIR/signal.h> #ifdef __cplusplus extern "C" { #endif /* Define stuff **************************************************************/ /* Fake signals ============================================================ */ #define SIGCHLD 23 #define SIGUSR1 24 #define SIGUSR2 25 #define SIGHUP 26 #define SIGQUIT 27 #define SIGCONT 28 #define SIGTTOU 29 #define SIGPIPE 30 #undef NSIG #define NSIG 31 #ifndef DOWNHILL_NO_FUNCTIONS /* Re-mapped functions ===================================================== */ #if (_DOWNHILL_POSIX_SOURCE == 0) #define sigmask(signal_Index) (1<<(signal_Index-1)) #endif // #define signal(signal_Number,signal_Handler) \ // Downhill_Signal_Set(signal_Number,signal_Handler) // #define raise(signal_Number) Downhill_Signal_Raise(signal_Number) #endif /* DOWNHILL_NO_FUNCTIONS */ /* Signal mask actions ===================================================== */ #define SIG_BLOCK 0 #define SIG_UNBLOCK 1 #define SIG_SETMASK 2 /* Signal flag actions ===================================================== */ #define SA_NOCLDSTOP 1 #if (_DOWNHILL_POSIX_SOURCE == 0) #define SA_RESETHAND 2 #define SA_INTERRUPT 4 #endif /* Typedef stuff *************************************************************/ typedef unsigned long sigset_t; /* Struct stuff **************************************************************/ struct sigaction { void (*sa_handler)(); sigset_t sa_mask; int sa_flags; }; #ifndef DOWNHILL_NO_FUNCTIONS /* Prototype stuff ***********************************************************/ #if (_DOWNHILL_POSIX_SOURCE == 0) unsigned long sigsetmask(unsigned long signal_Block_MaskNew); unsigned long sigblock(unsigned long signal_Block_MaskNew); int sighold(int signal_Number); int sigrelse(int signal_Number); #endif int sigaction(int signal_Number,struct sigaction* sigaction_Info, struct sigaction* signaction_InfoOld); int sigaddset(sigset_t* sigset_Info,int signal_Number); int sigdelset(sigset_t* sigset_Info,int signal_Number); int sigemptyset(sigset_t* sigset_Info); int sigfillset(sigset_t* sigset_Info); int sigismember(sigset_t* sigset_Info,int signal_Number); int sigpending(sigset_t* sigset_Info); int sigprocmask(int mask_Function,sigset_t* sigset_Info, sigset_t* sigset_InfoOld); void (*Downhill_Signal_Set(int signal_Number, void (*signal_Handler)(int,...)))(int,...); int Downhill_Signal_Raise(int signal_Number); #endif /* DOWNHILL_NO_FUNCTIONS */ #ifdef __cplusplus } /* extern "C" */ #endif #endif /* _DOWNHILL_SYS_SIGNAL_H */