summaryrefslogtreecommitdiffstats
path: root/private/windbg/symcvt/include/symcvt.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/windbg/symcvt/include/symcvt.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/private/windbg/symcvt/include/symcvt.h b/private/windbg/symcvt/include/symcvt.h
new file mode 100644
index 000000000..c2d6ade7b
--- /dev/null
+++ b/private/windbg/symcvt/include/symcvt.h
@@ -0,0 +1,91 @@
+/*++
+
+
+Copyright (c) 1992 Microsoft Corporation
+
+Module Name:
+
+ symcvt.h
+
+Abstract:
+
+ This file contains all of the type definitions and prototypes
+ necessary to access the symcvt library.
+
+Author:
+
+ Wesley A. Witt (wesw) 19-April-1993
+
+Environment:
+
+ Win32, User Mode
+
+--*/
+
+
+typedef struct tagPTRINFO {
+ DWORD size;
+ DWORD count;
+ PUCHAR ptr;
+} PTRINFO, *PPTRINFO;
+
+typedef struct tagIMAGEPOINTERS {
+ char szName[MAX_PATH];
+ HANDLE hFile;
+ BOOL CloseFile; // TRUE if symcvt opened file
+ HANDLE hMap;
+ DWORD fsize;
+ PUCHAR fptr;
+ BOOLEAN fRomImage;
+ PIMAGE_DOS_HEADER dosHdr;
+ PIMAGE_NT_HEADERS ntHdr;
+ PIMAGE_ROM_HEADERS romHdr;
+ PIMAGE_FILE_HEADER fileHdr;
+ PIMAGE_OPTIONAL_HEADER optHdr;
+ PIMAGE_SEPARATE_DEBUG_HEADER sepHdr;
+ int cDebugDir;
+ PIMAGE_DEBUG_DIRECTORY * rgDebugDir;
+ PIMAGE_SECTION_HEADER sectionHdrs;
+ PIMAGE_SECTION_HEADER debugSection;
+ PIMAGE_SYMBOL AllSymbols;
+ PUCHAR stringTable;
+ int numberOfSymbols;
+ int numberOfSections;
+ PCHAR * rgpbDebugSave;
+} IMAGEPOINTERS, *PIMAGEPOINTERS;
+
+#define COFF_DIR(x) ((x)->rgDebugDir[IMAGE_DEBUG_TYPE_COFF])
+#define CV_DIR(x) ((x)->rgDebugDir[IMAGE_DEBUG_TYPE_CODEVIEW])
+
+typedef struct _MODULEINFO {
+ DWORD iMod;
+ DWORD cb;
+ DWORD SrcModule;
+ LPSTR name;
+} MODULEINFO, *LPMODULEINFO;
+
+typedef struct tagPOINTERS {
+ IMAGEPOINTERS iptrs; // input file pointers
+ IMAGEPOINTERS optrs; // output file pointers
+ PTRINFO pCvStart; // start of cv info
+ PUCHAR pCvCurr; // current cv pointer
+ PTRINFO pCvModules; // module information
+ PTRINFO pCvSrcModules; // source module information
+ PTRINFO pCvPublics; // publics information
+ PTRINFO pCvSegName; // segment names
+ PTRINFO pCvSegMap; // segment map
+ PTRINFO pCvSymHash; // symbol hash table
+ PTRINFO pCvAddrSort; // address sort table
+ LPMODULEINFO pMi;
+ DWORD modcnt;
+} POINTERS, *PPOINTERS;
+
+typedef char * (* CONVERTPROC) (HANDLE, char *);
+
+BOOL MapInputFile ( PPOINTERS p, HANDLE hFile, char *fname);
+BOOL UnMapInputFile ( PPOINTERS p );
+BOOL CalculateNtImagePointers( PIMAGEPOINTERS p );
+
+#define align(_n) ((4 - (( (DWORD)_n ) % 4 )) & 3)
+
+#include "heap.h"