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