134075Skarels /* 2*43425Ssklower * @(#)kdbparam.h 7.3 (Berkeley) 06/22/90 334075Skarels */ 434075Skarels 534075Skarels #define DBNAME "kdb\n" 634075Skarels #define LPRMODE "%R" 734075Skarels #define OFFMODE "+%R" 834075Skarels 934227Skarels #define KDB_IPL 0xf /* highest priority software interrupt */ 1034227Skarels #define setsoftkdb() mtpr(SIRR, KDB_IPL) 1134227Skarels 1234075Skarels #define MAXINT 0x7fffffff 1334075Skarels #define MAXSTOR (KERNBASE - ctob(UPAGES)) 1434075Skarels 1534075Skarels #define ENTRYMASK 1 /* check for entry masks */ 16*43425Ssklower #define ishiddenreg(p) ((p) <= &kdbreglist[8]) 1734075Skarels 1834075Skarels #define BPT 03 1934075Skarels #define TBIT 020 2034075Skarels 21*43425Ssklower #define clrsstep() (kdbpcb.pcb_psl &= ~TBIT) 22*43425Ssklower #define setsstep() (kdbpcb.pcb_psl |= TBIT) 2334075Skarels 2434075Skarels #define SETBP(ins) (BPT | ((ins) & ~0xff)) 2534075Skarels 26*43425Ssklower #define getprevpc(fp) kdbget((fp)+16, DSP) /* pc of caller */ 27*43425Ssklower #define getprevframe(fp) (kdbget((fp)+12, DSP)&~2) /* fp of caller */ 2834075Skarels #define NOFRAME 0 /* fp at top of call stack */ 2934075Skarels 3034075Skarels #define issignalpc(pc) (MAXSTOR < (pc) && (pc) < MAXSTOR+ctob(UPAGES)) 31*43425Ssklower #define getsignalpc(fp) kdbget((fp)+92, DSP) /* pc of caller before signal */ 3234075Skarels 3334075Skarels /* long to ints and back (puns) */ 3434075Skarels union { 3534075Skarels int I[2]; 3634075Skarels long L; 3734075Skarels } itolws; 3834075Skarels 3934075Skarels #define leng(a) itol(0,a) 4034075Skarels #define shorten(a) ((short)(a)) 4134075Skarels #define itol(a,b) (itolws.I[0]=(b), itolws.I[1]=(a), itolws.L) 4234075Skarels #define byte(a) ((a) & 0xff) 4334075Skarels #define btol(a) ((a)) 4434075Skarels 4534075Skarels /* check for address wrap around */ 4634075Skarels #define addrwrap(oaddr,newaddr) (((oaddr)^(newaddr)) >> 24) 4734075Skarels /* 4834075Skarels * INSTACK tells whether its argument is a stack address. 4934075Skarels * INUDOT tells whether its argument is in the (extended) u. area. 5034075Skarels * These are used for consistency checking and dont have to be exact. 5134075Skarels * 5234075Skarels * INKERNEL tells whether its argument is a kernel space address. 5334075Skarels * KVTOPH trims a kernel virtal address back to its offset 5434075Skarels * in the kernel address space. 5534075Skarels */ 5634075Skarels #define INSTACK(x) (((x)&0xf0000000) == 0x70000000) 5734075Skarels #define INUDOT(x) (((x)&0xf0000000) == 0x70000000) 5834075Skarels #define INKERNEL(x) (((x)&0xf0000000) == 0x80000000) 5934075Skarels 6034075Skarels #define KVTOPH(x) ((x)&~ 0x80000000) 6134075Skarels #define KERNOFF 0x80000000 62