diff options
Diffstat (limited to 'src/libstddjb/sig_name.c')
| -rw-r--r-- | src/libstddjb/sig_name.c | 90 |
1 files changed, 84 insertions, 6 deletions
diff --git a/src/libstddjb/sig_name.c b/src/libstddjb/sig_name.c index c8d7b6f..36b6ac0 100644 --- a/src/libstddjb/sig_name.c +++ b/src/libstddjb/sig_name.c @@ -1,11 +1,89 @@ -/* ISC license. */ + /* ISC license. */ -#include <skalibs/sig.h> -#include "sig-internal.h" +#include <skalibs/nonposix.h> + +#include <signal.h> +#include <skalibs/nsig.h> + +static char const *const table[SKALIBS_NSIG] = +{ + [SIGABRT] = "ABRT", + [SIGALRM] = "ALRM", + [SIGBUS] = "BUS", + [SIGCHLD] = "CHLD", + [SIGCONT] = "CONT", + [SIGFPE] = "FPE", + [SIGHUP] = "HUP", + [SIGILL] = "ILL", + [SIGINT] = "INT", + [SIGKILL] = "KILL", + [SIGPIPE] = "PIPE", + [SIGQUIT] = "QUIT", + [SIGSEGV] = "SEGV", + [SIGSTOP] = "STOP", + [SIGTERM] = "TERM", + [SIGTSTP] = "TSTP", + [SIGTTIN] = "TTIN", + [SIGTTOU] = "TTOU", + [SIGUSR1] = "USR1", + [SIGUSR2] = "USR2", +#ifdef SIGPOLL + [SIGPOLL] = "POLL", +#endif +#ifdef SIGPROF + [SIGPROF] = "PROF", +#endif +#ifdef SIGSYS + [SIGSYS] = "SYS", +#endif +#ifdef SIGTRAP + [SIGTRAP] = "TRAP", +#endif +#ifdef SIGURG + [SIGURG] = "URG", +#endif +#ifdef SIGVTALRM + [SIGVTALRM] = "VTALRM", +#endif +#ifdef SIGXCPU + [SIGXCPU] = "XCPU", +#endif +#ifdef SIGXFSZ + [SIGXFSZ] = "XFSZ", +#endif +#ifdef SIGIOT + [SIGIOT] = "IOT", +#endif +#ifdef SIGEMT + [SIGEMT] = "EMT", +#endif +#ifdef SIGSTKFLT + [SIGSTKFLT] = "STKFLT", +#endif +#ifdef SIGCLD + [SIGCLD] = "CLD", +#endif +#ifdef SIGWINCH + [SIGWINCH] = "WINCH", +#endif +#ifdef SIGIO + [SIGIO] = "IO", +#endif +#ifdef SIGINFO + [SIGINFO] = "INFO", +#endif +#ifdef SIGLOST + [SIGLOST] = "LOST", +#endif +#ifdef SIGPWR + [SIGPWR] = "PWR", +#endif +#ifdef SIGUNUSED + [SIGUNUSED] = "UNUSED" +#endif +} ; char const *sig_name (int sig) { - sigtable const *p = skalibs_sigtable ; - for (; p->number ; p++) if (sig == p->number) break ; - return p->number ? p->name : "???" ; + return sig <= 0 || sig > SKALIBS_NSIG || !table[sig] ? "???" : table[sig] ; } |
