1#include <linux/signal.h>
2
3#define SIGUNKNOWN 0
4#define MAXMAPPED_SIG 35
5#define MAXMAPPED_SIGNAME (MAXMAPPED_SIG + 1)
6#define SIGRT_BASE 128
7
8/* 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,
29#ifdef SIGSTKFLT
30 [SIGSTKFLT] = 16, /* -, 16, - */
31#endif
32 [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
55#if defined(SIGUNUSED) && \
56 defined(SIGLOST) && defined(SIGSYS) && SIGLOST != SIGSYS
57 [SIGUNUSED] = 34, /* -, 31, - */
58#endif
59};
60
61/* this table is ordered post sig_map[sig] mapping */
62static const char *const sig_names[MAXMAPPED_SIGNAME] = {
63 "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
102

source code of linux/security/apparmor/include/sig_names.h