|
|
1.1 root 1: /*
2: * code to print the name of a signal
3: * machine-dependent for less than obvious reasons
4: * this for VAX
5: */
6:
7: #include "defs.h"
8: #include "regs.h"
9: #include "space.h"
10: #include <signal.h>
11:
12: static char *signals[] = {
13: "",
14: "hangup",
15: "interrupt",
16: "quit",
17: "illegal instruction",
18: "trace/BPT",
19: "IOT",
20: "EMT",
21: "floating exception",
22: "killed",
23: "bus error",
24: "memory fault",
25: "bad system call",
26: "broken pipe",
27: "alarm call",
28: "terminated",
29: "signal 16",
30: "stopped",
31: "stop (tty)",
32: "continue (signal)",
33: "child termination",
34: "stop (tty input)",
35: "stop (tty output)",
36: "input available (signal)",
37: "cpu timelimit",
38: "file sizelimit",
39: "signal 26",
40: "signal 27",
41: "signal 28",
42: "signal 29",
43: "signal 30",
44: "signal 31",
45: };
46:
47: static char *illinames[] = {
48: "reserved addressing fault",
49: "privileged instruction fault",
50: "reserved operand fault"
51: };
52: static char *fpenames[] = {
53: 0,
54: "integer overflow trap",
55: "integer divide by zero trap",
56: "floating overflow trap",
57: "floating/decimal divide by zero trap",
58: "floating underflow trap",
59: "decimal overflow trap",
60: "subscript out of range trap",
61: "floating overflow fault",
62: "floating divide by zero fault",
63: "floating undeflow fault"
64: };
65:
66: sigprint()
67: {
68: if ((signo>=0) && (signo<sizeof signals/sizeof signals[0]))
69: prints(signals[signo]);
70: switch (signo) {
71:
72: case SIGFPE:
73: if ((sigcode > 0
74: && sigcode < sizeof fpenames / sizeof fpenames[0]))
75: printf(" (%s)", fpenames[sigcode]);
76: break;
77:
78: case SIGILL:
79: if ((sigcode >= 0
80: && sigcode < sizeof illinames / sizeof illinames[0]))
81: printf(" (%s)", illinames[sigcode]);
82: break;
83: }
84: }
85:
86: printpc()
87: {
88:
89: dot = (ADDR)rtow(rget(PC));
90: psymoff((WORD)dot, INSTSP, "?%16t");
91: printins(SYMF|INSTSP);
92: printc(EOR);
93: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.