13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* sys/signal.h */ 23551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 33551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#ifndef _SYS_SIGNAL_H 43551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define _SYS_SIGNAL_H 53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#ifdef __cplusplus 63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)extern "C" { 73551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif 83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 93551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "_ansi.h" 103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include <sys/features.h> 113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include <sys/types.h> 123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* #ifndef __STRICT_ANSI__*/ 143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* Cygwin defines it's own sigset_t in include/cygwin/signal.h */ 165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifndef __CYGWIN__ 173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)typedef unsigned long sigset_t; 185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif 193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if defined(__rtems__) || defined (__native_client__) 213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#if defined(_POSIX_REALTIME_SIGNALS) 233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* sigev_notify values 253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) NOTE: P1003.1c/D10, p. 34 adds SIGEV_THREAD. */ 263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGEV_NONE 1 /* No asynchronous notification shall be delivered */ 283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) /* when the event of interest occurs. */ 293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGEV_SIGNAL 2 /* A queued signal, with an application defined */ 303551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) /* value, shall be delivered when the event of */ 313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) /* interest occurs. */ 323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGEV_THREAD 3 /* A notification function shall be called to */ 333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) /* perform notification. */ 343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* Signal Generation and Delivery, P1003.1b-1993, p. 63 363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) NOTE: P1003.1c/D10, p. 34 adds sigev_notify_function and 373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) sigev_notify_attributes to the sigevent structure. */ 383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)union sigval { 403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) int sival_int; /* Integer signal value */ 413551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) void *sival_ptr; /* Pointer signal value */ 423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}; 433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)struct sigevent { 453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) int sigev_notify; /* Notification type */ 463551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) int sigev_signo; /* Signal number */ 473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) union sigval sigev_value; /* Signal value */ 483551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 493551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#if defined(_POSIX_THREADS) 503551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) void (*sigev_notify_function)( union sigval ); 513551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) /* Notification function */ 523551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) pthread_attr_t *sigev_notify_attributes; /* Notification Attributes */ 533551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif 543551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}; 553551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 563551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* Signal Actions, P1003.1b-1993, p. 64 */ 573551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* si_code values, p. 66 */ 583551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 593551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SI_USER 1 /* Sent by a user. kill(), abort(), etc */ 603551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SI_QUEUE 2 /* Sent by sigqueue() */ 613551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SI_TIMER 3 /* Sent by expiration of a timer_settime() timer */ 623551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SI_ASYNCIO 4 /* Indicates completion of asycnhronous IO */ 633551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SI_MESGQ 5 /* Indicates arrival of a message at an empty queue */ 643551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 653551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)typedef struct { 663551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) int si_signo; /* Signal number */ 673551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) int si_code; /* Cause of the signal */ 683551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) union sigval si_value; /* Signal value */ 693551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)} siginfo_t; 703551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif 713551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 723551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 */ 733551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 743551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SA_NOCLDSTOP 1 /* Do not generate SIGCHLD when children stop */ 753551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SA_SIGINFO 2 /* Invoke the signal catching function with */ 763551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) /* three arguments instead of one. */ 773551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 783551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* struct sigaction notes from POSIX: 793551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * 803551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * (1) Routines stored in sa_handler should take a single int as 813551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * their argument although the POSIX standard does not require this. 823551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * This is not longer true since at least POSIX.1-2008 833551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * (2) The fields sa_handler and sa_sigaction may overlap, and a conforming 843551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * application should not use both simultaneously. 853551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) */ 863551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 873551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)typedef void (*_sig_func_ptr)(int); 883551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 893551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)struct sigaction { 903551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) int sa_flags; /* Special flags to affect behavior of signal */ 913551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) sigset_t sa_mask; /* Additional set of signals to be blocked */ 923551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) /* during execution of signal-catching */ 933551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) /* function. */ 943551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) union { 953551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) _sig_func_ptr _handler; /* SIG_DFL, SIG_IGN, or pointer to a function */ 963551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#if defined(_POSIX_REALTIME_SIGNALS) 973551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) void (*_sigaction)( int, siginfo_t *, void * ); 983551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif 993551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) } _signal_handlers; 1003551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}; 1013551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1023551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define sa_handler _signal_handlers._handler 1033551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#if defined(_POSIX_REALTIME_SIGNALS) 1043551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define sa_sigaction _signal_handlers._sigaction 1053551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif 1063551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1073551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#elif defined(__CYGWIN__) 1083551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include <cygwin/signal.h> 1093551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#else 1103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SA_NOCLDSTOP 1 /* only value supported now for sa_flags */ 1113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)typedef void (*_sig_func_ptr)(int); 1133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)struct sigaction 1153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles){ 1163551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) _sig_func_ptr sa_handler; 1173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) sigset_t sa_mask; 1183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) int sa_flags; 1193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}; 1205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif /* defined(__rtems__) || defined(__native_client__) */ 1213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIG_SETMASK 0 /* set mask with sigprocmask() */ 1233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIG_BLOCK 1 /* set of signals to block */ 1243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIG_UNBLOCK 2 /* set of signals to, well, unblock */ 1253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* These depend upon the type of sigset_t, which right now 1273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) is always a long.. They're in the POSIX namespace, but 1283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) are not ANSI. */ 1293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define sigaddset(what,sig) (*(what) |= (1<<(sig)), 0) 1303551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define sigdelset(what,sig) (*(what) &= ~(1<<(sig)), 0) 1313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define sigemptyset(what) (*(what) = 0, 0) 1323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define sigfillset(what) (*(what) = ~(0), 0) 1333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define sigismember(what,sig) (((*(what)) & (1<<(sig))) != 0) 1343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(sigprocmask, (int how, const sigset_t *set, sigset_t *oset)); 1363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#if defined(_POSIX_THREADS) 1383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(pthread_sigmask, (int how, const sigset_t *set, sigset_t *oset)); 1393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif 1403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1413551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* protos for functions found in winsup sources for CYGWIN */ 1425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if defined(__CYGWIN__) || defined(__rtems__) || defined(__native_client__) 1433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#undef sigaddset 1443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#undef sigdelset 1453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#undef sigemptyset 1463551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#undef sigfillset 1473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#undef sigismember 1483551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _COMPILING_NEWLIB 1505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)int _EXFUN(_kill, (pid_t, int)); 1515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif 1523551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(kill, (pid_t, int)); 1533551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(killpg, (pid_t, int)); 1543551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(sigaction, (int, const struct sigaction *, struct sigaction *)); 1553551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(sigaddset, (sigset_t *, const int)); 1563551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(sigdelset, (sigset_t *, const int)); 1573551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(sigismember, (const sigset_t *, int)); 1583551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(sigfillset, (sigset_t *)); 1593551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(sigemptyset, (sigset_t *)); 1603551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(sigpending, (sigset_t *)); 1613551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(sigsuspend, (const sigset_t *)); 1623551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(sigpause, (int)); 1633551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if defined(_POSIX_THREADS) && !defined(__native_client__) 1653551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#ifdef __CYGWIN__ 1663551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# ifndef _CYGWIN_TYPES_H 1673551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# error You need the winsup sources or a cygwin installation to compile the cygwin version of newlib. 1683551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# endif 1693551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif 1703551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(pthread_kill, (pthread_t thread, int sig)); 1713551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif 1723551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1733551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#if defined(_POSIX_REALTIME_SIGNALS) 1743551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1753551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 1763551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) NOTE: P1003.1c/D10, p. 39 adds sigwait(). */ 1773551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1783551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(sigwaitinfo, (const sigset_t *set, siginfo_t *info)); 1793551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(sigtimedwait, 1803551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) (const sigset_t *set, siginfo_t *info, const struct timespec *timeout) 1813551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)); 1823551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(sigwait, (const sigset_t *set, int *sig)); 1833551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1843551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* 3.3.9 Queue a Signal to a Process, P1003.1b-1993, p. 78 */ 1853551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)int _EXFUN(sigqueue, (pid_t pid, int signo, const union sigval value)); 1863551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1873551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif /* defined(_POSIX_REALTIME_SIGNALS) */ 1883551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1893551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif /* defined(__CYGWIN__) || defined(__rtems__) */ 1903551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1913551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* #endif __STRICT_ANSI__ */ 1923551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1933551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#if defined(___AM29K__) 1943551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* These all need to be defined for ANSI C, but I don't think they are 1953551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) meaningful. */ 1963551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGABRT 1 1973551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGFPE 1 1983551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGILL 1 1993551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGINT 1 2003551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGSEGV 1 2013551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTERM 1 2023551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* These need to be defined for POSIX, and some others do too. */ 2033551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGHUP 1 2043551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGQUIT 1 2053551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define NSIG 2 2063551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#elif defined(__GO32__) 2073551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGINT 1 2083551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGKILL 2 2093551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGPIPE 3 2103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGFPE 4 2113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGHUP 5 2123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTERM 6 2133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGSEGV 7 2143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTSTP 8 2153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGQUIT 9 2163551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTRAP 10 2173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGILL 11 2183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGEMT 12 2193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGALRM 13 2203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGBUS 14 2213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGLOST 15 2223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGSTOP 16 2233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGABRT 17 2243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGUSR1 18 2253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGUSR2 19 2263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define NSIG 20 2273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#elif !defined(SIGTRAP) 2283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGHUP 1 /* hangup */ 2293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGINT 2 /* interrupt */ 2303551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGQUIT 3 /* quit */ 2313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGILL 4 /* illegal instruction (not reset when caught) */ 2323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTRAP 5 /* trace trap (not reset when caught) */ 2333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGIOT 6 /* IOT instruction */ 2343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGABRT 6 /* used by abort, replace SIGIOT in the future */ 2353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGEMT 7 /* EMT instruction */ 2363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGFPE 8 /* floating point exception */ 2373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGKILL 9 /* kill (cannot be caught or ignored) */ 2383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGBUS 10 /* bus error */ 2393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGSEGV 11 /* segmentation violation */ 2403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGSYS 12 /* bad argument to system call */ 2413551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGPIPE 13 /* write on a pipe with no one to read it */ 2423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGALRM 14 /* alarm clock */ 2433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTERM 15 /* software termination signal from kill */ 2443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 2453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#if defined(__rtems__) 2463551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGURG 16 /* urgent condition on IO channel */ 2473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGSTOP 17 /* sendable stop signal not from tty */ 2483551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTSTP 18 /* stop signal from tty */ 2493551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGCONT 19 /* continue a stopped process */ 2503551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGCHLD 20 /* to parent on child stop or exit */ 2513551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGCLD 20 /* System V name for SIGCHLD */ 2523551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTTIN 21 /* to readers pgrp upon background tty read */ 2533551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */ 2543551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGIO 23 /* input/output possible signal */ 2553551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGPOLL SIGIO /* System V name for SIGIO */ 2563551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGWINCH 24 /* window changed */ 2573551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGUSR1 25 /* user defined signal 1 */ 2583551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGUSR2 26 /* user defined signal 2 */ 2593551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 2603551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* Real-Time Signals Range, P1003.1b-1993, p. 61 2613551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) NOTE: By P1003.1b-1993, this should be at least RTSIG_MAX 2623551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) (which is a minimum of 8) signals. 2633551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) */ 2643551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGRTMIN 27 2653551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGRTMAX 31 2663551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define __SIGFIRSTNOTRT SIGHUP 2673551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define __SIGLASTNOTRT SIGUSR2 2683551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 2693551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define NSIG 32 /* signal 0 implied */ 2703551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 2713551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#elif defined(__svr4__) 2723551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* svr4 specifics. different signals above 15, and sigaction. */ 2733551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGUSR1 16 2743551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGUSR2 17 2753551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGCLD 18 2763551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGPWR 19 2773551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGWINCH 20 2783551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGPOLL 22 /* 20 for x.out binaries!!!! */ 2793551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGSTOP 23 /* sendable stop signal not from tty */ 2803551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTSTP 24 /* stop signal from tty */ 2813551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGCONT 25 /* continue a stopped process */ 2823551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTTIN 26 /* to readers pgrp upon background tty read */ 2833551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTTOU 27 /* like TTIN for output if (tp->t_local<OSTOP) */ 2843551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define NSIG 28 2853551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#else 2863551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGURG 16 /* urgent condition on IO channel */ 2873551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGSTOP 17 /* sendable stop signal not from tty */ 2883551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTSTP 18 /* stop signal from tty */ 2893551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGCONT 19 /* continue a stopped process */ 2903551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGCHLD 20 /* to parent on child stop or exit */ 2913551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGCLD 20 /* System V name for SIGCHLD */ 2923551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTTIN 21 /* to readers pgrp upon background tty read */ 2933551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */ 2943551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGIO 23 /* input/output possible signal */ 2953551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGPOLL SIGIO /* System V name for SIGIO */ 2963551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGXCPU 24 /* exceeded CPU time limit */ 2973551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGXFSZ 25 /* exceeded file size limit */ 2983551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGVTALRM 26 /* virtual time alarm */ 2993551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGPROF 27 /* profiling time alarm */ 3003551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGWINCH 28 /* window changed */ 3013551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGLOST 29 /* resource lost (eg, record-lock lost) */ 3023551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGUSR1 30 /* user defined signal 1 */ 3033551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define SIGUSR2 31 /* user defined signal 2 */ 3043551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define NSIG 32 /* signal 0 implied */ 3053551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif 3063551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif 3073551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 3083551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#ifdef __cplusplus 3093551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)} 3103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif 3113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 3123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#ifndef _SIGNAL_H_ 3133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* Some applications take advantage of the fact that <sys/signal.h> 3143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * and <signal.h> are equivalent in glibc. Allow for that here. */ 3153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include <signal.h> 3163551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif 3173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif /* _SYS_SIGNAL_H */ 318