Blob


1 /*
2 * db - common definitions
3 * something of a grab-bag
4 */
6 #include <u.h>
7 #include <libc.h>
8 #include <bio.h>
9 #include <ctype.h>
11 #include <mach.h>
13 typedef long WORD;
14 typedef ulong ADDR;
16 #define HUGEINT 0x7fffffff /* enormous WORD */
18 #define MAXOFF 0x1000000
19 #define INCDIR "/usr/lib/adb"
20 #define DBNAME "db\n"
21 #define CMD_VERBS "?/=>!$: \t"
23 typedef int BOOL;
25 #define MAXPOS 80
26 #define MAXLIN 128
27 #define ARB 512
28 #define MAXCOM 64
29 #define MAXARG 32
30 #define LINSIZ 4096
31 #define MAXSYM 255
33 #define EOR '\n'
34 #define SPC ' '
35 #define TB '\t'
37 #define STDIN 0
38 #define STDOUT 1
40 #define TRUE (-1)
41 #define FALSE 0
44 /*
45 * run modes
46 */
48 #define SINGLE 1
49 #define CONTIN 2
51 /*
52 * breakpoints
53 */
55 #define BKPTCLR 0 /* not a real breakpoint */
56 #define BKPTSET 1 /* real, ready to trap */
57 #define BKPTSKIP 2 /* real, skip over it next time */
58 #define BKPTTMP 3 /* temporary; clear when it happens */
60 struct bkpt {
61 ADDR loc;
62 uchar save[4];
63 int count;
64 int initcnt;
65 int flag;
66 char comm[MAXCOM];
67 struct bkpt *nxtbkpt;
68 };
69 typedef struct bkpt BKPT;
71 #define BADREG (-1)
73 /*
74 * common globals
75 */
77 extern WORD adrval;
78 extern vlong expv;
79 extern int adrflg;
80 extern WORD cntval;
81 extern int cntflg;
82 extern WORD loopcnt;
83 extern ADDR maxoff;
84 extern ADDR localval;
85 extern ADDR maxfile;
86 extern ADDR maxstor;
88 extern ADDR dot;
89 extern WORD dotinc;
91 extern int xargc;
93 extern BOOL wtflag;
94 extern char *corfil, *symfil;
95 extern BOOL mkfault;
96 extern BOOL regdirty;
98 extern int pid;
99 extern int pcsactive;
100 #define NNOTE 10
101 extern int nnote;
102 extern char note[NNOTE][ERRMAX];
104 extern int ending;
105 extern Map *dotmap;
107 extern BKPT *bkpthead;
108 extern int kflag;
109 extern int lastc, peekc;