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