xref: /csrg-svn/old/adb/adb.hp300/defs.h (revision 62853)
159795Shibler /*	defs.h	4.6	86/03/26	*/
259795Shibler 
359795Shibler /*
459795Shibler  * adb - vax string table version; common definitions
559795Shibler  */
659795Shibler #include <sys/param.h>
759795Shibler 
859795Shibler #include <machine/psl.h>
959795Shibler #ifdef NEWVM
1059795Shibler typedef	unsigned long Ooff_t;
1159795Shibler #define	off_t Ooff_t
1262648Shibler #define lseek Lseek
1359795Shibler #include <hp300/pte.h>
1459795Shibler #else
1559795Shibler #include <machine/pte.h>
1659795Shibler #endif
1759795Shibler 
1859795Shibler #include <sys/user.h>
1959795Shibler 
2059795Shibler #include <ctype.h>
2159795Shibler #include <a.out.h>
2259795Shibler #include <sys/ptrace.h>
2359795Shibler 
2459806Shibler #ifdef NEWVM
2559806Shibler #undef TRUE
2659806Shibler #undef FALSE
2759806Shibler #endif
2859795Shibler #include "mac.h"
2959795Shibler #include "mode.h"
3059795Shibler #include "head.h"
3159795Shibler 
3259795Shibler /* access modes */
3359795Shibler #define RD	0
3459795Shibler #define WT	1
3559795Shibler 
3659795Shibler #define NSP	0
3759795Shibler #define	ISP	1
3859795Shibler #define	DSP	2
3959795Shibler #define STAR	4
4059795Shibler #define PSP	8
4159795Shibler #define STARCOM 0200
4259795Shibler 
4359795Shibler #ifdef pdp11
4459795Shibler I guess I should look this up in the 2.10 source...
4559795Shibler #endif
4659795Shibler 
4759795Shibler #ifdef vax
4859795Shibler /*
4959795Shibler  * Symbol types, used internally in calls to findsym routine.
5059795Shibler  * One the VAX this all degenerates since I & D symbols are indistinct.
5159795Shibler  * Basically we get NSYM==0 for `=' command, ISYM==DSYM otherwise.
5259795Shibler  */
5359795Shibler #define NSYM	0
5459795Shibler #define DSYM	1		/* Data space symbol */
5559795Shibler #define ISYM	DSYM		/* Instruction space symbol == DSYM on VAX */
5659795Shibler 
5759795Shibler #define BKPTSET	1
5859795Shibler #define BKPTEXEC 2
5959795Shibler 
6059795Shibler #define USERPS	PSL
6159795Shibler #define USERPC	PC
6259795Shibler #define BPT	03
6359795Shibler #define TBIT	020
6459795Shibler #define FD	0200
6559795Shibler #define getradj(i)	0
6659795Shibler #define lget	get
6759795Shibler 
6859795Shibler /* puns from <sys/ptrace.h> */
6959795Shibler #define	CONTIN	PT_CONTINUE
7059795Shibler #define SINGLE	PT_STEP
7159795Shibler 
7259795Shibler /* the quantities involving ctob() are located in the kernel stack. */
7359795Shibler /* the others are in the pcb. */
7459795Shibler #define KSP	0
7559795Shibler #define ESP	4
7659795Shibler #define SSP	8
7759795Shibler #define USP	(ctob(UPAGES)-5*sizeof(int))
7859795Shibler 
7959795Shibler /* should read this in from reg.h */
8059795Shibler #define R0	(ctob(UPAGES)-18*sizeof(int))
8159795Shibler #define R1	(ctob(UPAGES)-17*sizeof(int))
8259795Shibler #define R2	(ctob(UPAGES)-16*sizeof(int))
8359795Shibler #define R3	(ctob(UPAGES)-15*sizeof(int))
8459795Shibler #define R4	(ctob(UPAGES)-14*sizeof(int))
8559795Shibler #define R5	(ctob(UPAGES)-13*sizeof(int))
8659795Shibler #define R6	(ctob(UPAGES)-12*sizeof(int))
8759795Shibler #define R7	(ctob(UPAGES)-11*sizeof(int))
8859795Shibler #define R8	(ctob(UPAGES)-10*sizeof(int))
8959795Shibler #define R9	(ctob(UPAGES)-9*sizeof(int))
9059795Shibler #define R10	(ctob(UPAGES)-8*sizeof(int))
9159795Shibler #define R11	(ctob(UPAGES)-7*sizeof(int))
9259795Shibler #define AP	(ctob(UPAGES)-21*sizeof(int))
9359795Shibler #define FP	(ctob(UPAGES)-20*sizeof(int))
9459795Shibler #define PC	(ctob(UPAGES)-2*sizeof(int))
9559795Shibler #define PSL	(ctob(UPAGES)-1*sizeof(int))
9659795Shibler 
9759795Shibler #define P0BR	80
9859795Shibler #define P0LR	84
9959795Shibler #define P1BR	88
10059795Shibler #define P1LR	92
10159795Shibler #endif
10259795Shibler 
10359795Shibler #ifdef hp300
10459795Shibler #define NSYM	0		/* ??? */
10559795Shibler #define DSYM	1		/* Data space symbol */
10659795Shibler #define ISYM	DSYM		/* Instruction space symbol */
10759795Shibler 
10859795Shibler #define BKPTSET	1
10959795Shibler #define BKPTEXEC 2
11059795Shibler 
11159795Shibler extern L_INT	getradj();
11259795Shibler 
11359795Shibler #define BPT	0x4e42
11459795Shibler 
11559795Shibler /* puns from <sys/ptrace.h> */
11659795Shibler #define	CONTIN	PT_CONTINUE
11759795Shibler #define SINGLE	PT_STEP
11859795Shibler 
11959795Shibler /*
12059795Shibler  * Appropriated from dbx (returning a favor)
12159795Shibler  * `10' comes from:
12259795Shibler  *	(4)	stack starts 4 bytes in from end of uarea
12359795Shibler  *	(2)	trap type 0 frame format word is 2 bytes back from that
12459795Shibler  *	(4)	trap type 0 pc is 4 bytes back from that
12559795Shibler  */
12659795Shibler #define	regloc(reg)	(ctob(UPAGES) + (sizeof(int) * ((reg) - 17)) - 10)
12759795Shibler 
12859795Shibler /* select map */
12959795Shibler #define	mapptr(s)	(((s)&DSP)?&datmap:(((s)&PSP)?&physmap:&txtmap))
13059795Shibler 
13159795Shibler #define KSP	12	/* who knows? */
13259795Shibler 
13359795Shibler /* should read this in from reg.h */
13459795Shibler #define	D0	regloc(0)
13559795Shibler #define	D1	regloc(1)
13659795Shibler #define	D2	regloc(2)
13759795Shibler #define	D3	regloc(3)
13859795Shibler #define	D4	regloc(4)
13959795Shibler #define	D5	regloc(5)
14059795Shibler #define	D6	regloc(6)
14159795Shibler #define	D7	regloc(7)
14259795Shibler #define	A0	regloc(8)
14359795Shibler #define	A1	regloc(9)
14459795Shibler #define	A2	regloc(10)
14559795Shibler #define	A3	regloc(11)
14659795Shibler #define	A4	regloc(12)
14759795Shibler #define	A5	regloc(13)
14859795Shibler #define	A6	regloc(14)
14959795Shibler #define	A7	regloc(15)
15059795Shibler /*
15159795Shibler  * In 4.4 these have changed, stackadj (pad) field is 4 bytes not 2
15259795Shibler  * so PSW/PC are 2 bytes further away from D0.
15359795Shibler  */
15459795Shibler #if defined(BSD4_4) || defined(HPBSD)
15559795Shibler #define	PSW	(regloc(16)+2)
15659795Shibler #define	PC	(regloc(17)+2)
15759795Shibler #else
15859795Shibler #define	PSW	regloc(16)
15959795Shibler #define	PC	regloc(17)
16059795Shibler #endif
16159795Shibler #define FP	A6
16259795Shibler #define USP	A7
16359795Shibler 
16459795Shibler #define P0BR	60
16559795Shibler #define P0LR	64
16659795Shibler #define P1BR	68
16759795Shibler #define P1LR	72
16859795Shibler 
169*62853Shibler #ifdef BSD4_4
170*62853Shibler #define FPBASE	280
171*62853Shibler #else
172*62853Shibler #define FPBASE	332
17359795Shibler #endif
174*62853Shibler #define	FP0	(FPBASE+0*12)
175*62853Shibler #define	FP1	(FPBASE+1*12)
176*62853Shibler #define	FP2	(FPBASE+2*12)
177*62853Shibler #define	FP3	(FPBASE+3*12)
178*62853Shibler #define	FP4	(FPBASE+4*12)
179*62853Shibler #define	FP5	(FPBASE+5*12)
180*62853Shibler #define	FP6	(FPBASE+6*12)
181*62853Shibler #define	FP7	(FPBASE+7*12)
182*62853Shibler #define	FPCR	(FPBASE+8*12+0)
183*62853Shibler #define	FPSR	(FPBASE+8*12+4)
184*62853Shibler #define	FPIAR	(FPBASE+8*12+8)
185*62853Shibler #endif
18659795Shibler 
18759795Shibler #if !defined(pdp11) && !defined(vax) && !defined(hp300)
18859795Shibler 
18959795Shibler "edit this file to accommodate your machine's addressing"
19059795Shibler 
19159795Shibler #endif
19259795Shibler 
19359795Shibler #define MAXOFF	255
19459795Shibler #define MAXPOS	80
19559795Shibler #define MAXLIN	128
19659795Shibler #define EOR	'\n'
19759795Shibler #define SP	' '
19859795Shibler #define TB	'\t'
19959795Shibler #define QUOTE	0200
20059795Shibler #define STRIP	0177
20159795Shibler #define EVEN	-2
20259795Shibler 
20359795Shibler /* long to ints and back (puns) */
20459795Shibler union {
20559795Shibler 	INT	I[2];
20659795Shibler 	L_INT	L;
20759795Shibler } itolws;
20859795Shibler 
20959795Shibler #ifdef pdp11
21059795Shibler #define leng(a)		((long)((unsigned)(a)))
21159795Shibler #define shorten(a)	((int)(a))
21259795Shibler #define itol(a,b)	(itolws.I[0]=(a), itolws.I[1]=(b), itolws.L)
21359795Shibler #define lobyte(a)	((a) & 0377)
21459795Shibler #endif
21559795Shibler 
21659795Shibler #ifdef vax
21759795Shibler #define leng(a)		itol(0,a)
21859795Shibler #define shorten(a)	((short)(a))
21959795Shibler #define itol(a,b)	(itolws.I[0]=(b), itolws.I[1]=(a), itolws.L)
22059795Shibler #define lobyte(a)	((a) & 0377)
22159795Shibler #endif
22259795Shibler 
22359795Shibler #ifdef mc68000
22459795Shibler #define leng(a)		itol(0,a)
22559795Shibler #define shorten(a)	((short)(a))
22659795Shibler #define itol(a,b)	(itolws.I[0]=(a), itolws.I[1]=(b), itolws.L)
22759795Shibler #define lobyte(a)	(((a) >> 8) & 0377)
22859795Shibler #endif
22959795Shibler 
23059795Shibler #if !defined(vax) && !defined(pdp11) && !defined(mc68000)
23159795Shibler 
23259795Shibler "edit this file to suit your machine's byte order"
23359795Shibler 
23459795Shibler #endif
23559795Shibler 
23659795Shibler /* result type declarations */
23759795Shibler L_INT		inkdot();
23859795Shibler POS		get();
23959795Shibler POS		chkget();
24059795Shibler POS		lchkget();
24159795Shibler STRING		exform();
24259795Shibler L_INT		round();
24359795Shibler BKPTR		scanbkpt();
24459795Shibler VOID		fault();
24559795Shibler 
24659795Shibler struct	pcb	pcb;
24759795Shibler int	kernel;
24859795Shibler int	kcore;
24959795Shibler struct	pte *sbr;
25059795Shibler int	slr;
25159795Shibler int	masterpcbb;
252