https://git.reactos.org/?p=reactos.git;a=commitdiff;h=006ce9607c5995d06ab2e…
commit 006ce9607c5995d06ab2e4f9398a509a1d723a19
Author: winesync <ros-dev(a)reactos.org>
AuthorDate: Fri Sep 11 16:06:06 2020 +0200
Commit: Jérôme Gardou <jerome.gardou(a)reactos.org>
CommitDate: Wed Sep 16 10:35:41 2020 +0200
[WINESYNC] dbghelp: SymSet/GetExtendedOption support a WINE only option.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
wine commit id fa5e5df71db231f6fca9c7a40792c17e9bbe5027 by Alistair Leslie-Hughes
<leslie_alistair(a)hotmail.com>
---
dll/win32/dbghelp/compat.h | 4 +++-
dll/win32/dbghelp/dbghelp.c | 25 ++++++++++++++++++++++---
dll/win32/dbghelp/dbghelp_private.h | 2 ++
sdk/include/psdk/dbghelp.h | 6 +++++-
sdk/tools/winesync/dbghelp.cfg | 2 +-
5 files changed, 33 insertions(+), 6 deletions(-)
diff --git a/dll/win32/dbghelp/compat.h b/dll/win32/dbghelp/compat.h
index 3a6137eca9a..e281347d0ee 100644
--- a/dll/win32/dbghelp/compat.h
+++ b/dll/win32/dbghelp/compat.h
@@ -1299,7 +1299,9 @@ typedef struct API_VERSION
typedef enum
{
SYMOPT_EX_DISABLEACCESSTIMEUPDATE,
- SYMOPT_EX_MAX
+ SYMOPT_EX_MAX,
+/* __WINESRC__ */
+ SYMOPT_EX_WINE_NATIVE_MODULES = 1000
} IMAGEHLP_EXTENDED_OPTIONS;
// cvconst.h
diff --git a/dll/win32/dbghelp/dbghelp.c b/dll/win32/dbghelp/dbghelp.c
index 3c3350d8213..b4f435fd584 100644
--- a/dll/win32/dbghelp/dbghelp.c
+++ b/dll/win32/dbghelp/dbghelp.c
@@ -70,6 +70,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(dbghelp);
*/
unsigned dbghelp_options = SYMOPT_UNDNAME;
+BOOL dbghelp_opt_native = FALSE;
static struct process* process_first /* = NULL */;
@@ -473,8 +474,19 @@ DWORD WINAPI SymGetOptions(void)
*/
BOOL WINAPI SymSetExtendedOption(IMAGEHLP_EXTENDED_OPTIONS option, BOOL value)
{
- FIXME("%d, %d\n", option, value);
- return FALSE;
+ BOOL old = FALSE;
+
+ switch(option)
+ {
+ case SYMOPT_EX_WINE_NATIVE_MODULES:
+ old = dbghelp_opt_native;
+ dbghelp_opt_native = value;
+ break;
+ default:
+ FIXME("Unsupported option %d with value %d\n", option, value);
+ }
+
+ return old;
}
/******************************************************************
@@ -483,7 +495,14 @@ BOOL WINAPI SymSetExtendedOption(IMAGEHLP_EXTENDED_OPTIONS option,
BOOL value)
*/
BOOL WINAPI SymGetExtendedOption(IMAGEHLP_EXTENDED_OPTIONS option)
{
- FIXME("%d\n", option);
+ switch(option)
+ {
+ case SYMOPT_EX_WINE_NATIVE_MODULES:
+ return dbghelp_opt_native;
+ default:
+ FIXME("Unsupported option %d\n", option);
+ }
+
return FALSE;
}
diff --git a/dll/win32/dbghelp/dbghelp_private.h b/dll/win32/dbghelp/dbghelp_private.h
index 565399ebcc1..e5b3bfce8ed 100644
--- a/dll/win32/dbghelp/dbghelp_private.h
+++ b/dll/win32/dbghelp/dbghelp_private.h
@@ -127,6 +127,8 @@ void* hash_table_iter_up(struct hash_table_iter* hti)
DECLSPEC_HIDDEN;
extern unsigned dbghelp_options DECLSPEC_HIDDEN;
+extern BOOL dbghelp_opt_native DECLSPEC_HIDDEN;
+
/* some more Wine extensions */
#define SYMOPT_WINE_WITH_NATIVE_MODULES 0x40000000
diff --git a/sdk/include/psdk/dbghelp.h b/sdk/include/psdk/dbghelp.h
index 549155229c5..40eca402a4a 100644
--- a/sdk/include/psdk/dbghelp.h
+++ b/sdk/include/psdk/dbghelp.h
@@ -2316,7 +2316,11 @@ typedef struct _IMAGE_DEBUG_INFORMATION
typedef enum
{
SYMOPT_EX_DISABLEACCESSTIMEUPDATE,
- SYMOPT_EX_MAX
+ SYMOPT_EX_MAX,
+
+#ifdef __WINESRC__
+ SYMOPT_EX_WINE_NATIVE_MODULES = 1000,
+#endif
} IMAGEHLP_EXTENDED_OPTIONS;
PIMAGE_DEBUG_INFORMATION
diff --git a/sdk/tools/winesync/dbghelp.cfg b/sdk/tools/winesync/dbghelp.cfg
index 58583d4c5fe..b503937e428 100644
--- a/sdk/tools/winesync/dbghelp.cfg
+++ b/sdk/tools/winesync/dbghelp.cfg
@@ -4,4 +4,4 @@ files:
include/dbghelp.h: sdk/include/psdk/dbghelp.h
include/wine/mscvpdb.h: sdk/include/reactos/wine/mscvpdb.h
tags:
- wine: 3fed8787251882c70eeadefb230cd2ff4b251ac2
+ wine: fa5e5df71db231f6fca9c7a40792c17e9bbe5027