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) <= ®list[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