Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | | - |
15 | | - |
16 | | - |
17 | | - |
18 | | - |
19 | | - |
20 | #include <config.h> | - |
21 | | - |
22 | #include <limits.h> | - |
23 | #include <signal.h> | - |
24 | #include <stdlib.h> | - |
25 | #include <stdio.h> | - |
26 | #include <string.h> | - |
27 | | - |
28 | #include "sig2str.h" | - |
29 | | - |
30 | #ifndef SIGRTMIN | - |
31 | # define SIGRTMIN 0 | - |
32 | # undef SIGRTMAX | - |
33 | #endif | - |
34 | #ifndef SIGRTMAX | - |
35 | # define SIGRTMAX (SIGRTMIN - 1) | - |
36 | #endif | - |
37 | | - |
38 | #define NUMNAME(name) { SIG##name, #name } | - |
39 | | - |
40 | | - |
41 | static struct numname { int num; char const name[8]; } numname_table[] = | - |
42 | { | - |
43 | | - |
44 | | - |
45 | #ifdef SIGHUP | - |
46 | NUMNAME (HUP), | - |
47 | #endif | - |
48 | #ifdef SIGINT | - |
49 | NUMNAME (INT), | - |
50 | #endif | - |
51 | #ifdef SIGQUIT | - |
52 | NUMNAME (QUIT), | - |
53 | #endif | - |
54 | #ifdef SIGILL | - |
55 | NUMNAME (ILL), | - |
56 | #endif | - |
57 | #ifdef SIGTRAP | - |
58 | NUMNAME (TRAP), | - |
59 | #endif | - |
60 | #ifdef SIGABRT | - |
61 | NUMNAME (ABRT), | - |
62 | #endif | - |
63 | #ifdef SIGFPE | - |
64 | NUMNAME (FPE), | - |
65 | #endif | - |
66 | #ifdef SIGKILL | - |
67 | NUMNAME (KILL), | - |
68 | #endif | - |
69 | #ifdef SIGSEGV | - |
70 | NUMNAME (SEGV), | - |
71 | #endif | - |
72 | | - |
73 | | - |
74 | #ifdef SIGBUS | - |
75 | NUMNAME (BUS), | - |
76 | #endif | - |
77 | #ifdef SIGPIPE | - |
78 | NUMNAME (PIPE), | - |
79 | #endif | - |
80 | #ifdef SIGALRM | - |
81 | NUMNAME (ALRM), | - |
82 | #endif | - |
83 | #ifdef SIGTERM | - |
84 | NUMNAME (TERM), | - |
85 | #endif | - |
86 | #ifdef SIGUSR1 | - |
87 | NUMNAME (USR1), | - |
88 | #endif | - |
89 | #ifdef SIGUSR2 | - |
90 | NUMNAME (USR2), | - |
91 | #endif | - |
92 | #ifdef SIGCHLD | - |
93 | NUMNAME (CHLD), | - |
94 | #endif | - |
95 | #ifdef SIGURG | - |
96 | NUMNAME (URG), | - |
97 | #endif | - |
98 | #ifdef SIGSTOP | - |
99 | NUMNAME (STOP), | - |
100 | #endif | - |
101 | #ifdef SIGTSTP | - |
102 | NUMNAME (TSTP), | - |
103 | #endif | - |
104 | #ifdef SIGCONT | - |
105 | NUMNAME (CONT), | - |
106 | #endif | - |
107 | #ifdef SIGTTIN | - |
108 | NUMNAME (TTIN), | - |
109 | #endif | - |
110 | #ifdef SIGTTOU | - |
111 | NUMNAME (TTOU), | - |
112 | #endif | - |
113 | | - |
114 | | - |
115 | #ifdef SIGSYS | - |
116 | NUMNAME (SYS), | - |
117 | #endif | - |
118 | #ifdef SIGPOLL | - |
119 | NUMNAME (POLL), | - |
120 | #endif | - |
121 | #ifdef SIGVTALRM | - |
122 | NUMNAME (VTALRM), | - |
123 | #endif | - |
124 | #ifdef SIGPROF | - |
125 | NUMNAME (PROF), | - |
126 | #endif | - |
127 | #ifdef SIGXCPU | - |
128 | NUMNAME (XCPU), | - |
129 | #endif | - |
130 | #ifdef SIGXFSZ | - |
131 | NUMNAME (XFSZ), | - |
132 | #endif | - |
133 | | - |
134 | | - |
135 | #ifdef SIGIOT | - |
136 | NUMNAME (IOT), | - |
137 | #endif | - |
138 | #ifdef SIGEMT | - |
139 | NUMNAME (EMT), | - |
140 | #endif | - |
141 | | - |
142 | | - |
143 | #ifdef SIGPHONE | - |
144 | NUMNAME (PHONE), | - |
145 | #endif | - |
146 | #ifdef SIGWIND | - |
147 | NUMNAME (WIND), | - |
148 | #endif | - |
149 | | - |
150 | | - |
151 | #ifdef SIGCLD | - |
152 | NUMNAME (CLD), | - |
153 | #endif | - |
154 | #ifdef SIGPWR | - |
155 | NUMNAME (PWR), | - |
156 | #endif | - |
157 | | - |
158 | | - |
159 | #ifdef SIGCANCEL | - |
160 | NUMNAME (CANCEL), | - |
161 | #endif | - |
162 | #ifdef SIGLWP | - |
163 | NUMNAME (LWP), | - |
164 | #endif | - |
165 | #ifdef SIGWAITING | - |
166 | NUMNAME (WAITING), | - |
167 | #endif | - |
168 | #ifdef SIGFREEZE | - |
169 | NUMNAME (FREEZE), | - |
170 | #endif | - |
171 | #ifdef SIGTHAW | - |
172 | NUMNAME (THAW), | - |
173 | #endif | - |
174 | #ifdef SIGLOST | - |
175 | NUMNAME (LOST), | - |
176 | #endif | - |
177 | #ifdef SIGWINCH | - |
178 | NUMNAME (WINCH), | - |
179 | #endif | - |
180 | | - |
181 | | - |
182 | #ifdef SIGINFO | - |
183 | NUMNAME (INFO), | - |
184 | #endif | - |
185 | #ifdef SIGIO | - |
186 | NUMNAME (IO), | - |
187 | #endif | - |
188 | #ifdef SIGSTKFLT | - |
189 | NUMNAME (STKFLT), | - |
190 | #endif | - |
191 | | - |
192 | | - |
193 | #ifdef SIGDANGER | - |
194 | NUMNAME (DANGER), | - |
195 | #endif | - |
196 | #ifdef SIGGRANT | - |
197 | NUMNAME (GRANT), | - |
198 | #endif | - |
199 | #ifdef SIGMIGRATE | - |
200 | NUMNAME (MIGRATE), | - |
201 | #endif | - |
202 | #ifdef SIGMSG | - |
203 | NUMNAME (MSG), | - |
204 | #endif | - |
205 | #ifdef SIGPRE | - |
206 | NUMNAME (PRE), | - |
207 | #endif | - |
208 | #ifdef SIGRETRACT | - |
209 | NUMNAME (RETRACT), | - |
210 | #endif | - |
211 | #ifdef SIGSAK | - |
212 | NUMNAME (SAK), | - |
213 | #endif | - |
214 | #ifdef SIGSOUND | - |
215 | NUMNAME (SOUND), | - |
216 | #endif | - |
217 | | - |
218 | | - |
219 | #ifdef SIGALRM1 | - |
220 | NUMNAME (ALRM1), | - |
221 | #endif | - |
222 | #ifdef SIGKAP | - |
223 | NUMNAME (KAP), | - |
224 | #endif | - |
225 | #ifdef SIGVIRT | - |
226 | NUMNAME (VIRT), | - |
227 | #endif | - |
228 | #ifdef SIGWINDOW | - |
229 | NUMNAME (WINDOW), | - |
230 | #endif | - |
231 | | - |
232 | | - |
233 | #ifdef SIGKILLTHR | - |
234 | NUMNAME (KILLTHR), | - |
235 | #endif | - |
236 | | - |
237 | | - |
238 | #ifdef SIGDIL | - |
239 | NUMNAME (DIL), | - |
240 | #endif | - |
241 | | - |
242 | | - |
243 | { 0, "EXIT" } | - |
244 | }; | - |
245 | | - |
246 | #define NUMNAME_ENTRIES (sizeof numname_table / sizeof numname_table[0]) | - |
247 | | - |
248 | | - |
249 | | - |
250 | | - |
251 | | - |
252 | | - |
253 | | - |
254 | | - |
255 | #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) | - |
256 | | - |
257 | | - |
258 | | - |
259 | | - |
260 | static int | - |
261 | str2signum (char const *signame) | - |
262 | { | - |
263 | if (ISDIGIT (*signame))TRUE | never evaluated | FALSE | evaluated 16 times by 2 tests |
| 0-16 |
264 | { | - |
265 | char *endp; | - |
266 | long int n = strtol (signame, &endp, 10); | - |
267 | if (! *endp && n <= SIGNUM_BOUND)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
268 | return n; never executed: return n; | 0 |
269 | } never executed: end of block | 0 |
270 | else | - |
271 | { | - |
272 | unsigned int i; | - |
273 | for (i = 0; i < NUMNAME_ENTRIES; i++)TRUE | evaluated 318 times by 2 tests | FALSE | evaluated 6 times by 2 tests |
| 6-318 |
274 | if (strcmp (numname_table[i].name, signame) == 0) never executed: __result = (((const unsigned char *) (const char *) ( numname_table[i].name ))[3] - __s2[3]); never executed: end of block never executed: end of block never executed: __result = (((const unsigned char *) (const char *) ( signame ))[3] - __s2[3]); never executed: end of block never executed: end of block TRUE | evaluated 10 times by 2 tests | FALSE | evaluated 308 times by 2 tests |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0-308 |
275 | return numname_table[i].num;executed 10 times by 2 tests: return numname_table[i].num; | 10 |
276 | | - |
277 | { | - |
278 | char *endp; | - |
279 | int rtmin = SIGRTMIN; | - |
280 | int rtmax = SIGRTMAX; | - |
281 | | - |
282 | if (0 < rtmin && strncmp (signame, "RTMIN", 5) == 0) never executed: __result = (((const unsigned char *) (const char *) ( signame ))[3] - __s2[3]); never executed: end of block never executed: end of block never executed: __result = (((const unsigned char *) (const char *) ( "RTMIN" ))[3] - __s2[3]); never executed: end of block never executed: end of block TRUE | evaluated 6 times by 2 tests | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 6 times by 2 tests |
TRUE | evaluated 6 times by 2 tests | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 6 times by 2 tests |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | evaluated 6 times by 2 tests | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 6 times by 2 tests |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0-6 |
283 | { | - |
284 | long int n = strtol (signame + 5, &endp, 10); | - |
285 | if (! *endp && 0 <= n && n <= rtmax - rtmin)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
286 | return rtmin + n; never executed: return rtmin + n; | 0 |
287 | } never executed: end of block | 0 |
288 | else if (0 < rtmax && strncmp (signame, "RTMAX", 5) == 0) never executed: __result = (((const unsigned char *) (const char *) ( signame ))[3] - __s2[3]); never executed: end of block never executed: end of block never executed: __result = (((const unsigned char *) (const char *) ( "RTMAX" ))[3] - __s2[3]); never executed: end of block never executed: end of block TRUE | evaluated 6 times by 2 tests | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 6 times by 2 tests |
TRUE | evaluated 6 times by 2 tests | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 6 times by 2 tests |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | evaluated 6 times by 2 tests | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 6 times by 2 tests |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0-6 |
289 | { | - |
290 | long int n = strtol (signame + 5, &endp, 10); | - |
291 | if (! *endp && rtmin - rtmax <= n && n <= 0)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
292 | return rtmax + n; never executed: return rtmax + n; | 0 |
293 | } never executed: end of block | 0 |
294 | } | - |
295 | }executed 6 times by 2 tests: end of block | 6 |
296 | | - |
297 | return -1;executed 6 times by 2 tests: return -1; | 6 |
298 | } | - |
299 | | - |
300 | | - |
301 | | - |
302 | | - |
303 | int | - |
304 | str2sig (char const *signame, int *signum) | - |
305 | { | - |
306 | *signum = str2signum (signame); | - |
307 | return *signum < 0 ? -1 : 0;executed 16 times by 2 tests: return *signum < 0 ? -1 : 0; | 16 |
308 | } | - |
309 | | - |
310 | | - |
311 | | - |
312 | | - |
313 | | - |
314 | int | - |
315 | sig2str (int signum, char *signame) | - |
316 | { | - |
317 | unsigned int i; | - |
318 | for (i = 0; i < NUMNAME_ENTRIES; i++)TRUE | evaluated 10307 times by 2 tests | FALSE | evaluated 198 times by 1 test |
| 198-10307 |
319 | if (numname_table[i].num == signum)TRUE | evaluated 207 times by 2 tests | FALSE | evaluated 10100 times by 2 tests |
| 207-10100 |
320 | { | - |
321 | strcpy (signame, numname_table[i].name); | - |
322 | return 0;executed 207 times by 2 tests: return 0; | 207 |
323 | } | - |
324 | | - |
325 | { | - |
326 | int rtmin = SIGRTMIN; | - |
327 | int rtmax = SIGRTMAX; | - |
328 | int base, delta; | - |
329 | | - |
330 | if (! (rtmin <= signum && signum <= rtmax))TRUE | evaluated 186 times by 1 test | FALSE | evaluated 12 times by 1 test |
TRUE | evaluated 186 times by 1 test | FALSE | never evaluated |
| 0-186 |
331 | return -1;executed 12 times by 1 test: return -1; | 12 |
332 | | - |
333 | if (signum <= rtmin + (rtmax - rtmin) / 2)TRUE | evaluated 96 times by 1 test | FALSE | evaluated 90 times by 1 test |
| 90-96 |
334 | { | - |
335 | strcpy (signame, "RTMIN"); | - |
336 | base = rtmin; | - |
337 | }executed 96 times by 1 test: end of block | 96 |
338 | else | - |
339 | { | - |
340 | strcpy (signame, "RTMAX"); | - |
341 | base = rtmax; | - |
342 | }executed 90 times by 1 test: end of block | 90 |
343 | | - |
344 | delta = signum - base; | - |
345 | if (delta != 0)TRUE | evaluated 174 times by 1 test | FALSE | evaluated 12 times by 1 test |
| 12-174 |
346 | sprintf (signame + 5, "%+d", delta);executed 174 times by 1 test: sprintf (signame + 5, "%+d", delta); | 174 |
347 | return 0;executed 186 times by 1 test: return 0; | 186 |
348 | } | - |
349 | } | - |
| | |