BSD 3 development
[unix-history] / usr / src / cmd / sdb / head.h
CommitLineData
90acb15a
HK
1
2#include <stdio.h>
3#include <setjmp.h>
4#include "sgtty.h"
5#include <sys/vm.h>
6#define PAGSIZ (CLSIZE*NBPG)
7#include "bio.h"
8#include "defs.h"
9
10/* input line decoding */
11char proc[30]; /* procedure name */
12int integ; /* count or number in input */
13char cmd; /* command letter */
14char re[128]; /* regular expression */
15char args[128]; /* arguments */
16char *argsp; /* pointer to args */
17char var[60]; /* variable name */
18int scallf; /* set to 1 iff procedure call */
19int reflag; /* set to 1 iff re */
20int redir; /* set to 1 iff forward search */
21int colonflag; /* set to 1 iff colon typed */
22
23/* source file i/o */
24char curfile[30]; /* name of file being edited */
25int fline; /* line number in file */
26int maxfline; /* maximum line number in file, 0 if unknown */
27struct brbuf fiobuf; /* file descriptor */
28char fbuf[256]; /* current line from file */
29char filework[128]; /* place to put filename */
30char *fp; /* pointer to it */
31int nolines; /* set to 1 iff no lines in file */
32
33/* returned by slookup */
34char sl_name[8];
35char sl_class;
36short sl_type;
37int sl_size, sl_addr;
38int subflag;
39
40/* procedure call information */
41int scallx; /* procedure call in progress */
42ADDR fps, aps, pcs; /* old stack frame */
43BKPTR bkpts; /* old breakpoint */
44int flagss; /* and its flags */
45char dschar; /* '/' if value should be displayed */
46
47/* symbol table info */
48long ststart; /* offset of symbol table in a.out */
49struct brbuf sbuf; /* buffer for symbol table */
50long extstart; /* offset of first external in a.out */
51
52/* address info */
53ADDR dot; /* current address */
54ADDR callpc, frame, argp; /* current stack frame */
55
56/* other */
57char odesc[10]; /* descriptor of last displayed variable */
58ADDR oaddr; /* address of last displayed variable */
59char otype; /* type of last displayed variable */
60char oclass; /* class of last displayed variable */
61char oincr; /* size of last displayed variable */
62struct sgttyb sdbttym, userttym;
63 /* tty modes for sdb and user */
64char oldargs[128];
65char prname[50]; /* print name used by outvar */
66jmp_buf env; /* environment for setjmp, longjmp */
67#define WINDOW 10 /* window size for display commands */
68#define COMMANDS "\004\"+-=!/BCDRSTabcdegklmpqrstwzVXY"
69 /* each sdb command must appear here */
70int debug; /* toggled by Y command */
71time_t symtime; /* modification time of symfil */
72
73#define STABMASK 0376
74
75#define NUMARGS 16 /* number of args allowed in sub call */
76#define SUBSTSP 512 /* length of space for sub args and strings */
77#define WORDSIZE 4 /* wordsize in bytes on this machine */
78
79#define BIGNUM 0x7fffffff
80#define MAXADDR 1L<<30
81
82struct filet {
83 char sfilename[31]; /* source file name */
84 char lineflag; /* set iff this is a '#line' file */
85 ADDR faddr; /* address in core */
86 long stf_offset; /* offset in a.out */
87} *files, *badfile;
88
89struct proct {
90 char pname[8]; /* procedure name */
91 ADDR paddr; /* address in core */
92 long st_offset; /* offset in a.out */
93 struct filet *sfptr; /* source file name pointer */
94 int lineno; /* line number in source file */
95 char entrypt; /* 1 iff a F77 entry */
96} *procs, *badproc;
97
98
99#define PROCINCR 20
100#define FILEINCR 10
101
102#define varchar(x) ((x>='A' && x<='Z') || (x>='a' && x<='z') || x == '_' || x == '.' || x == '[' || x == ']' || x == '-' || x == '>' || x == '*' || x == '?')
103#define number(x) (x >= '0' && x <= '9')
104
105char *readline(), readchar(), rdc();
106char *cpname();
107char *cpstr(), *cpall();
108char *sbrk();
109char *typetodesc();
110int octdigit(), decdigit(); hexdigit();
111int octconv(), decconv(); hexconv();
112long readint(), rint();
113long adrtostoffset();
114long getval(), argvalue();
115long slookup(), globallookup();
116ADDR varaddr(), dispvar();
117ADDR extaddr(), formaddr(), stackreg();
118struct proct *curproc();
119struct proct *findproc();
120struct proct *adrtoproc();
121struct proct *initframe(), *nextframe();
122struct filet *findfile(), *adrtofilep();