Annotation of coherent/b/bin/db_400/trace.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * trace.h
                      3:  */
                      4: 
                      5: #include <sys/types.h>
                      6: #include "i8086trace.h"
                      7: 
                      8: /*
                      9:  * Adjustable constants.
                     10:  */
                     11: #define NBPT   16                      /* Number of breakpoints */
                     12: #define        CCSSIZE 8                       /* C compiler symbol size */
                     13: #define        ARGSIZE 20                      /* Max number of args for `:e' */
                     14: #define VALSIZE        10                      /* Number of expressions allowed */
                     15: #define DISSIZE        64                      /* Terminal display size */
                     16: #define FORSIZE        64                      /* Size of format for segments */
                     17: #define COMSIZE        128                     /* Size of command sequence */
                     18: #define MISSIZE        256                     /* Size of miscellaneous buffer */
                     19: 
                     20: /*
                     21:  * Modes for single step.
                     22:  */
                     23: #define SNULL  0                       /* Do nothing */
                     24: #define SSTEP  1                       /* Single step */
                     25: #define SCONT  2                       /* Continuous step */
                     26: #define SCSET  3                       /* Continuous step setup */
                     27: #define SWAIT  4                       /* Wait for function return */
                     28: 
                     29: /*
                     30:  * Breakpoint flags.
                     31:  */
                     32: #define BBPT   1                       /* Breakpoint set */
                     33: #define BRET   2                       /* Breakpoint return set */
                     34: #define BSIN   4                       /* Breakpoint single continue set */
                     35: 
                     36: /*
                     37:  * Breakpoint table.
                     38:  */
                     39: typedef struct b_st {
                     40:        int     b_flag;                 /* Flag word */
                     41:        caddr_t b_badd;                 /* Breakpoint address */
                     42:        caddr_t b_rfpt;                 /* Return frame pointer */
                     43:        caddr_t b_sfpt;                 /* Single continue frame pointer */
                     44:        char    *b_bcom;                /* Breakpoint command */
                     45:        char    *b_rcom;                /* Return command */
                     46:        BIN     b_bins;                 /* Instruction we replaced */
                     47: } BPT;
                     48: 
                     49: /*
                     50:  * Segment definitions.
                     51:  */
                     52: #define NSEGM  3                       /* Number of segments */
                     53: 
                     54: #define DSEG   0
                     55: #define ISEG   1
                     56: #define USEG   2
                     57: 
                     58: #define        DSPACE  segmapl[DSEG]           /* Data space */
                     59: #define ISPACE segmapl[ISEG]           /* Instruction space */
                     60: #define USPACE segmapl[USEG]           /* User area */
                     61: 
                     62: /*
                     63:  * Segmentation map table structure.
                     64:  */
                     65: typedef struct map {
                     66:        struct  map *m_next;            /* Pointer to next */
                     67:        off_t   m_base;                 /* Segmentation base */
                     68:        off_t   m_bend;                 /* End of base */
                     69:        off_t   m_offt;                 /* Offset */
                     70:        int     (*m_getf)();            /* Read function */
                     71:        int     (*m_putf)();            /* Write function */
                     72:        int     m_segi;                 /* Index for segment */
                     73: } MAP;
                     74: 
                     75: /*
                     76:  *Default segment attribute definitions.
                     77:  */
                     78: #define DSA16  16              /* 16 bit default operand and address size */
                     79: #define DSA32  32              /* 32 bit default operand and address size */
                     80: 
                     81: /*
                     82:  * Storing some important file header information in memory.
                     83:  */
                     84: typedef        struct  fileheaderInfo {
                     85:        unsigned short magic;
                     86:        unsigned short defsegatt; /*Default segment attribute definitions */
                     87: } HDRINFO;
                     88: 
                     89: /*
                     90:  * Extension of symbols.
                     91:  */
                     92: #define        L_REG   11                      /* Register symbol type */
                     93: 
                     94: /*
                     95:  * Symbol header structure in memory.
                     96:  */
                     97: struct LDSYM {
                     98:        char            ls_id[NCPLN];   /* Symbol name          */
                     99:        short           ls_type;        /* Global + Seg.        */
                    100:        off_t           ls_addr;        /* Value of symbol      */
                    101: };
                    102: 
                    103: /*
                    104:  * Symbol in memory.
                    105:  */
                    106: typedef struct sym {
                    107:        unsigned char s_hash;           /* Hash value */
                    108:        unsigned char s_type;           /* Type */
                    109:        unsigned s_sval;                /* Value of symbol */
                    110: } SYM;
                    111: 
                    112: /*
                    113:  * Default file names.
                    114:  */
                    115: #define DEFLT_OBJ      "l.out"         /* object file */
                    116: #define DEFLT_AUX      "core"          /* auxiliary file */
                    117: 
                    118: /*
                    119:  * Flags in value.
                    120:  */
                    121: #define VNULL  1                       /* Value is null */
                    122: #define VLVAL  2                       /* Value is a left value */
                    123: 
                    124: /*
                    125:  * Value descriptor.
                    126:  */
                    127: typedef struct val {
                    128:        unsigned char v_flag;           /* Flag word */
                    129:        unsigned char v_segn;           /* Segment number */
                    130:        long     v_nval;                /* Value */
                    131: } VAL;
                    132: 
                    133: /*
                    134:  * Types of input.
                    135:  */
                    136: #define IFILE  1                       /* File I/O */
                    137: #define ICORE  2                       /* Core I/O */
                    138: 
                    139: /*
                    140:  * Next input stack.
                    141:  */
                    142: typedef union inp {
                    143:        struct {
                    144:                union   inp *i_next;    /* Pointer to next */
                    145:                int     i_type;         /* Type of input */
                    146:                FILE    *i_filp;        /* File pointer */
                    147:        } i_st1;
                    148: 
                    149:        struct {
                    150:                union   inp *i_next;    /* Pointer to next */
                    151:                int     i_type;         /* Type of input */
                    152:                char    *i_strp;        /* String pointer */
                    153:        } i_st2;
                    154: } INP;
                    155: 
                    156: /*
                    157:  * To find a structure offset.
                    158:  */
                    159: #define offset(s, m)   ((int) &(((struct s *) 0)->m))
                    160: 
                    161: /*
                    162:  * Functions defined by the machine dependent routines.
                    163:  */
                    164: caddr_t        getpc();                        /* Get programme counter */
                    165: 
                    166: /*
                    167:  * Function for the C compiler.
                    168:  */
                    169: int    armsint();                      /* trace1.c */
                    170: MAP    *setsmap();                     /* trace1.c */
                    171: MAP    *clrsmap();                     /* trace1.c */
                    172: FILE   *openfil();                     /* trace1.c */
                    173: int    getp();                         /* trace2.c */
                    174: int    putp();                         /* trace2.c */
                    175: char   *conform();                     /* trace3.c */
                    176: char   *getform();                     /* trace3.c */
                    177: char   *gettime();                     /* trace3.c */
                    178: long   lvalue();                       /* trace5.c */
                    179: long   rvalue();                       /* trace5.c */
                    180: int    getb();                         /* trace6.c */
                    181: int    putb();                         /* trace6.c */
                    182: int    getf();                         /* trace6.c */
                    183: int    putf();                         /* trace6.c */
                    184: MAP    *mapaddr();                     /* trace6.c */
                    185: char   *conaddr();                     /* trace6.c */
                    186: char   *nalloc();                      /* trace6.c */
                    187: 
                    188: /*
                    189:  * Variables defined by machine dependent routine.
                    190:  */
                    191: extern char    *signame[];             /* Names of signals */
                    192: 
                    193: /*
                    194:  * Global variables.
                    195:  */
                    196: extern BIN     bin;                    /* Breakpoint instruction */
                    197: extern BPT     bpt[NBPT];              /* Breakpoint table */
                    198: extern FILE    *cfp;                   /* Core file pointer */
                    199: extern FILE    *lfp;                   /* l.out file pointer */
                    200: extern FILE    *sfp;                   /* Symbol table file pointer */
                    201: extern INP     *inpp;                  /* Input pointer */
                    202: extern MAP     *endpure;               /* End of pure area */
                    203: extern MAP     *segmapl[NSEGM];        /* Segment descriptors */
                    204: extern SYM     *ssymp;                 /* Pointer to core symbol table */
                    205: extern char    *errrstr;               /* Last error */
                    206: extern char    *lfn;                   /* l.out file name */
                    207: extern char    *segname[NSEGM];        /* Names of segments */
                    208: extern char    *sinp;                  /* Command for single step */
                    209: extern char    *trapstr;               /* Fault type */
                    210: extern char    miscbuf[MISSIZE];       /* Miscellaneous buffer */
                    211: extern char    segform[NSEGM][FORSIZE];/* Formats for segments */
                    212: extern int     bitflag;                /* Single step next instruction */
                    213: extern int     cantype;                /* Canonization type */
                    214: extern int     cseg;                   /* Current segment */
                    215: extern int     excflag;                /* Programme is in execution */
                    216: extern int     intflag;                /* Interrupt count */
                    217: extern int     lastc;                  /* Character for ungetn */
                    218: extern int     modsize;                /* Size of last display mode */
                    219: extern int     objflag;                /* Programme can run */
                    220: extern int     pid;                    /* Current process id */
                    221: extern int     regflag;                /* Registers exist */
                    222: extern int     rflag;                  /* Read only flag */
                    223: extern int     sflag;                  /* Don't read symbol table */
                    224: extern int     sincmod;                /* Last mode ran (if single) */
                    225: extern int     sindecr;                /* Single step count */
                    226: extern int     sinmode;                /* Single step mode */
                    227: extern long    add;                    /* Address used by getb */
                    228: extern long    dot;                    /* Current address */
                    229: extern long    lad;                    /* Last address of dot */
                    230: extern off_t   sbase;                  /* Base of symbols */
                    231: extern off_t   snsym;                  /* Number of symbols */
                    232: 
                    233: extern HDRINFO hdrinfo;                /* important file header info */
                    234: extern off_t   sngblsym;               /* Number of symbols of type global */
                    235: extern off_t   *gblsymMap;             /* Maps global symbols to symbol table 
                    236:                                           area of the coff header */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.