[PATCH] [WineDump]: const

Eric Pouech eric.pouech at wanadoo.fr
Mon Apr 10 13:53:50 CDT 2006


- constify some pointers

A+
---

 tools/winedump/debug.c    |   79 +++++++++++++++---------------
 tools/winedump/dump.c     |   38 +++++++-------
 tools/winedump/minidump.c |   51 ++++++++++---------
 tools/winedump/pe.c       |  119 +++++++++++++++++++++++----------------------
 tools/winedump/pe.h       |    4 +-
 tools/winedump/winedump.h |    6 +-
 6 files changed, 149 insertions(+), 148 deletions(-)

diff --git a/tools/winedump/debug.c b/tools/winedump/debug.c
index 419447d..2a281e7 100644
--- a/tools/winedump/debug.c
+++ b/tools/winedump/debug.c
@@ -99,14 +99,13 @@
  *    (OMFDirHeader.cDir)
  */
 
-extern IMAGE_NT_HEADERS*        PE_nt_headers;
+extern const IMAGE_NT_HEADERS*        PE_nt_headers;
+static const void*		cv_base /* = 0 */;
 
-static	void*		cv_base /* = 0 */;
-
-static int dump_cv_sst_module(OMFDirEntry* omfde)
+static int dump_cv_sst_module(const OMFDirEntry* omfde)
 {
-    OMFModule*	module;
-    OMFSegDesc*	segDesc;
+    const OMFModule*	module;
+    const OMFSegDesc*	segDesc;
     int		i;
 
     module = PRD(Offset(cv_base) + omfde->lfo, sizeof(OMFModule));
@@ -132,16 +131,16 @@ static int dump_cv_sst_module(OMFDirEntr
     return TRUE;
 }
 
-static int dump_cv_sst_global_pub(OMFDirEntry* omfde)
+static int dump_cv_sst_global_pub(const OMFDirEntry* omfde)
 {
-    long	fileoffset;
-    OMFSymHash* header;
-    BYTE*	symbols;
-    BYTE*	curpos;
-    PUBSYM32*	sym;
-    unsigned 	symlen;
-    int		recordlen;
-    char 	nametmp[256];
+    long	        fileoffset;
+    const OMFSymHash*   header;
+    const BYTE*	        symbols;
+    const BYTE*	        curpos;
+    const PUBSYM32*	sym;
+    unsigned 	        symlen;
+    int		        recordlen;
+    char 	        nametmp[256];
 
     fileoffset = Offset(cv_base) + omfde->lfo;
     printf ("    GlobalPub section starts at file offset 0x%lx\n", fileoffset);
@@ -189,34 +188,34 @@ static int dump_cv_sst_global_pub(OMFDir
     return TRUE;
 }
 
-static int dump_cv_sst_global_sym(OMFDirEntry* omfde)
+static int dump_cv_sst_global_sym(const OMFDirEntry* omfde)
 {
     /*** NOT YET IMPLEMENTED ***/
     return TRUE;
 }
 
-static int dump_cv_sst_static_sym(OMFDirEntry* omfde)
+static int dump_cv_sst_static_sym(const OMFDirEntry* omfde)
 {
     /*** NOT YET IMPLEMENTED ***/
     return TRUE;
 }
 
-static int dump_cv_sst_libraries(OMFDirEntry* omfde)
+static int dump_cv_sst_libraries(const OMFDirEntry* omfde)
 {
     /*** NOT YET IMPLEMENTED ***/
     return TRUE;
 }
 
-static int dump_cv_sst_global_types(OMFDirEntry* omfde)
+static int dump_cv_sst_global_types(const OMFDirEntry* omfde)
 {
     /*** NOT YET IMPLEMENTED ***/
     return TRUE;
 }
 
-static int dump_cv_sst_seg_map(OMFDirEntry* omfde)
+static int dump_cv_sst_seg_map(const OMFDirEntry* omfde)
 {
-    OMFSegMap*		segMap;
-    OMFSegMapDesc*	segMapDesc;
+    const OMFSegMap*		segMap;
+    const OMFSegMapDesc*	segMapDesc;
     int		i;
 
     segMap = PRD(Offset(cv_base) + omfde->lfo, sizeof(OMFSegMap));
@@ -244,22 +243,22 @@ static int dump_cv_sst_seg_map(OMFDirEnt
     return TRUE;
 }
 
-static int dump_cv_sst_file_index(OMFDirEntry* omfde)
+static int dump_cv_sst_file_index(const OMFDirEntry* omfde)
 {
     /*** NOT YET IMPLEMENTED ***/
     return TRUE;
 }
 
-static int dump_cv_sst_src_module(OMFDirEntry* omfde)
+static int dump_cv_sst_src_module(const OMFDirEntry* omfde)
 {
-    int 		i, j;
-    BYTE*		rawdata;
-    unsigned long*	seg_info_dw;
-    unsigned short*	seg_info_w;
-    unsigned		ofs;
-    OMFSourceModule*	sourceModule;
-    OMFSourceFile*	sourceFile;
-    OMFSourceLine*	sourceLine;
+    int 		        i, j;
+    const BYTE*		        rawdata;
+    const unsigned long*	seg_info_dw;
+    const unsigned short*	seg_info_w;
+    unsigned		        ofs;
+    const OMFSourceModule*	sourceModule;
+    const OMFSourceFile*	sourceFile;
+    const OMFSourceLine*	sourceLine;
 
     rawdata = PRD(Offset(cv_base) + omfde->lfo, omfde->cb);
     if (!rawdata) {printf("Can't get srcModule subsection details, aborting\n");return FALSE;}
@@ -340,17 +339,17 @@ static int dump_cv_sst_src_module(OMFDir
     return TRUE;
 }
 
-static int dump_cv_sst_align_sym(OMFDirEntry* omfde)
+static int dump_cv_sst_align_sym(const OMFDirEntry* omfde)
 {
     /*** NOT YET IMPLEMENTED ***/
 
     return TRUE;
 }
 
-static void dump_codeview_all_modules(OMFDirHeader *omfdh)
+static void dump_codeview_all_modules(const OMFDirHeader *omfdh)
 {
     unsigned 		i;
-    OMFDirEntry	       *dirEntry;
+    const OMFDirEntry*  dirEntry;
     const char*		str;
 
     if (!omfdh || !omfdh->cDir) return;
@@ -402,9 +401,9 @@ static void dump_codeview_all_modules(OM
 
 static void dump_codeview_headers(unsigned long base, unsigned long len)
 {
-    OMFDirHeader	*dirHeader;
-    OMFSignature	*signature;
-    OMFDirEntry		*dirEntry;
+    const OMFDirHeader* dirHeader;
+    const OMFSignature* signature;
+    const OMFDirEntry*  dirEntry;
     unsigned		i;
     int modulecount = 0, alignsymcount = 0, srcmodulecount = 0, librariescount = 0;
     int globalsymcount = 0, globalpubcount = 0, globaltypescount = 0;
@@ -507,14 +506,14 @@ static const char*   get_coff_name( PIMA
    return nampnt;
 }
 
-void	dump_coff(unsigned long coffbase, unsigned long len, void* pmt)
+void	dump_coff(unsigned long coffbase, unsigned long len, const void* pmt)
 {
     PIMAGE_COFF_SYMBOLS_HEADER coff;
     PIMAGE_SYMBOL                 coff_sym;
     PIMAGE_SYMBOL                 coff_symbols;
     PIMAGE_LINENUMBER             coff_linetab;
     char                        * coff_strtab;
-    IMAGE_SECTION_HEADER        * sectHead = pmt;
+    const IMAGE_SECTION_HEADER  * sectHead = pmt;
     unsigned int i;
     const char                  * nampnt;
     int naux;
diff --git a/tools/winedump/dump.c b/tools/winedump/dump.c
index 91f4b0b..0382889 100644
--- a/tools/winedump/dump.c
+++ b/tools/winedump/dump.c
@@ -46,7 +46,7 @@
 #include "winedump.h"
 #include "pe.h"
 
-static void*			dump_base;
+static const void*		dump_base;
 static unsigned long		dump_total_len;
 
 void dump_data( const unsigned char *ptr, unsigned int size, const char *prefix )
@@ -132,19 +132,19 @@ void dump_unicode_str( const WCHAR *str,
     printf( "\"" );
 }
 
-void*	PRD(unsigned long prd, unsigned long len)
+const void*	PRD(unsigned long prd, unsigned long len)
 {
-    return (prd + len > dump_total_len) ? NULL : (char*)dump_base + prd;
+    return (prd + len > dump_total_len) ? NULL : (const char*)dump_base + prd;
 }
 
-unsigned long Offset(void* ptr)
+unsigned long Offset(const void* ptr)
 {
     if (ptr < dump_base) {printf("<<<<<ptr below\n");return 0;}
-    if ((char *)ptr >= (char*)dump_base + dump_total_len) {printf("<<<<<ptr above\n");return 0;}
+    if ((const char *)ptr >= (const char*)dump_base + dump_total_len) {printf("<<<<<ptr above\n");return 0;}
     return (char*)ptr - (char*)dump_base;
 }
 
-static	void	do_dump( enum FileSig sig, void* pmt )
+static	void	do_dump( enum FileSig sig, const void* pmt )
 {
     if (sig == SIG_NE)
     {
@@ -161,12 +161,12 @@ static	void	do_dump( enum FileSig sig, v
     pe_dump(pmt);
 }
 
-static	enum FileSig	check_headers(void** pmt)
+static	enum FileSig	check_headers(const void** pmt)
 {
-    WORD*		pw;
-    DWORD*		pdw;
-    IMAGE_DOS_HEADER*	dh;
-    enum FileSig	sig;
+    const WORD*		        pw;
+    const DWORD*		pdw;
+    const IMAGE_DOS_HEADER*	dh;
+    enum FileSig	        sig;
 
     pw = PRD(0, sizeof(WORD));
     if (!pw) {printf("Can't get main signature, aborting\n"); return 0;}
@@ -188,11 +188,11 @@ static	enum FileSig	check_headers(void**
 		    *pmt = PRD(dh->e_lfanew, sizeof(DWORD)+sizeof(IMAGE_FILE_HEADER));
 		    sig = SIG_PE;
 		}
-                else if (*(WORD *)pdw == IMAGE_OS2_SIGNATURE)
+                else if (*(const WORD *)pdw == IMAGE_OS2_SIGNATURE)
                 {
                     sig = SIG_NE;
                 }
-		else if (*(WORD *)pdw == IMAGE_VXD_SIGNATURE)
+		else if (*(const WORD *)pdw == IMAGE_VXD_SIGNATURE)
 		{
                     sig = SIG_LE;
 		}
@@ -218,20 +218,20 @@ static	enum FileSig	check_headers(void**
             sig = SIG_UNKNOWN;
         break;
     default:
-	printf("No known main signature (%.2s/%x), aborting\n", (char*)pw, *pw);
+	printf("No known main signature (%.2s/%x), aborting\n", (const char*)pw, *pw);
 	sig = SIG_UNKNOWN;
     }
 
     return sig;
 }
 
-int dump_analysis(const char* name, void (*fn)(enum FileSig, void*), enum FileSig wanted_sig)
+int dump_analysis(const char* name, file_dumper fn, enum FileSig wanted_sig)
 {
     int			fd;
     enum FileSig	effective_sig;
     int			ret = 1;
     struct stat		s;
-    void*               pmt;
+    const void*         pmt;
 
     setbuf(stdout, NULL);
 
@@ -246,7 +246,7 @@ int dump_analysis(const char* name, void
 #endif
     {
         if (!(dump_base = malloc( dump_total_len ))) fatal( "Out of memory" );
-        if ((unsigned long)read( fd, dump_base, dump_total_len ) != dump_total_len) fatal( "Cannot read file" );
+        if ((unsigned long)read( fd, (void*)dump_base, dump_total_len ) != dump_total_len) fatal( "Cannot read file" );
     }
 
     effective_sig = check_headers(&pmt);
@@ -286,10 +286,10 @@ int dump_analysis(const char* name, void
 
     if (ret) printf("Done dumping %s\n", name);
 #ifdef HAVE_MMAP
-    if (munmap(dump_base, dump_total_len) == -1)
+    if (munmap((void*)dump_base, dump_total_len) == -1)
 #endif
     {
-        free( dump_base );
+        free( (void*)dump_base );
     }
     close(fd);
 
diff --git a/tools/winedump/minidump.c b/tools/winedump/minidump.c
index 4382c74..a8852d5 100644
--- a/tools/winedump/minidump.c
+++ b/tools/winedump/minidump.c
@@ -37,17 +37,17 @@ static void dump_mdmp_data(const MINIDUM
 
 static void dump_mdmp_string(DWORD rva)
 {
-    MINIDUMP_STRING*    ms = PRD(rva, sizeof(MINIDUMP_STRING));
+    const MINIDUMP_STRING*      ms = PRD(rva, sizeof(MINIDUMP_STRING));
     if (ms)
         dump_unicode_str( ms->Buffer, ms->Length / sizeof(WCHAR) );
     else
         printf("<<?>>");
 }
 
-static MINIDUMP_DIRECTORY* get_mdmp_dir(const MINIDUMP_HEADER* hdr, int str_idx)
+static const MINIDUMP_DIRECTORY* get_mdmp_dir(const MINIDUMP_HEADER* hdr, int str_idx)
 {
-    MINIDUMP_DIRECTORY* dir;
-    unsigned int        i;
+    const MINIDUMP_DIRECTORY*   dir;
+    unsigned int                i;
 
     for (i = 0; i < hdr->NumberOfStreams; i++)
     {
@@ -61,10 +61,10 @@ static MINIDUMP_DIRECTORY* get_mdmp_dir(
 
 void mdmp_dump(void)
 {
-    MINIDUMP_HEADER*        hdr = (MINIDUMP_HEADER*)PRD(0, sizeof(MINIDUMP_HEADER));
-    ULONG                   idx, ndir = 0;
-    MINIDUMP_DIRECTORY*     dir;
-    void*                   stream;
+    const MINIDUMP_HEADER*      hdr = (const MINIDUMP_HEADER*)PRD(0, sizeof(MINIDUMP_HEADER));
+    ULONG                       idx, ndir = 0;
+    const MINIDUMP_DIRECTORY*   dir;
+    const void*                 stream;
 
     if (!hdr)
     {
@@ -72,7 +72,7 @@ void mdmp_dump(void)
         return;
     }
 
-    printf("Signature: %lu (%.4s)\n", hdr->Signature, (char*)&hdr->Signature);
+    printf("Signature: %lu (%.4s)\n", hdr->Signature, (const char*)&hdr->Signature);
     printf("Version: %lx\n", hdr->Version);
     printf("NumberOfStreams: %lu\n", hdr->NumberOfStreams);
     printf("StreamDirectoryRva: %lu\n", hdr->StreamDirectoryRva);
@@ -90,9 +90,9 @@ void mdmp_dump(void)
         {
         case ThreadListStream:
         {
-            MINIDUMP_THREAD_LIST*   mtl = (MINIDUMP_THREAD_LIST*)stream;
-            MINIDUMP_THREAD*        mt = &mtl->Threads[0];
-            unsigned int            i;
+            const MINIDUMP_THREAD_LIST* mtl = (const MINIDUMP_THREAD_LIST*)stream;
+            const MINIDUMP_THREAD*      mt = &mtl->Threads[0];
+            unsigned int                i;
 
             printf("Threads: %lu\n", mtl->NumberOfThreads);
             for (i = 0; i < mtl->NumberOfThreads; i++, mt++)
@@ -115,11 +115,11 @@ void mdmp_dump(void)
         case ModuleListStream:
         case 0xFFF0:
         {
-            MINIDUMP_MODULE_LIST*   mml = (MINIDUMP_MODULE_LIST*)stream;
-            MINIDUMP_MODULE*        mm = &mml->Modules[0];
-            unsigned int            i;
-            const char*             p1;
-            const char*             p2;
+            const MINIDUMP_MODULE_LIST* mml = (const MINIDUMP_MODULE_LIST*)stream;
+            const MINIDUMP_MODULE*      mm = &mml->Modules[0];
+            unsigned int                i;
+            const char*                 p1;
+            const char*                 p2;
 
             printf("Modules (%s): %lu\n",
                    dir->StreamType == ModuleListStream ? "PE" : "ELF",
@@ -207,9 +207,9 @@ void mdmp_dump(void)
         break;
         case MemoryListStream:
         {
-            MINIDUMP_MEMORY_LIST*   mml = (MINIDUMP_MEMORY_LIST*)stream;
-            MINIDUMP_MEMORY_DESCRIPTOR* mmd = &mml->MemoryRanges[0];
-            unsigned int                i;
+            const MINIDUMP_MEMORY_LIST*         mml = (const MINIDUMP_MEMORY_LIST*)stream;
+            const MINIDUMP_MEMORY_DESCRIPTOR*   mmd = &mml->MemoryRanges[0];
+            unsigned int                        i;
 
             printf("Memory Ranges: %lu\n", mml->NumberOfMemoryRanges);
             for (i = 0; i < mml->NumberOfMemoryRanges; i++, mmd++)
@@ -224,7 +224,7 @@ void mdmp_dump(void)
         break;
         case SystemInfoStream:
         {
-            MINIDUMP_SYSTEM_INFO*       msi = (MINIDUMP_SYSTEM_INFO*)stream;
+            const MINIDUMP_SYSTEM_INFO* msi = (const MINIDUMP_SYSTEM_INFO*)stream;
             const char*                 str;
             char                        tmp[128];
 
@@ -307,7 +307,7 @@ void mdmp_dump(void)
             if (msi->ProcessorArchitecture == PROCESSOR_ARCHITECTURE_INTEL)
             {
                 printf("  x86.VendorId: %.12s\n", 
-                       (char*)&msi->Cpu.X86CpuInfo.VendorId[0]);
+                       (const char*)&msi->Cpu.X86CpuInfo.VendorId[0]);
                 printf("  x86.VersionInformation: %lx\n", 
                        msi->Cpu.X86CpuInfo.VersionInformation);
                 printf("  x86.FeatureInformation: %lx\n", 
@@ -319,7 +319,8 @@ void mdmp_dump(void)
         break;
         case MiscInfoStream:
         {
-            MINIDUMP_MISC_INFO* mmi = (MINIDUMP_MISC_INFO*)stream;
+            const MINIDUMP_MISC_INFO* mmi = (const MINIDUMP_MISC_INFO*)stream;
+
             printf("Misc Information\n");
             printf("  Size: %lu\n", mmi->SizeOfInfo);
             printf("  Flags: %s%s\n", 
@@ -337,8 +338,8 @@ void mdmp_dump(void)
         break;
         case ExceptionStream:
         {
-            MINIDUMP_EXCEPTION_STREAM*  mes = (MINIDUMP_EXCEPTION_STREAM*)stream;
-            unsigned int                i;
+            const MINIDUMP_EXCEPTION_STREAM*    mes = (const MINIDUMP_EXCEPTION_STREAM*)stream;
+            unsigned int                        i;
 
             printf("Exception:\n");
             printf("  ThreadId: %08lx\n", mes->ThreadId);
diff --git a/tools/winedump/pe.c b/tools/winedump/pe.c
index eb70faa..d09e896 100644
--- a/tools/winedump/pe.c
+++ b/tools/winedump/pe.c
@@ -46,7 +46,7 @@
 #include "winedump.h"
 #include "pe.h"
 
-static IMAGE_NT_HEADERS32*	PE_nt_headers;
+static const IMAGE_NT_HEADERS32*        PE_nt_headers;
 
 static	const char* get_machine_str(DWORD mach)
 {
@@ -66,7 +66,7 @@ static	const char* get_machine_str(DWORD
     return "???";
 }
 
-static void*	RVA(unsigned long rva, unsigned long len)
+static const void*	RVA(unsigned long rva, unsigned long len)
 {
     IMAGE_SECTION_HEADER*	sectHead;
     int				i;
@@ -87,11 +87,11 @@ static void*	RVA(unsigned long rva, unsi
     return NULL;
 }
 
-static void *get_dir_and_size(unsigned int idx, unsigned int *size)
+static const void *get_dir_and_size(unsigned int idx, unsigned int *size)
 {
     if(PE_nt_headers->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC)
     {
-        IMAGE_OPTIONAL_HEADER64 *opt = (IMAGE_OPTIONAL_HEADER64*)&PE_nt_headers->OptionalHeader;
+        const IMAGE_OPTIONAL_HEADER64 *opt = (const IMAGE_OPTIONAL_HEADER64*)&PE_nt_headers->OptionalHeader;
         if (idx >= opt->NumberOfRvaAndSizes)
             return NULL;
         if(size)
@@ -101,7 +101,7 @@ static void *get_dir_and_size(unsigned i
     }
     else
     {
-        IMAGE_OPTIONAL_HEADER32 *opt = (IMAGE_OPTIONAL_HEADER32*)&PE_nt_headers->OptionalHeader;
+        const IMAGE_OPTIONAL_HEADER32 *opt = (const IMAGE_OPTIONAL_HEADER32*)&PE_nt_headers->OptionalHeader;
         if (idx >= opt->NumberOfRvaAndSizes)
             return NULL;
         if(size)
@@ -111,7 +111,7 @@ static void *get_dir_and_size(unsigned i
     }
 }
 
-static	void*	get_dir(unsigned idx)
+static	const void*	get_dir(unsigned idx)
 {
     return get_dir_and_size(idx, 0);
 }
@@ -188,7 +188,7 @@ static inline void print_dllflags(const 
 #undef X
 }
 
-static inline void print_datadirectory(DWORD n, IMAGE_DATA_DIRECTORY *directory)
+static inline void print_datadirectory(DWORD n, const IMAGE_DATA_DIRECTORY *directory)
 {
     unsigned i;
     printf("Data Directory\n");
@@ -202,7 +202,7 @@ static inline void print_datadirectory(D
     }
 }
 
-static void dump_optional_header32(IMAGE_OPTIONAL_HEADER32 *optionalHeader)
+static void dump_optional_header32(const IMAGE_OPTIONAL_HEADER32 *optionalHeader)
 {
     print_word("Magic", optionalHeader->Magic);
     print_ver("linker version",
@@ -238,7 +238,7 @@ static void dump_optional_header32(IMAGE
     print_datadirectory(optionalHeader->NumberOfRvaAndSizes, optionalHeader->DataDirectory);
 }
 
-static void dump_optional_header64(IMAGE_OPTIONAL_HEADER64 *optionalHeader)
+static void dump_optional_header64(const IMAGE_OPTIONAL_HEADER64 *optionalHeader)
 {
     print_word("Magic", optionalHeader->Magic);
     print_ver("linker version",
@@ -275,7 +275,7 @@ static void dump_optional_header64(IMAGE
 
 static	void	dump_pe_header(void)
 {
-    IMAGE_FILE_HEADER		*fileHeader;
+    const IMAGE_FILE_HEADER     *fileHeader;
 
     printf("File Header\n");
     fileHeader = &PE_nt_headers->FileHeader;
@@ -314,10 +314,10 @@ static	void	dump_pe_header(void)
     printf("Optional Header (%s)\n", get_magic_type(PE_nt_headers->OptionalHeader.Magic));
     switch(PE_nt_headers->OptionalHeader.Magic) {
         case IMAGE_NT_OPTIONAL_HDR32_MAGIC:
-            dump_optional_header32((IMAGE_OPTIONAL_HEADER32*)&PE_nt_headers->OptionalHeader);
+            dump_optional_header32((const IMAGE_OPTIONAL_HEADER32*)&PE_nt_headers->OptionalHeader);
             break;
         case IMAGE_NT_OPTIONAL_HDR64_MAGIC:
-            dump_optional_header64((IMAGE_OPTIONAL_HEADER64*)&PE_nt_headers->OptionalHeader);
+            dump_optional_header64((const IMAGE_OPTIONAL_HEADER64*)&PE_nt_headers->OptionalHeader);
             break;
         default:
             printf("  Unknown header magic: 0x%-4X\n", PE_nt_headers->OptionalHeader.Magic);
@@ -326,9 +326,9 @@ static	void	dump_pe_header(void)
     printf("\n");
 }
 
-static	void	dump_sections(void* addr, unsigned num_sect)
+static	void	dump_sections(const void* addr, unsigned num_sect)
 {
-    IMAGE_SECTION_HEADER*	sectHead = addr;
+    const IMAGE_SECTION_HEADER*	sectHead = addr;
     unsigned			i;
 
     printf("Section Table\n");
@@ -400,19 +400,19 @@ static	void	dump_sections(void* addr, un
 static	void	dump_dir_exported_functions(void)
 {
     unsigned int size = 0;
-    IMAGE_EXPORT_DIRECTORY	*exportDir = get_dir_and_size(IMAGE_FILE_EXPORT_DIRECTORY, &size);
+    const IMAGE_EXPORT_DIRECTORY*exportDir = get_dir_and_size(IMAGE_FILE_EXPORT_DIRECTORY, &size);
     unsigned int		i;
-    DWORD*			pFunc;
-    DWORD*			pName;
-    WORD*			pOrdl;
-    DWORD*			map;
+    const DWORD*		pFunc;
+    const DWORD*		pName;
+    const WORD* 		pOrdl;
+    DWORD*		        map;
     parsed_symbol		symbol;
 
     if (!exportDir) return;
 
     printf("Exports table:\n");
     printf("\n");
-    printf("  Name:            %s\n", (char*)RVA(exportDir->Name, sizeof(DWORD)));
+    printf("  Name:            %s\n", (const char*)RVA(exportDir->Name, sizeof(DWORD)));
     printf("  Characteristics: %08lx\n", exportDir->Characteristics);
     printf("  TimeDateStamp:   %08lX %s\n",
 	   exportDir->TimeDateStamp, get_time_str(exportDir->TimeDateStamp));
@@ -439,11 +439,11 @@ static	void	dump_dir_exported_functions(
 
     for (i = 0; i < exportDir->NumberOfNames; i++, pName++, pOrdl++)
     {
-	char*	name;
+	const char*	name;
 
 	map[*pOrdl / 32] |= 1 << (*pOrdl % 32);
 
-	name = (char*)RVA(*pName, sizeof(DWORD));
+	name = (const char*)RVA(*pName, sizeof(DWORD));
 	if (name && globals.do_demangle)
 	{
 	    printf("  %08lX  %4lu ", pFunc[*pOrdl], exportDir->Base + *pOrdl);
@@ -462,9 +462,9 @@ static	void	dump_dir_exported_functions(
 	    printf("  %08lX  %4lu %s", pFunc[*pOrdl], exportDir->Base + *pOrdl, name);
 	}
         /* check for forwarded function */
-        if ((char *)RVA(pFunc[*pOrdl],sizeof(void*)) >= (char *)exportDir &&
-            (char *)RVA(pFunc[*pOrdl],sizeof(void*)) < (char *)exportDir + size)
-            printf( " (-> %s)", (char *)RVA(pFunc[*pOrdl],1));
+        if ((const char *)RVA(pFunc[*pOrdl],sizeof(void*)) >= (const char *)exportDir &&
+            (const char *)RVA(pFunc[*pOrdl],sizeof(void*)) < (const char *)exportDir + size)
+            printf( " (-> %s)", (const char *)RVA(pFunc[*pOrdl],1));
         printf("\n");
     }
     pFunc = RVA(exportDir->AddressOfFunctions, exportDir->NumberOfFunctions * sizeof(DWORD));
@@ -480,10 +480,10 @@ static	void	dump_dir_exported_functions(
     printf("\n");
 }
 
-static void dump_image_thunk_data64(IMAGE_THUNK_DATA64 *il)
+static void dump_image_thunk_data64(const IMAGE_THUNK_DATA64 *il)
 {
     /* FIXME: This does not properly handle large images */
-    IMAGE_IMPORT_BY_NAME* iibn;
+    const IMAGE_IMPORT_BY_NAME* iibn;
     for (; il->u1.Ordinal; il++)
     {
         if (IMAGE_SNAP_BY_ORDINAL64(il->u1.Ordinal))
@@ -499,9 +499,9 @@ static void dump_image_thunk_data64(IMAG
     }
 }
 
-static void dump_image_thunk_data32(IMAGE_THUNK_DATA32 *il)
+static void dump_image_thunk_data32(const IMAGE_THUNK_DATA32 *il)
 {
-    IMAGE_IMPORT_BY_NAME* iibn;
+    const IMAGE_IMPORT_BY_NAME* iibn;
     for (; il->u1.Ordinal; il++)
     {
         if (IMAGE_SNAP_BY_ORDINAL32(il->u1.Ordinal))
@@ -519,18 +519,18 @@ static void dump_image_thunk_data32(IMAG
 
 static	void	dump_dir_imported_functions(void)
 {
-    IMAGE_IMPORT_DESCRIPTOR	*importDesc = get_dir(IMAGE_FILE_IMPORT_DIRECTORY);
+    const IMAGE_IMPORT_DESCRIPTOR	*importDesc = get_dir(IMAGE_FILE_IMPORT_DIRECTORY);
     DWORD directorySize;
 
     if (!importDesc)	return;
     if(PE_nt_headers->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC)
     {
-        IMAGE_OPTIONAL_HEADER64 *opt = (IMAGE_OPTIONAL_HEADER64*)&PE_nt_headers->OptionalHeader;
+        const IMAGE_OPTIONAL_HEADER64 *opt = (const IMAGE_OPTIONAL_HEADER64*)&PE_nt_headers->OptionalHeader;
         directorySize = opt->DataDirectory[IMAGE_FILE_IMPORT_DIRECTORY].Size;
     }
     else
     {
-        IMAGE_OPTIONAL_HEADER32 *opt = (IMAGE_OPTIONAL_HEADER32*)&PE_nt_headers->OptionalHeader;
+        const IMAGE_OPTIONAL_HEADER32 *opt = (const IMAGE_OPTIONAL_HEADER32*)&PE_nt_headers->OptionalHeader;
         directorySize = opt->DataDirectory[IMAGE_FILE_IMPORT_DIRECTORY].Size;
     }
 
@@ -538,11 +538,11 @@ static	void	dump_dir_imported_functions(
 
     for (;;)
     {
-	IMAGE_THUNK_DATA32*	il;
+	const IMAGE_THUNK_DATA32*	il;
 
         if (!importDesc->Name || !importDesc->FirstThunk) break;
 
-	printf("  offset %08lx %s\n", Offset(importDesc), (char*)RVA(importDesc->Name, sizeof(DWORD)));
+	printf("  offset %08lx %s\n", Offset(importDesc), (const char*)RVA(importDesc->Name, sizeof(DWORD)));
 	printf("  Hint/Name Table: %08lX\n", (DWORD)importDesc->u.OriginalFirstThunk);
 	printf("  TimeDataStamp:   %08lX (%s)\n",
 	       importDesc->TimeDateStamp, get_time_str(importDesc->TimeDateStamp));
@@ -560,7 +560,7 @@ static	void	dump_dir_imported_functions(
         else
         {
             if(PE_nt_headers->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC)
-                dump_image_thunk_data64((IMAGE_THUNK_DATA64*)il);
+                dump_image_thunk_data64((const IMAGE_THUNK_DATA64*)il);
             else
                 dump_image_thunk_data32(il);
             printf("\n");
@@ -572,7 +572,7 @@ static	void	dump_dir_imported_functions(
 
 static void dump_dir_delay_imported_functions(void)
 {
-    struct ImgDelayDescr
+    const struct ImgDelayDescr
     {
         DWORD grAttrs;
         DWORD szName;
@@ -588,12 +588,12 @@ static void dump_dir_delay_imported_func
     if (!importDesc) return;
     if (PE_nt_headers->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC)
     {
-        IMAGE_OPTIONAL_HEADER64 *opt = (IMAGE_OPTIONAL_HEADER64 *)&PE_nt_headers->OptionalHeader;
+        const IMAGE_OPTIONAL_HEADER64 *opt = (const IMAGE_OPTIONAL_HEADER64 *)&PE_nt_headers->OptionalHeader;
         directorySize = opt->DataDirectory[IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT].Size;
     }
     else
     {
-        IMAGE_OPTIONAL_HEADER32 *opt = (IMAGE_OPTIONAL_HEADER32 *)&PE_nt_headers->OptionalHeader;
+        const IMAGE_OPTIONAL_HEADER32 *opt = (const IMAGE_OPTIONAL_HEADER32 *)&PE_nt_headers->OptionalHeader;
         directorySize = opt->DataDirectory[IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT].Size;
     }
 
@@ -601,27 +601,27 @@ static void dump_dir_delay_imported_func
 
     for (;;)
     {
-        BOOL use_rva = importDesc->grAttrs & 1;
-        IMAGE_THUNK_DATA32 *il;
+        BOOL                            use_rva = importDesc->grAttrs & 1;
+        const IMAGE_THUNK_DATA32*       il;
 
         if (!importDesc->szName || !importDesc->pIAT || !importDesc->pINT) break;
 
         printf("  grAttrs %08lx offset %08lx %s\n", importDesc->grAttrs, Offset(importDesc),
-               use_rva ? (char *)RVA(importDesc->szName, sizeof(DWORD)) : (char *)importDesc->szName);
+               use_rva ? (const char *)RVA(importDesc->szName, sizeof(DWORD)) : (char *)importDesc->szName);
         printf("  Hint/Name Table: %08lx\n", importDesc->pINT);
         printf("  TimeDataStamp:   %08lX (%s)\n",
                importDesc->dwTimeStamp, get_time_str(importDesc->dwTimeStamp));
 
         printf("  Ordn  Name\n");
 
-        il = use_rva ? (IMAGE_THUNK_DATA32 *)RVA(importDesc->pINT, sizeof(DWORD)) : (IMAGE_THUNK_DATA32 *)importDesc->pINT;
+        il = use_rva ? (const IMAGE_THUNK_DATA32 *)RVA(importDesc->pINT, sizeof(DWORD)) : (const IMAGE_THUNK_DATA32 *)importDesc->pINT;
 
         if (!il)
             printf("Can't grab thunk data, going to next imported DLL\n");
         else
         {
             if (PE_nt_headers->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC)
-                dump_image_thunk_data64((IMAGE_THUNK_DATA64 *)il);
+                dump_image_thunk_data64((const IMAGE_THUNK_DATA64 *)il);
             else
                 dump_image_thunk_data32(il);
             printf("\n");
@@ -631,7 +631,7 @@ static void dump_dir_delay_imported_func
     printf("\n");
 }
 
-static	void	dump_dir_debug_dir(IMAGE_DEBUG_DIRECTORY* idd, int idx)
+static	void	dump_dir_debug_dir(const IMAGE_DEBUG_DIRECTORY* idd, int idx)
 {
     const	char*	str;
 
@@ -666,7 +666,7 @@ static	void	dump_dir_debug_dir(IMAGE_DEB
 	break;
     case IMAGE_DEBUG_TYPE_COFF:
 	dump_coff(idd->PointerToRawData, idd->SizeOfData, 
-                  (char*)PE_nt_headers + sizeof(DWORD) + sizeof(IMAGE_FILE_HEADER) + PE_nt_headers->FileHeader.SizeOfOptionalHeader);
+                  (const char*)PE_nt_headers + sizeof(DWORD) + sizeof(IMAGE_FILE_HEADER) + PE_nt_headers->FileHeader.SizeOfOptionalHeader);
 	break;
     case IMAGE_DEBUG_TYPE_CODEVIEW:
 	dump_codeview(idd->PointerToRawData, idd->SizeOfData);
@@ -676,7 +676,7 @@ static	void	dump_dir_debug_dir(IMAGE_DEB
 	break;
     case IMAGE_DEBUG_TYPE_MISC:
     {
-	IMAGE_DEBUG_MISC* misc = PRD(idd->PointerToRawData, idd->SizeOfData);
+	const IMAGE_DEBUG_MISC* misc = PRD(idd->PointerToRawData, idd->SizeOfData);
 	if (!misc) {printf("Can't get misc debug information\n"); break;}
 	printf("    DataType:          %lu (%s)\n",
 	       misc->DataType,
@@ -704,7 +704,7 @@ static	void	dump_dir_debug_dir(IMAGE_DEB
 
 static void	dump_dir_debug(void)
 {
-    IMAGE_DEBUG_DIRECTORY*	debugDir = get_dir(IMAGE_FILE_DEBUG_DIRECTORY);
+    const IMAGE_DEBUG_DIRECTORY*debugDir = get_dir(IMAGE_FILE_DEBUG_DIRECTORY);
     unsigned			nb_dbg, i;
 
     if (!debugDir) return;
@@ -765,15 +765,16 @@ static void dump_dir_tls(void)
 
 void	dump_separate_dbg(void)
 {
-    IMAGE_SEPARATE_DEBUG_HEADER*separateDebugHead = PRD(0, sizeof(separateDebugHead));
-    unsigned			nb_dbg;
-    unsigned			i;
-    IMAGE_DEBUG_DIRECTORY*	debugDir;
+    const IMAGE_SEPARATE_DEBUG_HEADER*  separateDebugHead;
+    unsigned			        nb_dbg;
+    unsigned			        i;
+    const IMAGE_DEBUG_DIRECTORY*	debugDir;
 
+    separateDebugHead = PRD(0, sizeof(separateDebugHead));
     if (!separateDebugHead) {printf("Can't grab the separate header, aborting\n"); return;}
 
     printf ("Signature:          %.2s (0x%4X)\n",
-	    (char*)&separateDebugHead->Signature, separateDebugHead->Signature);
+	    (const char*)&separateDebugHead->Signature, separateDebugHead->Signature);
     printf ("Flags:              0x%04X\n", separateDebugHead->Flags);
     printf ("Machine:            0x%04X (%s)\n",
 	    separateDebugHead->Machine, get_machine_str(separateDebugHead->Machine));
@@ -1059,7 +1060,7 @@ static void dump_dir_resource(void)
     printf( "\n\n" );
 }
 
-void pe_dump(void* pmt)
+void pe_dump(const void* pmt)
 {
     int	all = (globals.dumpsect != NULL) && strcmp(globals.dumpsect, "ALL") == 0;
 
@@ -1068,7 +1069,7 @@ void pe_dump(void* pmt)
     {
 	dump_pe_header();
 	/* FIXME: should check ptr */
-	dump_sections((char*)PE_nt_headers + sizeof(DWORD) +
+	dump_sections((const char*)PE_nt_headers + sizeof(DWORD) +
 		      sizeof(IMAGE_FILE_HEADER) + PE_nt_headers->FileHeader.SizeOfOptionalHeader,
 		      PE_nt_headers->FileHeader.NumberOfSections);
     }
@@ -1135,13 +1136,13 @@ static void dll_close (void)
 }
 */
 
-static	void	do_grab_sym( enum FileSig sig, void* pmt )
+static	void	do_grab_sym( enum FileSig sig, const void* pmt )
 {
-    IMAGE_EXPORT_DIRECTORY	*exportDir;
+    const IMAGE_EXPORT_DIRECTORY*exportDir;
     unsigned			i, j;
-    DWORD*			pName;
-    DWORD*			pFunc;
-    WORD*			pOrdl;
+    const DWORD*		pName;
+    const DWORD*		pFunc;
+    const WORD* 		pOrdl;
     const char*			ptr;
     DWORD*			map;
 
diff --git a/tools/winedump/pe.h b/tools/winedump/pe.h
index ef0a269..cf09b0a 100644
--- a/tools/winedump/pe.h
+++ b/tools/winedump/pe.h
@@ -19,7 +19,7 @@
  */
 
 extern void		dump_codeview(unsigned long ptr, unsigned long len);
-extern void		dump_coff(unsigned long coffbase, unsigned long len, void* sect_map);
+extern void		dump_coff(unsigned long coffbase, unsigned long len, const void* sect_map);
 extern void		dump_frame_pointer_omission(unsigned long base, unsigned long len);
 extern void	        dump_separate_dbg(void);
-extern void             pe_dump(void*);
+extern void             pe_dump(const void*);
diff --git a/tools/winedump/winedump.h b/tools/winedump/winedump.h
index 2fefbda..9e725df 100644
--- a/tools/winedump/winedump.h
+++ b/tools/winedump/winedump.h
@@ -225,10 +225,10 @@ char *str_toupper (char *str);
 /* file dumping functions */
 enum FileSig {SIG_UNKNOWN, SIG_DOS, SIG_PE, SIG_DBG, SIG_NE, SIG_LE, SIG_MDMP};
 
-void*		PRD(unsigned long prd, unsigned long len);
-unsigned long	Offset(void* ptr);
+const void*	PRD(unsigned long prd, unsigned long len);
+unsigned long	Offset(const void* ptr);
 
-typedef void (*file_dumper)(enum FileSig, void*);
+typedef void (*file_dumper)(enum FileSig, const void*);
 int             dump_analysis(const char*, file_dumper, enum FileSig);
 
 void            dump_data( const unsigned char *ptr, unsigned int size, const char *prefix );





More information about the wine-patches mailing list