#ifdef __TANDEM #pragma columns 80 #if _TANDEM_ARCH_ != 0 #pragma ONCE #endif #endif #ifndef _SIGNAL #define _SIGNAL /* T8645H02 - (21MAY2008) - signal.h signal/job-control definitions */ /* T8645G08^AAX - (10MAY2007) */ /* * Copyright 2008 Hewlett Packard Development Company, L.P. * * ALL RIGHTS RESERVED */ #ifdef __cplusplus extern "C" { #endif #ifdef __OLDCALLS /* TNS C legacy header */ #pragma nooldcalls #define REVERT_TO_OLDCALLS #endif /* Supports TNS and TNS/R (where both Guardian and OSS processes * can have signals); and native mode 128-bit signal facilities */ #if defined(_POSIX_SOURCE) || _POSIX_C_SOURCE == 1 || \ defined(_XOPEN_SOURCE) || _POSIX_C_SOURCE == 2 || \ defined(_TANDEM_SOURCE) #ifndef _GUARDIAN_TARGET #ifndef _GUARDIAN_HOST #include #else #include nolist #endif /* _GUARDIAN_HOST */ #endif /* !_GUARDIAN_TARGET */ /* sigset_t required even for TNS because parts of SL need it */ #if _TANDEM_ARCH_ != 0 || !defined(__TANDEM) #ifdef __TANDEM #pragma fieldalign shared8 __sigset_template #endif struct __sigset_template { long long item64[2]; }; /* 128 bit */ typedef struct __sigset_template sigset_t; /* native size 128 bits */ #else /* _TANDEM_ARCH_ == 0 */ typedef long sigset_t; /* TNS size 32 bits */ #endif /* _TANDEM_ARCH_ == 0 */ #if _TANDEM_ARCH_ != 0 || !defined(_GUARDIAN_TARGET) /* native or TNS OSS */ #ifdef __TANDEM #pragma fieldalign shared8 sigaction #endif #if _TANDEM_ARCH_ != 0 || !defined(__TANDEM) /* native */ struct sigaction { sigset_t sa_mask; void (*sa_handler)(int); int sa_flags; }; #else /* OSS TNS (sigaction meaningful) */ struct sigaction { void (*sa_handler)(int); sigset_t sa_mask; int sa_flags; #ifndef filler_0 char filler_0[8]; #else char __filler_0[8]; #endif /* !filler_0 */ }; #endif /* OSS TNS (sigaction meaningful) */ #ifdef _TANDEM_SOURCE typedef struct sigaction sigaction_t; #endif /* _TANDEM_SOURCE */ #endif /* _TANDEM_ARCH_ != 0 || !_GUARDIAN_TARGET */ #endif /* _POSIX_SOURCE || ... || _XOPEN_SOURCE || _TANDEM_SOURCE */ typedef short sig_atomic_t; /* signal numbers and miscellaneous definitions: OSS/native signals are a superset of TNS-Guardian signals (same numbers). OSS/native values for SIG_DFL, SIG_IGN and SIG_ERR don't agree with Guardian TNS definitions. The OSS values represent invalid routine addresses in both TNS and TNS/R realms. */ #if _TANDEM_ARCH_ == 0 && defined(_GUARDIAN_TARGET) /* Standard C signals for TNS Guardian */ #define SIGINT 2 /* Interactive Attention */ #define SIGILL 4 /* Instruction Failure (Guardian OS trap) */ #define SIGABRT 6 /* Abnormal termination */ #define SIGFPE 8 /* Arithmetic Overflow (Guardian OS trap) */ #define SIGSEGV 11 /* Illegal address ref. (Guardian OS trap) */ #define SIGTERM 15 /* Termination request */ /* Tandem implementation-defined signals */ #define SIGMEMERR 22 /* Uncorrectable memory error (Guardian OS trap) */ #define SIGNOMEM 23 /* No memory available (Guardian OS trap) */ #define SIGMEMMGR 24 /* Memory Mgr. disk read err (Guardian OS trap) */ #define SIGSTK 25 /* Stack overflow (Guardian OS trap) */ #define SIGTIMEOUT 26 /* Process loop-timer timeout (Guardian OS trap) */ #define SIGLIMIT 27 /* Guardian Limit exceeded (Guardian OS trap) */ /* non-public types */ typedef void (*_signal_handler)(int); /* Standard C defines for signal actions */ #define SIG_DFL ((_signal_handler) 0x00) /* default handler */ #ifdef __XMEM #define SIG_IGN ((_signal_handler) 0x10000) /* ignore signal */ #else #define SIG_IGN ((_signal_handler) 0x01) /* ignore signal */ #endif /* Standard C defines for error returns from the signal function */ #define SIG_ERR ((_signal_handler) 0x200) #else /* _TANDEM_ARCH_ != 0 || !_GUARDIAN_TARGET */ /* TNS OSS or native C */ #define SIGHUP 1 #define SIGINT 2 #define SIGQUIT 3 #define SIGILL 4 #define SIGURG 5 #define SIGABRT 6 #define SIGIO 7 #define SIGFPE 8 #define SIGKILL 9 #define SIGSEGV 11 #define SIGPIPE 13 #define SIGALRM 14 #define SIGTERM 15 #define SIGUSR1 16 #define SIGUSR2 17 #define SIGCHLD 18 /* POSIX permits duplicate names, X/OPEN does not; so SIGCLD not here */ #define SIGSTOP 20 #define SIGTSTP 21 #define SIGCONT 28 #define SIGTTIN 29 #define SIGTTOU 30 #ifdef _TANDEM_SOURCE #if _TANDEM_ARCH_ > 1 #define SIGUNCP 10 #endif #define SIGWINCH 12 #define SIGRECV 19 #define SIGMEMERR 22 #define SIGNOMEM 23 #define SIGMEMMGR 24 #define SIGSTK 25 #define SIGTIMEOUT 26 #define SIGLIMIT 27 #define SIGABEND 31 #endif /* _TANDEM_SOURCE */ #define SIG_BLOCK 1 #define SIG_SETMASK 2 #define SIG_UNBLOCK 3 #define SA_NOCLDSTOP (1) #define SA_RESERVED_31 (1 << 31) #define SIG_DFL ((void (*)(int)) 0xFFFC0000) #define SIG_IGN ((void (*)(int)) 0xFFFC0001) #define SIG_ERR ((void (*)(int)) 0xFFFC0002) #endif /* _TANDEM_ARCH_ != 0 || !_GUARDIAN_TARGET */ #if _TANDEM_ARCH_ == 0 && defined(_GUARDIAN_TARGET) /* TNS Guardian */ int raise (int); _signal_handler signal(int, _signal_handler); sig_atomic_t _is_system_trap(void); /* Tandem extension function */ #if defined(__TANDEM) #ifdef __XMEM #ifdef __INT32 /* * Wide Model */ #pragma function raise (alias("_C_LG_raise_32_")) #pragma function signal (alias("_C_LG_signal_32_")) #pragma function _is_system_trap (alias("C_IS_SYSTEM_TRAP_"), tal) #else /* * Large Model */ #pragma function raise (alias("_C_LG_raise_")) #pragma function signal (alias("_C_LG_signal_")) #pragma function _is_system_trap (alias("C_IS_SYSTEM_TRAP_"), tal) #endif #else /* * Small Model */ #pragma function raise (alias("_C_SM_raise_")) #pragma function signal (alias("_C_SM_signal_")) #pragma function _is_system_trap (alias("C_IS_SYSTEM_TRAP_"), tal) #endif #endif /* __TANDEM */ #else /* _TANDEM_ARCH_ != 0 || !_GUARDIAN_TARGET */ int raise(int); void ( *signal(int, void (*)(int)) ) (int); #if defined(__TANDEM) && _TANDEM_ARCH_ == 0 /* TNS OSS aliases */ #pragma function raise (alias("PK_RAISE_" ), unspecified) #pragma function signal (alias("PK_SIGNAL_" ), unspecified) #endif /* __TANDEM && _TANDEM_ARCH_ == 0 */ #if defined(_POSIX_SOURCE) || _POSIX_C_SOURCE == 1 || \ defined(_XOPEN_SOURCE) || _POSIX_C_SOURCE == 2 || defined(_TANDEM_SOURCE) #ifndef _GUARDIAN_TARGET int kill (pid_t, int); /* not avail to Guardian */ #endif int sigaction (int, const struct sigaction *, struct sigaction *); int sigaddset (sigset_t *, int); int sigdelset (sigset_t *, int); int sigemptyset(sigset_t *); int sigfillset (sigset_t *); int sigismember(const sigset_t *, int); int sigpending (sigset_t *); int sigprocmask(int, const sigset_t *, sigset_t *); int sigsuspend (const sigset_t *); #if defined(__TANDEM) && _TANDEM_ARCH_ == 0 /* TNS OSS aliases */ #ifndef _GUARDIAN_TARGET #pragma function kill (unspecified) #endif #pragma function sigaction (unspecified) #pragma function sigaddset (unspecified) #pragma function sigdelset (unspecified) #pragma function sigemptyset (unspecified) #pragma function sigfillset (unspecified) #pragma function sigismember (unspecified) #pragma function sigpending (unspecified) #pragma function sigprocmask (unspecified) #pragma function sigsuspend (unspecified) #endif /* __TANDEM && _TANDEM_ARCH_ == 0 */ #endif /* _POSIX_SOURCE || ... || _XOPEN_SOURCE || _TANDEM_SOURCE */ #endif /* _TANDEM_ARCH_ != 0 || !_GUARDIAN_TARGET */ #ifdef REVERT_TO_OLDCALLS #undef REVERT_TO_OLDCALLS #pragma oldcalls #endif #ifdef __cplusplus } #endif #endif /* _SIGNAL defined */