1 /* 2 * db - common definitions 3 * something of a grab-bag 4 */ 5 6 #include <u.h> 7 #include <libc.h> 8 #include <bio.h> 9 #include <ctype.h> 10 11 #include <mach.h> 12 13 typedef long WORD; 14 typedef u64int ADDR; 15 16 #define HUGEINT 0x7fffffff /* enormous WORD */ 17 18 #define MAXOFF 0x1000000 19 #define INCDIR "/usr/lib/adb" 20 #define DBNAME "db\n" 21 #define CMD_VERBS "?/=>!$: \t" 22 23 typedef int BOOL; 24 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 32 33 #define EOR '\n' 34 #define SPC ' ' 35 #define TB '\t' 36 37 #define STDIN 0 38 #define STDOUT 1 39 40 #define TRUE (-1) 41 #define FALSE 0 42 43 44 /* 45 * run modes 46 */ 47 48 #define SINGLE 1 49 #define CONTIN 2 50 51 /* 52 * breakpoints 53 */ 54 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 */ 59 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; 70 71 #define BADREG (-1) 72 73 /* 74 * common globals 75 */ 76 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; 87 88 extern ADDR dot; 89 extern WORD dotinc; 90 91 extern int xargc; 92 93 extern BOOL wtflag; 94 extern char *corfil, *symfil; 95 extern BOOL mkfault; 96 extern BOOL regdirty; 97 98 extern int pid; 99 extern int pcsactive; 100 #define NNOTE 10 101 extern int nnote; 102 extern char note[NNOTE][ERRMAX]; 103 104 extern int ending; 105 extern Map *dotmap; 106 107 extern BKPT *bkpthead; 108 extern int kflag; 109 extern int lastc, peekc; 110