58 lines · c
1// SPDX-License-Identifier: LGPL-2.12#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 SIGEMT43 P_SIGNUM(EMT);44#endif45#ifdef SIGSTKFLT46 P_SIGNUM(STKFLT);47#endif48#ifdef SIGSWI49 P_SIGNUM(SWI);50#endif51 default: break;52 }53 54 return scnprintf(bf, size, "%#x", sig);55}56 57#define SCA_SIGNUM syscall_arg__scnprintf_signum58