|
|
1.1 ! root 1: /* "@(#)head.h 4.1 10/9/80" */ ! 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[30]; /* 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: 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: 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.