BSD 4 release
[unix-history] / usr / src / cmd / sdb / head.h
index cd696ef..1b02dd4 100644 (file)
@@ -1,5 +1,10 @@
+/* "@(#)head.h 4.1 10/9/80" */
+#include <sys/vm.h>
+#define        PAGSIZ  (CLSIZE*NBPG)
 #include <stdio.h>
 #include <stdio.h>
-#include "bio.h"
+#include <setjmp.h>
+#include <sgtty.h>
+#include "old.h"
 #include "defs.h"
 
 /* input line decoding */
 #include "defs.h"
 
 /* input line decoding */
@@ -13,67 +18,115 @@ 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    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 */
+int    ncolonflag;     /* set to 1 iff colon typed after number */
+int    percentflag;    /* set to 1 iff percent symbol typed */
 
 /* source file i/o */
 char   curfile[30];    /* name of file being edited */
 int    fline;          /* line number in file */
 
 /* 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   fbuf[BUFSIZ];   /* current line from file */
 char   filework[128];  /* place to put filename */
 char   filework[128];  /* place to put filename */
-char   *fp; /* pointer to it */
+char   *fp;            /* pointer to it */
+int    nolines;        /* set to 1 iff no lines in file */
+#ifdef FLEXNAMES
+off_t  gstart;         /* start of string table in a.out */
+char   *strtab;        /* string table from a.out * (in core!) */
+long   ssiz;           /* size of string table (for range checks) */
+#endif
 
 /* returned by slookup */
 
 /* returned by slookup */
+#ifndef FLEXNAMES
 char   sl_name[8];
 char   sl_name[8];
-char   sl_class, sl_type;
+#else
+char   *sl_name;
+#endif
+char   sl_class;
+short  sl_type;
 int    sl_size, sl_addr;
 int    subflag;
 
 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 */
 /* symbol table info */
 long   ststart;                /* offset of symbol table in a.out */
+#ifndef VMUNIX
 struct brbuf sbuf;             /* buffer for symbol table */
 struct brbuf sbuf;             /* buffer for symbol table */
+#endif
 long   extstart;               /* offset of first external in a.out */
 
 /* address info */
 ADDR   dot;                    /* current address */
 ADDR   callpc, frame, argp;    /* current stack frame */
 
 long   extstart;               /* offset of first external in a.out */
 
 /* address info */
 ADDR   dot;                    /* current address */
 ADDR   callpc, frame, argp;    /* current stack frame */
 
-char   *odesc;                 /* descriptor of last displayed variable */
+/* 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   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 */
+int    debug;                  /* toggled by Y command */
+time_t symtime;                /* modification time of symfil */
+char   *symfil;
+char   *corfil;
+ADDR   exactaddr, lnfaddr;     /* set by adrtolineno() */
+ADDR   firstdata;              /* lowest address of data */
 
 #define        STABMASK        0376
 
 #define        STABMASK        0376
-
+#define        WINDOW  10              /* window size for display commands */
+#define        COMMANDS        "\004\"+-=!/BCDMQRSTXabcdegklmpqrstwxzVXY"
+                               /* each sdb command must appear here */
 #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 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 {
 struct filet {
+#ifndef FLEXNAMES
        char    sfilename[31];  /* source file name */
        char    sfilename[31];  /* source file name */
+#else
+       char    *sfilename;
+#endif
        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    lineflag;       /* set iff this is a '#line' file */
        ADDR    faddr;          /* address in core */
        long    stf_offset;     /* offset in a.out */
 } *files, *badfile;
 
 struct proct {
+#ifndef FLEXNAMES
        char    pname[8];       /* procedure name */
        char    pname[8];       /* procedure name */
+#else
+       char    *pname;
+#endif
        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 */
        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
 } *procs, *badproc;
 
 
 #define PROCINCR 20
 #define FILEINCR 10
-#define MAXADDR 1L<<30
 
 
-#define varchar(x)     ((x>='A' && x<='Z') || (x>='a' &&  x<='z') || x == '_' || x == '.' || x == '[' || x == ']' || x == '-' || x == '>')
+#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')
 
 #define number(x)      (x >= '0' && x <= '9')
 
-char *readline();
+char *readline(), readchar(), rdc();
 char *cpname();
 char *cpname();
-char *cpall();
+char *cpstr(), *cpall();
 char *sbrk();
 char *typetodesc();
 int octdigit(), decdigit(); hexdigit();
 char *sbrk();
 char *typetodesc();
 int octdigit(), decdigit(); hexdigit();
@@ -81,14 +134,11 @@ int octconv(), decconv(); hexconv();
 long readint(), rint();
 long adrtostoffset();
 long getval(), argvalue();
 long readint(), rint();
 long adrtostoffset();
 long getval(), argvalue();
+long slookup(), globallookup();
 ADDR varaddr(), dispvar();
 ADDR varaddr(), dispvar();
-ADDR extaddr();
+ADDR extaddr(), formaddr(), stackreg();
 struct proct *curproc();
 struct proct *findproc();
 struct proct *curproc();
 struct proct *findproc();
-struct proct *adrtoproc();
+struct proct *adrtoprocp();
 struct proct *initframe(), *nextframe();
 struct filet *findfile(), *adrtofilep();
 struct proct *initframe(), *nextframe();
 struct filet *findfile(), *adrtofilep();
-
-#define        WINDOW  10
-#define        COMMANDS        "\004+-=!/abcdemnpqrstwxz"
-int    debug;