1*1330Sbill /* "@(#)defs.h 4.1 10/09/80" */ 2*1330Sbill # 3*1330Sbill /* 4*1330Sbill * 5*1330Sbill * UNIX debugger - common definitions 6*1330Sbill * 7*1330Sbill */ 8*1330Sbill 9*1330Sbill 10*1330Sbill 11*1330Sbill /* Layout of a.out file (fsym): 12*1330Sbill * 13*1330Sbill * header of 8 longwords 14*1330Sbill * magic number 410 15*1330Sbill * text size ) 16*1330Sbill * data size ) padded with 0 to multiple of 4 bytes 17*1330Sbill * bss size ) 18*1330Sbill * symbol table size 19*1330Sbill * entry address 20*1330Sbill * size of text relocation info 21*1330Sbill * size of data relocation info 22*1330Sbill * 23*1330Sbill * 24*1330Sbill * header: 0 25*1330Sbill * text: 32 26*1330Sbill * data: 32+textsize 27*1330Sbill * text reloc: 32+textsize+datasize 28*1330Sbill * data reloc: 32+textsize+datasize+textreloc 29*1330Sbill * symbol table: 32+textsize+datasize+textreloc+datareloc 30*1330Sbill * 31*1330Sbill */ 32*1330Sbill 33*1330Sbill #include <sys/param.h> 34*1330Sbill #include <sys/dir.h> 35*1330Sbill #include <sys/psl.h> 36*1330Sbill #include <sys/user.h> 37*1330Sbill #include "mac.h" 38*1330Sbill #include "mode.h" 39*1330Sbill 40*1330Sbill 41*1330Sbill #define VARB 11 42*1330Sbill #define VARD 13 43*1330Sbill #define VARE 14 44*1330Sbill #define VARM 22 45*1330Sbill #define VARS 28 46*1330Sbill #define VART 29 47*1330Sbill 48*1330Sbill #define COREMAGIC 0140000 49*1330Sbill 50*1330Sbill /* access modes */ 51*1330Sbill #define RD 0 52*1330Sbill #define WT 1 53*1330Sbill 54*1330Sbill /* access spaces */ 55*1330Sbill #define NSP 0 56*1330Sbill #define ISP 1 57*1330Sbill #define DSP 2 58*1330Sbill 59*1330Sbill #define STAR 4 60*1330Sbill #define STARCOM 0200 61*1330Sbill #define DSYM 4 62*1330Sbill #define ISYM 4 63*1330Sbill #define ASYM 2 64*1330Sbill #define NSYM 0 65*1330Sbill #define ESYM (-1) 66*1330Sbill #define BKPTSET 1 67*1330Sbill #define BKPTEXEC 2 68*1330Sbill #define SYMSIZ 100 69*1330Sbill #define MAXSIG 20 70*1330Sbill 71*1330Sbill #define USERPS PSL 72*1330Sbill #define USERPC PC 73*1330Sbill #define BPT 03 74*1330Sbill #define TBIT 020 75*1330Sbill #define FD 0200 76*1330Sbill 77*1330Sbill /* ptracew modes */ 78*1330Sbill #define SETTRC 0 79*1330Sbill #define RDUSER 2 80*1330Sbill #define RIUSER 1 81*1330Sbill #define WDUSER 5 82*1330Sbill #define WIUSER 4 83*1330Sbill #define RUREGS 3 84*1330Sbill #define WUREGS 6 85*1330Sbill #define CONTIN 7 86*1330Sbill #define EXIT 8 87*1330Sbill #define SINGLE 9 88*1330Sbill 89*1330Sbill #define FROFF (&(0->fpsr)) 90*1330Sbill #define FRLEN 25 91*1330Sbill #define FRMAX 6 92*1330Sbill 93*1330Sbill /* the quantities involving ctob() are located in the kernel stack. 94*1330Sbill /* the others are in the pcb. 95*1330Sbill */ 96*1330Sbill #define KSP 0 97*1330Sbill #define ESP 4 98*1330Sbill #define SSP 8 99*1330Sbill #ifndef STD 100*1330Sbill #define USP (ctob(UPAGES)-5*4) 101*1330Sbill #define R0 (ctob(UPAGES)-18*4) 102*1330Sbill #define R1 (ctob(UPAGES)-17*4) 103*1330Sbill #define R2 (ctob(UPAGES)-16*4) 104*1330Sbill #define R3 (ctob(UPAGES)-15*4) 105*1330Sbill #define R4 (ctob(UPAGES)-14*4) 106*1330Sbill #define R5 (ctob(UPAGES)-13*4) 107*1330Sbill #define R6 (ctob(UPAGES)-12*4) 108*1330Sbill #define R7 (ctob(UPAGES)-11*4) 109*1330Sbill #define R8 (ctob(UPAGES)-10*4) 110*1330Sbill #define R9 (ctob(UPAGES)-9*4) 111*1330Sbill #define R10 (ctob(UPAGES)-8*4) 112*1330Sbill #define R11 (ctob(UPAGES)-7*4) 113*1330Sbill #define AP (ctob(UPAGES)-21*4) 114*1330Sbill #define FP (ctob(UPAGES)-20*4) 115*1330Sbill #define PC (ctob(UPAGES)-2*4) 116*1330Sbill #define PSL (ctob(UPAGES)-1*4) 117*1330Sbill #else 118*1330Sbill #define USP (ctob(UPAGES)-5*4) 119*1330Sbill #define R0 (ctob(UPAGES)-19*4) 120*1330Sbill #define R1 (ctob(UPAGES)-18*4) 121*1330Sbill #define R2 (ctob(UPAGES)-17*4) 122*1330Sbill #define R3 (ctob(UPAGES)-16*4) 123*1330Sbill #define R4 (ctob(UPAGES)-15*4) 124*1330Sbill #define R5 (ctob(UPAGES)-14*4) 125*1330Sbill #define R6 (ctob(UPAGES)-13*4) 126*1330Sbill #define R7 (ctob(UPAGES)-12*4) 127*1330Sbill #define R8 (ctob(UPAGES)-11*4) 128*1330Sbill #define R9 (ctob(UPAGES)-10*4) 129*1330Sbill #define R10 (ctob(UPAGES)-9*4) 130*1330Sbill #define R11 (ctob(UPAGES)-8*4) 131*1330Sbill #define AP (ctob(UPAGES)-7*4) 132*1330Sbill #define FP (ctob(UPAGES)-6*4) 133*1330Sbill #define PC (ctob(UPAGES)-2*4) 134*1330Sbill #define PSL (ctob(UPAGES)-1*4) 135*1330Sbill #endif 136*1330Sbill #define P0BR 80 137*1330Sbill #define P0LR 84 138*1330Sbill #define P1BR 88 139*1330Sbill #define P1LR 92 140*1330Sbill 141*1330Sbill #define MAXOFF 255 142*1330Sbill #define MAXPOS 80 143*1330Sbill #define MAXLIN 128 144*1330Sbill #define EOR '\n' 145*1330Sbill #define SP ' ' 146*1330Sbill #define TB '\t' 147*1330Sbill #define QUOTE 0200 148*1330Sbill #define STRIP 0177 149*1330Sbill #define LOBYTE 0377 150*1330Sbill #define EVEN -2 151*1330Sbill 152*1330Sbill 153*1330Sbill #ifndef vax 154*1330Sbill #define leng(a) ((long)((unsigned)(a))) 155*1330Sbill #define shorten(a) ((int)(a)) 156*1330Sbill #define itol(a,b) (itolws.I[0]=(a), itolws.I[1]=(b), itolws.L) 157*1330Sbill #else 158*1330Sbill #define leng(a) itol(0,a) 159*1330Sbill #define shorten(a) ((short)(a)) 160*1330Sbill #define itol(a,b) (itolws.I[0]=(b), itolws.I[1]=(a), itolws.L) 161*1330Sbill #endif 162*1330Sbill 163*1330Sbill 164*1330Sbill 165*1330Sbill /* result type declarations */ 166*1330Sbill L_INT inkdot(); 167*1330Sbill SYMPTR lookupsym(); 168*1330Sbill SYMPTR symget(); 169*1330Sbill POS get(); 170*1330Sbill POS chkget(); 171*1330Sbill STRING exform(); 172*1330Sbill L_INT round(); 173*1330Sbill BKPTR scanbkpt(); 174*1330Sbill VOID fault(); 175*1330Sbill 176*1330Sbill 177*1330Sbill INT mkfault; 178*1330Sbill INT executing; 179*1330Sbill L_INT maxoff; 180*1330Sbill L_INT maxpos; 181*1330Sbill ADDR sigint; 182*1330Sbill ADDR sigqit; 183*1330Sbill INT wtflag; 184*1330Sbill L_INT maxfile; 185*1330Sbill L_INT maxstor; 186*1330Sbill L_INT txtsiz; 187*1330Sbill L_INT datsiz; 188*1330Sbill L_INT datbas; 189*1330Sbill L_INT stksiz; 190*1330Sbill STRING errflg; 191*1330Sbill INT magic; 192*1330Sbill L_INT entrypt; 193*1330Sbill 194*1330Sbill CHAR lastc; 195*1330Sbill 196*1330Sbill STRING symfil; 197*1330Sbill STRING corfil; 198*1330Sbill MAP txtmap; 199*1330Sbill MAP datmap; 200