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