1 /* Signal number constants. Generic template. 2 Copyright (C) 1991-2022 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 The GNU C Library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with the GNU C Library; if not, see 17 <https://www.gnu.org/licenses/>. */ 18 19 #ifndef _BITS_SIGNUM_GENERIC_H 20 #define _BITS_SIGNUM_GENERIC_H 1 21 22 #ifndef _SIGNAL_H 23 #error "Never include <bits/signum-generic.h> directly; use <signal.h> instead." 24 #endif 25 26 /* Fake signal functions. */ 27 28 #define SIG_ERR ((__sighandler_t) -1) /* Error return. */ 29 #define SIG_DFL ((__sighandler_t) 0) /* Default action. */ 30 #define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */ 31 32 #ifdef __USE_XOPEN 33 # define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */ 34 #endif 35 36 /* We define here all the signal names listed in POSIX (1003.1-2008); 37 as of 1003.1-2013, no additional signals have been added by POSIX. 38 We also define here signal names that historically exist in every 39 real-world POSIX variant (e.g. SIGWINCH). 40 41 Signals in the 1-15 range are defined with their historical numbers. 42 For other signals, we use the BSD numbers. 43 There are two unallocated signal numbers in the 1-31 range: 7 and 29. 44 Signal number 0 is reserved for use as kill(pid, 0), to test whether 45 a process exists without sending it a signal. */ 46 47 /* ISO C99 signals. */ 48 #define SIGINT 2 /* Interactive attention signal. */ 49 #define SIGILL 4 /* Illegal instruction. */ 50 #define SIGABRT 6 /* Abnormal termination. */ 51 #define SIGFPE 8 /* Erroneous arithmetic operation. */ 52 #define SIGSEGV 11 /* Invalid access to storage. */ 53 #define SIGTERM 15 /* Termination request. */ 54 55 /* Historical signals specified by POSIX. */ 56 #define SIGHUP 1 /* Hangup. */ 57 #define SIGQUIT 3 /* Quit. */ 58 #define SIGTRAP 5 /* Trace/breakpoint trap. */ 59 #define SIGKILL 9 /* Killed. */ 60 #define SIGPIPE 13 /* Broken pipe. */ 61 #define SIGALRM 14 /* Alarm clock. */ 62 63 /* Archaic names for compatibility. */ 64 #define SIGIO SIGPOLL /* I/O now possible (4.2 BSD). */ 65 #define SIGIOT SIGABRT /* IOT instruction, abort() on a PDP-11. */ 66 #define SIGCLD SIGCHLD /* Old System V name */ 67 68 /* Not all systems support real-time signals. bits/signum.h indicates 69 that they are supported by overriding __SIGRTMAX to a value greater 70 than __SIGRTMIN. These constants give the kernel-level hard limits, 71 but some real-time signals may be used internally by glibc. Do not 72 use these constants in application code; use SIGRTMIN and SIGRTMAX 73 (defined in signal.h) instead. */ 74 75 /* Include system specific bits. */ 76 #include <bits/signum-arch.h> 77 78 /* Biggest signal number + 1 (including real-time signals). */ 79 #define _NSIG (__SIGRTMAX + 1) 80 81 #endif /* bits/signum-generic.h. */ 82