|
|
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.