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