Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: LGPL-2.1
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