1// SPDX-License-Identifier: LGPL-2.1
2#include <signal.h>
3
4static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscall_arg *arg)
5{
6 bool show_prefix = arg->show_string_prefix;
7 const char *prefix = "SIG";
8 int sig = arg->val;
9
10 switch (sig) {
11#define P_SIGNUM(n) case SIG##n: return scnprintf(bf, size, "%s%s", show_prefix ? prefix : "", #n)
12 P_SIGNUM(HUP);
13 P_SIGNUM(INT);
14 P_SIGNUM(QUIT);
15 P_SIGNUM(ILL);
16 P_SIGNUM(TRAP);
17 P_SIGNUM(ABRT);
18 P_SIGNUM(BUS);
19 P_SIGNUM(FPE);
20 P_SIGNUM(KILL);
21 P_SIGNUM(USR1);
22 P_SIGNUM(SEGV);
23 P_SIGNUM(USR2);
24 P_SIGNUM(PIPE);
25 P_SIGNUM(ALRM);
26 P_SIGNUM(TERM);
27 P_SIGNUM(CHLD);
28 P_SIGNUM(CONT);
29 P_SIGNUM(STOP);
30 P_SIGNUM(TSTP);
31 P_SIGNUM(TTIN);
32 P_SIGNUM(TTOU);
33 P_SIGNUM(URG);
34 P_SIGNUM(XCPU);
35 P_SIGNUM(XFSZ);
36 P_SIGNUM(VTALRM);
37 P_SIGNUM(PROF);
38 P_SIGNUM(WINCH);
39 P_SIGNUM(IO);
40 P_SIGNUM(PWR);
41 P_SIGNUM(SYS);
42#ifdef SIGEMT
43 P_SIGNUM(EMT);
44#endif
45#ifdef SIGSTKFLT
46 P_SIGNUM(STKFLT);
47#endif
48#ifdef SIGSWI
49 P_SIGNUM(SWI);
50#endif
51 default: break;
52 }
53
54 return scnprintf(buf: bf, size, fmt: "%#x", sig);
55}
56
57#define SCA_SIGNUM syscall_arg__scnprintf_signum
58

source code of linux/tools/perf/trace/beauty/signum.c