1 /*********************************************************************** 2 * * 3 * This software is part of the ast package * 4 * Copyright (c) 1982-2008 AT&T Intellectual Property * 5 * and is licensed under the * 6 * Common Public License, Version 1.0 * 7 * by AT&T Intellectual Property * 8 * * 9 * A copy of the License is available at * 10 * http://www.opensource.org/licenses/cpl1.0.txt * 11 * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 12 * * 13 * Information and Software Systems Research * 14 * AT&T Research * 15 * Florham Park NJ * 16 * * 17 * David Korn <dgk@research.att.com> * 18 * * 19 ***********************************************************************/ 20 #include <ast.h> 21 #include "shtable.h" 22 #include "fault.h" 23 24 #if defined(SIGCLD) && !defined(SIGCHLD) 25 # define SIGCHLD SIGCLD 26 #endif 27 28 #define VAL(sig,mode) ((sig+1)|((mode)<<SH_SIGBITS)) 29 #define TRAP(n) (((n)|SH_TRAP)-1) 30 31 #ifndef ERROR_dictionary 32 # define ERROR_dictionary(s) (s) 33 #endif 34 #define S(s) ERROR_dictionary(s) 35 36 /* 37 * This is a table that gives numbers and default settings to each signal 38 * The signal numbers go in the low bits and the attributes go in the high bits 39 */ 40 41 const struct shtable2 shtab_signals[] = 42 { 43 #ifdef SIGABRT 44 "ABRT", VAL(SIGABRT,SH_SIGDONE), S("Abort"), 45 #endif /*SIGABRT */ 46 #ifdef SIGAIO 47 "AIO", VAL(SIGAIO,SH_SIGIGNORE), S("Asynchronous I/O"), 48 #endif /*SIGAIO */ 49 #ifdef SIGALRM 50 "ALRM", VAL(SIGALRM,SH_SIGDONE), S("Alarm call"), 51 #endif /* SIGALRM */ 52 #ifdef SIGAPOLLO 53 "APOLLO", VAL(SIGAPOLLO,0), "SIGAPOLLO"), 54 #endif /* SIGAPOLLO */ 55 #ifdef SIGBUS 56 "BUS", VAL(SIGBUS,SH_SIGDONE), S("Bus error"), 57 #endif /* SIGBUS */ 58 #ifdef SIGCANCEL 59 "CANCEL", VAL(SIGCANCEL,SH_SIGIGNORE), S("Thread cancellation"), 60 #endif /*SIGCANCEL */ 61 #ifdef SIGCHLD 62 "CHLD", VAL(SIGCHLD,SH_SIGFAULT), S("Death of Child"), 63 # ifdef SIGCLD 64 # if SIGCLD!=SIGCHLD 65 "CLD", VAL(SIGCLD,SH_SIGFAULT), S("Death of Child"), 66 # endif 67 # endif /* SIGCLD */ 68 #else 69 # ifdef SIGCLD 70 "CLD", VAL(SIGCLD,SH_SIGFAULT), S("Death of Child"), 71 # endif /* SIGCLD */ 72 #endif /* SIGCHLD */ 73 #ifdef SIGCONT 74 "CONT", VAL(SIGCONT,SH_SIGIGNORE), S("Stopped process continued"), 75 #endif /* SIGCONT */ 76 "DEBUG", VAL(TRAP(SH_DEBUGTRAP),0), "", 77 #ifdef SIGDANGER 78 "DANGER", VAL(SIGDANGER,0), S("System crash soon"), 79 #endif /* SIGDANGER */ 80 #ifdef SIGDIL 81 "DIL", VAL(SIGDIL,0), S("DIL signal"), 82 #endif /* SIGDIL */ 83 #ifdef SIGEMT 84 "EMT", VAL(SIGEMT,SH_SIGDONE), S("EMT trap"), 85 #endif /* SIGEMT */ 86 "ERR", VAL(TRAP(SH_ERRTRAP),0), "", 87 #ifdef SIGERR 88 "ERR", VAL(SIGERR,0), "", 89 #endif /* SIGERR */ 90 "EXIT", VAL(0,0), "", 91 "FPE", VAL(SIGFPE,SH_SIGDONE), S("Floating exception"), 92 #ifdef SIGFREEZE 93 "FREEZE", VAL(SIGFREEZE,SH_SIGIGNORE), S("Special signal used by CPR"), 94 #endif /* SIGFREEZE */ 95 "HUP", VAL(SIGHUP,SH_SIGDONE), S("Hangup"), 96 "ILL", VAL(SIGILL,SH_SIGDONE), S("Illegal instruction"), 97 #ifdef JOBS 98 "INT", VAL(SIGINT,SH_SIGINTERACTIVE), S("Interrupt"), 99 #else 100 "INT", VAL(SIGINT,SH_SIGINTERACTIVE), "", 101 #endif /* JOBS */ 102 #ifdef SIGIO 103 "IO", VAL(SIGIO,SH_SIGIGNORE), S("IO signal"), 104 #endif /* SIGIO */ 105 #ifdef SIGIOT 106 "IOT", VAL(SIGIOT,SH_SIGDONE), S("Abort"), 107 #endif /* SIGIOT */ 108 #ifdef SIGJVM1 109 "JVM1", VAL(SIGJVM1,SH_SIGIGNORE), S("Special signal used by Java Virtual Machine"), 110 #endif /*SIGJVM1 */ 111 #ifdef SIGJVM2 112 "JVM2", VAL(SIGJVM2,SH_SIGIGNORE), S("Special signal used by Java Virtual Machine"), 113 #endif /*SIGJVM2 */ 114 "KEYBD", VAL(TRAP(SH_KEYTRAP),0), "", 115 #ifdef SIGKILL 116 "KILL", VAL(SIGKILL,0), S("Killed"), 117 #endif /* SIGKILL */ 118 #ifdef SIGLAB 119 "LAB", VAL(SIGLAB,0), S("Security label changed"), 120 #endif /* SIGLAB */ 121 #ifdef SIGLOST 122 "LOST", VAL(SIGLOST,SH_SIGDONE), S("Resources lost"), 123 #endif /* SIGLOST */ 124 #ifdef SIGLWP 125 "LWP", VAL(SIGLWP,SH_SIGIGNORE), S("Special signal used by thread library"), 126 #endif /* SIGLWP */ 127 #ifdef SIGPHONE 128 "PHONE", VAL(SIGPHONE,0), S("Phone interrupt"), 129 #endif /* SIGPHONE */ 130 #ifdef SIGPIPE 131 #ifdef JOBS 132 "PIPE", VAL(SIGPIPE,SH_SIGDONE), S("Broken Pipe"), 133 #else 134 "PIPE", VAL(SIGPIPE,SH_SIGDONE), "", 135 #endif /* JOBS */ 136 #endif /* SIGPIPE */ 137 #ifdef SIGPOLL 138 "POLL", VAL(SIGPOLL,SH_SIGDONE), S("Polling alarm"), 139 #endif /* SIGPOLL */ 140 #ifdef SIGPROF 141 "PROF", VAL(SIGPROF,SH_SIGDONE), S("Profiling time alarm"), 142 #endif /* SIGPROF */ 143 #ifdef SIGPWR 144 # if SIGPWR>0 145 "PWR", VAL(SIGPWR,SH_SIGIGNORE), S("Power fail"), 146 # endif 147 #endif /* SIGPWR */ 148 #ifdef SIGQUIT 149 "QUIT", VAL(SIGQUIT,SH_SIGDONE|SH_SIGINTERACTIVE), S("Quit"), 150 #endif /* SIGQUIT */ 151 #ifdef SIGRTMIN 152 "RTMIN", VAL(SH_SIGRTMIN,SH_SIGRUNTIME), S("Lowest priority realtime signal"), 153 #endif /* SIGRTMIN */ 154 #ifdef SIGRTMAX 155 "RTMAX", VAL(SH_SIGRTMAX,SH_SIGRUNTIME), S("Highest priority realtime signal"), 156 #endif /* SIGRTMAX */ 157 "SEGV", VAL(SIGSEGV,0), S("Memory fault"), 158 #ifdef SIGSTOP 159 "STOP", VAL(SIGSTOP,0), S("Stopped (SIGSTOP)"), 160 #endif /* SIGSTOP */ 161 #ifdef SIGSYS 162 "SYS", VAL(SIGSYS,SH_SIGDONE), S("Bad system call"), 163 #endif /* SIGSYS */ 164 "TERM", VAL(SIGTERM,SH_SIGDONE|SH_SIGINTERACTIVE), S("Terminated"), 165 #ifdef SIGTINT 166 # ifdef JOBS 167 "TINT", VAL(SIGTINT,0), S("Interrupt"), 168 # else 169 "TINT", VAL(SIGTINT,0), "". 170 # endif /* JOBS */ 171 #endif /* SIGTINT */ 172 #ifdef SIGTRAP 173 "TRAP", VAL(SIGTRAP,SH_SIGDONE), S("Trace/BPT trap"), 174 #endif /* SIGTRAP */ 175 #ifdef SIGTSTP 176 "TSTP", VAL(SIGTSTP,0), S("Stopped"), 177 #endif /* SIGTSTP */ 178 #ifdef SIGTTIN 179 "TTIN", VAL(SIGTTIN,0), S("Stopped (SIGTTIN)"), 180 #endif /* SIGTTIN */ 181 #ifdef SIGTTOU 182 "TTOU", VAL(SIGTTOU,0), S("Stopped(SIGTTOU)"), 183 #endif /* SIGTTOU */ 184 #ifdef SIGURG 185 "URG", VAL(SIGURG,SH_SIGIGNORE), S("Socket interrupt"), 186 #endif /* SIGURG */ 187 #ifdef SIGUSR1 188 "USR1", VAL(SIGUSR1,SH_SIGDONE), S("User signal 1"), 189 #endif /* SIGUSR1 */ 190 #ifdef SIGUSR2 191 "USR2", VAL(SIGUSR2,SH_SIGDONE), S("User signal 2"), 192 #endif /* SIGUSR2 */ 193 #ifdef SIGVTALRM 194 "VTALRM", VAL(SIGVTALRM,SH_SIGDONE), S("Virtual time alarm"), 195 #endif /* SIGVTALRM */ 196 #ifdef SIGWINCH 197 "WINCH", VAL(SIGWINCH,SH_SIGIGNORE), S("Window size change"), 198 #endif /* SIGWINCH */ 199 #ifdef SIGMIGRATE 200 "MIGRATE", VAL(SIGMIGRATE,0), S("Migrate process"), 201 #endif /* SIGMIGRATE */ 202 #ifdef SIGSOUND 203 "SOUND", VAL(SIGSOUND,0), S("Sound completed"), 204 #endif /* SIGSOUND */ 205 #ifdef SIGTHAW 206 "THAW", VAL(SIGTHAW,SH_SIGIGNORE), S("Special signal used by CPR"), 207 #endif /* SIGTHAW */ 208 #ifdef SIGWAITING 209 "WAITING", VAL(SIGWAITING,SH_SIGIGNORE), S("All threads blocked"), 210 #endif /* SIGWAITING */ 211 #ifdef SIGXCPU 212 "XCPU", VAL(SIGXCPU,SH_SIGDONE|SH_SIGINTERACTIVE), S("Exceeded CPU time limit"), 213 #endif /* SIGXCPU */ 214 #ifdef SIGXFSZ 215 "XFSZ", VAL(SIGXFSZ,SH_SIGDONE|SH_SIGINTERACTIVE), S("Exceeded file size limit"), 216 #endif /* SIGXFSZ */ 217 #ifdef SIGXRES 218 "XRES", VAL(SIGXRES,SH_SIGDONE|SH_SIGINTERACTIVE), S("Exceeded resource control"), 219 #endif /* SIGRES */ 220 "", 0, 0 221 }; 222