• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /// Cross-platform signal numbers defined by the GDB Remote Serial Protocol.
2 ///
3 /// Transcribed from <https://github.com/bminor/binutils-gdb/blob/master/include/gdb/signals.def>
4 #[repr(u8)]
5 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6 #[allow(clippy::upper_case_acronyms)]
7 #[allow(non_camel_case_types)]
8 #[rustfmt::skip]
9 #[non_exhaustive]
10 pub enum Signal {
11     #[doc = "Signal 0 (shouldn't be used)"]    SIGZERO = 0,
12     #[doc = "Hangup"]                          SIGHUP = 1,
13     #[doc = "Interrupt"]                       SIGINT = 2,
14     #[doc = "Quit"]                            SIGQUIT = 3,
15     #[doc = "Illegal instruction"]             SIGILL = 4,
16     #[doc = "Trace/breakpoint trap"]           SIGTRAP = 5,
17     #[doc = "Aborted"]                         SIGABRT = 6,
18     #[doc = "Emulation trap"]                  SIGEMT = 7,
19     #[doc = "Arithmetic exception"]            SIGFPE = 8,
20     #[doc = "Killed"]                          SIGKILL = 9,
21     #[doc = "Bus error"]                       SIGBUS = 10,
22     #[doc = "Segmentation fault"]              SIGSEGV = 11,
23     #[doc = "Bad system call"]                 SIGSYS = 12,
24     #[doc = "Broken pipe"]                     SIGPIPE = 13,
25     #[doc = "Alarm clock"]                     SIGALRM = 14,
26     #[doc = "Terminated"]                      SIGTERM = 15,
27     #[doc = "Urgent I/O condition"]            SIGURG = 16,
28     #[doc = "Stopped (signal)"]                SIGSTOP = 17,
29     #[doc = "Stopped (user)"]                  SIGTSTP = 18,
30     #[doc = "Continued"]                       SIGCONT = 19,
31     #[doc = "Child status changed"]            SIGCHLD = 20,
32     #[doc = "Stopped (tty input)"]             SIGTTIN = 21,
33     #[doc = "Stopped (tty output)"]            SIGTTOU = 22,
34     #[doc = "I/O possible"]                    SIGIO = 23,
35     #[doc = "CPU time limit exceeded"]         SIGXCPU = 24,
36     #[doc = "File size limit exceeded"]        SIGXFSZ = 25,
37     #[doc = "Virtual timer expired"]           SIGVTALRM = 26,
38     #[doc = "Profiling timer expired"]         SIGPROF = 27,
39     #[doc = "Window size changed"]             SIGWINCH = 28,
40     #[doc = "Resource lost"]                   SIGLOST = 29,
41     #[doc = "User defined signal 1"]           SIGUSR1 = 30,
42     #[doc = "User defined signal 2"]           SIGUSR2 = 31,
43     #[doc = "Power fail/restart"]              SIGPWR = 32,
44     /* Similar to SIGIO.  Perhaps they should have the same number. */
45     #[doc = "Pollable event occurred"]         SIGPOLL = 33,
46     #[doc = "SIGWIND"]                         SIGWIND = 34,
47     #[doc = "SIGPHONE"]                        SIGPHONE = 35,
48     #[doc = "Process's LWPs are blocked"]      SIGWAITING = 36,
49     #[doc = "Signal LWP"]                      SIGLWP = 37,
50     #[doc = "Swap space dangerously low"]      SIGDANGER = 38,
51     #[doc = "Monitor mode granted"]            SIGGRANT = 39,
52     #[doc = "Need to relinquish monitor mode"] SIGRETRACT = 40,
53     #[doc = "Monitor mode data available"]     SIGMSG = 41,
54     #[doc = "Sound completed"]                 SIGSOUND = 42,
55     #[doc = "Secure attention"]                SIGSAK = 43,
56     #[doc = "SIGPRIO"]                         SIGPRIO = 44,
57     #[doc = "Real-time event 33"]              SIG33 = 45,
58     #[doc = "Real-time event 34"]              SIG34 = 46,
59     #[doc = "Real-time event 35"]              SIG35 = 47,
60     #[doc = "Real-time event 36"]              SIG36 = 48,
61     #[doc = "Real-time event 37"]              SIG37 = 49,
62     #[doc = "Real-time event 38"]              SIG38 = 50,
63     #[doc = "Real-time event 39"]              SIG39 = 51,
64     #[doc = "Real-time event 40"]              SIG40 = 52,
65     #[doc = "Real-time event 41"]              SIG41 = 53,
66     #[doc = "Real-time event 42"]              SIG42 = 54,
67     #[doc = "Real-time event 43"]              SIG43 = 55,
68     #[doc = "Real-time event 44"]              SIG44 = 56,
69     #[doc = "Real-time event 45"]              SIG45 = 57,
70     #[doc = "Real-time event 46"]              SIG46 = 58,
71     #[doc = "Real-time event 47"]              SIG47 = 59,
72     #[doc = "Real-time event 48"]              SIG48 = 60,
73     #[doc = "Real-time event 49"]              SIG49 = 61,
74     #[doc = "Real-time event 50"]              SIG50 = 62,
75     #[doc = "Real-time event 51"]              SIG51 = 63,
76     #[doc = "Real-time event 52"]              SIG52 = 64,
77     #[doc = "Real-time event 53"]              SIG53 = 65,
78     #[doc = "Real-time event 54"]              SIG54 = 66,
79     #[doc = "Real-time event 55"]              SIG55 = 67,
80     #[doc = "Real-time event 56"]              SIG56 = 68,
81     #[doc = "Real-time event 57"]              SIG57 = 69,
82     #[doc = "Real-time event 58"]              SIG58 = 70,
83     #[doc = "Real-time event 59"]              SIG59 = 71,
84     #[doc = "Real-time event 60"]              SIG60 = 72,
85     #[doc = "Real-time event 61"]              SIG61 = 73,
86     #[doc = "Real-time event 62"]              SIG62 = 74,
87     #[doc = "Real-time event 63"]              SIG63 = 75,
88     /* Used internally by Solaris threads.  See signal(5) on Solaris. */
89     #[doc = "LWP internal signal"]             SIGCANCEL = 76,
90     /* Yes, this pains me, too.  But LynxOS didn't have SIG32, and now
91     GNU/Linux does, and we can't disturb the numbering, since it's
92     part of the remote protocol.  Note that in some GDB's
93     GDB_SIGNAL_REALTIME_32 is number 76.  */
94     #[doc = "Real-time event 32"]              SIG32 = 77,
95     /* Yet another pain, IRIX 6 has SIG64. */
96     #[doc = "Real-time event 64"]              SIG64 = 78,
97     /* Yet another pain, GNU/Linux MIPS might go up to 128. */
98     #[doc = "Real-time event 65"]              SIG65 = 79,
99     #[doc = "Real-time event 66"]              SIG66 = 80,
100     #[doc = "Real-time event 67"]              SIG67 = 81,
101     #[doc = "Real-time event 68"]              SIG68 = 82,
102     #[doc = "Real-time event 69"]              SIG69 = 83,
103     #[doc = "Real-time event 70"]              SIG70 = 84,
104     #[doc = "Real-time event 71"]              SIG71 = 85,
105     #[doc = "Real-time event 72"]              SIG72 = 86,
106     #[doc = "Real-time event 73"]              SIG73 = 87,
107     #[doc = "Real-time event 74"]              SIG74 = 88,
108     #[doc = "Real-time event 75"]              SIG75 = 89,
109     #[doc = "Real-time event 76"]              SIG76 = 90,
110     #[doc = "Real-time event 77"]              SIG77 = 91,
111     #[doc = "Real-time event 78"]              SIG78 = 92,
112     #[doc = "Real-time event 79"]              SIG79 = 93,
113     #[doc = "Real-time event 80"]              SIG80 = 94,
114     #[doc = "Real-time event 81"]              SIG81 = 95,
115     #[doc = "Real-time event 82"]              SIG82 = 96,
116     #[doc = "Real-time event 83"]              SIG83 = 97,
117     #[doc = "Real-time event 84"]              SIG84 = 98,
118     #[doc = "Real-time event 85"]              SIG85 = 99,
119     #[doc = "Real-time event 86"]              SIG86 = 100,
120     #[doc = "Real-time event 87"]              SIG87 = 101,
121     #[doc = "Real-time event 88"]              SIG88 = 102,
122     #[doc = "Real-time event 89"]              SIG89 = 103,
123     #[doc = "Real-time event 90"]              SIG90 = 104,
124     #[doc = "Real-time event 91"]              SIG91 = 105,
125     #[doc = "Real-time event 92"]              SIG92 = 106,
126     #[doc = "Real-time event 93"]              SIG93 = 107,
127     #[doc = "Real-time event 94"]              SIG94 = 108,
128     #[doc = "Real-time event 95"]              SIG95 = 109,
129     #[doc = "Real-time event 96"]              SIG96 = 110,
130     #[doc = "Real-time event 97"]              SIG97 = 111,
131     #[doc = "Real-time event 98"]              SIG98 = 112,
132     #[doc = "Real-time event 99"]              SIG99 = 113,
133     #[doc = "Real-time event 100"]             SIG100 = 114,
134     #[doc = "Real-time event 101"]             SIG101 = 115,
135     #[doc = "Real-time event 102"]             SIG102 = 116,
136     #[doc = "Real-time event 103"]             SIG103 = 117,
137     #[doc = "Real-time event 104"]             SIG104 = 118,
138     #[doc = "Real-time event 105"]             SIG105 = 119,
139     #[doc = "Real-time event 106"]             SIG106 = 120,
140     #[doc = "Real-time event 107"]             SIG107 = 121,
141     #[doc = "Real-time event 108"]             SIG108 = 122,
142     #[doc = "Real-time event 109"]             SIG109 = 123,
143     #[doc = "Real-time event 110"]             SIG110 = 124,
144     #[doc = "Real-time event 111"]             SIG111 = 125,
145     #[doc = "Real-time event 112"]             SIG112 = 126,
146     #[doc = "Real-time event 113"]             SIG113 = 127,
147     #[doc = "Real-time event 114"]             SIG114 = 128,
148     #[doc = "Real-time event 115"]             SIG115 = 129,
149     #[doc = "Real-time event 116"]             SIG116 = 130,
150     #[doc = "Real-time event 117"]             SIG117 = 131,
151     #[doc = "Real-time event 118"]             SIG118 = 132,
152     #[doc = "Real-time event 119"]             SIG119 = 133,
153     #[doc = "Real-time event 120"]             SIG120 = 134,
154     #[doc = "Real-time event 121"]             SIG121 = 135,
155     #[doc = "Real-time event 122"]             SIG122 = 136,
156     #[doc = "Real-time event 123"]             SIG123 = 137,
157     #[doc = "Real-time event 124"]             SIG124 = 138,
158     #[doc = "Real-time event 125"]             SIG125 = 139,
159     #[doc = "Real-time event 126"]             SIG126 = 140,
160     #[doc = "Real-time event 127"]             SIG127 = 141,
161 
162     #[doc = "Information request"]             SIGINFO = 142,
163 
164     /* Some signal we don't know about. */
165     #[doc = "Unknown signal"]                  UNKNOWN = 143,
166 
167     /* Use whatever signal we use when one is not specifically specified
168     (for passing to proceed and so on).  */
169     #[doc = "Internal error: printing GDB_SIGNAL_DEFAULT"] INTERNAL_DEFAULT = 144,
170 
171     /* Mach exceptions.  In versions of GDB before 5.2, these were just before
172     GDB_SIGNAL_INFO if you were compiling on a Mach host (and missing
173     otherwise).  */
174     #[doc = "Could not access memory"]         EXC_BAD_ACCESS = 145,
175     #[doc = "Illegal instruction/operand"]     EXC_BAD_INSTRUCTION = 146,
176     #[doc = "Arithmetic exception"]            EXC_ARITHMETIC = 147,
177     #[doc = "Emulation instruction"]           EXC_EMULATION = 148,
178     #[doc = "Software generated exception"]    EXC_SOFTWARE = 149,
179     #[doc = "Breakpoint"]                      EXC_BREAKPOINT = 150,
180 
181     #[doc = "librt internal signal"]           SIGLIBRT = 151,
182 }
183 
184 impl core::fmt::Display for Signal {
fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result185     fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
186         #[rustfmt::skip]
187         let s = match self {
188             Signal::SIGZERO => "SIGZERO - Signal 0",
189             Signal::SIGHUP => "SIGHUP - Hangup",
190             Signal::SIGINT => "SIGINT - Interrupt",
191             Signal::SIGQUIT => "SIGQUIT - Quit",
192             Signal::SIGILL => "SIGILL - Illegal instruction",
193             Signal::SIGTRAP => "SIGTRAP - Trace/breakpoint trap",
194             Signal::SIGABRT => "SIGABRT - Aborted",
195             Signal::SIGEMT => "SIGEMT - Emulation trap",
196             Signal::SIGFPE => "SIGFPE - Arithmetic exception",
197             Signal::SIGKILL => "SIGKILL - Killed",
198             Signal::SIGBUS => "SIGBUS - Bus error",
199             Signal::SIGSEGV => "SIGSEGV - Segmentation fault",
200             Signal::SIGSYS => "SIGSYS - Bad system call",
201             Signal::SIGPIPE => "SIGPIPE - Broken pipe",
202             Signal::SIGALRM => "SIGALRM - Alarm clock",
203             Signal::SIGTERM => "SIGTERM - Terminated",
204             Signal::SIGURG => "SIGURG - Urgent I/O condition",
205             Signal::SIGSTOP => "SIGSTOP - Stopped (signal)",
206             Signal::SIGTSTP => "SIGTSTP - Stopped (user)",
207             Signal::SIGCONT => "SIGCONT - Continued",
208             Signal::SIGCHLD => "SIGCHLD - Child status changed",
209             Signal::SIGTTIN => "SIGTTIN - Stopped (tty input)",
210             Signal::SIGTTOU => "SIGTTOU - Stopped (tty output)",
211             Signal::SIGIO => "SIGIO - I/O possible",
212             Signal::SIGXCPU => "SIGXCPU - CPU time limit exceeded",
213             Signal::SIGXFSZ => "SIGXFSZ - File size limit exceeded",
214             Signal::SIGVTALRM => "SIGVTALRM - Virtual timer expired",
215             Signal::SIGPROF => "SIGPROF - Profiling timer expired",
216             Signal::SIGWINCH => "SIGWINCH - Window size changed",
217             Signal::SIGLOST => "SIGLOST - Resource lost",
218             Signal::SIGUSR1 => "SIGUSR1 - User defined signal 1",
219             Signal::SIGUSR2 => "SIGUSR2 - User defined signal 2",
220             Signal::SIGPWR => "SIGPWR - Power fail/restart",
221             Signal::SIGPOLL => "SIGPOLL - Pollable event occurred",
222             Signal::SIGWIND => "SIGWIND - SIGWIND",
223             Signal::SIGPHONE => "SIGPHONE - SIGPHONE",
224             Signal::SIGWAITING => "SIGWAITING - Process's LWPs are blocked",
225             Signal::SIGLWP => "SIGLWP - Signal LWP",
226             Signal::SIGDANGER => "SIGDANGER - Swap space dangerously low",
227             Signal::SIGGRANT => "SIGGRANT - Monitor mode granted",
228             Signal::SIGRETRACT => "SIGRETRACT - Need to relinquish monitor mode",
229             Signal::SIGMSG => "SIGMSG - Monitor mode data available",
230             Signal::SIGSOUND => "SIGSOUND - Sound completed",
231             Signal::SIGSAK => "SIGSAK - Secure attention",
232             Signal::SIGPRIO => "SIGPRIO - SIGPRIO",
233             Signal::SIG33 => "SIG33 - Real-time event 33",
234             Signal::SIG34 => "SIG34 - Real-time event 34",
235             Signal::SIG35 => "SIG35 - Real-time event 35",
236             Signal::SIG36 => "SIG36 - Real-time event 36",
237             Signal::SIG37 => "SIG37 - Real-time event 37",
238             Signal::SIG38 => "SIG38 - Real-time event 38",
239             Signal::SIG39 => "SIG39 - Real-time event 39",
240             Signal::SIG40 => "SIG40 - Real-time event 40",
241             Signal::SIG41 => "SIG41 - Real-time event 41",
242             Signal::SIG42 => "SIG42 - Real-time event 42",
243             Signal::SIG43 => "SIG43 - Real-time event 43",
244             Signal::SIG44 => "SIG44 - Real-time event 44",
245             Signal::SIG45 => "SIG45 - Real-time event 45",
246             Signal::SIG46 => "SIG46 - Real-time event 46",
247             Signal::SIG47 => "SIG47 - Real-time event 47",
248             Signal::SIG48 => "SIG48 - Real-time event 48",
249             Signal::SIG49 => "SIG49 - Real-time event 49",
250             Signal::SIG50 => "SIG50 - Real-time event 50",
251             Signal::SIG51 => "SIG51 - Real-time event 51",
252             Signal::SIG52 => "SIG52 - Real-time event 52",
253             Signal::SIG53 => "SIG53 - Real-time event 53",
254             Signal::SIG54 => "SIG54 - Real-time event 54",
255             Signal::SIG55 => "SIG55 - Real-time event 55",
256             Signal::SIG56 => "SIG56 - Real-time event 56",
257             Signal::SIG57 => "SIG57 - Real-time event 57",
258             Signal::SIG58 => "SIG58 - Real-time event 58",
259             Signal::SIG59 => "SIG59 - Real-time event 59",
260             Signal::SIG60 => "SIG60 - Real-time event 60",
261             Signal::SIG61 => "SIG61 - Real-time event 61",
262             Signal::SIG62 => "SIG62 - Real-time event 62",
263             Signal::SIG63 => "SIG63 - Real-time event 63",
264             Signal::SIGCANCEL => "SIGCANCEL - LWP internal signal",
265             Signal::SIG32 => "SIG32 - Real-time event 32",
266             Signal::SIG64 => "SIG64 - Real-time event 64",
267             Signal::SIG65 => "SIG65 - Real-time event 65",
268             Signal::SIG66 => "SIG66 - Real-time event 66",
269             Signal::SIG67 => "SIG67 - Real-time event 67",
270             Signal::SIG68 => "SIG68 - Real-time event 68",
271             Signal::SIG69 => "SIG69 - Real-time event 69",
272             Signal::SIG70 => "SIG70 - Real-time event 70",
273             Signal::SIG71 => "SIG71 - Real-time event 71",
274             Signal::SIG72 => "SIG72 - Real-time event 72",
275             Signal::SIG73 => "SIG73 - Real-time event 73",
276             Signal::SIG74 => "SIG74 - Real-time event 74",
277             Signal::SIG75 => "SIG75 - Real-time event 75",
278             Signal::SIG76 => "SIG76 - Real-time event 76",
279             Signal::SIG77 => "SIG77 - Real-time event 77",
280             Signal::SIG78 => "SIG78 - Real-time event 78",
281             Signal::SIG79 => "SIG79 - Real-time event 79",
282             Signal::SIG80 => "SIG80 - Real-time event 80",
283             Signal::SIG81 => "SIG81 - Real-time event 81",
284             Signal::SIG82 => "SIG82 - Real-time event 82",
285             Signal::SIG83 => "SIG83 - Real-time event 83",
286             Signal::SIG84 => "SIG84 - Real-time event 84",
287             Signal::SIG85 => "SIG85 - Real-time event 85",
288             Signal::SIG86 => "SIG86 - Real-time event 86",
289             Signal::SIG87 => "SIG87 - Real-time event 87",
290             Signal::SIG88 => "SIG88 - Real-time event 88",
291             Signal::SIG89 => "SIG89 - Real-time event 89",
292             Signal::SIG90 => "SIG90 - Real-time event 90",
293             Signal::SIG91 => "SIG91 - Real-time event 91",
294             Signal::SIG92 => "SIG92 - Real-time event 92",
295             Signal::SIG93 => "SIG93 - Real-time event 93",
296             Signal::SIG94 => "SIG94 - Real-time event 94",
297             Signal::SIG95 => "SIG95 - Real-time event 95",
298             Signal::SIG96 => "SIG96 - Real-time event 96",
299             Signal::SIG97 => "SIG97 - Real-time event 97",
300             Signal::SIG98 => "SIG98 - Real-time event 98",
301             Signal::SIG99 => "SIG99 - Real-time event 99",
302             Signal::SIG100 => "SIG100 - Real-time event 100",
303             Signal::SIG101 => "SIG101 - Real-time event 101",
304             Signal::SIG102 => "SIG102 - Real-time event 102",
305             Signal::SIG103 => "SIG103 - Real-time event 103",
306             Signal::SIG104 => "SIG104 - Real-time event 104",
307             Signal::SIG105 => "SIG105 - Real-time event 105",
308             Signal::SIG106 => "SIG106 - Real-time event 106",
309             Signal::SIG107 => "SIG107 - Real-time event 107",
310             Signal::SIG108 => "SIG108 - Real-time event 108",
311             Signal::SIG109 => "SIG109 - Real-time event 109",
312             Signal::SIG110 => "SIG110 - Real-time event 110",
313             Signal::SIG111 => "SIG111 - Real-time event 111",
314             Signal::SIG112 => "SIG112 - Real-time event 112",
315             Signal::SIG113 => "SIG113 - Real-time event 113",
316             Signal::SIG114 => "SIG114 - Real-time event 114",
317             Signal::SIG115 => "SIG115 - Real-time event 115",
318             Signal::SIG116 => "SIG116 - Real-time event 116",
319             Signal::SIG117 => "SIG117 - Real-time event 117",
320             Signal::SIG118 => "SIG118 - Real-time event 118",
321             Signal::SIG119 => "SIG119 - Real-time event 119",
322             Signal::SIG120 => "SIG120 - Real-time event 120",
323             Signal::SIG121 => "SIG121 - Real-time event 121",
324             Signal::SIG122 => "SIG122 - Real-time event 122",
325             Signal::SIG123 => "SIG123 - Real-time event 123",
326             Signal::SIG124 => "SIG124 - Real-time event 124",
327             Signal::SIG125 => "SIG125 - Real-time event 125",
328             Signal::SIG126 => "SIG126 - Real-time event 126",
329             Signal::SIG127 => "SIG127 - Real-time event 127",
330             Signal::SIGINFO => "SIGINFO - Information request",
331             Signal::UNKNOWN => "UNKNOWN - Unknown signal",
332             Signal::INTERNAL_DEFAULT => "INTERNAL_DEFAULT - Internal error: printing GDB_SIGNAL_DEFAULT",
333             Signal::EXC_BAD_ACCESS => "EXC_BAD_ACCESS - Could not access memory",
334             Signal::EXC_BAD_INSTRUCTION => "EXC_BAD_INSTRUCTION - Illegal instruction/operand",
335             Signal::EXC_ARITHMETIC => "EXC_ARITHMETIC - Arithmetic exception",
336             Signal::EXC_EMULATION => "EXC_EMULATION - Emulation instruction",
337             Signal::EXC_SOFTWARE => "EXC_SOFTWARE - Software generated exception",
338             Signal::EXC_BREAKPOINT => "EXC_BREAKPOINT - Breakpoint",
339             Signal::SIGLIBRT => "SIGLIBRT - librt internal signal",
340         };
341 
342         write!(f, "{}", s)
343     }
344 }
345 
346 impl Signal {
347     #[cfg(not(feature = "paranoid_unsafe"))]
from_protocol_u8(val: u8) -> Signal348     pub(crate) fn from_protocol_u8(val: u8) -> Signal {
349         if val <= 151 {
350             // SAFETY: Signal is repr(u8), and `val` was confirmed to fall in valid range
351             unsafe { core::mem::transmute(val) }
352         } else {
353             Signal::UNKNOWN
354         }
355     }
356 
357     #[cfg(feature = "paranoid_unsafe")]
from_protocol_u8(val: u8) -> Signal358     pub(crate) fn from_protocol_u8(val: u8) -> Signal {
359         match val {
360             0 => Signal::SIGZERO,
361             1 => Signal::SIGHUP,
362             2 => Signal::SIGINT,
363             3 => Signal::SIGQUIT,
364             4 => Signal::SIGILL,
365             5 => Signal::SIGTRAP,
366             6 => Signal::SIGABRT,
367             7 => Signal::SIGEMT,
368             8 => Signal::SIGFPE,
369             9 => Signal::SIGKILL,
370             10 => Signal::SIGBUS,
371             11 => Signal::SIGSEGV,
372             12 => Signal::SIGSYS,
373             13 => Signal::SIGPIPE,
374             14 => Signal::SIGALRM,
375             15 => Signal::SIGTERM,
376             16 => Signal::SIGURG,
377             17 => Signal::SIGSTOP,
378             18 => Signal::SIGTSTP,
379             19 => Signal::SIGCONT,
380             20 => Signal::SIGCHLD,
381             21 => Signal::SIGTTIN,
382             22 => Signal::SIGTTOU,
383             23 => Signal::SIGIO,
384             24 => Signal::SIGXCPU,
385             25 => Signal::SIGXFSZ,
386             26 => Signal::SIGVTALRM,
387             27 => Signal::SIGPROF,
388             28 => Signal::SIGWINCH,
389             29 => Signal::SIGLOST,
390             30 => Signal::SIGUSR1,
391             31 => Signal::SIGUSR2,
392             32 => Signal::SIGPWR,
393             33 => Signal::SIGPOLL,
394             34 => Signal::SIGWIND,
395             35 => Signal::SIGPHONE,
396             36 => Signal::SIGWAITING,
397             37 => Signal::SIGLWP,
398             38 => Signal::SIGDANGER,
399             39 => Signal::SIGGRANT,
400             40 => Signal::SIGRETRACT,
401             41 => Signal::SIGMSG,
402             42 => Signal::SIGSOUND,
403             43 => Signal::SIGSAK,
404             44 => Signal::SIGPRIO,
405             45 => Signal::SIG33,
406             46 => Signal::SIG34,
407             47 => Signal::SIG35,
408             48 => Signal::SIG36,
409             49 => Signal::SIG37,
410             50 => Signal::SIG38,
411             51 => Signal::SIG39,
412             52 => Signal::SIG40,
413             53 => Signal::SIG41,
414             54 => Signal::SIG42,
415             55 => Signal::SIG43,
416             56 => Signal::SIG44,
417             57 => Signal::SIG45,
418             58 => Signal::SIG46,
419             59 => Signal::SIG47,
420             60 => Signal::SIG48,
421             61 => Signal::SIG49,
422             62 => Signal::SIG50,
423             63 => Signal::SIG51,
424             64 => Signal::SIG52,
425             65 => Signal::SIG53,
426             66 => Signal::SIG54,
427             67 => Signal::SIG55,
428             68 => Signal::SIG56,
429             69 => Signal::SIG57,
430             70 => Signal::SIG58,
431             71 => Signal::SIG59,
432             72 => Signal::SIG60,
433             73 => Signal::SIG61,
434             74 => Signal::SIG62,
435             75 => Signal::SIG63,
436             76 => Signal::SIGCANCEL,
437             77 => Signal::SIG32,
438             78 => Signal::SIG64,
439             79 => Signal::SIG65,
440             80 => Signal::SIG66,
441             81 => Signal::SIG67,
442             82 => Signal::SIG68,
443             83 => Signal::SIG69,
444             84 => Signal::SIG70,
445             85 => Signal::SIG71,
446             86 => Signal::SIG72,
447             87 => Signal::SIG73,
448             88 => Signal::SIG74,
449             89 => Signal::SIG75,
450             90 => Signal::SIG76,
451             91 => Signal::SIG77,
452             92 => Signal::SIG78,
453             93 => Signal::SIG79,
454             94 => Signal::SIG80,
455             95 => Signal::SIG81,
456             96 => Signal::SIG82,
457             97 => Signal::SIG83,
458             98 => Signal::SIG84,
459             99 => Signal::SIG85,
460             100 => Signal::SIG86,
461             101 => Signal::SIG87,
462             102 => Signal::SIG88,
463             103 => Signal::SIG89,
464             104 => Signal::SIG90,
465             105 => Signal::SIG91,
466             106 => Signal::SIG92,
467             107 => Signal::SIG93,
468             108 => Signal::SIG94,
469             109 => Signal::SIG95,
470             110 => Signal::SIG96,
471             111 => Signal::SIG97,
472             112 => Signal::SIG98,
473             113 => Signal::SIG99,
474             114 => Signal::SIG100,
475             115 => Signal::SIG101,
476             116 => Signal::SIG102,
477             117 => Signal::SIG103,
478             118 => Signal::SIG104,
479             119 => Signal::SIG105,
480             120 => Signal::SIG106,
481             121 => Signal::SIG107,
482             122 => Signal::SIG108,
483             123 => Signal::SIG109,
484             124 => Signal::SIG110,
485             125 => Signal::SIG111,
486             126 => Signal::SIG112,
487             127 => Signal::SIG113,
488             128 => Signal::SIG114,
489             129 => Signal::SIG115,
490             130 => Signal::SIG116,
491             131 => Signal::SIG117,
492             132 => Signal::SIG118,
493             133 => Signal::SIG119,
494             134 => Signal::SIG120,
495             135 => Signal::SIG121,
496             136 => Signal::SIG122,
497             137 => Signal::SIG123,
498             138 => Signal::SIG124,
499             139 => Signal::SIG125,
500             140 => Signal::SIG126,
501             141 => Signal::SIG127,
502             142 => Signal::SIGINFO,
503             143 => Signal::UNKNOWN,
504             144 => Signal::INTERNAL_DEFAULT,
505             145 => Signal::EXC_BAD_ACCESS,
506             146 => Signal::EXC_BAD_INSTRUCTION,
507             147 => Signal::EXC_ARITHMETIC,
508             148 => Signal::EXC_EMULATION,
509             149 => Signal::EXC_SOFTWARE,
510             150 => Signal::EXC_BREAKPOINT,
511             151 => Signal::SIGLIBRT,
512 
513             _ => Signal::UNKNOWN,
514         }
515     }
516 }
517