0001
0002 #include <signal.h>
0003
0004 static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscall_arg *arg)
0005 {
0006 bool show_prefix = arg->show_string_prefix;
0007 const char *prefix = "SIG";
0008 int sig = arg->val;
0009
0010 switch (sig) {
0011 #define P_SIGNUM(n) case SIG##n: return scnprintf(bf, size, "%s%s", show_prefix ? prefix : "", #n)
0012 P_SIGNUM(HUP);
0013 P_SIGNUM(INT);
0014 P_SIGNUM(QUIT);
0015 P_SIGNUM(ILL);
0016 P_SIGNUM(TRAP);
0017 P_SIGNUM(ABRT);
0018 P_SIGNUM(BUS);
0019 P_SIGNUM(FPE);
0020 P_SIGNUM(KILL);
0021 P_SIGNUM(USR1);
0022 P_SIGNUM(SEGV);
0023 P_SIGNUM(USR2);
0024 P_SIGNUM(PIPE);
0025 P_SIGNUM(ALRM);
0026 P_SIGNUM(TERM);
0027 P_SIGNUM(CHLD);
0028 P_SIGNUM(CONT);
0029 P_SIGNUM(STOP);
0030 P_SIGNUM(TSTP);
0031 P_SIGNUM(TTIN);
0032 P_SIGNUM(TTOU);
0033 P_SIGNUM(URG);
0034 P_SIGNUM(XCPU);
0035 P_SIGNUM(XFSZ);
0036 P_SIGNUM(VTALRM);
0037 P_SIGNUM(PROF);
0038 P_SIGNUM(WINCH);
0039 P_SIGNUM(IO);
0040 P_SIGNUM(PWR);
0041 P_SIGNUM(SYS);
0042 #ifdef SIGEMT
0043 P_SIGNUM(EMT);
0044 #endif
0045 #ifdef SIGSTKFLT
0046 P_SIGNUM(STKFLT);
0047 #endif
0048 #ifdef SIGSWI
0049 P_SIGNUM(SWI);
0050 #endif
0051 default: break;
0052 }
0053
0054 return scnprintf(bf, size, "%#x", sig);
0055 }
0056
0057 #define SCA_SIGNUM syscall_arg__scnprintf_signum