|
|
1.1 root 1: /*
2: *
3: * UNIX debugger - common definitions
4: *
5: */
6:
7:
8:
9: /* Layout of a.out file (fsym):
10: *
11: * header of 8 longwords
12: * magic number 410
13: * text size )
14: * data size ) padded with 0 to multiple of 4 bytes
15: * bss size )
16: * symbol table size
17: * entry address
18: * size of text relocation info
19: * size of data relocation info
20: *
21: *
22: * header: 0
23: * text: 32
24: * data: 32+textsize
25: * text reloc: 32+textsize+datasize
26: * data reloc: 32+textsize+datasize+textreloc
27: * symbol table: 32+textsize+datasize+textreloc+datareloc
28: *
29: */
30:
31: #include <sys/param.h>
32: #include <sys/dir.h>
33: #include <sys/psl.h>
34: #include <sys/user.h>
35: #include "mac.h"
36: #include "mode.h"
37:
38:
39: #define VARB 11
40: #define VARD 13
41: #define VARE 14
42: #define VARM 22
43: #define VARS 28
44: #define VART 29
45:
46: #define COREMAGIC 0140000
47:
48: /* access modes */
49: #define RD 0
50: #define WT 1
51:
52: /* access spaces */
53: #define NSP 0
54: #define ISP 1
55: #define DSP 2
56:
57: #define STAR 4
58: #define STARCOM 0200
59: #define DSYM 4
60: #define ISYM 4
61: #define ASYM 2
62: #define NSYM 0
63: #define ESYM (-1)
64: #define BKPTSET 1
65: #define BKPTEXEC 2
66: #define SYMSIZ 100
67: #define MAXSIG 20
68:
69: #define USERPS PSL
70: #define USERPC PC
71: #define BPT 03
72: #define TBIT 020
73: #define FD 0200
74:
75: /* ptracew modes */
76: #define SETTRC 0
77: #define RDUSER 2
78: #define RIUSER 1
79: #define WDUSER 5
80: #define WIUSER 4
81: #define RUREGS 3
82: #define WUREGS 6
83: #define CONTIN 7
84: #define EXIT 8
85: #define SINGLE 9
86:
87: #define FROFF (&(0->fpsr))
88: #define FRLEN 25
89: #define FRMAX 6
90:
91: /* the quantities involving ctob() are located in the kernel stack.
92: /* the others are in the pcb.
93: */
94: #define KSP 0
95: #define ESP 4
96: #define SSP 8
97: #ifdef VAX135
98: #define USP (ctob(UPAGES)-5*4)
99: #define R0 (ctob(UPAGES)-18*4)
100: #define R1 (ctob(UPAGES)-17*4)
101: #define R2 (ctob(UPAGES)-16*4)
102: #define R3 (ctob(UPAGES)-15*4)
103: #define R4 (ctob(UPAGES)-14*4)
104: #define R5 (ctob(UPAGES)-13*4)
105: #define R6 (ctob(UPAGES)-12*4)
106: #define R7 (ctob(UPAGES)-11*4)
107: #define R8 (ctob(UPAGES)-10*4)
108: #define R9 (ctob(UPAGES)-9*4)
109: #define R10 (ctob(UPAGES)-8*4)
110: #define R11 (ctob(UPAGES)-7*4)
111: #define AP (ctob(UPAGES)-21*4)
112: #define FP (ctob(UPAGES)-20*4)
113: #define PC (ctob(UPAGES)-2*4)
114: #define PSL (ctob(UPAGES)-1*4)
115: #else
116: #define USP (ctob(UPAGES)-5*4)
117: #define R0 (ctob(UPAGES)-19*4)
118: #define R1 (ctob(UPAGES)-18*4)
119: #define R2 (ctob(UPAGES)-17*4)
120: #define R3 (ctob(UPAGES)-16*4)
121: #define R4 (ctob(UPAGES)-15*4)
122: #define R5 (ctob(UPAGES)-14*4)
123: #define R6 (ctob(UPAGES)-13*4)
124: #define R7 (ctob(UPAGES)-12*4)
125: #define R8 (ctob(UPAGES)-11*4)
126: #define R9 (ctob(UPAGES)-10*4)
127: #define R10 (ctob(UPAGES)-9*4)
128: #define R11 (ctob(UPAGES)-8*4)
129: #define AP (ctob(UPAGES)-7*4)
130: #define FP (ctob(UPAGES)-6*4)
131: #define PC (ctob(UPAGES)-2*4)
132: #define PSL (ctob(UPAGES)-1*4)
133: #endif
134: #define P0BR 80
135: #define P0LR 84
136: #define P1BR 88
137: #define P1LR 92
138:
139: #define MAXOFF 255
140: #define MAXPOS 80
141: #define MAXLIN 128
142: #define EOR '\n'
143: #define SP ' '
144: #define TB '\t'
145: #define QUOTE 0200
146: #define STRIP 0177
147: #define LOBYTE 0377
148: #define EVEN -2
149:
150:
151: #ifndef vax
152: #define leng(a) ((long)((unsigned)(a)))
153: #define shorten(a) ((int)(a))
154: #define itol(a,b) (itolws.I[0]=(a), itolws.I[1]=(b), itolws.L)
155: #else
156: #define leng(a) itol(0,a)
157: #define shorten(a) ((short)(a))
158: #define itol(a,b) (itolws.I[0]=(b), itolws.I[1]=(a), itolws.L)
159: #endif
160:
161:
162:
163: /* result type declarations */
164: L_INT inkdot();
165: SYMPTR lookupsym();
166: SYMPTR symget();
167: POS get();
168: POS chkget();
169: STRING exform();
170: L_INT round();
171: BKPTR scanbkpt();
172: VOID fault();
173:
174:
175: INT mkfault;
176: INT executing;
177: L_INT maxoff;
178: L_INT maxpos;
179: ADDR sigint;
180: ADDR sigqit;
181: INT wtflag;
182: L_INT maxfile;
183: L_INT maxstor;
184: L_INT txtsiz;
185: L_INT datsiz;
186: L_INT datbas;
187: L_INT stksiz;
188: STRING errflg;
189: INT magic;
190: L_INT entrypt;
191:
192: CHAR lastc;
193:
194: STRING symfil;
195: STRING corfil;
196: MAP txtmap;
197: MAP datmap;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.