162306a36Sopenharmony_ci// SPDX-License-Identifier: LGPL-2.1 262306a36Sopenharmony_ci#include <signal.h> 362306a36Sopenharmony_ci 462306a36Sopenharmony_cistatic size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscall_arg *arg) 562306a36Sopenharmony_ci{ 662306a36Sopenharmony_ci bool show_prefix = arg->show_string_prefix; 762306a36Sopenharmony_ci const char *prefix = "SIG"; 862306a36Sopenharmony_ci int sig = arg->val; 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci switch (sig) { 1162306a36Sopenharmony_ci#define P_SIGNUM(n) case SIG##n: return scnprintf(bf, size, "%s%s", show_prefix ? prefix : "", #n) 1262306a36Sopenharmony_ci P_SIGNUM(HUP); 1362306a36Sopenharmony_ci P_SIGNUM(INT); 1462306a36Sopenharmony_ci P_SIGNUM(QUIT); 1562306a36Sopenharmony_ci P_SIGNUM(ILL); 1662306a36Sopenharmony_ci P_SIGNUM(TRAP); 1762306a36Sopenharmony_ci P_SIGNUM(ABRT); 1862306a36Sopenharmony_ci P_SIGNUM(BUS); 1962306a36Sopenharmony_ci P_SIGNUM(FPE); 2062306a36Sopenharmony_ci P_SIGNUM(KILL); 2162306a36Sopenharmony_ci P_SIGNUM(USR1); 2262306a36Sopenharmony_ci P_SIGNUM(SEGV); 2362306a36Sopenharmony_ci P_SIGNUM(USR2); 2462306a36Sopenharmony_ci P_SIGNUM(PIPE); 2562306a36Sopenharmony_ci P_SIGNUM(ALRM); 2662306a36Sopenharmony_ci P_SIGNUM(TERM); 2762306a36Sopenharmony_ci P_SIGNUM(CHLD); 2862306a36Sopenharmony_ci P_SIGNUM(CONT); 2962306a36Sopenharmony_ci P_SIGNUM(STOP); 3062306a36Sopenharmony_ci P_SIGNUM(TSTP); 3162306a36Sopenharmony_ci P_SIGNUM(TTIN); 3262306a36Sopenharmony_ci P_SIGNUM(TTOU); 3362306a36Sopenharmony_ci P_SIGNUM(URG); 3462306a36Sopenharmony_ci P_SIGNUM(XCPU); 3562306a36Sopenharmony_ci P_SIGNUM(XFSZ); 3662306a36Sopenharmony_ci P_SIGNUM(VTALRM); 3762306a36Sopenharmony_ci P_SIGNUM(PROF); 3862306a36Sopenharmony_ci P_SIGNUM(WINCH); 3962306a36Sopenharmony_ci P_SIGNUM(IO); 4062306a36Sopenharmony_ci P_SIGNUM(PWR); 4162306a36Sopenharmony_ci P_SIGNUM(SYS); 4262306a36Sopenharmony_ci#ifdef SIGEMT 4362306a36Sopenharmony_ci P_SIGNUM(EMT); 4462306a36Sopenharmony_ci#endif 4562306a36Sopenharmony_ci#ifdef SIGSTKFLT 4662306a36Sopenharmony_ci P_SIGNUM(STKFLT); 4762306a36Sopenharmony_ci#endif 4862306a36Sopenharmony_ci#ifdef SIGSWI 4962306a36Sopenharmony_ci P_SIGNUM(SWI); 5062306a36Sopenharmony_ci#endif 5162306a36Sopenharmony_ci default: break; 5262306a36Sopenharmony_ci } 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci return scnprintf(bf, size, "%#x", sig); 5562306a36Sopenharmony_ci} 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci#define SCA_SIGNUM syscall_arg__scnprintf_signum 58