159795Shibler /* defs.h 4.6 86/03/26 */ 259795Shibler 359795Shibler /* 459795Shibler * adb - vax string table version; common definitions 559795Shibler */ 659795Shibler #include <sys/param.h> 759795Shibler 859795Shibler #include <machine/psl.h> 959795Shibler #ifdef NEWVM 1059795Shibler typedef unsigned long Ooff_t; 1159795Shibler #define off_t Ooff_t 1262648Shibler #define lseek Lseek 1359795Shibler #include <hp300/pte.h> 1459795Shibler #else 1559795Shibler #include <machine/pte.h> 1659795Shibler #endif 1759795Shibler 1859795Shibler #include <sys/user.h> 1959795Shibler 2059795Shibler #include <ctype.h> 2159795Shibler #include <a.out.h> 2259795Shibler #include <sys/ptrace.h> 2359795Shibler 2459806Shibler #ifdef NEWVM 2559806Shibler #undef TRUE 2659806Shibler #undef FALSE 2759806Shibler #endif 2859795Shibler #include "mac.h" 2959795Shibler #include "mode.h" 3059795Shibler #include "head.h" 3159795Shibler 3259795Shibler /* access modes */ 3359795Shibler #define RD 0 3459795Shibler #define WT 1 3559795Shibler 3659795Shibler #define NSP 0 3759795Shibler #define ISP 1 3859795Shibler #define DSP 2 3959795Shibler #define STAR 4 4059795Shibler #define PSP 8 4159795Shibler #define STARCOM 0200 4259795Shibler 4359795Shibler #ifdef pdp11 4459795Shibler I guess I should look this up in the 2.10 source... 4559795Shibler #endif 4659795Shibler 4759795Shibler #ifdef vax 4859795Shibler /* 4959795Shibler * Symbol types, used internally in calls to findsym routine. 5059795Shibler * One the VAX this all degenerates since I & D symbols are indistinct. 5159795Shibler * Basically we get NSYM==0 for `=' command, ISYM==DSYM otherwise. 5259795Shibler */ 5359795Shibler #define NSYM 0 5459795Shibler #define DSYM 1 /* Data space symbol */ 5559795Shibler #define ISYM DSYM /* Instruction space symbol == DSYM on VAX */ 5659795Shibler 5759795Shibler #define BKPTSET 1 5859795Shibler #define BKPTEXEC 2 5959795Shibler 6059795Shibler #define USERPS PSL 6159795Shibler #define USERPC PC 6259795Shibler #define BPT 03 6359795Shibler #define TBIT 020 6459795Shibler #define FD 0200 6559795Shibler #define getradj(i) 0 6659795Shibler #define lget get 6759795Shibler 6859795Shibler /* puns from <sys/ptrace.h> */ 6959795Shibler #define CONTIN PT_CONTINUE 7059795Shibler #define SINGLE PT_STEP 7159795Shibler 7259795Shibler /* the quantities involving ctob() are located in the kernel stack. */ 7359795Shibler /* the others are in the pcb. */ 7459795Shibler #define KSP 0 7559795Shibler #define ESP 4 7659795Shibler #define SSP 8 7759795Shibler #define USP (ctob(UPAGES)-5*sizeof(int)) 7859795Shibler 7959795Shibler /* should read this in from reg.h */ 8059795Shibler #define R0 (ctob(UPAGES)-18*sizeof(int)) 8159795Shibler #define R1 (ctob(UPAGES)-17*sizeof(int)) 8259795Shibler #define R2 (ctob(UPAGES)-16*sizeof(int)) 8359795Shibler #define R3 (ctob(UPAGES)-15*sizeof(int)) 8459795Shibler #define R4 (ctob(UPAGES)-14*sizeof(int)) 8559795Shibler #define R5 (ctob(UPAGES)-13*sizeof(int)) 8659795Shibler #define R6 (ctob(UPAGES)-12*sizeof(int)) 8759795Shibler #define R7 (ctob(UPAGES)-11*sizeof(int)) 8859795Shibler #define R8 (ctob(UPAGES)-10*sizeof(int)) 8959795Shibler #define R9 (ctob(UPAGES)-9*sizeof(int)) 9059795Shibler #define R10 (ctob(UPAGES)-8*sizeof(int)) 9159795Shibler #define R11 (ctob(UPAGES)-7*sizeof(int)) 9259795Shibler #define AP (ctob(UPAGES)-21*sizeof(int)) 9359795Shibler #define FP (ctob(UPAGES)-20*sizeof(int)) 9459795Shibler #define PC (ctob(UPAGES)-2*sizeof(int)) 9559795Shibler #define PSL (ctob(UPAGES)-1*sizeof(int)) 9659795Shibler 9759795Shibler #define P0BR 80 9859795Shibler #define P0LR 84 9959795Shibler #define P1BR 88 10059795Shibler #define P1LR 92 10159795Shibler #endif 10259795Shibler 10359795Shibler #ifdef hp300 10459795Shibler #define NSYM 0 /* ??? */ 10559795Shibler #define DSYM 1 /* Data space symbol */ 10659795Shibler #define ISYM DSYM /* Instruction space symbol */ 10759795Shibler 10859795Shibler #define BKPTSET 1 10959795Shibler #define BKPTEXEC 2 11059795Shibler 11159795Shibler extern L_INT getradj(); 11259795Shibler 11359795Shibler #define BPT 0x4e42 11459795Shibler 11559795Shibler /* puns from <sys/ptrace.h> */ 11659795Shibler #define CONTIN PT_CONTINUE 11759795Shibler #define SINGLE PT_STEP 11859795Shibler 11959795Shibler /* 12059795Shibler * Appropriated from dbx (returning a favor) 12159795Shibler * `10' comes from: 12259795Shibler * (4) stack starts 4 bytes in from end of uarea 12359795Shibler * (2) trap type 0 frame format word is 2 bytes back from that 12459795Shibler * (4) trap type 0 pc is 4 bytes back from that 12559795Shibler */ 12659795Shibler #define regloc(reg) (ctob(UPAGES) + (sizeof(int) * ((reg) - 17)) - 10) 12759795Shibler 12859795Shibler /* select map */ 12959795Shibler #define mapptr(s) (((s)&DSP)?&datmap:(((s)&PSP)?&physmap:&txtmap)) 13059795Shibler 13159795Shibler #define KSP 12 /* who knows? */ 13259795Shibler 13359795Shibler /* should read this in from reg.h */ 13459795Shibler #define D0 regloc(0) 13559795Shibler #define D1 regloc(1) 13659795Shibler #define D2 regloc(2) 13759795Shibler #define D3 regloc(3) 13859795Shibler #define D4 regloc(4) 13959795Shibler #define D5 regloc(5) 14059795Shibler #define D6 regloc(6) 14159795Shibler #define D7 regloc(7) 14259795Shibler #define A0 regloc(8) 14359795Shibler #define A1 regloc(9) 14459795Shibler #define A2 regloc(10) 14559795Shibler #define A3 regloc(11) 14659795Shibler #define A4 regloc(12) 14759795Shibler #define A5 regloc(13) 14859795Shibler #define A6 regloc(14) 14959795Shibler #define A7 regloc(15) 15059795Shibler /* 15159795Shibler * In 4.4 these have changed, stackadj (pad) field is 4 bytes not 2 15259795Shibler * so PSW/PC are 2 bytes further away from D0. 15359795Shibler */ 15459795Shibler #if defined(BSD4_4) || defined(HPBSD) 15559795Shibler #define PSW (regloc(16)+2) 15659795Shibler #define PC (regloc(17)+2) 15759795Shibler #else 15859795Shibler #define PSW regloc(16) 15959795Shibler #define PC regloc(17) 16059795Shibler #endif 16159795Shibler #define FP A6 16259795Shibler #define USP A7 16359795Shibler 16459795Shibler #define P0BR 60 16559795Shibler #define P0LR 64 16659795Shibler #define P1BR 68 16759795Shibler #define P1LR 72 16859795Shibler 169*62853Shibler #ifdef BSD4_4 170*62853Shibler #define FPBASE 280 171*62853Shibler #else 172*62853Shibler #define FPBASE 332 17359795Shibler #endif 174*62853Shibler #define FP0 (FPBASE+0*12) 175*62853Shibler #define FP1 (FPBASE+1*12) 176*62853Shibler #define FP2 (FPBASE+2*12) 177*62853Shibler #define FP3 (FPBASE+3*12) 178*62853Shibler #define FP4 (FPBASE+4*12) 179*62853Shibler #define FP5 (FPBASE+5*12) 180*62853Shibler #define FP6 (FPBASE+6*12) 181*62853Shibler #define FP7 (FPBASE+7*12) 182*62853Shibler #define FPCR (FPBASE+8*12+0) 183*62853Shibler #define FPSR (FPBASE+8*12+4) 184*62853Shibler #define FPIAR (FPBASE+8*12+8) 185*62853Shibler #endif 18659795Shibler 18759795Shibler #if !defined(pdp11) && !defined(vax) && !defined(hp300) 18859795Shibler 18959795Shibler "edit this file to accommodate your machine's addressing" 19059795Shibler 19159795Shibler #endif 19259795Shibler 19359795Shibler #define MAXOFF 255 19459795Shibler #define MAXPOS 80 19559795Shibler #define MAXLIN 128 19659795Shibler #define EOR '\n' 19759795Shibler #define SP ' ' 19859795Shibler #define TB '\t' 19959795Shibler #define QUOTE 0200 20059795Shibler #define STRIP 0177 20159795Shibler #define EVEN -2 20259795Shibler 20359795Shibler /* long to ints and back (puns) */ 20459795Shibler union { 20559795Shibler INT I[2]; 20659795Shibler L_INT L; 20759795Shibler } itolws; 20859795Shibler 20959795Shibler #ifdef pdp11 21059795Shibler #define leng(a) ((long)((unsigned)(a))) 21159795Shibler #define shorten(a) ((int)(a)) 21259795Shibler #define itol(a,b) (itolws.I[0]=(a), itolws.I[1]=(b), itolws.L) 21359795Shibler #define lobyte(a) ((a) & 0377) 21459795Shibler #endif 21559795Shibler 21659795Shibler #ifdef vax 21759795Shibler #define leng(a) itol(0,a) 21859795Shibler #define shorten(a) ((short)(a)) 21959795Shibler #define itol(a,b) (itolws.I[0]=(b), itolws.I[1]=(a), itolws.L) 22059795Shibler #define lobyte(a) ((a) & 0377) 22159795Shibler #endif 22259795Shibler 22359795Shibler #ifdef mc68000 22459795Shibler #define leng(a) itol(0,a) 22559795Shibler #define shorten(a) ((short)(a)) 22659795Shibler #define itol(a,b) (itolws.I[0]=(a), itolws.I[1]=(b), itolws.L) 22759795Shibler #define lobyte(a) (((a) >> 8) & 0377) 22859795Shibler #endif 22959795Shibler 23059795Shibler #if !defined(vax) && !defined(pdp11) && !defined(mc68000) 23159795Shibler 23259795Shibler "edit this file to suit your machine's byte order" 23359795Shibler 23459795Shibler #endif 23559795Shibler 23659795Shibler /* result type declarations */ 23759795Shibler L_INT inkdot(); 23859795Shibler POS get(); 23959795Shibler POS chkget(); 24059795Shibler POS lchkget(); 24159795Shibler STRING exform(); 24259795Shibler L_INT round(); 24359795Shibler BKPTR scanbkpt(); 24459795Shibler VOID fault(); 24559795Shibler 24659795Shibler struct pcb pcb; 24759795Shibler int kernel; 24859795Shibler int kcore; 24959795Shibler struct pte *sbr; 25059795Shibler int slr; 25159795Shibler int masterpcbb; 252