Annotation of pmsdk/samples/spy/symbol.h, revision 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.