1 /* 2 * adb - 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 ulong WORD; 14 typedef uvlong 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 typedef struct bkpt BKPT; 61 struct bkpt { 62 ADDR loc; 63 uchar save[4]; 64 int count; 65 int initcnt; 66 int flag; 67 char comm[MAXCOM]; 68 BKPT *nxtbkpt; 69 }; 70 71 #define BADREG (-1) 72 73 /* 74 * common globals 75 */ 76 77 extern WORD adrval; 78 extern uvlong 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 int dotinc; 90 91 extern int xargc; 92 93 extern BOOL wtflag; 94 extern char *corfil, *symfil; 95 extern int fcor, fsym; 96 extern BOOL mkfault; 97 extern BOOL regdirty; 98 99 extern int pid; 100 extern int pcsactive; 101 #define NNOTE 10 102 extern int nnote; 103 extern char note[NNOTE][ERRMAX]; 104 105 extern int ending; 106 extern Map *cormap, *symmap, *dotmap; 107 108 extern BKPT *bkpthead; 109 extern int kflag; 110 extern int lastc, peekc; 111