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