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