xref: /haiku/src/system/libroot/posix/signal/strsignal.cpp (revision 24df65921befcd0ad0c5c7866118f922da61cb96)
1*24df6592SIngo Weinhold /*
2*24df6592SIngo Weinhold  * Copyright 2002-2011, Haiku, Inc. All rights reserved.
3*24df6592SIngo Weinhold  * Distributed under the terms of the MIT license.
4*24df6592SIngo Weinhold  *
5*24df6592SIngo Weinhold  * Author:
6*24df6592SIngo Weinhold  *		Daniel Reinhold (danielre@users.sf.net)
7*24df6592SIngo Weinhold  *		Ingo Weinhold, ingo_weinhold@gmx.de
8*24df6592SIngo Weinhold  */
9*24df6592SIngo Weinhold 
10*24df6592SIngo Weinhold 
11*24df6592SIngo Weinhold #include <string.h>
12*24df6592SIngo Weinhold 
13*24df6592SIngo Weinhold #include <errno.h>
14*24df6592SIngo Weinhold #include <signal.h>
15*24df6592SIngo Weinhold #include <stdio.h>
16*24df6592SIngo Weinhold 
17*24df6592SIngo Weinhold #include <signal_defs.h>
18*24df6592SIngo Weinhold 
19*24df6592SIngo Weinhold 
20*24df6592SIngo Weinhold static const char* const kInvalidSignalNumberText = "Bogus signal number";
21*24df6592SIngo Weinhold 
22*24df6592SIngo Weinhold 
23*24df6592SIngo Weinhold const char * const
24*24df6592SIngo Weinhold sys_siglist[NSIG] = {
25*24df6592SIngo Weinhold 	/*  0 */				"Signal 0",
26*24df6592SIngo Weinhold 	/*  1 - SIGHUP */		"Hangup",
27*24df6592SIngo Weinhold 	/*  2 - SIGINT  */		"Interrupt",
28*24df6592SIngo Weinhold 	/*  3 - SIGQUIT */		"Quit",
29*24df6592SIngo Weinhold 	/*  4 - SIGILL */		"Illegal instruction",
30*24df6592SIngo Weinhold 	/*  5 - SIGCHLD */		"Child exited",
31*24df6592SIngo Weinhold 	/*  6 - SIGABRT */		"Abort",
32*24df6592SIngo Weinhold 	/*  7 - SIGPIPE */		"Broken pipe",
33*24df6592SIngo Weinhold 	/*  8 - SIGFPE */		"Floating point exception",
34*24df6592SIngo Weinhold 	/*  9 - SIGKILL */		"Killed (by death)",
35*24df6592SIngo Weinhold 	/* 10 - SIGSTOP */		"Stopped",
36*24df6592SIngo Weinhold 	/* 11 - SIGSEGV */		"Segmentation violation",
37*24df6592SIngo Weinhold 	/* 12 - SIGCONT */		"Continued",
38*24df6592SIngo Weinhold 	/* 13 - SIGTSTP */		"Stopped (tty output)",
39*24df6592SIngo Weinhold 	/* 14 - SIGALRM */		"Alarm",
40*24df6592SIngo Weinhold 	/* 15 - SIGTERM */		"Termination requested",
41*24df6592SIngo Weinhold 	/* 16 - SIGTTIN */		"Stopped (tty input)",
42*24df6592SIngo Weinhold 	/* 17 - SIGTTOU */		"Stopped (tty output)",
43*24df6592SIngo Weinhold 	/* 18 - SIGUSR1 */		"User defined signal 1",
44*24df6592SIngo Weinhold 	/* 19 - SIGUSR2 */		"User defined signal 2",
45*24df6592SIngo Weinhold 	/* 20 - SIGWINCH */		"Window size changed",
46*24df6592SIngo Weinhold 	/* 21 - SIGKILLTHR */	"Kill Thread",
47*24df6592SIngo Weinhold 	/* 22 - SIGTRAP */		"Trace/breakpoint trap",
48*24df6592SIngo Weinhold 	/* 23 - SIGPOLL */		"Pollable event",
49*24df6592SIngo Weinhold 	/* 24 - SIGPROF */		"Profiling timer expired",
50*24df6592SIngo Weinhold 	/* 25 - SIGSYS */		"Bad system call",
51*24df6592SIngo Weinhold 	/* 26 - SIGURG */		"High bandwidth data is available at socket",
52*24df6592SIngo Weinhold 	/* 27 - SIGVTALRM */	"Virtual timer expired",
53*24df6592SIngo Weinhold 	/* 28 - SIGXCPU */		"CPU time limit exceeded",
54*24df6592SIngo Weinhold 	/* 29 - SIGXFSZ */		"File size limit exceeded",
55*24df6592SIngo Weinhold 	/* 30 - SIGBUS */		"Bus error",
56*24df6592SIngo Weinhold 	/* 31 - SIGRESERVED1 */	"Reserved signal 1",
57*24df6592SIngo Weinhold 	/* 32 - SIGRESERVED2 */	"Reserved signal 2",
58*24df6592SIngo Weinhold 	/* 33 - realtime 1 */	"Realtime signal 1",
59*24df6592SIngo Weinhold 	/* 34 - realtime 2 */	"Realtime signal 2",
60*24df6592SIngo Weinhold 	/* 35 - realtime 3 */	"Realtime signal 3",
61*24df6592SIngo Weinhold 	/* 36 - realtime 4 */	"Realtime signal 4",
62*24df6592SIngo Weinhold 	/* 37 - realtime 5 */	"Realtime signal 5",
63*24df6592SIngo Weinhold 	/* 38 - realtime 6 */	"Realtime signal 6",
64*24df6592SIngo Weinhold 	/* 39 - realtime 7 */	"Realtime signal 7",
65*24df6592SIngo Weinhold 	/* 40 - realtime 8 */	"Realtime signal 8",
66*24df6592SIngo Weinhold 	/* 41 - invalid */		kInvalidSignalNumberText,
67*24df6592SIngo Weinhold 	/* 42 - invalid */		kInvalidSignalNumberText,
68*24df6592SIngo Weinhold 	/* 43 - invalid */		kInvalidSignalNumberText,
69*24df6592SIngo Weinhold 	/* 44 - invalid */		kInvalidSignalNumberText,
70*24df6592SIngo Weinhold 	/* 45 - invalid */		kInvalidSignalNumberText,
71*24df6592SIngo Weinhold 	/* 46 - invalid */		kInvalidSignalNumberText,
72*24df6592SIngo Weinhold 	/* 47 - invalid */		kInvalidSignalNumberText,
73*24df6592SIngo Weinhold 	/* 48 - invalid */		kInvalidSignalNumberText,
74*24df6592SIngo Weinhold 	/* 49 - invalid */		kInvalidSignalNumberText,
75*24df6592SIngo Weinhold 	/* 50 - invalid */		kInvalidSignalNumberText,
76*24df6592SIngo Weinhold 	/* 51 - invalid */		kInvalidSignalNumberText,
77*24df6592SIngo Weinhold 	/* 52 - invalid */		kInvalidSignalNumberText,
78*24df6592SIngo Weinhold 	/* 53 - invalid */		kInvalidSignalNumberText,
79*24df6592SIngo Weinhold 	/* 54 - invalid */		kInvalidSignalNumberText,
80*24df6592SIngo Weinhold 	/* 55 - invalid */		kInvalidSignalNumberText,
81*24df6592SIngo Weinhold 	/* 56 - invalid */		kInvalidSignalNumberText,
82*24df6592SIngo Weinhold 	/* 57 - invalid */		kInvalidSignalNumberText,
83*24df6592SIngo Weinhold 	/* 58 - invalid */		kInvalidSignalNumberText,
84*24df6592SIngo Weinhold 	/* 59 - invalid */		kInvalidSignalNumberText,
85*24df6592SIngo Weinhold 	/* 60 - invalid */		kInvalidSignalNumberText,
86*24df6592SIngo Weinhold 	/* 61 - invalid */		kInvalidSignalNumberText,
87*24df6592SIngo Weinhold 	/* 62 - invalid */		kInvalidSignalNumberText,
88*24df6592SIngo Weinhold 	/* 63 - invalid */		kInvalidSignalNumberText,
89*24df6592SIngo Weinhold 	/* 64 - invalid */		kInvalidSignalNumberText
90*24df6592SIngo Weinhold };
91*24df6592SIngo Weinhold 
92*24df6592SIngo Weinhold 
93*24df6592SIngo Weinhold const char*
94*24df6592SIngo Weinhold strsignal(int sig)
95*24df6592SIngo Weinhold {
96*24df6592SIngo Weinhold 	if (sig < 0 || sig > __MAX_SIGNO)
97*24df6592SIngo Weinhold 		return kInvalidSignalNumberText;
98*24df6592SIngo Weinhold 
99*24df6592SIngo Weinhold 	return sys_siglist[sig];
100*24df6592SIngo Weinhold }
101*24df6592SIngo Weinhold 
102