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