Annotation of pmsdk/samples/spy/symbol.h, revision 1.1.1.1

1.1       root        1: /***************************************************************************\
                      2: 
                      3: Module Name: SYMBOL.H
                      4: 
                      5: This header file contains the definitions necessary to look up symbols
                      6: in the .SYM files.
                      7: 
                      8: Created by Microsoft Corporation, 1989
                      9: 
                     10: \***************************************************************************/
                     11: 
                     12: 
                     13: /* Debug Symbol Table Structures
                     14:    -----------------------------
                     15: For each symbol table (map): (MAPDEF)
                     16: -------------------------------------------------------------------------------------------------
                     17: | map_ptr | lsa | pgm_ent | abs_cnt | abs_ptr | seg_cnt | seg_ptr | nam_max | nam_len | name... |
                     18: ------------------------------------------------------------------------------------------------- */
                     19: typedef struct _MAPDEF {    /* mpdf */
                     20:     unsigned    map_ptr;    /* 16 bit ptr to next map (0 if end)    */
                     21:     unsigned    lsa    ;    /* 16 bit Load Segment address          */
                     22:     unsigned    pgm_ent;    /* 16 bit entry point segment value     */
                     23:     int         abs_cnt;    /* 16 bit count of constants in map     */
                     24:     unsigned    abs_ptr;    /* 16 bit ptr to   constant chain       */
                     25:     int         seg_cnt;    /* 16 bit count of segments in map      */
                     26:     unsigned    seg_ptr;    /* 16 bit ptr to   segment chain        */
                     27:     char        nam_max;    /*  8 bit Maximum Symbol name length    */
                     28:     char        nam_len;    /*  8 bit Symbol table name length      */
                     29: } MAPDEF;
                     30: 
                     31: typedef struct _MAPEND {    /* mped */
                     32:     unsigned        chnend;         /* end of map chain (0) */
                     33:     char            rel;            /* release              */
                     34:     char            ver;            /* version              */
                     35: } MAPEND;
                     36: 
                     37: /* For each segment/group within a symbol table: (SEGDEF)
                     38: --------------------------------------------------------------
                     39: | nxt_seg | sym_cnt | sym_ptr | seg_lsa | name_len | name... |
                     40: -------------------------------------------------------------- */
                     41: typedef struct _SEGDEF {    /* sgdf */
                     42:     unsigned    nxt_seg;    /* 16 bit ptr to next segment(0 if end) */
                     43:     int         sym_cnt;    /* 16 bit count of symbols in sym list  */
                     44:     unsigned    sym_ptr;    /* 16 bit ptr to symbol list            */
                     45:     unsigned    seg_lsa;    /* 16 bit Load Segment address          */
                     46:     unsigned    seg_in0;    /* 16 bit instance 0 physical address   */
                     47:     unsigned    seg_in1;    /* 16 bit instance 1 physical address   */
                     48:     unsigned    seg_in2;    /* 16 bit instance 2 physical address   */
                     49:     unsigned    seg_in3;    /* 16 bit instance 3 physical address   */
                     50:     unsigned    seg_lin;    /* 16 bit ptr to line number record     */
                     51:     char        seg_ldd;    /*  8 bit boolean 0 if seg not loaded   */
                     52:     char        seg_cin;    /*  8 bit current instance              */
                     53:     char        nam_len;    /*  8 bit Segment name length           */
                     54: } SEGDEF;
                     55: 
                     56: /*  Followed by a list of SYMDEF's..
                     57:     for each symbol within a segment/group: (SYMDEF)
                     58: -------------------------------
                     59: | sym_val | nam_len | name... |
                     60: ------------------------------- */
                     61: typedef struct _SYMDEF {    /* sydf */
                     62:     unsigned    sym_val;    /* 16 bit symbol addr or const          */
                     63:     char        nam_len;    /*  8 bit symbol name length            */
                     64: } SYMDEF;
                     65: 
                     66: typedef struct _SEGINFO {   /* sinfo */
                     67:     PID         pid;        /* Which process did we get selector for */
                     68:     USHORT      selector;
                     69:     char far   *lpModName;
                     70:     char far   *lpPathName;
                     71:     char far   *lpSegName;
                     72:     char far   *lpSymName;
                     73:     int         symfh;
                     74:     int         segcnt;     /* 16 bit count of segment in seg list  */
                     75:     int         segptr;     /* 16 bit file offset of segment  list  */
                     76:     int         symcnt;     /* 16 bit count of symbols in sym list  */
                     77:     long        symFPos;
                     78:     WHOISINFO  whoIs;
                     79: } SEGINFO;
                     80: typedef SEGINFO     *PSEGINFO;
                     81: typedef SEGINFO far *LPSEGINFO;
                     82: 
                     83: void    pascal near DebugBreakReturn( void );
                     84: 
                     85: long    pascal near DebugFileSeek( int, long, int );
                     86: USHORT  pascal near DebugFileRead( int, PSZ, USHORT );
                     87: 
                     88: int     pascal near IdentifyCodeSegment( PSEGINFO, PID, USHORT );
                     89: USHORT  pascal near FindSymbol( PSEGINFO, USHORT );

unix.superglobalmegacorp.com

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