[2/5] dbghelp: Don't define 32-bit module handling functions in Win64.

Mike Ruprecht cmaiku at gmail.com
Fri Mar 6 17:04:10 CST 2009


---
 dlls/dbghelp/dbghelp.spec |   14 +++++++-------
 dlls/dbghelp/module.c     |   12 ++++++++++++
 include/dbghelp.h         |   27 +++++++++++++++++++++++++++
 3 files changed, 46 insertions(+), 7 deletions(-)

diff --git a/dlls/dbghelp/dbghelp.spec b/dlls/dbghelp/dbghelp.spec
index d7c7faa..6728d79 100644
--- a/dlls/dbghelp/dbghelp.spec
+++ b/dlls/dbghelp/dbghelp.spec
@@ -2,7 +2,7 @@
 @ stub DbgHelpCreateUserDumpW
 @ stdcall EnumDirTree(long str str ptr ptr ptr)
 @ stdcall EnumDirTreeW(long wstr wstr ptr ptr ptr)
-@ stdcall EnumerateLoadedModules(long ptr ptr)
+@ stdcall -i386 EnumerateLoadedModules(long ptr ptr)
 @ stdcall EnumerateLoadedModules64(long ptr ptr)
 @ stub EnumerateLoadedModulesEx
 @ stub EnumerateLoadedModulesExW
@@ -57,7 +57,7 @@
 @ stub SymEnumTypesByName
 @ stub SymEnumTypesByNameW
 @ stdcall SymEnumTypesW(ptr double ptr ptr)
-@ stdcall SymEnumerateModules(long ptr ptr)
+@ stdcall -i386 SymEnumerateModules(long ptr ptr)
 @ stdcall SymEnumerateModules64(long ptr ptr)
 @ stdcall SymEnumerateModulesW64(long ptr ptr)
 @ stdcall SymEnumerateSymbols(long long ptr ptr)
@@ -95,11 +95,11 @@
 @ stdcall SymGetLinePrev(long ptr)
 @ stdcall SymGetLinePrev64(long ptr)
 @ stub SymGetLinePrevW64
-@ stdcall SymGetModuleBase(long long)
+@ stdcall -i386 SymGetModuleBase(long long)
 @ stdcall SymGetModuleBase64(long double)
-@ stdcall SymGetModuleInfo(long long ptr)
+@ stdcall -i386 SymGetModuleInfo(long long ptr)
 @ stdcall SymGetModuleInfo64(long double ptr)
-@ stdcall SymGetModuleInfoW(long long ptr)
+@ stdcall -i386 SymGetModuleInfoW(long long ptr)
 @ stdcall SymGetModuleInfoW64(long double ptr)
 @ stub SymGetOmapBlockBase
 @ stdcall SymGetOptions()
@@ -131,7 +131,7 @@
 @ stub SymGetTypeInfoEx
 @ stdcall SymInitialize(long str long)
 @ stdcall SymInitializeW(long wstr long)
-@ stdcall SymLoadModule(long long str str long long)
+@ stdcall -i386 SymLoadModule(long long str str long long)
 @ stdcall SymLoadModule64(long long str str double long)
 @ stdcall SymLoadModuleEx(long long str str double long ptr long)
 @ stdcall SymLoadModuleExW(long long wstr wstr double long ptr long)
@@ -181,7 +181,7 @@
 @ stub SymSetSymWithAddr64
 @ stdcall SymUnDName(ptr str long)
 @ stub SymUnDName64
-@ stdcall SymUnloadModule(long long)
+@ stdcall -i386 SymUnloadModule(long long)
 @ stdcall SymUnloadModule64(long double)
 @ stdcall UnDecorateSymbolName(str str long long)
 @ stub UnDecorateSymbolNameW
diff --git a/dlls/dbghelp/module.c b/dlls/dbghelp/module.c
index fcdea2e..0a63742 100644
--- a/dlls/dbghelp/module.c
+++ b/dlls/dbghelp/module.c
@@ -438,6 +438,7 @@ enum module_type module_get_type_by_name(const WCHAR* name)
     return DMT_PE;
 }
 
