|
|
1.1 ! root 1: /* ! 2: * adb - vax string table version; common definitions ! 3: */ ! 4: ! 5: #include <ctype.h> ! 6: ! 7: #include "mtype.h" ! 8: ! 9: #define DBNAME "adb\n" ! 10: ! 11: typedef char BOOL; ! 12: typedef char MSG[]; ! 13: ! 14: #define NVARS 36 ! 15: #define MAXOFF 255 ! 16: #define MAXPOS 80 ! 17: #define MAXLIN 128 ! 18: #define ARB 512 ! 19: #define MAXCOM 64 ! 20: #define MAXARG 32 ! 21: #define LINSIZ 512 ! 22: #define MAXSYM 255 ! 23: ! 24: #define EOR '\n' ! 25: #define SP ' ' ! 26: #define TB '\t' ! 27: #define QUOTE 0200 ! 28: ! 29: #define STRIP 0177 ! 30: #define LOBYTE 0377 ! 31: #define EVEN (~1) ! 32: ! 33: #define STDIN 0 ! 34: #define STDOUT 1 ! 35: ! 36: #define NULL 0 ! 37: ! 38: #define TRUE (-1) ! 39: #define FALSE 0 ! 40: ! 41: /* ! 42: * `space' tags: qualify addresses ! 43: */ ! 44: ! 45: #define SPTYPE 077 ! 46: ! 47: #define NOSP 00 /* nowhere (= command) */ ! 48: #define DATASP 01 /* data space */ ! 49: #define INSTSP 02 /* instruction space */ ! 50: #define UBLKSP 03 /* user block (saved registers) */ ! 51: #define REGSP 04 /* registers */ ! 52: ! 53: #define CORF 0 /* in core image */ ! 54: #define SYMF 0100 /* in symbol file */ ! 55: ! 56: #define RAWADDR 0200 /* ignore kernel mapping for this address */ ! 57: ! 58: /* ! 59: * breakpoints ! 60: */ ! 61: ! 62: #define BKPTCLR 0 /* not a real breakpoint */ ! 63: #define BKPTSET 1 /* real, ready to trap */ ! 64: #define BKPTSKIP 2 /* real, skip over it next time */ ! 65: ! 66: struct bkpt { ! 67: ADDR loc; ! 68: WORD ins; ! 69: int count; ! 70: int initcnt; ! 71: int flag; ! 72: char comm[MAXCOM]; ! 73: struct bkpt *nxtbkpt; ! 74: }; ! 75: typedef struct bkpt BKPT; ! 76: ! 77: /* ! 78: * run modes ! 79: */ ! 80: ! 81: #define SINGLE 1 ! 82: #define CONTIN 2 ! 83: ! 84: /* ! 85: * file address maps ! 86: * each open file has one per segment ! 87: * if b <= address <= e, address is valid in space type sp ! 88: * and may be found at address + f in the file ! 89: */ ! 90: ! 91: #define NMAP 5 /* text data stack u-area endmarker */ ! 92: ! 93: struct map { ! 94: ADDR b; /* base */ ! 95: ADDR e; /* end */ ! 96: ADDR f; /* offset within file */ ! 97: short sp; /* type of space */ ! 98: short flag; ! 99: }; ! 100: typedef struct map MAP; ! 101: #define MPINUSE 01 ! 102: ! 103: /* ! 104: * common globals ! 105: */ ! 106: ! 107: extern WORD expv, adrval; ! 108: extern int expsp; ! 109: extern int adrflg; ! 110: extern WORD cntval; ! 111: extern int cntflg; ! 112: extern WORD loopcnt; ! 113: extern ADDR maxoff; ! 114: extern ADDR localval; ! 115: extern ADDR maxfile; ! 116: extern ADDR maxstor; ! 117: ! 118: extern ADDR dot; ! 119: extern int dotsp; ! 120: extern WORD dotinc; ! 121: ! 122: extern WORD var[]; ! 123: ! 124: extern int xargc; ! 125: ! 126: extern BOOL wtflag; ! 127: extern char *corfil, *symfil; ! 128: extern int fcor, fsym; ! 129: extern MAP cormap[], symmap[]; ! 130: extern BOOL mkfault; ! 131: ! 132: extern int pid; ! 133: extern int signo; ! 134: extern int sigcode; ! 135: ! 136: extern char *errflg; ! 137: ! 138: /* result type declarations */ ! 139: ! 140: struct nlist *symtab, *esymtab; ! 141: struct nlist *cursym; ! 142: struct nlist *lookup(); ! 143: ! 144: ADDR inkdot(); ! 145: char *exform(); ! 146: WORD round(); ! 147: BKPT *scanbkpt(); ! 148: WORD findsym();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.