aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstddjb/sig_name.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstddjb/sig_name.c')
-rw-r--r--src/libstddjb/sig_name.c90
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] ;
}