From 90acb15a1f41955ab2a3413c91835bdf17fdfd47 Mon Sep 17 00:00:00 2001 From: Howard Katseff Date: Sun, 30 Dec 1979 22:38:13 -0800 Subject: [PATCH] BSD 3 development Work on file usr/src/cmd/sdb/head.h Synthesized-from: 3bsd --- usr/src/cmd/sdb/head.h | 122 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 usr/src/cmd/sdb/head.h diff --git a/usr/src/cmd/sdb/head.h b/usr/src/cmd/sdb/head.h new file mode 100644 index 0000000000..b492c813b5 --- /dev/null +++ b/usr/src/cmd/sdb/head.h @@ -0,0 +1,122 @@ + +#include +#include +#include "sgtty.h" +#include +#define PAGSIZ (CLSIZE*NBPG) +#include "bio.h" +#include "defs.h" + +/* input line decoding */ +char proc[30]; /* procedure name */ +int integ; /* count or number in input */ +char cmd; /* command letter */ +char re[128]; /* regular expression */ +char args[128]; /* arguments */ +char *argsp; /* pointer to args */ +char var[60]; /* variable name */ +int scallf; /* set to 1 iff procedure call */ +int reflag; /* set to 1 iff re */ +int redir; /* set to 1 iff forward search */ +int colonflag; /* set to 1 iff colon typed */ + +/* source file i/o */ +char curfile[30]; /* name of file being edited */ +int fline; /* line number in file */ +int maxfline; /* maximum line number in file, 0 if unknown */ +struct brbuf fiobuf; /* file descriptor */ +char fbuf[256]; /* current line from file */ +char filework[128]; /* place to put filename */ +char *fp; /* pointer to it */ +int nolines; /* set to 1 iff no lines in file */ + +/* returned by slookup */ +char sl_name[8]; +char sl_class; +short sl_type; +int sl_size, sl_addr; +int subflag; + +/* procedure call information */ +int scallx; /* procedure call in progress */ +ADDR fps, aps, pcs; /* old stack frame */ +BKPTR bkpts; /* old breakpoint */ +int flagss; /* and its flags */ +char dschar; /* '/' if value should be displayed */ + +/* symbol table info */ +long ststart; /* offset of symbol table in a.out */ +struct brbuf sbuf; /* buffer for symbol table */ +long extstart; /* offset of first external in a.out */ + +/* address info */ +ADDR dot; /* current address */ +ADDR callpc, frame, argp; /* current stack frame */ + +/* other */ +char odesc[10]; /* descriptor of last displayed variable */ +ADDR oaddr; /* address of last displayed variable */ +char otype; /* type of last displayed variable */ +char oclass; /* class of last displayed variable */ +char oincr; /* size of last displayed variable */ +struct sgttyb sdbttym, userttym; + /* tty modes for sdb and user */ +char oldargs[128]; +char prname[50]; /* print name used by outvar */ +jmp_buf env; /* environment for setjmp, longjmp */ +#define WINDOW 10 /* window size for display commands */ +#define COMMANDS "\004\"+-=!/BCDRSTabcdegklmpqrstwzVXY" + /* each sdb command must appear here */ +int debug; /* toggled by Y command */ +time_t symtime; /* modification time of symfil */ + +#define STABMASK 0376 + +#define NUMARGS 16 /* number of args allowed in sub call */ +#define SUBSTSP 512 /* length of space for sub args and strings */ +#define WORDSIZE 4 /* wordsize in bytes on this machine */ + +#define BIGNUM 0x7fffffff +#define MAXADDR 1L<<30 + +struct filet { + char sfilename[31]; /* source file name */ + char lineflag; /* set iff this is a '#line' file */ + ADDR faddr; /* address in core */ + long stf_offset; /* offset in a.out */ +} *files, *badfile; + +struct proct { + char pname[8]; /* procedure name */ + ADDR paddr; /* address in core */ + long st_offset; /* offset in a.out */ + struct filet *sfptr; /* source file name pointer */ + int lineno; /* line number in source file */ + char entrypt; /* 1 iff a F77 entry */ +} *procs, *badproc; + + +#define PROCINCR 20 +#define FILEINCR 10 + +#define varchar(x) ((x>='A' && x<='Z') || (x>='a' && x<='z') || x == '_' || x == '.' || x == '[' || x == ']' || x == '-' || x == '>' || x == '*' || x == '?') +#define number(x) (x >= '0' && x <= '9') + +char *readline(), readchar(), rdc(); +char *cpname(); +char *cpstr(), *cpall(); +char *sbrk(); +char *typetodesc(); +int octdigit(), decdigit(); hexdigit(); +int octconv(), decconv(); hexconv(); +long readint(), rint(); +long adrtostoffset(); +long getval(), argvalue(); +long slookup(), globallookup(); +ADDR varaddr(), dispvar(); +ADDR extaddr(), formaddr(), stackreg(); +struct proct *curproc(); +struct proct *findproc(); +struct proct *adrtoproc(); +struct proct *initframe(), *nextframe(); +struct filet *findfile(), *adrtofilep(); -- 2.20.1