home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sherlock.zip / SYM / MAPSYM.H < prev    next >
C/C++ Source or Header  |  1994-06-29  |  3KB  |  112 lines

  1. /*
  2. **  Sherlock - Copyright 1992, 1993, 1994
  3. **    Harfmann Software
  4. **    Compuserve: 73147,213
  5. **    All rights reserved
  6. */
  7. #ifndef DWORD
  8.     typedef unsigned long DWORD;
  9. #endif
  10. #ifndef WORD
  11.     typedef unsigned short WORD;
  12. #endif
  13.  
  14. #pragma pack(1)
  15. typedef struct    tag_mapdef {
  16.  
  17.     WORD    ppNextMap;
  18.     BYTE    bFlags;
  19.     BYTE    bReserved1;
  20.     WORD    pSegEntry;
  21.     WORD    cConsts;
  22.     WORD    pConstDef;
  23.     WORD    cSegs;
  24.     WORD    ppSegDef;
  25.     BYTE    cbMaxSym;
  26.     BYTE    cbModName;
  27. } MAPDEF;
  28.  
  29. typedef struct tag_endmapdef {
  30.     WORD    ppNextMap;
  31.     BYTE    release;
  32.     BYTE    version;
  33. } END_MAPDEF;
  34.  
  35. typedef struct tag_segdef {
  36.     WORD    ppNextSeg;
  37.     WORD    cSymbols;
  38.     WORD    pSymDef;
  39.     WORD    wReserved1;
  40.     WORD    wReserved2;
  41.     WORD    wReserved3;
  42.     WORD    wReserved4;
  43.     BYTE    bFlags;
  44.     BYTE    bReserved1;
  45.     WORD    ppLineDef;
  46.     BYTE    bReserved2;
  47.     BYTE    bReserved3;
  48.     BYTE    cbSegName;
  49. } SEGDEF;
  50.  
  51. typedef struct tag_symdef16 {
  52.     WORD    wSymVal;
  53.     BYTE    dbSymName;
  54. } SYMDEF16;
  55.  
  56. typedef struct tag_symdef32 {
  57.     DWORD   lSymVal;
  58.     BYTE    dbSymName;
  59. } SYMDEF32;
  60.  
  61. typedef struct tag_linedef {
  62.     WORD    ppNextLine;
  63.     WORD    wReserved1;
  64.     WORD    pLines;
  65.     WORD    wReserved2;
  66.     WORD    cLines;
  67.     BYTE    cbFileName;
  68. } LINEDEF;
  69.  
  70. typedef struct tag_lineinf16 {
  71.     WORD    wCodeOffset;
  72.     WORD    dwFileOffset;
  73. } LINEINF16;
  74.  
  75. typedef struct tag_lineinf32 {
  76.     DWORD   lCodeOffset;
  77.     WORD    dwFileOffset;
  78. } LINEINF32;
  79.  
  80. /*
  81. ** Structures used by the DLL.
  82. */
  83. typedef struct mysymdef16 {
  84.     struct mysymdef16 *next;
  85.     WORD    wSymVal;
  86.     char    SymName[1];
  87. } SymData16;
  88.  
  89. typedef struct mysymdef32 {
  90.     struct mysymdef32 *next;
  91.     DWORD   lSymVal;
  92.     char    SymName[1];
  93. } SymData32;
  94.  
  95. typedef struct tag_SegData {
  96.     struct tag_SegData *next;        /* Pointer to next segment */
  97.     SymData16           *first16Symbol;    /* Pointer to first symbol */
  98.     SymData32           *first32Symbol;    /* Pointer to first symbol */
  99.     char        name[1];    /* Name of the segment       */
  100. } SymSegmentData;
  101.  
  102. int _System SymFindSource(DebugModule *module, ULONG eipOffset,
  103.             char *funcName, char *sourceName, ULONG *lineNum);
  104. ULONG _System SymFindSourceLine(DebugModule *module, int line, char *fileName);
  105. ULONG _System SymFindFuncAddr(DebugModule *module, char *funcName);
  106.  
  107. /*
  108. ** Global variables.
  109. */
  110. DebugBuffer *debugBuffer;
  111. #pragma pack()
  112.