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