libc/newlib/libc/sys/linux/strsignal.c

64 lines
1.3 KiB
C

#include <string.h>
#include <signal.h>
#include <stdio.h>
#include <reent.h>
static const char *sigstring[] =
{
"Signal 0",
"Hangup",
"Interrupt",
"Quit",
"Illegal instruction",
"Trace/breakpoint trap",
"IOT trap",
"EMT trap",
"Floating point exception",
"Killed",
"Bus error",
"Segmentation fault",
"Bad system call",
"Broken pipe",
"Alarm clock",
"Terminated",
"Urgent I/O condition",
"Stopped (signal)",
"Stopped",
"Continued",
"Child exited",
"Stopped (tty input)",
"Stopped (tty output)",
"I/O possible",
"CPU time limit exceeded",
"File size limit exceeded",
"Virtual timer expired",
"Profiling timer expired",
"Window changed",
"Resource lost",
"User defined signal 1",
"User defined signal 2"
};
char *
strsignal (int sig)
{
if (sig < 0 || sig >= __SIGRTMIN)
{
char *buffer;
struct _reent *ptr;
ptr = _REENT;
_REENT_CHECK_SIGNAL_BUF(ptr);
buffer = _REENT_SIGNAL_BUF(ptr);
if (sig < 0 || sig > __SIGRTMAX)
siprintf (buffer, "Unknown signal %d", sig);
else
siprintf (buffer, "Real-time signal %d", sig - __SIGRTMIN);
return buffer;
}
else
return sigstring[sig];
}