1/* siglist.c -- signal list for those machines that don't have one. */
2
3/* Copyright (C) 1989-2009 Free Software Foundation, Inc.
4
5   This file is part of GNU Bash, the Bourne Again SHell.
6
7   Bash is free software: you can redistribute it and/or modify
8   it under the terms of the GNU General Public License as published by
9   the Free Software Foundation, either version 3 of the License, or
10   (at your option) any later version.
11
12   Bash is distributed in the hope that it will be useful,
13   but WITHOUT ANY WARRANTY; without even the implied warranty of
14   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   GNU General Public License for more details.
16
17   You should have received a copy of the GNU General Public License
18   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#include "config.h"
22
23#if !defined (HAVE_SYS_SIGLIST) && !defined (HAVE_UNDER_SYS_SIGLIST) && !defined (HAVE_STRSIGNAL)
24
25#include <stdio.h>
26#include "bashtypes.h"
27#include <signal.h>
28
29#include "siglist.h"
30
31#if !defined (NSIG)
32#  include "trap.h"
33#endif
34
35#include "xmalloc.h"
36
37char *sys_siglist[NSIG];
38
39void
40initialize_siglist ()
41{
42  register int i;
43
44  for (i = 0; i < NSIG; i++)
45    sys_siglist[i] = (char *)0x0;
46
47  sys_siglist[0] = _("Bogus signal");
48
49#if defined (SIGHUP)
50  sys_siglist[SIGHUP] = _("Hangup");
51#endif
52
53#if defined (SIGINT)
54  sys_siglist[SIGINT] = _("Interrupt");
55#endif
56
57#if defined (SIGQUIT)
58  sys_siglist[SIGQUIT] = _("Quit");
59#endif
60
61#if defined (SIGILL)
62  sys_siglist[SIGILL] = _("Illegal instruction");
63#endif
64
65#if defined (SIGTRAP)
66  sys_siglist[SIGTRAP] = _("BPT trace/trap");
67#endif
68
69#if defined (SIGIOT) && !defined (SIGABRT)
70#define SIGABRT SIGIOT
71#endif
72
73#if defined (SIGABRT)
74  sys_siglist[SIGABRT] = _("ABORT instruction");
75#endif
76
77#if defined (SIGEMT)
78  sys_siglist[SIGEMT] = _("EMT instruction");
79#endif
80
81#if defined (SIGFPE)
82  sys_siglist[SIGFPE] = _("Floating point exception");
83#endif
84
85#if defined (SIGKILL)
86  sys_siglist[SIGKILL] = _("Killed");
87#endif
88
89#if defined (SIGBUS)
90  sys_siglist[SIGBUS] = _("Bus error");
91#endif
92
93#if defined (SIGSEGV)
94  sys_siglist[SIGSEGV] = _("Segmentation fault");
95#endif
96
97#if defined (SIGSYS)
98  sys_siglist[SIGSYS] = _("Bad system call");
99#endif
100
101#if defined (SIGPIPE)
102  sys_siglist[SIGPIPE] = _("Broken pipe");
103#endif
104
105#if defined (SIGALRM)
106  sys_siglist[SIGALRM] = _("Alarm clock");
107#endif
108
109#if defined (SIGTERM)
110  sys_siglist[SIGTERM] = _("Terminated");
111#endif
112
113#if defined (SIGURG)
114  sys_siglist[SIGURG] = _("Urgent IO condition");
115#endif
116
117#if defined (SIGSTOP)
118  sys_siglist[SIGSTOP] = _("Stopped (signal)");
119#endif
120
121#if defined (SIGTSTP)
122  sys_siglist[SIGTSTP] = _("Stopped");
123#endif
124
125#if defined (SIGCONT)
126  sys_siglist[SIGCONT] = _("Continue");
127#endif
128
129#if !defined (SIGCHLD) && defined (SIGCLD)
130#define SIGCHLD SIGCLD
131#endif
132
133#if defined (SIGCHLD)
134  sys_siglist[SIGCHLD] = _("Child death or stop");
135#endif
136
137#if defined (SIGTTIN)
138  sys_siglist[SIGTTIN] = _("Stopped (tty input)");
139#endif
140
141#if defined (SIGTTOU)
142  sys_siglist[SIGTTOU] = _("Stopped (tty output)");
143#endif
144
145#if defined (SIGIO)
146  sys_siglist[SIGIO] = _("I/O ready");
147#endif
148
149#if defined (SIGXCPU)
150  sys_siglist[SIGXCPU] = _("CPU limit");
151#endif
152
153#if defined (SIGXFSZ)
154  sys_siglist[SIGXFSZ] = _("File limit");
155#endif
156
157#if defined (SIGVTALRM)
158  sys_siglist[SIGVTALRM] = _("Alarm (virtual)");
159#endif
160
161#if defined (SIGPROF)
162  sys_siglist[SIGPROF] = _("Alarm (profile)");
163#endif
164
165#if defined (SIGWINCH)
166  sys_siglist[SIGWINCH] = _("Window changed");
167#endif
168
169#if defined (SIGLOST)
170  sys_siglist[SIGLOST] = _("Record lock");
171#endif
172
173#if defined (SIGUSR1)
174  sys_siglist[SIGUSR1] = _("User signal 1");
175#endif
176
177#if defined (SIGUSR2)
178  sys_siglist[SIGUSR2] = _("User signal 2");
179#endif
180
181#if defined (SIGMSG)
182  sys_siglist[SIGMSG] = _("HFT input data pending");
183#endif
184
185#if defined (SIGPWR)
186  sys_siglist[SIGPWR] = _("power failure imminent");
187#endif
188
189#if defined (SIGDANGER)
190  sys_siglist[SIGDANGER] = _("system crash imminent");
191#endif
192
193#if defined (SIGMIGRATE)
194  sys_siglist[SIGMIGRATE] = _("migrate process to another CPU");
195#endif
196
197#if defined (SIGPRE)
198  sys_siglist[SIGPRE] = _("programming error");
199#endif
200
201#if defined (SIGGRANT)
202  sys_siglist[SIGGRANT] = _("HFT monitor mode granted");
203#endif
204
205#if defined (SIGRETRACT)
206  sys_siglist[SIGRETRACT] = _("HFT monitor mode retracted");
207#endif
208
209#if defined (SIGSOUND)
210  sys_siglist[SIGSOUND] = _("HFT sound sequence has completed");
211#endif
212
213#if defined (SIGINFO)
214  sys_siglist[SIGINFO] = _("Information request");
215#endif
216
217  for (i = 0; i < NSIG; i++)
218    {
219      if (!sys_siglist[i])
220	{
221	  sys_siglist[i] =
222	    (char *)xmalloc (10 + strlen (_("Unknown Signal #")));
223
224	  sprintf (sys_siglist[i], _("Unknown Signal #%d"), i);
225	}
226    }
227}
228#endif /* !HAVE_SYS_SIGLIST && !HAVE_UNDER_SYS_SIGLIST && !HAVE_STRSIGNAL */
229