xref: /plan9/sys/src/cmd/db/defs.h (revision c93608cc76758b2be624199c6208a0f90bad298d)
13e12c5d1SDavid du Colombier /*
23e12c5d1SDavid du Colombier  * adb - common definitions
33e12c5d1SDavid du Colombier  * something of a grab-bag
43e12c5d1SDavid du Colombier  */
53e12c5d1SDavid du Colombier 
6bd389b36SDavid du Colombier #include <u.h>
7bd389b36SDavid du Colombier #include <libc.h>
8bd389b36SDavid du Colombier #include <bio.h>
9bd389b36SDavid du Colombier #include <ctype.h>
103e12c5d1SDavid du Colombier 
11bd389b36SDavid du Colombier #include <mach.h>
123e12c5d1SDavid du Colombier 
134de34a7eSDavid du Colombier typedef ulong WORD;
144de34a7eSDavid du Colombier typedef uvlong ADDR;
153e12c5d1SDavid du Colombier 
163e12c5d1SDavid du Colombier #define	HUGEINT	0x7fffffff	/* enormous WORD */
173e12c5d1SDavid du Colombier 
183e12c5d1SDavid du Colombier #define	MAXOFF	0x1000000
193e12c5d1SDavid du Colombier #define	INCDIR	"/usr/lib/adb"
203e12c5d1SDavid du Colombier #define	DBNAME	"db\n"
213e12c5d1SDavid du Colombier #define CMD_VERBS	"?/=>!$: \t"
223e12c5d1SDavid du Colombier 
233e12c5d1SDavid du Colombier typedef	int	BOOL;
243e12c5d1SDavid du Colombier 
253e12c5d1SDavid du Colombier #define MAXPOS	80
263e12c5d1SDavid du Colombier #define MAXLIN	128
273e12c5d1SDavid du Colombier #define	ARB	512
283e12c5d1SDavid du Colombier #define MAXCOM	64
293e12c5d1SDavid du Colombier #define MAXARG	32
303e12c5d1SDavid du Colombier #define LINSIZ	4096
313e12c5d1SDavid du Colombier #define	MAXSYM	255
323e12c5d1SDavid du Colombier 
333e12c5d1SDavid du Colombier #define EOR	'\n'
343e12c5d1SDavid du Colombier #define SPC	' '
353e12c5d1SDavid du Colombier #define TB	'\t'
363e12c5d1SDavid du Colombier 
373e12c5d1SDavid du Colombier #define	STDIN	0
383e12c5d1SDavid du Colombier #define	STDOUT	1
393e12c5d1SDavid du Colombier 
403e12c5d1SDavid du Colombier #define	TRUE	(-1)
413e12c5d1SDavid du Colombier #define	FALSE	0
423e12c5d1SDavid du Colombier 
433e12c5d1SDavid du Colombier 
443e12c5d1SDavid du Colombier /*
453e12c5d1SDavid du Colombier  * run modes
463e12c5d1SDavid du Colombier  */
473e12c5d1SDavid du Colombier 
483e12c5d1SDavid du Colombier #define	SINGLE	1
493e12c5d1SDavid du Colombier #define	CONTIN	2
503e12c5d1SDavid du Colombier 
513e12c5d1SDavid du Colombier /*
523e12c5d1SDavid du Colombier  * breakpoints
533e12c5d1SDavid du Colombier  */
543e12c5d1SDavid du Colombier 
553e12c5d1SDavid du Colombier #define	BKPTCLR	0	/* not a real breakpoint */
563e12c5d1SDavid du Colombier #define BKPTSET	1	/* real, ready to trap */
573e12c5d1SDavid du Colombier #define BKPTSKIP 2	/* real, skip over it next time */
583e12c5d1SDavid du Colombier #define	BKPTTMP	3	/* temporary; clear when it happens */
593e12c5d1SDavid du Colombier 
604de34a7eSDavid du Colombier typedef struct bkpt	BKPT;
613e12c5d1SDavid du Colombier struct bkpt {
623e12c5d1SDavid du Colombier 	ADDR	loc;
633e12c5d1SDavid du Colombier 	uchar	save[4];
643e12c5d1SDavid du Colombier 	int	count;
653e12c5d1SDavid du Colombier 	int	initcnt;
663e12c5d1SDavid du Colombier 	int	flag;
673e12c5d1SDavid du Colombier 	char	comm[MAXCOM];
684de34a7eSDavid du Colombier 	BKPT	*nxtbkpt;
693e12c5d1SDavid du Colombier };
703e12c5d1SDavid du Colombier 
713e12c5d1SDavid du Colombier #define	BADREG	(-1)
723e12c5d1SDavid du Colombier 
733e12c5d1SDavid du Colombier /*
743e12c5d1SDavid du Colombier  * common globals
753e12c5d1SDavid du Colombier  */
763e12c5d1SDavid du Colombier 
777dd7cddfSDavid du Colombier extern	WORD	adrval;
784de34a7eSDavid du Colombier extern	uvlong	expv;
793e12c5d1SDavid du Colombier extern	int	adrflg;
803e12c5d1SDavid du Colombier extern	WORD	cntval;
813e12c5d1SDavid du Colombier extern	int	cntflg;
823e12c5d1SDavid du Colombier extern	WORD	loopcnt;
833e12c5d1SDavid du Colombier extern	ADDR	maxoff;
843e12c5d1SDavid du Colombier extern	ADDR	localval;
853e12c5d1SDavid du Colombier extern	ADDR	maxfile;
863e12c5d1SDavid du Colombier extern	ADDR	maxstor;
873e12c5d1SDavid du Colombier 
883e12c5d1SDavid du Colombier extern	ADDR	dot;
89*c93608ccSDavid du Colombier extern	int	dotinc;
903e12c5d1SDavid du Colombier 
913e12c5d1SDavid du Colombier extern	int	xargc;
923e12c5d1SDavid du Colombier 
933e12c5d1SDavid du Colombier extern	BOOL	wtflag;
943e12c5d1SDavid du Colombier extern	char	*corfil, *symfil;
953e12c5d1SDavid du Colombier extern	int	fcor, fsym;
963e12c5d1SDavid du Colombier extern	BOOL	mkfault;
973e12c5d1SDavid du Colombier extern	BOOL	regdirty;
983e12c5d1SDavid du Colombier 
993e12c5d1SDavid du Colombier extern	int	pid;
1003e12c5d1SDavid du Colombier extern	int	pcsactive;
1013e12c5d1SDavid du Colombier #define	NNOTE 10
1023e12c5d1SDavid du Colombier extern	int	nnote;
1039a747e4fSDavid du Colombier extern	char	note[NNOTE][ERRMAX];
1043e12c5d1SDavid du Colombier 
1053e12c5d1SDavid du Colombier extern	int	ending;
106219b2ee8SDavid du Colombier extern	Map	*cormap, *symmap, *dotmap;
1073e12c5d1SDavid du Colombier 
1083e12c5d1SDavid du Colombier extern	BKPT	*bkpthead;
1093e12c5d1SDavid du Colombier extern	int	kflag;
1109a747e4fSDavid du Colombier extern	int	lastc, peekc;
111