xref: /csrg-svn/sys/vax/include/kdbparam.h (revision 34075)
1*34075Skarels /*
2*34075Skarels  *	@(#)kdbparam.h	7.1 (Berkeley) 04/23/88
3*34075Skarels  */
4*34075Skarels 
5*34075Skarels #include <sys/vm.h>
6*34075Skarels 
7*34075Skarels #define DBNAME "kdb\n"
8*34075Skarels #define LPRMODE "%R"
9*34075Skarels #define OFFMODE "+%R"
10*34075Skarels 
11*34075Skarels #define	MAXINT	0x7fffffff
12*34075Skarels #define	MAXSTOR (KERNBASE - ctob(UPAGES))
13*34075Skarels 
14*34075Skarels #define	ENTRYMASK	1			/* check for entry masks */
15*34075Skarels #define	ishiddenreg(p)	((p) <= &reglist[8])
16*34075Skarels 
17*34075Skarels #define BPT	03
18*34075Skarels #define TBIT	020
19*34075Skarels 
20*34075Skarels #define	clrsstep()	(pcb.pcb_psl &= ~TBIT)
21*34075Skarels #define	setsstep()	(pcb.pcb_psl |= TBIT)
22*34075Skarels 
23*34075Skarels #define	SETBP(ins)	(BPT | ((ins) & ~0xff))
24*34075Skarels 
25*34075Skarels #define	getprevpc(fp)	get((fp)+16, DSP)	/* pc of caller */
26*34075Skarels #define	getprevframe(fp) (get((fp)+12, DSP)&~2)	/* fp of caller */
27*34075Skarels #define	getnargs(fp)	(get((fp)+6, DSP)&0xffff)
28*34075Skarels #define	nextarg(ap)	((ap) + 4)		/* next argument in list */
29*34075Skarels #define	NOFRAME		0			/* fp at top of call stack */
30*34075Skarels 
31*34075Skarels #define	issignalpc(pc)	(MAXSTOR < (pc) && (pc) < MAXSTOR+ctob(UPAGES))
32*34075Skarels #define	getsignalpc(fp)	get((fp)+92, DSP)	/* pc of caller before signal */
33*34075Skarels 
34*34075Skarels /* long to ints and back (puns) */
35*34075Skarels union {
36*34075Skarels 	int	I[2];
37*34075Skarels 	long	L;
38*34075Skarels } itolws;
39*34075Skarels 
40*34075Skarels #define leng(a)		itol(0,a)
41*34075Skarels #define shorten(a)	((short)(a))
42*34075Skarels #define itol(a,b)	(itolws.I[0]=(b), itolws.I[1]=(a), itolws.L)
43*34075Skarels #define	byte(a)		((a) & 0xff)
44*34075Skarels #define	btol(a)		((a))
45*34075Skarels 
46*34075Skarels /* check for address wrap around */
47*34075Skarels #define	addrwrap(oaddr,newaddr) (((oaddr)^(newaddr)) >> 24)
48*34075Skarels /*
49*34075Skarels  * INSTACK tells whether its argument is a stack address.
50*34075Skarels  * INUDOT tells whether its argument is in the (extended) u. area.
51*34075Skarels  * These are used for consistency checking and dont have to be exact.
52*34075Skarels  *
53*34075Skarels  * INKERNEL tells whether its argument is a kernel space address.
54*34075Skarels  * KVTOPH trims a kernel virtal address back to its offset
55*34075Skarels  * in the kernel address space.
56*34075Skarels  */
57*34075Skarels #define	INSTACK(x)	(((x)&0xf0000000) == 0x70000000)
58*34075Skarels #define	INUDOT(x)	(((x)&0xf0000000) == 0x70000000)
59*34075Skarels #define	INKERNEL(x)	(((x)&0xf0000000) == 0x80000000)
60*34075Skarels 
61*34075Skarels #define	KVTOPH(x)	((x)&~ 0x80000000)
62*34075Skarels #define	KERNOFF		0x80000000
63