58 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| // SPDX-License-Identifier: LGPL-2.1
 | |
| #include <signal.h>
 | |
| 
 | |
| static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscall_arg *arg)
 | |
| {
 | |
| 	bool show_prefix = arg->show_string_prefix;
 | |
| 	const char *prefix = "SIG";
 | |
| 	int sig = arg->val;
 | |
| 
 | |
| 	switch (sig) {
 | |
| #define	P_SIGNUM(n) case SIG##n: return scnprintf(bf, size, "%s%s", show_prefix ? prefix : "", #n)
 | |
| 	P_SIGNUM(HUP);
 | |
| 	P_SIGNUM(INT);
 | |
| 	P_SIGNUM(QUIT);
 | |
| 	P_SIGNUM(ILL);
 | |
| 	P_SIGNUM(TRAP);
 | |
| 	P_SIGNUM(ABRT);
 | |
| 	P_SIGNUM(BUS);
 | |
| 	P_SIGNUM(FPE);
 | |
| 	P_SIGNUM(KILL);
 | |
| 	P_SIGNUM(USR1);
 | |
| 	P_SIGNUM(SEGV);
 | |
| 	P_SIGNUM(USR2);
 | |
| 	P_SIGNUM(PIPE);
 | |
| 	P_SIGNUM(ALRM);
 | |
| 	P_SIGNUM(TERM);
 | |
| 	P_SIGNUM(CHLD);
 | |
| 	P_SIGNUM(CONT);
 | |
| 	P_SIGNUM(STOP);
 | |
| 	P_SIGNUM(TSTP);
 | |
| 	P_SIGNUM(TTIN);
 | |
| 	P_SIGNUM(TTOU);
 | |
| 	P_SIGNUM(URG);
 | |
| 	P_SIGNUM(XCPU);
 | |
| 	P_SIGNUM(XFSZ);
 | |
| 	P_SIGNUM(VTALRM);
 | |
| 	P_SIGNUM(PROF);
 | |
| 	P_SIGNUM(WINCH);
 | |
| 	P_SIGNUM(IO);
 | |
| 	P_SIGNUM(PWR);
 | |
| 	P_SIGNUM(SYS);
 | |
| #ifdef SIGEMT
 | |
| 	P_SIGNUM(EMT);
 | |
| #endif
 | |
| #ifdef SIGSTKFLT
 | |
| 	P_SIGNUM(STKFLT);
 | |
| #endif
 | |
| #ifdef SIGSWI
 | |
| 	P_SIGNUM(SWI);
 | |
| #endif
 | |
| 	default: break;
 | |
| 	}
 | |
| 
 | |
| 	return scnprintf(bf, size, "%#x", sig);
 | |
| }
 | |
| 
 | |
| #define SCA_SIGNUM syscall_arg__scnprintf_signum
 |