hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
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
// SPDX-License-Identifier: LGPL-2.1
#include <signal.h>
 
static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscall_arg *arg)
{
   bool show_prefix = arg->show_string_prefix;
   const char *prefix = "SIG";
   int sig = arg->val;
 
   switch (sig) {
#define    P_SIGNUM(n) case SIG##n: return scnprintf(bf, size, "%s%s", show_prefix ? prefix : "", #n)
   P_SIGNUM(HUP);
   P_SIGNUM(INT);
   P_SIGNUM(QUIT);
   P_SIGNUM(ILL);
   P_SIGNUM(TRAP);
   P_SIGNUM(ABRT);
   P_SIGNUM(BUS);
   P_SIGNUM(FPE);
   P_SIGNUM(KILL);
   P_SIGNUM(USR1);
   P_SIGNUM(SEGV);
   P_SIGNUM(USR2);
   P_SIGNUM(PIPE);
   P_SIGNUM(ALRM);
   P_SIGNUM(TERM);
   P_SIGNUM(CHLD);
   P_SIGNUM(CONT);
   P_SIGNUM(STOP);
   P_SIGNUM(TSTP);
   P_SIGNUM(TTIN);
   P_SIGNUM(TTOU);
   P_SIGNUM(URG);
   P_SIGNUM(XCPU);
   P_SIGNUM(XFSZ);
   P_SIGNUM(VTALRM);
   P_SIGNUM(PROF);
   P_SIGNUM(WINCH);
   P_SIGNUM(IO);
   P_SIGNUM(PWR);
   P_SIGNUM(SYS);
#ifdef SIGEMT
   P_SIGNUM(EMT);
#endif
#ifdef SIGSTKFLT
   P_SIGNUM(STKFLT);
#endif
#ifdef SIGSWI
   P_SIGNUM(SWI);
#endif
   default: break;
   }
 
   return scnprintf(bf, size, "%#x", sig);
}
 
#define SCA_SIGNUM syscall_arg__scnprintf_signum