1/* siglist.c -- signal list for those machines that don't have one. */ 2 3/* Copyright (C) 1989 Free Software Foundation, Inc. 4 5This file is part of GNU Bash, the Bourne Again SHell. 6 7Bash is free software; you can redistribute it and/or modify it under 8the terms of the GNU General Public License as published by the Free 9Software Foundation; either version 2, or (at your option) any later 10version. 11 12Bash is distributed in the hope that it will be useful, but WITHOUT ANY 13WARRANTY; without even the implied warranty of MERCHANTABILITY or 14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15for more details. 16 17You should have received a copy of the GNU General Public License along 18with Bash; see the file COPYING. If not, write to the Free Software 19Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ 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