+#ifndef _WIN64
 /***********************************************************************
  *			SymLoadModule (DBGHELP.@)
  */
@@ -447,6 +448,7 @@ DWORD WINAPI SymLoadModule(HANDLE hProcess, HANDLE hFile, PCSTR ImageName,
     return SymLoadModuleEx(hProcess, hFile, ImageName, ModuleName, BaseOfDll,
                            SizeOfDll, NULL, 0);
 }
+#endif
 
 /***********************************************************************
  *			SymLoadModuleEx (DBGHELP.@)
@@ -605,6 +607,7 @@ BOOL module_remove(struct process* pcs, struct module* module)
     return FALSE;
 }
 
+#ifndef _WIN64
 /******************************************************************
  *		SymUnloadModule (DBGHELP.@)
  *
@@ -620,6 +623,7 @@ BOOL WINAPI SymUnloadModule(HANDLE hProcess, DWORD BaseOfDll)
     if (!module) return FALSE;
     return module_remove(pcs, module);
 }
+#endif
 
 /******************************************************************
  *		SymUnloadModule64 (DBGHELP.@)
@@ -638,6 +642,7 @@ BOOL WINAPI SymUnloadModule64(HANDLE hProcess, DWORD64 BaseOfDll)
     return module_remove(pcs, module);
 }
 
+#ifndef _WIN64
 /******************************************************************
  *		SymEnumerateModules (DBGHELP.@)
  *
@@ -668,6 +673,7 @@ BOOL  WINAPI SymEnumerateModules(HANDLE hProcess,
 
     return SymEnumerateModulesW64(hProcess, enum_modW64_32, &x);
 }
+#endif
 
 /******************************************************************
  *		SymEnumerateModules64 (DBGHELP.@)
@@ -756,6 +762,7 @@ BOOL  WINAPI EnumerateLoadedModules64(HANDLE hProcess,
     return EnumerateLoadedModulesW64(hProcess, enum_load_modW64_64, &x);
 }
 
+#ifndef _WIN64
 /******************************************************************
  *		EnumerateLoadedModules (DBGHELP.@)
  *
@@ -786,6 +793,7 @@ BOOL  WINAPI EnumerateLoadedModules(HANDLE hProcess,
 
     return EnumerateLoadedModulesW64(hProcess, enum_load_modW64_32, &x);
 }
+#endif
 
 /******************************************************************
  *		EnumerateLoadedModulesW64 (DBGHELP.@)
@@ -825,6 +833,7 @@ BOOL  WINAPI EnumerateLoadedModulesW64(HANDLE hProcess,
     return sz != 0 && i == sz;
 }
 
+#ifndef _WIN64
 /******************************************************************
  *		SymGetModuleInfo (DBGHELP.@)
  *
@@ -888,6 +897,7 @@ BOOL  WINAPI SymGetModuleInfoW(HANDLE hProcess, DWORD dwAddr,
 
     return TRUE;
 }
+#endif
 
 /******************************************************************
  *		SymGetModuleInfo64 (DBGHELP.@)
@@ -978,6 +988,7 @@ BOOL  WINAPI SymGetModuleInfoW64(HANDLE hProcess, DWORD64 dwAddr,
     return TRUE;
 }
 
+#ifndef _WIN64
 /***********************************************************************
  *		SymGetModuleBase (DBGHELP.@)
  */
@@ -991,6 +1002,7 @@ DWORD WINAPI SymGetModuleBase(HANDLE hProcess, DWORD dwAddr)
     if (!module) return 0;
     return module->module.BaseOfImage;
 }
