1use num_derive::FromPrimitive;
2
3#[repr(u8)]
4#[derive(FromPrimitive)]
5#[allow(missing_docs)]
6pub enum Signal {
9 ZERO = 0,
10 SIGHUP = 1,
11 SIGINT = 2,
12 SIGQUIT = 3,
13 SIGILL = 4,
14 SIGTRAP = 5,
15 SIGABRT = 6,
16 SIGEMT = 7,
17 SIGFPE = 8,
18 SIGKILL = 9,
19 SIGBUS = 10,
20 SIGSEGV = 11,
21 SIGSYS = 12,
22 SIGPIPE = 13,
23 SIGALRM = 14,
24 SIGTERM = 15,
25 SIGURG = 16,
26 SIGSTOP = 17,
27 SIGTSTP = 18,
28 SIGCONT = 19,
29 SIGCHLD = 20,
30 SIGTTIN = 21,
31 SIGTTOU = 22,
32 SIGIO = 23,
33 SIGXCPU = 24,
34 SIGXFSZ = 25,
35 SIGVTALRM = 26,
36 SIGPROF = 27,
37 SIGWINCH = 28,
38 SIGLOST = 29,
39 SIGUSR1 = 30,
40 SIGUSR2 = 31,
41 SIGPWR = 32,
42 SIGPOLL = 33,
43 SIGWIND = 34,
44 SIGPHONE = 35,
45 SIGWAITING = 36,
46 SIGLWP = 37,
47 SIGDANGER = 38,
48 SIGGRANT = 39,
49 SIGRETRACT = 40,
50 SIGMSG = 41,
51 SIGSOUND = 42,
52 SIGSAK = 43,
53 SIGPRIO = 44,
54 SIG33 = 45,
55 SIG34 = 46,
56 SIG35 = 47,
57 SIG36 = 48,
58 SIG37 = 49,
59 SIG38 = 50,
60 SIG39 = 51,
61 SIG40 = 52,
62 SIG41 = 53,
63 SIG42 = 54,
64 SIG43 = 55,
65 SIG44 = 56,
66 SIG45 = 57,
67 SIG46 = 58,
68 SIG47 = 59,
69 SIG48 = 60,
70 SIG49 = 61,
71 SIG50 = 62,
72 SIG51 = 63,
73 SIG52 = 64,
74 SIG53 = 65,
75 SIG54 = 66,
76 SIG55 = 67,
77 SIG56 = 68,
78 SIG57 = 69,
79 SIG58 = 70,
80 SIG59 = 71,
81 SIG60 = 72,
82 SIG61 = 73,
83 SIG62 = 74,
84 SIG63 = 75,
85 SIGCANCEL = 76,
86 SIG32 = 77,
87 SIG64 = 78,
88 SIG65 = 79,
89 SIG66 = 80,
90 SIG67 = 81,
91 SIG68 = 82,
92 SIG69 = 83,
93 SIG70 = 84,
94 SIG71 = 85,
95 SIG72 = 86,
96 SIG73 = 87,
97 SIG74 = 88,
98 SIG75 = 89,
99 SIG76 = 90,
100 SIG77 = 91,
101 SIG78 = 92,
102 SIG79 = 93,
103 SIG80 = 94,
104 SIG81 = 95,
105 SIG82 = 96,
106 SIG83 = 97,
107 SIG84 = 98,
108 SIG85 = 99,
109 SIG86 = 100,
110 SIG87 = 101,
111 SIG88 = 102,
112 SIG89 = 103,
113 SIG90 = 104,
114 SIG91 = 105,
115 SIG92 = 106,
116 SIG93 = 107,
117 SIG94 = 108,
118 SIG95 = 109,
119 SIG96 = 110,
120 SIG97 = 111,
121 SIG98 = 112,
122 SIG99 = 113,
123 SIG100 = 114,
124 SIG101 = 115,
125 SIG102 = 116,
126 SIG103 = 117,
127 SIG104 = 118,
128 SIG105 = 119,
129 SIG106 = 120,
130 SIG107 = 121,
131 SIG108 = 122,
132 SIG109 = 123,
133 SIG110 = 124,
134 SIG111 = 125,
135 SIG112 = 126,
136 SIG113 = 127,
137 SIG114 = 128,
138 SIG115 = 129,
139 SIG116 = 130,
140 SIG117 = 131,
141 SIG118 = 132,
142 SIG119 = 133,
143 SIG120 = 134,
144 SIG121 = 135,
145 SIG122 = 136,
146 SIG123 = 137,
147 SIG124 = 138,
148 SIG125 = 139,
149 SIG126 = 140,
150 SIG127 = 141,
151}
152
153impl Signal {
154 #[cfg(feature = "libc")]
156 pub fn from_libc(sig: libc::c_int) -> Option<Self> {
157 match sig {
158 libc::SIGHUP => Some(Self::SIGHUP),
159 libc::SIGINT => Some(Self::SIGINT),
160 libc::SIGQUIT => Some(Self::SIGQUIT),
161 libc::SIGILL => Some(Self::SIGILL),
162 libc::SIGTRAP => Some(Self::SIGTRAP),
163 libc::SIGABRT => Some(Self::SIGABRT),
164 libc::SIGFPE => Some(Self::SIGFPE),
165 libc::SIGKILL => Some(Self::SIGKILL),
166 libc::SIGBUS => Some(Self::SIGBUS),
167 libc::SIGSEGV => Some(Self::SIGSEGV),
168 libc::SIGSYS => Some(Self::SIGSYS),
169 libc::SIGPIPE => Some(Self::SIGPIPE),
170 libc::SIGALRM => Some(Self::SIGALRM),
171 libc::SIGTERM => Some(Self::SIGTERM),
172 libc::SIGURG => Some(Self::SIGURG),
173 libc::SIGSTOP => Some(Self::SIGSTOP),
174 libc::SIGTSTP => Some(Self::SIGTSTP),
175 libc::SIGCONT => Some(Self::SIGCONT),
176 libc::SIGCHLD => Some(Self::SIGCHLD),
177 libc::SIGTTIN => Some(Self::SIGTTIN),
178 libc::SIGTTOU => Some(Self::SIGTTOU),
179 libc::SIGIO => Some(Self::SIGIO),
180 libc::SIGXCPU => Some(Self::SIGXCPU),
181 libc::SIGXFSZ => Some(Self::SIGXFSZ),
182 libc::SIGVTALRM => Some(Self::SIGVTALRM),
183 libc::SIGPROF => Some(Self::SIGPROF),
184 libc::SIGWINCH => Some(Self::SIGWINCH),
185 libc::SIGUSR1 => Some(Self::SIGUSR1),
186 libc::SIGUSR2 => Some(Self::SIGUSR2),
187 libc::SIGPWR => Some(Self::SIGPWR),
188 _ => None,
190 }
191 }
192 #[cfg(feature = "libc")]
194 pub fn into_libc(self) -> Option<libc::c_int> {
195 match self {
196 Self::SIGHUP => Some(libc::SIGHUP),
197 Self::SIGINT => Some(libc::SIGINT),
198 Self::SIGQUIT => Some(libc::SIGQUIT),
199 Self::SIGILL => Some(libc::SIGILL),
200 Self::SIGTRAP => Some(libc::SIGTRAP),
201 Self::SIGABRT => Some(libc::SIGABRT),
202 Self::SIGFPE => Some(libc::SIGFPE),
203 Self::SIGKILL => Some(libc::SIGKILL),
204 Self::SIGBUS => Some(libc::SIGBUS),
205 Self::SIGSEGV => Some(libc::SIGSEGV),
206 Self::SIGSYS => Some(libc::SIGSYS),
207 Self::SIGPIPE => Some(libc::SIGPIPE),
208 Self::SIGALRM => Some(libc::SIGALRM),
209 Self::SIGTERM => Some(libc::SIGTERM),
210 Self::SIGURG => Some(libc::SIGURG),
211 Self::SIGSTOP => Some(libc::SIGSTOP),
212 Self::SIGTSTP => Some(libc::SIGTSTP),
213 Self::SIGCONT => Some(libc::SIGCONT),
214 Self::SIGCHLD => Some(libc::SIGCHLD),
215 Self::SIGTTIN => Some(libc::SIGTTIN),
216 Self::SIGTTOU => Some(libc::SIGTTOU),
217 Self::SIGIO => Some(libc::SIGIO),
218 Self::SIGXCPU => Some(libc::SIGXCPU),
219 Self::SIGXFSZ => Some(libc::SIGXFSZ),
220 Self::SIGVTALRM => Some(libc::SIGVTALRM),
221 Self::SIGPROF => Some(libc::SIGPROF),
222 Self::SIGWINCH => Some(libc::SIGWINCH),
223 Self::SIGUSR1 => Some(libc::SIGUSR1),
224 Self::SIGUSR2 => Some(libc::SIGUSR2),
225 Self::SIGPWR => Some(libc::SIGPWR),
226 _ => None,
228 }
229 }
230}