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