blob: cbf7a997ed8412797282be480a15339ee431d997 [file] [log] [blame]
John Johansencd1dbf72017-07-18 22:56:22 -07001#include <linux/signal.h>
2
3#define SIGUNKNOWN 0
4#define MAXMAPPED_SIG 35
John Johansen98cf5bb2018-02-01 11:24:10 +01005#define MAXMAPPED_SIGNAME (MAXMAPPED_SIG + 1)
John Johansen3acfd5f2018-02-01 12:32:02 +01006#define SIGRT_BASE 128
John Johansen98cf5bb2018-02-01 11:24:10 +01007
John Johansencd1dbf72017-07-18 22:56:22 -07008/* provide a mapping of arch signal to internal signal # for mediation
9 * those that are always an alias SIGCLD for SIGCLHD and SIGPOLL for SIGIO
10 * map to the same entry those that may/or may not get a separate entry
11 */
12static const int sig_map[MAXMAPPED_SIG] = {
13 [0] = MAXMAPPED_SIG, /* existence test */
14 [SIGHUP] = 1,
15 [SIGINT] = 2,
16 [SIGQUIT] = 3,
17 [SIGILL] = 4,
18 [SIGTRAP] = 5, /* -, 5, - */
19 [SIGABRT] = 6, /* SIGIOT: -, 6, - */
20 [SIGBUS] = 7, /* 10, 7, 10 */
21 [SIGFPE] = 8,
22 [SIGKILL] = 9,
23 [SIGUSR1] = 10, /* 30, 10, 16 */
24 [SIGSEGV] = 11,
25 [SIGUSR2] = 12, /* 31, 12, 17 */
26 [SIGPIPE] = 13,
27 [SIGALRM] = 14,
28 [SIGTERM] = 15,
John Johansenb1545db2017-08-23 12:10:39 -070029#ifdef SIGSTKFLT
John Johansencd1dbf72017-07-18 22:56:22 -070030 [SIGSTKFLT] = 16, /* -, 16, - */
John Johansenb1545db2017-08-23 12:10:39 -070031#endif
John Johansencd1dbf72017-07-18 22:56:22 -070032 [SIGCHLD] = 17, /* 20, 17, 18. SIGCHLD -, -, 18 */
33 [SIGCONT] = 18, /* 19, 18, 25 */
34 [SIGSTOP] = 19, /* 17, 19, 23 */
35 [SIGTSTP] = 20, /* 18, 20, 24 */
36 [SIGTTIN] = 21, /* 21, 21, 26 */
37 [SIGTTOU] = 22, /* 22, 22, 27 */
38 [SIGURG] = 23, /* 16, 23, 21 */
39 [SIGXCPU] = 24, /* 24, 24, 30 */
40 [SIGXFSZ] = 25, /* 25, 25, 31 */
41 [SIGVTALRM] = 26, /* 26, 26, 28 */
42 [SIGPROF] = 27, /* 27, 27, 29 */
43 [SIGWINCH] = 28, /* 28, 28, 20 */
44 [SIGIO] = 29, /* SIGPOLL: 23, 29, 22 */
45 [SIGPWR] = 30, /* 29, 30, 19. SIGINFO 29, -, - */
46#ifdef SIGSYS
47 [SIGSYS] = 31, /* 12, 31, 12. often SIG LOST/UNUSED */
48#endif
49#ifdef SIGEMT
50 [SIGEMT] = 32, /* 7, - , 7 */
51#endif
52#if defined(SIGLOST) && SIGPWR != SIGLOST /* sparc */
53 [SIGLOST] = 33, /* unused on Linux */
54#endif
John Johansenb1545db2017-08-23 12:10:39 -070055#if defined(SIGUNUSED) && \
56 defined(SIGLOST) && defined(SIGSYS) && SIGLOST != SIGSYS
John Johansencd1dbf72017-07-18 22:56:22 -070057 [SIGUNUSED] = 34, /* -, 31, - */
58#endif
59};
60
61/* this table is ordered post sig_map[sig] mapping */
John Johansen98cf5bb2018-02-01 11:24:10 +010062static const char *const sig_names[MAXMAPPED_SIGNAME] = {
John Johansencd1dbf72017-07-18 22:56:22 -070063 "unknown",
64 "hup",
65 "int",
66 "quit",
67 "ill",
68 "trap",
69 "abrt",
70 "bus",
71 "fpe",
72 "kill",
73 "usr1",
74 "segv",
75 "usr2",
76 "pipe",
77 "alrm",
78 "term",
79 "stkflt",
80 "chld",
81 "cont",
82 "stop",
83 "stp",
84 "ttin",
85 "ttou",
86 "urg",
87 "xcpu",
88 "xfsz",
89 "vtalrm",
90 "prof",
91 "winch",
92 "io",
93 "pwr",
94 "sys",
95 "emt",
96 "lost",
97 "unused",
98
99 "exists", /* always last existence test mapped to MAXMAPPED_SIG */
100};
101