1*59795Shibler /* defs.h 4.6 86/03/26 */ 2*59795Shibler 3*59795Shibler /* 4*59795Shibler * adb - vax string table version; common definitions 5*59795Shibler */ 6*59795Shibler #include <sys/param.h> 7*59795Shibler 8*59795Shibler #include <machine/psl.h> 9*59795Shibler #ifdef NEWVM 10*59795Shibler typedef unsigned long Ooff_t; 11*59795Shibler #define off_t Ooff_t 12*59795Shibler #include <hp300/pte.h> 13*59795Shibler #else 14*59795Shibler #include <machine/pte.h> 15*59795Shibler #endif 16*59795Shibler 17*59795Shibler #include <sys/user.h> 18*59795Shibler 19*59795Shibler #include <ctype.h> 20*59795Shibler #include <a.out.h> 21*59795Shibler #include <sys/ptrace.h> 22*59795Shibler 23*59795Shibler #include "mac.h" 24*59795Shibler #include "mode.h" 25*59795Shibler #include "head.h" 26*59795Shibler 27*59795Shibler /* access modes */ 28*59795Shibler #define RD 0 29*59795Shibler #define WT 1 30*59795Shibler 31*59795Shibler #define NSP 0 32*59795Shibler #define ISP 1 33*59795Shibler #define DSP 2 34*59795Shibler #define STAR 4 35*59795Shibler #define PSP 8 36*59795Shibler #define STARCOM 0200 37*59795Shibler 38*59795Shibler #ifdef pdp11 39*59795Shibler I guess I should look this up in the 2.10 source... 40*59795Shibler #endif 41*59795Shibler 42*59795Shibler #ifdef vax 43*59795Shibler /* 44*59795Shibler * Symbol types, used internally in calls to findsym routine. 45*59795Shibler * One the VAX this all degenerates since I & D symbols are indistinct. 46*59795Shibler * Basically we get NSYM==0 for `=' command, ISYM==DSYM otherwise. 47*59795Shibler */ 48*59795Shibler #define NSYM 0 49*59795Shibler #define DSYM 1 /* Data space symbol */ 50*59795Shibler #define ISYM DSYM /* Instruction space symbol == DSYM on VAX */ 51*59795Shibler 52*59795Shibler #define BKPTSET 1 53*59795Shibler #define BKPTEXEC 2 54*59795Shibler 55*59795Shibler #define USERPS PSL 56*59795Shibler #define USERPC PC 57*59795Shibler #define BPT 03 58*59795Shibler #define TBIT 020 59*59795Shibler #define FD 0200 60*59795Shibler #define getradj(i) 0 61*59795Shibler #define lget get 62*59795Shibler 63*59795Shibler /* puns from <sys/ptrace.h> */ 64*59795Shibler #define CONTIN PT_CONTINUE 65*59795Shibler #define SINGLE PT_STEP 66*59795Shibler 67*59795Shibler /* the quantities involving ctob() are located in the kernel stack. */ 68*59795Shibler /* the others are in the pcb. */ 69*59795Shibler #define KSP 0 70*59795Shibler #define ESP 4 71*59795Shibler #define SSP 8 72*59795Shibler #define USP (ctob(UPAGES)-5*sizeof(int)) 73*59795Shibler 74*59795Shibler /* should read this in from reg.h */ 75*59795Shibler #define R0 (ctob(UPAGES)-18*sizeof(int)) 76*59795Shibler #define R1 (ctob(UPAGES)-17*sizeof(int)) 77*59795Shibler #define R2 (ctob(UPAGES)-16*sizeof(int)) 78*59795Shibler #define R3 (ctob(UPAGES)-15*sizeof(int)) 79*59795Shibler #define R4 (ctob(UPAGES)-14*sizeof(int)) 80*59795Shibler #define R5 (ctob(UPAGES)-13*sizeof(int)) 81*59795Shibler #define R6 (ctob(UPAGES)-12*sizeof(int)) 82*59795Shibler #define R7 (ctob(UPAGES)-11*sizeof(int)) 83*59795Shibler #define R8 (ctob(UPAGES)-10*sizeof(int)) 84*59795Shibler #define R9 (ctob(UPAGES)-9*sizeof(int)) 85*59795Shibler #define R10 (ctob(UPAGES)-8*sizeof(int)) 86*59795Shibler #define R11 (ctob(UPAGES)-7*sizeof(int)) 87*59795Shibler #define AP (ctob(UPAGES)-21*sizeof(int)) 88*59795Shibler #define FP (ctob(UPAGES)-20*sizeof(int)) 89*59795Shibler #define PC (ctob(UPAGES)-2*sizeof(int)) 90*59795Shibler #define PSL (ctob(UPAGES)-1*sizeof(int)) 91*59795Shibler 92*59795Shibler #define P0BR 80 93*59795Shibler #define P0LR 84 94*59795Shibler #define P1BR 88 95*59795Shibler #define P1LR 92 96*59795Shibler #endif 97*59795Shibler 98*59795Shibler #ifdef hp300 99*59795Shibler #define NSYM 0 /* ??? */ 100*59795Shibler #define DSYM 1 /* Data space symbol */ 101*59795Shibler #define ISYM DSYM /* Instruction space symbol */ 102*59795Shibler 103*59795Shibler #define BKPTSET 1 104*59795Shibler #define BKPTEXEC 2 105*59795Shibler 106*59795Shibler extern L_INT getradj(); 107*59795Shibler 108*59795Shibler #define BPT 0x4e42 109*59795Shibler 110*59795Shibler /* puns from <sys/ptrace.h> */ 111*59795Shibler #define CONTIN PT_CONTINUE 112*59795Shibler #define SINGLE PT_STEP 113*59795Shibler 114*59795Shibler /* 115*59795Shibler * Appropriated from dbx (returning a favor) 116*59795Shibler * `10' comes from: 117*59795Shibler * (4) stack starts 4 bytes in from end of uarea 118*59795Shibler * (2) trap type 0 frame format word is 2 bytes back from that 119*59795Shibler * (4) trap type 0 pc is 4 bytes back from that 120*59795Shibler */ 121*59795Shibler #define regloc(reg) (ctob(UPAGES) + (sizeof(int) * ((reg) - 17)) - 10) 122*59795Shibler 123*59795Shibler /* select map */ 124*59795Shibler #define mapptr(s) (((s)&DSP)?&datmap:(((s)&PSP)?&physmap:&txtmap)) 125*59795Shibler 126*59795Shibler #define KSP 12 /* who knows? */ 127*59795Shibler 128*59795Shibler /* should read this in from reg.h */ 129*59795Shibler #define D0 regloc(0) 130*59795Shibler #define D1 regloc(1) 131*59795Shibler #define D2 regloc(2) 132*59795Shibler #define D3 regloc(3) 133*59795Shibler #define D4 regloc(4) 134*59795Shibler #define D5 regloc(5) 135*59795Shibler #define D6 regloc(6) 136*59795Shibler #define D7 regloc(7) 137*59795Shibler #define A0 regloc(8) 138*59795Shibler #define A1 regloc(9) 139*59795Shibler #define A2 regloc(10) 140*59795Shibler #define A3 regloc(11) 141*59795Shibler #define A4 regloc(12) 142*59795Shibler #define A5 regloc(13) 143*59795Shibler #define A6 regloc(14) 144*59795Shibler #define A7 regloc(15) 145*59795Shibler /* 146*59795Shibler * In 4.4 these have changed, stackadj (pad) field is 4 bytes not 2 147*59795Shibler * so PSW/PC are 2 bytes further away from D0. 148*59795Shibler */ 149*59795Shibler #if defined(BSD4_4) || defined(HPBSD) 150*59795Shibler #define PSW (regloc(16)+2) 151*59795Shibler #define PC (regloc(17)+2) 152*59795Shibler #else 153*59795Shibler #define PSW regloc(16) 154*59795Shibler #define PC regloc(17) 155*59795Shibler #endif 156*59795Shibler #define FP A6 157*59795Shibler #define USP A7 158*59795Shibler 159*59795Shibler #define P0BR 60 160*59795Shibler #define P0LR 64 161*59795Shibler #define P1BR 68 162*59795Shibler #define P1LR 72 163*59795Shibler 164*59795Shibler #define FP0 332 165*59795Shibler #define FP1 344 166*59795Shibler #define FP2 356 167*59795Shibler #define FP3 368 168*59795Shibler #define FP4 380 169*59795Shibler #define FP5 392 170*59795Shibler #define FP6 404 171*59795Shibler #define FP7 416 172*59795Shibler #define FPCR 428 173*59795Shibler #define FPSR 432 174*59795Shibler #define FPIAR 436 175*59795Shibler #endif 176*59795Shibler 177*59795Shibler #if !defined(pdp11) && !defined(vax) && !defined(hp300) 178*59795Shibler 179*59795Shibler "edit this file to accommodate your machine's addressing" 180*59795Shibler 181*59795Shibler #endif 182*59795Shibler 183*59795Shibler #define MAXOFF 255 184*59795Shibler #define MAXPOS 80 185*59795Shibler #define MAXLIN 128 186*59795Shibler #define EOR '\n' 187*59795Shibler #define SP ' ' 188*59795Shibler #define TB '\t' 189*59795Shibler #define QUOTE 0200 190*59795Shibler #define STRIP 0177 191*59795Shibler #define EVEN -2 192*59795Shibler 193*59795Shibler /* long to ints and back (puns) */ 194*59795Shibler union { 195*59795Shibler INT I[2]; 196*59795Shibler L_INT L; 197*59795Shibler } itolws; 198*59795Shibler 199*59795Shibler #ifdef pdp11 200*59795Shibler #define leng(a) ((long)((unsigned)(a))) 201*59795Shibler #define shorten(a) ((int)(a)) 202*59795Shibler #define itol(a,b) (itolws.I[0]=(a), itolws.I[1]=(b), itolws.L) 203*59795Shibler #define lobyte(a) ((a) & 0377) 204*59795Shibler #endif 205*59795Shibler 206*59795Shibler #ifdef vax 207*59795Shibler #define leng(a) itol(0,a) 208*59795Shibler #define shorten(a) ((short)(a)) 209*59795Shibler #define itol(a,b) (itolws.I[0]=(b), itolws.I[1]=(a), itolws.L) 210*59795Shibler #define lobyte(a) ((a) & 0377) 211*59795Shibler #endif 212*59795Shibler 213*59795Shibler #ifdef mc68000 214*59795Shibler #define leng(a) itol(0,a) 215*59795Shibler #define shorten(a) ((short)(a)) 216*59795Shibler #define itol(a,b) (itolws.I[0]=(a), itolws.I[1]=(b), itolws.L) 217*59795Shibler #define lobyte(a) (((a) >> 8) & 0377) 218*59795Shibler #endif 219*59795Shibler 220*59795Shibler #if !defined(vax) && !defined(pdp11) && !defined(mc68000) 221*59795Shibler 222*59795Shibler "edit this file to suit your machine's byte order" 223*59795Shibler 224*59795Shibler #endif 225*59795Shibler 226*59795Shibler /* result type declarations */ 227*59795Shibler L_INT inkdot(); 228*59795Shibler POS get(); 229*59795Shibler POS chkget(); 230*59795Shibler POS lchkget(); 231*59795Shibler STRING exform(); 232*59795Shibler L_INT round(); 233*59795Shibler BKPTR scanbkpt(); 234*59795Shibler VOID fault(); 235*59795Shibler 236*59795Shibler struct pcb pcb; 237*59795Shibler int kernel; 238*59795Shibler int kcore; 239*59795Shibler struct pte *sbr; 240*59795Shibler int slr; 241*59795Shibler int masterpcbb; 242