+#endif
 
 /***********************************************************************
  *		SymGetModuleBase64 (DBGHELP.@)
diff --git a/include/dbghelp.h b/include/dbghelp.h
index 6f9e880..ea6a4bc 100644
--- a/include/dbghelp.h
+++ b/include/dbghelp.h
@@ -832,31 +832,58 @@ BOOL WINAPI MiniDumpReadDumpStream(PVOID, ULONG, PMINIDUMP_DIRECTORY*, PVOID*,
 #define SLMFLAG_VIRTUAL         0x1
 #define SLMFLAG_NO_SYMBOLS      0x4
 
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define PENUMLOADED_MODULES_CALLBACK PENUMLOADED_MODULES_CALLBACK64
+#define EnumerateLoadedModules EnumerateLoadedModules64
+#else
 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK)(PCSTR, ULONG, ULONG, PVOID);
 BOOL   WINAPI EnumerateLoadedModules(HANDLE, PENUMLOADED_MODULES_CALLBACK, PVOID);
+#endif
 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK64)(PCSTR, DWORD64, ULONG, PVOID);
 BOOL   WINAPI EnumerateLoadedModules64(HANDLE, PENUMLOADED_MODULES_CALLBACK64, PVOID);
 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACKW64)(PCWSTR, DWORD64, ULONG, PVOID);
 BOOL   WINAPI EnumerateLoadedModulesW64(HANDLE, PENUMLOADED_MODULES_CALLBACKW64, PVOID);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define PSYM_ENUMMODULES_CALLBACK PSYM_ENUMMODULES_CALLBACK64
+#define SymEnumerateModules SymEnumerateModules64
+#else
 typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)(PCSTR, ULONG, PVOID);
 BOOL    WINAPI SymEnumerateModules(HANDLE, PSYM_ENUMMODULES_CALLBACK, PVOID);
+#endif
 typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK64)(PCSTR, DWORD64, PVOID);
 BOOL    WINAPI SymEnumerateModules64(HANDLE, PSYM_ENUMMODULES_CALLBACK64, PVOID);
 typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACKW64)(PCWSTR, DWORD64, PVOID);
 BOOL    WINAPI SymEnumerateModulesW64(HANDLE, PSYM_ENUMMODULES_CALLBACKW64, PVOID);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymGetModuleInfo SymGetModuleInfo64
+#define SymGetModuleInfoW SymGetModuleInfoW64
+#else
 BOOL    WINAPI SymGetModuleInfo(HANDLE, DWORD, PIMAGEHLP_MODULE);
 BOOL    WINAPI SymGetModuleInfoW(HANDLE, DWORD, PIMAGEHLP_MODULEW);
+#endif
 BOOL    WINAPI SymGetModuleInfo64(HANDLE, DWORD64, PIMAGEHLP_MODULE64);
 BOOL    WINAPI SymGetModuleInfoW64(HANDLE, DWORD64, PIMAGEHLP_MODULEW64);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymGetModuleBase SymGetModuleBase64
+#else
 DWORD   WINAPI SymGetModuleBase(HANDLE, DWORD);
+#endif
 DWORD64 WINAPI SymGetModuleBase64(HANDLE, DWORD64);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymLoadModule SymLoadModule64
+#else
 DWORD   WINAPI SymLoadModule(HANDLE, HANDLE, PCSTR, PCSTR, DWORD, DWORD);
+#endif
 DWORD64 WINAPI SymLoadModule64(HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD);
 DWORD64 WINAPI SymLoadModuleEx(HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD,
                                PMODLOAD_DATA, DWORD);
 DWORD64 WINAPI SymLoadModuleExW(HANDLE, HANDLE, PCWSTR, PCWSTR, DWORD64, DWORD,
                                 PMODLOAD_DATA, DWORD);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymUnloadModule SymUnloadModule64
+#else
 BOOL    WINAPI SymUnloadModule(HANDLE, DWORD);
+#endif
 BOOL    WINAPI SymUnloadModule64(HANDLE, DWORD64);
 
 /*************************
-- 
1.6.0.4




More information about the wine-patches mailing list