xref: /csrg-svn/sys/vax/include/kdbparam.h (revision 49436)
1*49436Sbostic /*-
2*49436Sbostic  * Copyright (c) 1988 The Regents of the University of California.
3*49436Sbostic  * All rights reserved.
4*49436Sbostic  *
5*49436Sbostic  * %sccs.include.proprietary.c%
6*49436Sbostic  *
7*49436Sbostic  *	@(#)kdbparam.h	7.4 (Berkeley) 05/08/91
834075Skarels  */
934075Skarels 
1034075Skarels #define DBNAME "kdb\n"
1134075Skarels #define LPRMODE "%R"
1234075Skarels #define OFFMODE "+%R"
1334075Skarels 
1434227Skarels #define	KDB_IPL		0xf	/* highest priority software interrupt */
1534227Skarels #define	setsoftkdb()	mtpr(SIRR, KDB_IPL)
1634227Skarels 
1734075Skarels #define	MAXINT	0x7fffffff
1834075Skarels #define	MAXSTOR (KERNBASE - ctob(UPAGES))
1934075Skarels 
2034075Skarels #define	ENTRYMASK	1			/* check for entry masks */
2143425Ssklower #define	ishiddenreg(p)	((p) <= &kdbreglist[8])
2234075Skarels 
2334075Skarels #define BPT	03
2434075Skarels #define TBIT	020
2534075Skarels 
2643425Ssklower #define	clrsstep()	(kdbpcb.pcb_psl &= ~TBIT)
2743425Ssklower #define	setsstep()	(kdbpcb.pcb_psl |= TBIT)
2834075Skarels 
2934075Skarels #define	SETBP(ins)	(BPT | ((ins) & ~0xff))
3034075Skarels 
3143425Ssklower #define	getprevpc(fp)	kdbget((fp)+16, DSP)	/* pc of caller */
3243425Ssklower #define	getprevframe(fp) (kdbget((fp)+12, DSP)&~2)	/* fp of caller */
3334075Skarels #define	NOFRAME		0			/* fp at top of call stack */
3434075Skarels 
3534075Skarels #define	issignalpc(pc)	(MAXSTOR < (pc) && (pc) < MAXSTOR+ctob(UPAGES))
3643425Ssklower #define	getsignalpc(fp)	kdbget((fp)+92, DSP)	/* pc of caller before signal */
3734075Skarels 
3834075Skarels /* long to ints and back (puns) */
3934075Skarels union {
4034075Skarels 	int	I[2];
4134075Skarels 	long	L;
4234075Skarels } itolws;
4334075Skarels 
4434075Skarels #define leng(a)		itol(0,a)
4534075Skarels #define shorten(a)	((short)(a))
4634075Skarels #define itol(a,b)	(itolws.I[0]=(b), itolws.I[1]=(a), itolws.L)
4734075Skarels #define	byte(a)		((a) & 0xff)
4834075Skarels #define	btol(a)		((a))
4934075Skarels 
5034075Skarels /* check for address wrap around */
5134075Skarels #define	addrwrap(oaddr,newaddr) (((oaddr)^(newaddr)) >> 24)
5234075Skarels /*
5334075Skarels  * INSTACK tells whether its argument is a stack address.
5434075Skarels  * INUDOT tells whether its argument is in the (extended) u. area.
5534075Skarels  * These are used for consistency checking and dont have to be exact.
5634075Skarels  *
5734075Skarels  * INKERNEL tells whether its argument is a kernel space address.
5834075Skarels  * KVTOPH trims a kernel virtal address back to its offset
5934075Skarels  * in the kernel address space.
6034075Skarels  */
6134075Skarels #define	INSTACK(x)	(((x)&0xf0000000) == 0x70000000)
6234075Skarels #define	INUDOT(x)	(((x)&0xf0000000) == 0x70000000)
6334075Skarels #define	INKERNEL(x)	(((x)&0xf0000000) == 0x80000000)
6434075Skarels 
6534075Skarels #define	KVTOPH(x)	((x)&~ 0x80000000)
6634075Skarels #define	KERNOFF		0x80000000
67