mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against 3c86adab766e3bc7c91da088c2dd6bc41a917055.
This commit is contained in:
parent
f132e60b9d
commit
c81093882b
@ -1,4 +1,4 @@
|
||||
From 8c3c4edd9393b71f66501a9972ee6e6b4f60aeb5 Mon Sep 17 00:00:00 2001
|
||||
From 708e627172f61b5d0744135e31d4e9e3f7b32536 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 3 Apr 2017 01:06:26 +0200
|
||||
Subject: [PATCH] ntdll: Add dummy apiset to PEB.
|
||||
@ -12,19 +12,19 @@ Subject: [PATCH] ntdll: Add dummy apiset to PEB.
|
||||
create mode 100644 include/apiset.h
|
||||
|
||||
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
|
||||
index ca8b5e2bf8a..565dea14b39 100644
|
||||
index 21e8b0c08f8..24254d4b43c 100644
|
||||
--- a/dlls/ntdll/thread.c
|
||||
+++ b/dlls/ntdll/thread.c
|
||||
@@ -75,6 +75,7 @@ static PEB_LDR_DATA ldr;
|
||||
@@ -71,6 +71,7 @@ static PEB_LDR_DATA ldr;
|
||||
static RTL_BITMAP tls_bitmap;
|
||||
static RTL_BITMAP tls_expansion_bitmap;
|
||||
static RTL_BITMAP fls_bitmap;
|
||||
+static API_SET_NAMESPACE_ARRAY apiset_map;
|
||||
static int nb_threads = 1;
|
||||
|
||||
static RTL_CRITICAL_SECTION peb_lock;
|
||||
struct ldt_copy *__wine_ldt_copy = NULL;
|
||||
@@ -300,6 +301,7 @@ TEB *thread_init(void)
|
||||
teb = virtual_alloc_first_teb();
|
||||
|
||||
peb = teb->Peb;
|
||||
peb->FastPebLock = &peb_lock;
|
||||
+ peb->ApiSetMap = &apiset_map;
|
||||
@ -32,7 +32,7 @@ index ca8b5e2bf8a..565dea14b39 100644
|
||||
peb->TlsExpansionBitmap = &tls_expansion_bitmap;
|
||||
peb->FlsBitmap = &fls_bitmap;
|
||||
diff --git a/include/Makefile.in b/include/Makefile.in
|
||||
index 74db5ee1516..f250ea74d4b 100644
|
||||
index 9796dd8e5d9..2bc410f4308 100644
|
||||
--- a/include/Makefile.in
|
||||
+++ b/include/Makefile.in
|
||||
@@ -15,6 +15,7 @@ SOURCES = \
|
||||
@ -87,7 +87,7 @@ index 00000000000..6801cd5f509
|
||||
+
|
||||
+#endif
|
||||
diff --git a/include/winternl.h b/include/winternl.h
|
||||
index 87d0bde2955..eab44d1a57a 100644
|
||||
index f362790dbca..b33e346885f 100644
|
||||
--- a/include/winternl.h
|
||||
+++ b/include/winternl.h
|
||||
@@ -23,6 +23,7 @@
|
||||
|
@ -1,20 +1,20 @@
|
||||
From 89a4ee827b74d8e4d63ca3e1354d89d75cc0fc19 Mon Sep 17 00:00:00 2001
|
||||
From 554f37a5ee79939ba9368e9bd7ea408860a32803 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Wed, 20 Aug 2014 19:21:18 +0200
|
||||
Subject: ntdll: Move NtProtectVirtualMemory and NtCreateSection to separate
|
||||
pages on x86. (try 2)
|
||||
Subject: [PATCH] ntdll: Move NtProtectVirtualMemory and NtCreateSection to
|
||||
separate pages on x86. (try 2)
|
||||
|
||||
---
|
||||
dlls/ntdll/virtual.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
|
||||
index ce2469829b0..eb2dbe8a2cd 100644
|
||||
index cfe30bbe710..6173846cfb4 100644
|
||||
--- a/dlls/ntdll/virtual.c
|
||||
+++ b/dlls/ntdll/virtual.c
|
||||
@@ -168,6 +168,14 @@ static void *preload_reserve_end;
|
||||
static BOOL use_locks;
|
||||
static BOOL force_exec_prot; /* whether to force PROT_EXEC on all PROT_READ mmaps */
|
||||
@@ -366,6 +366,14 @@ static void free_ranges_remove_view( struct file_view *view )
|
||||
}
|
||||
|
||||
|
||||
+#if defined(__i386__)
|
||||
+NTSTATUS WINAPI NtProtectVirtualMemory( HANDLE process, PVOID *addr_ptr, SIZE_T *size_ptr,
|
||||
@ -28,5 +28,5 @@ index ce2469829b0..eb2dbe8a2cd 100644
|
||||
{
|
||||
return !(view->protect & (SEC_FILE | SEC_RESERVE | SEC_COMMIT));
|
||||
--
|
||||
2.14.1
|
||||
2.26.2
|
||||
|
||||
|
@ -1,3 +1,3 @@
|
||||
Fixes: [48175] AION (64 bit) - crashes in crysystem.dll.CryFree() due to high memory pointers allocated
|
||||
Fixes: [46568] 64-bit msxml6.dll from Microsoft Core XML Services 6.0 redist package fails to load (Wine doesn't respect 44-bit user-mode VA limitation from Windows < 8.1)
|
||||
|
||||
Disabled: true
|
||||
|
@ -1,4 +1,4 @@
|
||||
From bf09af2ce4e625b3dcc7e8072e822100d80fb3e2 Mon Sep 17 00:00:00 2001
|
||||
From 70785e15d5f0344c186714e859595b667dc34a07 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 28 May 2017 11:17:26 +0200
|
||||
Subject: [PATCH] ntdll: Resolve drive symlinks before returning section name.
|
||||
@ -11,7 +11,7 @@ Subject: [PATCH] ntdll: Resolve drive symlinks before returning section name.
|
||||
4 files changed, 34 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
|
||||
index eb7f3bc3718..0412824c811 100644
|
||||
index 453568d641e..12da4316e88 100644
|
||||
--- a/dlls/ntdll/directory.c
|
||||
+++ b/dlls/ntdll/directory.c
|
||||
@@ -2798,7 +2798,7 @@ static NTSTATUS nt_to_unix_file_name_internal( const UNICODE_STRING *nameW, ANSI
|
||||
@ -24,19 +24,19 @@ index eb7f3bc3718..0412824c811 100644
|
||||
OBJECT_ATTRIBUTES attr;
|
||||
UNICODE_STRING targetW;
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index 76e8ec284e8..1defe6c807a 100644
|
||||
index 427cdaad441..f92adb0c0dc 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -194,6 +194,7 @@ extern NTSTATUS nt_to_unix_file_name_attr( const OBJECT_ATTRIBUTES *attr, ANSI_S
|
||||
@@ -177,6 +177,7 @@ extern NTSTATUS nt_to_unix_file_name_attr( const OBJECT_ATTRIBUTES *attr, ANSI_S
|
||||
UINT disposition ) DECLSPEC_HIDDEN;
|
||||
|
||||
/* virtual memory */
|
||||
extern NTSTATUS virtual_alloc( PVOID *ret, unsigned short zero_bits_64, SIZE_T *size_ptr,
|
||||
ULONG type, ULONG protect ) DECLSPEC_HIDDEN;
|
||||
+extern NTSTATUS read_nt_symlink( HANDLE root, UNICODE_STRING *name, WCHAR *target, size_t length ) DECLSPEC_HIDDEN;
|
||||
extern NTSTATUS virtual_map_section( HANDLE handle, PVOID *addr_ptr, unsigned short zero_bits_64, SIZE_T commit_size,
|
||||
const LARGE_INTEGER *offset_ptr, SIZE_T *size_ptr, ULONG alloc_type,
|
||||
ULONG protect, pe_image_info_t *image_info ) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
|
||||
index 01ae8b06dac..ad5759884da 100644
|
||||
index fb9a1a57729..89ed3bb3f0b 100644
|
||||
--- a/dlls/ntdll/virtual.c
|
||||
+++ b/dlls/ntdll/virtual.c
|
||||
@@ -188,6 +188,8 @@ static BYTE **pages_vprot;
|
||||
@ -48,7 +48,7 @@ index 01ae8b06dac..ad5759884da 100644
|
||||
static struct file_view *view_block_start, *view_block_end, *next_free_view;
|
||||
static const size_t view_block_size = 0x100000;
|
||||
static void *preload_reserve_start;
|
||||
@@ -3308,12 +3310,15 @@ static NTSTATUS get_section_name( HANDLE process, LPCVOID addr,
|
||||
@@ -3471,12 +3473,15 @@ static NTSTATUS get_section_name( HANDLE process, LPCVOID addr,
|
||||
MEMORY_SECTION_NAME *info,
|
||||
SIZE_T len, SIZE_T *res_len )
|
||||
{
|
||||
@ -65,7 +65,7 @@ index 01ae8b06dac..ad5759884da 100644
|
||||
|
||||
if (!addr || !info || !res_len) return STATUS_INVALID_PARAMETER;
|
||||
|
||||
@@ -3372,14 +3377,34 @@ static NTSTATUS get_section_name( HANDLE process, LPCVOID addr,
|
||||
@@ -3535,14 +3540,34 @@ static NTSTATUS get_section_name( HANDLE process, LPCVOID addr,
|
||||
}
|
||||
|
||||
found:
|
||||
|
@ -1,15 +1,15 @@
|
||||
From 8abf5d134499aaf9dc87daa657cfe87586ad8ded Mon Sep 17 00:00:00 2001
|
||||
From f444edc19e67ef0a903728804f50e13ccbfac16e Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Thu, 28 Apr 2016 18:14:36 +0800
|
||||
Subject: [PATCH] ntdll: Implement NtSetLdtEntries.
|
||||
|
||||
---
|
||||
dlls/kernel32/tests/thread.c | 79 ++++++++++++++++++++++++++++++++++++
|
||||
dlls/ntdll/signal_i386.c | 2 +-
|
||||
dlls/kernel32/tests/thread.c | 79 +++++++++++++++++++++++++++++++++++
|
||||
dlls/ntdll/unix/signal_i386.c | 2 +-
|
||||
2 files changed, 80 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
|
||||
index 2dd274e0c10..ae67a9aa0a0 100644
|
||||
index a9869863b44..2c2a0fda843 100644
|
||||
--- a/dlls/kernel32/tests/thread.c
|
||||
+++ b/dlls/kernel32/tests/thread.c
|
||||
@@ -99,6 +99,7 @@ static BOOL (WINAPI *pSetThreadGroupAffinity)(HANDLE,const GROUP_AFFINITY*,GROUP
|
||||
@ -20,7 +20,7 @@ index 2dd274e0c10..ae67a9aa0a0 100644
|
||||
|
||||
static HANDLE create_target_process(const char *arg)
|
||||
{
|
||||
@@ -1276,6 +1277,82 @@ static void test_GetThreadSelectorEntry(void)
|
||||
@@ -1278,6 +1279,82 @@ static void test_GetThreadSelectorEntry(void)
|
||||
ok(entry.HighWord.Bits.Granularity == 1, "expected 1, got %u\n", entry.HighWord.Bits.Granularity);
|
||||
}
|
||||
|
||||
@ -103,7 +103,7 @@ index 2dd274e0c10..ae67a9aa0a0 100644
|
||||
#endif /* __i386__ */
|
||||
|
||||
static HANDLE finish_event;
|
||||
@@ -2338,6 +2415,7 @@ static void init_funcs(void)
|
||||
@@ -2340,6 +2417,7 @@ static void init_funcs(void)
|
||||
X(NtQueryInformationThread);
|
||||
X(RtlGetThreadErrorMode);
|
||||
X(NtSetInformationThread);
|
||||
@ -111,7 +111,7 @@ index 2dd274e0c10..ae67a9aa0a0 100644
|
||||
}
|
||||
#undef X
|
||||
}
|
||||
@@ -2393,6 +2471,7 @@ START_TEST(thread)
|
||||
@@ -2396,6 +2474,7 @@ START_TEST(thread)
|
||||
test_SetThreadContext();
|
||||
test_GetThreadSelectorEntry();
|
||||
test_GetThreadContext();
|
||||
@ -119,11 +119,11 @@ index 2dd274e0c10..ae67a9aa0a0 100644
|
||||
#endif
|
||||
test_QueueUserWorkItem();
|
||||
test_RegisterWaitForSingleObject();
|
||||
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
|
||||
index 441ef579609..eb28d668279 100644
|
||||
--- a/dlls/ntdll/signal_i386.c
|
||||
+++ b/dlls/ntdll/signal_i386.c
|
||||
@@ -2533,7 +2533,7 @@ NTSTATUS get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_
|
||||
diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c
|
||||
index 320ffa68407..a52490a096b 100644
|
||||
--- a/dlls/ntdll/unix/signal_i386.c
|
||||
+++ b/dlls/ntdll/unix/signal_i386.c
|
||||
@@ -480,7 +480,7 @@ NTSTATUS CDECL get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG
|
||||
if (reply->flags)
|
||||
info->Entry = ldt_make_entry( (void *)reply->base, reply->limit, reply->flags );
|
||||
else
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 09846b453dae490f5496a6ca2ac110b712542357 Mon Sep 17 00:00:00 2001
|
||||
From f4d2bffd85329aed25b1add735fafd4efa69e7e3 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Thu, 28 Apr 2016 17:01:16 +0200
|
||||
Subject: [PATCH] libs/wine: Allow to modify reserved LDT entries.
|
||||
@ -16,16 +16,16 @@ WINE_LDT_FLAGS_ALLOCATED, otherwise get_selector_entry() server call returns
|
||||
entries without that flag set and NtQueryInformationThread(ThreadDescriptorTableEntry)
|
||||
fails.
|
||||
---
|
||||
dlls/kernel32/tests/thread.c | 4 ----
|
||||
dlls/ntdll/signal_i386.c | 2 --
|
||||
libs/wine/ldt.c | 4 +---
|
||||
dlls/kernel32/tests/thread.c | 4 ----
|
||||
dlls/ntdll/unix/signal_i386.c | 2 --
|
||||
libs/wine/ldt.c | 4 +---
|
||||
3 files changed, 1 insertion(+), 9 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
|
||||
index ae67a9aa0a0..6149be8cf4a 100644
|
||||
index 2c2a0fda843..dae3d8d97d7 100644
|
||||
--- a/dlls/kernel32/tests/thread.c
|
||||
+++ b/dlls/kernel32/tests/thread.c
|
||||
@@ -1339,16 +1339,12 @@ static void test_NtSetLdtEntries(void)
|
||||
@@ -1341,16 +1341,12 @@ static void test_NtSetLdtEntries(void)
|
||||
{
|
||||
memset(&sel.entry, 0x9a, sizeof(sel.entry));
|
||||
ret = GetThreadSelectorEntry(GetCurrentThread(), 0x000f, &sel.entry);
|
||||
@ -42,11 +42,11 @@ index ae67a9aa0a0..6149be8cf4a 100644
|
||||
ok(!memcmp(&ds_entry, &sel.entry, sizeof(ds_entry)), "entries do not match\n");
|
||||
}
|
||||
}
|
||||
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
|
||||
index 98ce76c8e27..e31c3d6b0b8 100644
|
||||
--- a/dlls/ntdll/signal_i386.c
|
||||
+++ b/dlls/ntdll/signal_i386.c
|
||||
@@ -2534,8 +2534,6 @@ NTSTATUS WINAPI NtSetLdtEntries( ULONG sel1, LDT_ENTRY entry1, ULONG sel2, LDT_E
|
||||
diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c
|
||||
index a52490a096b..7b04be577ab 100644
|
||||
--- a/dlls/ntdll/unix/signal_i386.c
|
||||
+++ b/dlls/ntdll/unix/signal_i386.c
|
||||
@@ -502,8 +502,6 @@ NTSTATUS WINAPI NtSetLdtEntries( ULONG sel1, LDT_ENTRY entry1, ULONG sel2, LDT_E
|
||||
sigset_t sigset;
|
||||
|
||||
if (sel1 >> 16 || sel2 >> 16) return STATUS_INVALID_LDT_DESCRIPTOR;
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e193e84b7fb97f6f734b19d5bf2feb403d832abe Mon Sep 17 00:00:00 2001
|
||||
From 06b1233cbd6d149b30958e5ff35e8fa82c1896d0 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Gofman <pgofman@codeweavers.com>
|
||||
Date: Mon, 30 Dec 2019 13:27:53 +0300
|
||||
Subject: [PATCH] ntdll: Support x86_64 syscall emulation.
|
||||
@ -15,10 +15,10 @@ is used for trapping syscalls.
|
||||
3 files changed, 117 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index e6245d8163f..485219e23b3 100644
|
||||
index 83c451e0870..d75433751bf 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -474,6 +474,7 @@ AC_CHECK_HEADERS(\
|
||||
@@ -464,6 +464,7 @@ AC_CHECK_HEADERS(\
|
||||
linux/joystick.h \
|
||||
linux/major.h \
|
||||
linux/param.h \
|
||||
@ -27,7 +27,7 @@ index e6245d8163f..485219e23b3 100644
|
||||
linux/types.h \
|
||||
linux/ucdrom.h \
|
||||
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
|
||||
index 26d688c3abe..87c5a99a65e 100644
|
||||
index d42438f88af..36bc2ef656a 100644
|
||||
--- a/dlls/ntdll/signal_x86_64.c
|
||||
+++ b/dlls/ntdll/signal_x86_64.c
|
||||
@@ -24,6 +24,7 @@
|
||||
@ -52,7 +52,7 @@ index 26d688c3abe..87c5a99a65e 100644
|
||||
#define NONAMELESSUNION
|
||||
#define NONAMELESSSTRUCT
|
||||
#include "ntstatus.h"
|
||||
@@ -3096,6 +3104,38 @@ static void usr1_handler( int signal, siginfo_t *siginfo, void *ucontext )
|
||||
@@ -3089,6 +3097,104 @@ static void usr1_handler( int signal, siginfo_t *siginfo, void *ucontext )
|
||||
restore_context( &context, ucontext );
|
||||
}
|
||||
|
||||
@ -88,13 +88,7 @@ index 26d688c3abe..87c5a99a65e 100644
|
||||
+ ctx->uc_mcontext.gregs[REG_RIP] = (ULONG64)__wine_syscall_dispatcher;
|
||||
+}
|
||||
+#endif
|
||||
|
||||
/***********************************************************************
|
||||
* __wine_set_signal_handler (NTDLL.@)
|
||||
@@ -3266,6 +3306,72 @@ void signal_init_thread( TEB *teb )
|
||||
#endif
|
||||
}
|
||||
|
||||
+
|
||||
+#ifdef HAVE_SECCOMP
|
||||
+static int sc_seccomp(unsigned int operation, unsigned int flags, void *args)
|
||||
+{
|
||||
@ -160,11 +154,10 @@ index 26d688c3abe..87c5a99a65e 100644
|
||||
+ WARN("Built without seccomp.\n");
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
/**********************************************************************
|
||||
* signal_init_process
|
||||
*/
|
||||
@@ -3298,6 +3404,9 @@ void signal_init_process(void)
|
||||
|
||||
/***********************************************************************
|
||||
* __wine_set_signal_handler (NTDLL.@)
|
||||
@@ -3134,6 +3240,9 @@ void signal_init_process(void)
|
||||
sig_act.sa_sigaction = trap_handler;
|
||||
if (sigaction( SIGTRAP, &sig_act, NULL ) == -1) goto error;
|
||||
#endif
|
||||
@ -216,5 +209,5 @@ index 9cc4698d0d7..c572fe49923 100644
|
||||
put_byte( 0x08 ); put_byte( 0x03 ); put_byte( 0xfe );
|
||||
put_byte( 0x7f ); put_byte( 0x01 );
|
||||
--
|
||||
2.25.3
|
||||
2.26.2
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From abdcbf6355b7f8d353ea15bf7d9c49c54e35910b Mon Sep 17 00:00:00 2001
|
||||
From e1ff2fee38b602ff500c35f1eb589162c0d166d1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 9 Mar 2017 22:56:45 +0100
|
||||
Subject: [PATCH] ntdll: Fill process virtual memory counters in
|
||||
@ -13,10 +13,10 @@ FIXME: fill_VM_COUNTERS now uses a different method ... which one is better?
|
||||
4 files changed, 41 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
|
||||
index a21a8bcceee..608525347ca 100644
|
||||
index 7c2945f0a73..abb2d2176d6 100644
|
||||
--- a/dlls/ntdll/nt.c
|
||||
+++ b/dlls/ntdll/nt.c
|
||||
@@ -2703,8 +2703,11 @@ NTSTATUS WINAPI NtQuerySystemInformation(
|
||||
@@ -2686,8 +2686,11 @@ NTSTATUS WINAPI NtQuerySystemInformation(
|
||||
/* spi->ti will be set later on */
|
||||
|
||||
if (reply->unix_pid != -1)
|
||||
@ -29,10 +29,10 @@ index a21a8bcceee..608525347ca 100644
|
||||
}
|
||||
len += procstructlen;
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index b4e3c7d5c83..15f72631f55 100644
|
||||
index e85f3a3b900..b45b9a02bb1 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -297,6 +297,7 @@ void WINAPI LdrInitializeThunk(CONTEXT*,void**,ULONG_PTR,ULONG_PTR);
|
||||
@@ -285,6 +285,7 @@ void WINAPI LdrInitializeThunk(CONTEXT*,void**,ULONG_PTR,ULONG_PTR);
|
||||
/* process / thread time */
|
||||
extern BOOL read_process_time(int unix_pid, int unix_tid, unsigned long clk_tck,
|
||||
LARGE_INTEGER *kernel, LARGE_INTEGER *user) DECLSPEC_HIDDEN;
|
||||
@ -41,10 +41,10 @@ index b4e3c7d5c83..15f72631f55 100644
|
||||
/* string functions */
|
||||
int __cdecl NTDLL_tolower( int c );
|
||||
diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
|
||||
index e59c255e327..71233f92853 100644
|
||||
index c066610ebca..f2dddb18052 100644
|
||||
--- a/dlls/ntdll/process.c
|
||||
+++ b/dlls/ntdll/process.c
|
||||
@@ -186,7 +186,7 @@ static void fill_VM_COUNTERS(VM_COUNTERS* pvmi)
|
||||
@@ -192,7 +192,7 @@ static void fill_VM_COUNTERS(VM_COUNTERS* pvmi)
|
||||
|
||||
static void fill_VM_COUNTERS(VM_COUNTERS* pvmi)
|
||||
{
|
||||
@ -54,11 +54,11 @@ index e59c255e327..71233f92853 100644
|
||||
|
||||
#endif
|
||||
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
|
||||
index a2a999f8996..f5f932ae703 100644
|
||||
index b7d4e399f62..21e8b0c08f8 100644
|
||||
--- a/dlls/ntdll/thread.c
|
||||
+++ b/dlls/ntdll/thread.c
|
||||
@@ -366,6 +366,42 @@ TEB *thread_init(void)
|
||||
return teb;
|
||||
@@ -385,6 +385,42 @@ void WINAPI RtlExitUserThread( ULONG status )
|
||||
for (;;) unix_funcs->exit_thread( status );
|
||||
}
|
||||
|
||||
+BOOL read_process_memory_stats(int unix_pid, VM_COUNTERS *pvmi)
|
||||
@ -99,7 +99,7 @@ index a2a999f8996..f5f932ae703 100644
|
||||
+}
|
||||
|
||||
/***********************************************************************
|
||||
* abort_thread
|
||||
* start_thread
|
||||
--
|
||||
2.26.2
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From f8e12f51bebca8cda3be339bcc216ca8cc60a718 Mon Sep 17 00:00:00 2001
|
||||
From 5f34c6a4429025ee71616e677e0e59342bee17b0 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Wed, 25 Feb 2015 22:45:42 +0100
|
||||
Subject: [PATCH] ntdll: Fix race-condition when threads are killed during
|
||||
@ -19,10 +19,10 @@ fix the most critical one (messed up refcounting of threads) for now.
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
|
||||
index b25f87e437..5fbd9e06c3 100644
|
||||
index bb11521cf69..fee26ccd21d 100644
|
||||
--- a/dlls/ntdll/thread.c
|
||||
+++ b/dlls/ntdll/thread.c
|
||||
@@ -336,6 +336,7 @@ void exit_thread( int status )
|
||||
@@ -298,6 +298,7 @@ TEB *thread_init(void)
|
||||
void WINAPI RtlExitUserThread( ULONG status )
|
||||
{
|
||||
static void *prev_teb;
|
||||
@ -30,7 +30,7 @@ index b25f87e437..5fbd9e06c3 100644
|
||||
TEB *teb;
|
||||
|
||||
if (status) /* send the exit code to the server (0 is already the default) */
|
||||
@@ -349,7 +350,7 @@ void WINAPI RtlExitUserThread( ULONG status )
|
||||
@@ -311,7 +312,7 @@ void WINAPI RtlExitUserThread( ULONG status )
|
||||
SERVER_END_REQ;
|
||||
}
|
||||
|
||||
@ -38,8 +38,8 @@ index b25f87e437..5fbd9e06c3 100644
|
||||
+ if (InterlockedCompareExchange( &nb_threads, 0, 0 ) <= 0)
|
||||
{
|
||||
LdrShutdownProcess();
|
||||
pthread_sigmask( SIG_BLOCK, &server_block_set, NULL );
|
||||
@@ -372,6 +373,11 @@ void WINAPI RtlExitUserThread( ULONG status )
|
||||
unix_funcs->exit_process( status );
|
||||
@@ -333,6 +334,11 @@ void WINAPI RtlExitUserThread( ULONG status )
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ index b25f87e437..5fbd9e06c3 100644
|
||||
+ pthread_sigmask( SIG_BLOCK, &sigset, NULL );
|
||||
+ if (!InterlockedDecrement( &nb_threads )) _exit( status );
|
||||
+
|
||||
signal_exit_thread( status );
|
||||
for (;;) unix_funcs->exit_thread( status );
|
||||
}
|
||||
|
||||
--
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 3ecd352d441ac2d596508cd693431abdd7128ec6 Mon Sep 17 00:00:00 2001
|
||||
From dcd95cc3f7ef19b34669ebfeb92c29da16ac2387 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 4 Oct 2014 02:53:22 +0200
|
||||
Subject: [PATCH] ntdll: Setup a temporary signal handler during process
|
||||
@ -15,22 +15,22 @@ Subject: [PATCH] ntdll: Setup a temporary signal handler during process
|
||||
7 files changed, 79 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index 58b688d06bd..f3ebfb72d32 100644
|
||||
index 427cdaad441..562f5ec8d4c 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -84,6 +84,7 @@ extern NTSTATUS signal_alloc_thread( TEB *teb ) DECLSPEC_HIDDEN;
|
||||
extern void signal_free_thread( TEB *teb ) DECLSPEC_HIDDEN;
|
||||
extern void signal_init_thread( TEB *teb ) DECLSPEC_HIDDEN;
|
||||
@@ -80,6 +80,7 @@ extern LPCSTR debugstr_ObjectAttributes(const OBJECT_ATTRIBUTES *oa) DECLSPEC_HI
|
||||
extern SIZE_T signal_stack_size DECLSPEC_HIDDEN;
|
||||
extern SIZE_T signal_stack_mask DECLSPEC_HIDDEN;
|
||||
extern void signal_init_process(void) DECLSPEC_HIDDEN;
|
||||
+extern void signal_init_early(void) DECLSPEC_HIDDEN;
|
||||
extern void signal_start_thread( LPTHREAD_START_ROUTINE entry, void *arg, BOOL suspend ) DECLSPEC_HIDDEN;
|
||||
extern void signal_start_process( LPTHREAD_START_ROUTINE entry, BOOL suspend ) DECLSPEC_HIDDEN;
|
||||
extern void DECLSPEC_NORETURN signal_exit_thread( int status ) DECLSPEC_HIDDEN;
|
||||
extern void version_init(void) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c
|
||||
index 31280edce47..f903eb93434 100644
|
||||
index e66cf922f91..dcfdeaa83ad 100644
|
||||
--- a/dlls/ntdll/signal_arm.c
|
||||
+++ b/dlls/ntdll/signal_arm.c
|
||||
@@ -1031,6 +1031,12 @@ void signal_init_process(void)
|
||||
@@ -988,6 +988,12 @@ void signal_init_process(void)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -44,11 +44,11 @@ index 31280edce47..f903eb93434 100644
|
||||
/***********************************************************************
|
||||
* RtlUnwind (NTDLL.@)
|
||||
diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c
|
||||
index 9f84d3fbfd1..8ab83a1d142 100644
|
||||
index c87f99f0c4c..fed76574dbc 100644
|
||||
--- a/dlls/ntdll/signal_arm64.c
|
||||
+++ b/dlls/ntdll/signal_arm64.c
|
||||
@@ -1293,6 +1293,12 @@ void signal_init_thread( TEB *teb )
|
||||
pthread_setspecific( teb_key, teb );
|
||||
@@ -1303,6 +1303,12 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+/**********************************************************************
|
||||
@ -61,10 +61,10 @@ index 9f84d3fbfd1..8ab83a1d142 100644
|
||||
/**********************************************************************
|
||||
* signal_init_process
|
||||
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
|
||||
index 238d4eacf63..32c6eba0e51 100644
|
||||
index 2f2db70b57f..12771552a5d 100644
|
||||
--- a/dlls/ntdll/signal_i386.c
|
||||
+++ b/dlls/ntdll/signal_i386.c
|
||||
@@ -2051,6 +2051,31 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st
|
||||
@@ -1988,6 +1988,31 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st
|
||||
}
|
||||
|
||||
|
||||
@ -88,7 +88,7 @@ index 238d4eacf63..32c6eba0e51 100644
|
||||
+ /* fall-through */
|
||||
+ default:
|
||||
+ WINE_ERR( "Got unexpected trap %d during process initialization\n", get_trap_code(context) );
|
||||
+ abort_thread(1);
|
||||
+ unix_funcs->abort_thread(1);
|
||||
+ break;
|
||||
+ }
|
||||
+}
|
||||
@ -96,7 +96,7 @@ index 238d4eacf63..32c6eba0e51 100644
|
||||
/**********************************************************************
|
||||
* segv_handler
|
||||
*
|
||||
@@ -2689,6 +2714,34 @@ void signal_init_process(void)
|
||||
@@ -2315,6 +2340,34 @@ void signal_init_process(void)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -132,11 +132,11 @@ index 238d4eacf63..32c6eba0e51 100644
|
||||
/*******************************************************************
|
||||
* RtlUnwind (NTDLL.@)
|
||||
diff --git a/dlls/ntdll/signal_powerpc.c b/dlls/ntdll/signal_powerpc.c
|
||||
index 9df6eff31f4..e79fca3abce 100644
|
||||
index a23f6b6e4d5..c3b4b6ffd42 100644
|
||||
--- a/dlls/ntdll/signal_powerpc.c
|
||||
+++ b/dlls/ntdll/signal_powerpc.c
|
||||
@@ -1047,6 +1047,12 @@ void signal_init_thread( TEB *teb )
|
||||
pthread_setspecific( teb_key, teb );
|
||||
@@ -1009,6 +1009,12 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+/**********************************************************************
|
||||
@ -149,10 +149,10 @@ index 9df6eff31f4..e79fca3abce 100644
|
||||
/**********************************************************************
|
||||
* signal_init_process
|
||||
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
|
||||
index 324a92b41a9..29829bfb1c6 100644
|
||||
index d42438f88af..b4c11ed66ed 100644
|
||||
--- a/dlls/ntdll/signal_x86_64.c
|
||||
+++ b/dlls/ntdll/signal_x86_64.c
|
||||
@@ -3286,6 +3286,12 @@ void signal_init_process(void)
|
||||
@@ -3141,6 +3141,12 @@ void signal_init_process(void)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -166,10 +166,10 @@ index 324a92b41a9..29829bfb1c6 100644
|
||||
static ULONG64 get_int_reg( CONTEXT *context, int reg )
|
||||
{
|
||||
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
|
||||
index 125280ba257..af6861f6000 100644
|
||||
index bb11521cf69..ff18b119232 100644
|
||||
--- a/dlls/ntdll/thread.c
|
||||
+++ b/dlls/ntdll/thread.c
|
||||
@@ -284,6 +284,7 @@ TEB *thread_init(void)
|
||||
@@ -228,6 +228,7 @@ TEB *thread_init(void)
|
||||
struct ntdll_thread_data *thread_data;
|
||||
|
||||
virtual_init();
|
||||
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "bf83d755d987fec552cd1dce30638c31c49ab760"
|
||||
echo "3c86adab766e3bc7c91da088c2dd6bc41a917055"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -175,7 +175,6 @@ patch_enable_all ()
|
||||
enable_ntdll_FileDispositionInformation="$1"
|
||||
enable_ntdll_FileFsFullSizeInformation="$1"
|
||||
enable_ntdll_Fix_Alignment="$1"
|
||||
enable_ntdll_ForceBottomUpAlloc="$1"
|
||||
enable_ntdll_HashLinks="$1"
|
||||
enable_ntdll_Heap_Improvements="$1"
|
||||
enable_ntdll_Hide_Wine_Exports="$1"
|
||||
@ -626,9 +625,6 @@ patch_enable ()
|
||||
ntdll-Fix_Alignment)
|
||||
enable_ntdll_Fix_Alignment="$2"
|
||||
;;
|
||||
ntdll-ForceBottomUpAlloc)
|
||||
enable_ntdll_ForceBottomUpAlloc="$2"
|
||||
;;
|
||||
ntdll-HashLinks)
|
||||
enable_ntdll_HashLinks="$2"
|
||||
;;
|
||||
@ -3867,35 +3863,6 @@ if test "$enable_ntdll_Fix_Alignment" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-ForceBottomUpAlloc
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#48175] AION (64 bit) - crashes in crysystem.dll.CryFree() due to high memory pointers allocated
|
||||
# | * [#46568] 64-bit msxml6.dll from Microsoft Core XML Services 6.0 redist package fails to load (Wine doesn't respect
|
||||
# | 44-bit user-mode VA limitation from Windows < 8.1)
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/virtual.c, include/wine/library.h, libs/wine/mmap.c, libs/wine/wine.map
|
||||
# |
|
||||
if test "$enable_ntdll_ForceBottomUpAlloc" -eq 1; then
|
||||
patch_apply ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch
|
||||
patch_apply ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch
|
||||
patch_apply ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch
|
||||
patch_apply ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch
|
||||
patch_apply ntdll-ForceBottomUpAlloc/0005-libs-wine-Add-functions-for-managing-free-area-list.patch
|
||||
patch_apply ntdll-ForceBottomUpAlloc/0006-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch
|
||||
patch_apply ntdll-ForceBottomUpAlloc/0007-ntdll-Permanently-exclude-natively-mapped-areas-from.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Paul Gofman", "ntdll: Stop search on mmap() error in try_map_free_area().", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "ntdll: Use MAP_FIXED_NOREPLACE flag in try_map_free_area() if available.", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "ntdll: Force bottom up allocation order for 64 bit arch unless top down is requested.", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "ntdll: Increase step after failed map attempt in try_map_free_area().", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "libs/wine: Add functions for managing free area list.", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "ntdll: Use free area list for virtual memory allocation.", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "ntdll: Permanently exclude natively mapped areas from free areas list.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-HashLinks
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -4002,11 +3969,11 @@ fi
|
||||
# | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c,
|
||||
# | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/actctx.c,
|
||||
# | dlls/ntdll/directory.c, dlls/ntdll/loader.c, dlls/ntdll/locale.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/path.c,
|
||||
# | dlls/ntdll/process.c, dlls/ntdll/signal_i386.c, dlls/ntdll/signal_x86_64.c, dlls/ntdll/tests/exception.c,
|
||||
# | dlls/ntdll/thread.c, dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c,
|
||||
# | dlls/user.exe16/user.c, dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, server/mapping.c,
|
||||
# | tools/winebuild/build.h, tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c,
|
||||
# | tools/winebuild/res32.c, tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c
|
||||
# | dlls/ntdll/process.c, dlls/ntdll/signal_i386.c, dlls/ntdll/tests/exception.c, dlls/ntdll/thread.c,
|
||||
# | dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c,
|
||||
# | dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, server/mapping.c, tools/winebuild/build.h,
|
||||
# | tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c,
|
||||
# | tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c
|
||||
# |
|
||||
if test "$enable_winebuild_Fake_Dlls" -eq 1; then
|
||||
patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
|
||||
@ -4149,7 +4116,7 @@ fi
|
||||
# Patchset ntdll-NtSetLdtEntries
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/tests/thread.c, dlls/ntdll/signal_i386.c, libs/wine/ldt.c
|
||||
# | * dlls/kernel32/tests/thread.c, dlls/ntdll/unix/signal_i386.c, libs/wine/ldt.c
|
||||
# |
|
||||
if test "$enable_ntdll_NtSetLdtEntries" -eq 1; then
|
||||
patch_apply ntdll-NtSetLdtEntries/0001-ntdll-Implement-NtSetLdtEntries.patch
|
||||
|
@ -1,12 +1,13 @@
|
||||
From 43c4595226819c7b5993937fc8f088b8b6ffa545 Mon Sep 17 00:00:00 2001
|
||||
From 505b2a7167d4b0ea533663ef30663f21b0ab9863 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 11 May 2017 05:32:55 +0200
|
||||
Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports.
|
||||
|
||||
Based on a patch by Erich E. Hoover.
|
||||
---
|
||||
dlls/ntdll/signal_i386.c | 7 ++-
|
||||
dlls/ntdll/signal_i386.c | 4 +-
|
||||
dlls/ntdll/tests/exception.c | 2 +
|
||||
dlls/ntdll/thread.c | 4 ++
|
||||
include/winternl.h | 2 +-
|
||||
tools/winebuild/build.h | 7 +++
|
||||
tools/winebuild/import.c | 10 ++--
|
||||
@ -14,23 +15,22 @@ Based on a patch by Erich E. Hoover.
|
||||
tools/winebuild/spec16.c | 22 +-------
|
||||
tools/winebuild/spec32.c | 104 +++++++++++++++++++++++++++++++++++
|
||||
tools/winebuild/utils.c | 21 +++++++
|
||||
9 files changed, 207 insertions(+), 27 deletions(-)
|
||||
10 files changed, 208 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
|
||||
index 5353ab4df2ce..527ba01672e1 100644
|
||||
index 5fd54071ffd..950408cbc38 100644
|
||||
--- a/dlls/ntdll/signal_i386.c
|
||||
+++ b/dlls/ntdll/signal_i386.c
|
||||
@@ -476,6 +476,9 @@ static ULONG first_ldt_entry = 32;
|
||||
@@ -449,6 +449,8 @@ static ULONG first_ldt_entry = 32;
|
||||
|
||||
static wine_signal_handler handlers[256];
|
||||
|
||||
+extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
|
||||
+extern NTSTATUS WINAPI __syscall_NtGetContextThread( HANDLE handle, CONTEXT *context );
|
||||
+
|
||||
enum i386_trap_code
|
||||
{
|
||||
TRAP_x86_UNKNOWN = -1, /* Unknown fault (TRAP_sig not defined) */
|
||||
@@ -1514,7 +1517,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi,
|
||||
@@ -1487,7 +1489,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi,
|
||||
{
|
||||
context->Ebp = ebp;
|
||||
context->Esp = (DWORD)&retaddr;
|
||||
@ -39,17 +39,8 @@ index 5353ab4df2ce..527ba01672e1 100644
|
||||
context->SegCs = get_cs();
|
||||
context->SegSs = get_ds();
|
||||
context->EFlags = eflags;
|
||||
@@ -2561,6 +2564,8 @@ NTSTATUS signal_alloc_thread( TEB *teb )
|
||||
}
|
||||
else thread_data->fs = gdt_fs_sel;
|
||||
|
||||
+ teb->WOW32Reserved = __wine_syscall_dispatcher;
|
||||
+
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c
|
||||
index a5e6faa461a3..51938bf84cc1 100644
|
||||
index a5e6faa461a..51938bf84cc 100644
|
||||
--- a/dlls/ntdll/tests/exception.c
|
||||
+++ b/dlls/ntdll/tests/exception.c
|
||||
@@ -1643,6 +1643,8 @@ static void test_thread_context(void)
|
||||
@ -61,8 +52,37 @@ index a5e6faa461a3..51938bf84cc1 100644
|
||||
/* segment registers clear the high word */
|
||||
ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs );
|
||||
ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs );
|
||||
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
|
||||
index bb11521cf69..edd6c4dfa99 100644
|
||||
--- a/dlls/ntdll/thread.c
|
||||
+++ b/dlls/ntdll/thread.c
|
||||
@@ -212,6 +212,8 @@ void map_user_shared_data(void)
|
||||
NtClose( section );
|
||||
}
|
||||
|
||||
+extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
|
||||
+
|
||||
/***********************************************************************
|
||||
* thread_init
|
||||
*
|
||||
@@ -248,6 +250,7 @@ TEB *thread_init(void)
|
||||
unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy );
|
||||
unix_funcs->alloc_thread( teb );
|
||||
unix_funcs->init_thread( teb );
|
||||
+ teb->WOW32Reserved = __wine_syscall_dispatcher;
|
||||
|
||||
peb = teb->Peb;
|
||||
peb->FastPebLock = &peb_lock;
|
||||
@@ -493,6 +496,7 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, SECURITY_DESCRIPTOR *descr,
|
||||
teb->Tib.StackBase = stack.StackBase;
|
||||
teb->Tib.StackLimit = stack.StackLimit;
|
||||
teb->DeallocationStack = stack.DeallocationStack;
|
||||
+ teb->WOW32Reserved = __wine_syscall_dispatcher;
|
||||
|
||||
thread_data = (struct ntdll_thread_data *)&teb->GdiTebBatch;
|
||||
thread_data->request_fd = request_pipe[1];
|
||||
diff --git a/include/winternl.h b/include/winternl.h
|
||||
index 0f808d71dd33..d641ed1436ad 100644
|
||||
index 44a58cadc7a..065f3d24f52 100644
|
||||
--- a/include/winternl.h
|
||||
+++ b/include/winternl.h
|
||||
@@ -359,7 +359,7 @@ typedef struct _TEB
|
||||
@ -75,7 +95,7 @@ index 0f808d71dd33..d641ed1436ad 100644
|
||||
ULONG FpSoftwareStatusRegister; /* 0c8/010c */
|
||||
PVOID SystemReserved1[54]; /* 0cc/0110 used for krnl386.exe16 private data in Wine */
|
||||
diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
|
||||
index c162888a0356..55d5b0b9dc28 100644
|
||||
index c162888a035..55d5b0b9dc2 100644
|
||||
--- a/tools/winebuild/build.h
|
||||
+++ b/tools/winebuild/build.h
|
||||
@@ -105,6 +105,7 @@ typedef struct
|
||||
@ -123,7 +143,7 @@ index c162888a0356..55d5b0b9dc28 100644
|
||||
|
||||
extern int byte_swapped;
|
||||
diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c
|
||||
index 04ab433dd65a..0c6bafed8e54 100644
|
||||
index 04ab433dd65..0c6bafed8e5 100644
|
||||
--- a/tools/winebuild/import.c
|
||||
+++ b/tools/winebuild/import.c
|
||||
@@ -531,6 +531,7 @@ static void check_undefined_forwards( DLLSPEC *spec )
|
||||
@ -163,7 +183,7 @@ index 04ab433dd65a..0c6bafed8e54 100644
|
||||
}
|
||||
}
|
||||
diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c
|
||||
index 0f2b9c1e10ad..74216f8bb6e7 100644
|
||||
index 0f2b9c1e10a..74216f8bb6e 100644
|
||||
--- a/tools/winebuild/parser.c
|
||||
+++ b/tools/winebuild/parser.c
|
||||
@@ -543,6 +543,24 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp )
|
||||
@ -254,7 +274,7 @@ index 0f2b9c1e10ad..74216f8bb6e7 100644
|
||||
}
|
||||
|
||||
diff --git a/tools/winebuild/spec16.c b/tools/winebuild/spec16.c
|
||||
index a52c03aaa6a7..15ef9a3f8930 100644
|
||||
index a52c03aaa6a..15ef9a3f893 100644
|
||||
--- a/tools/winebuild/spec16.c
|
||||
+++ b/tools/winebuild/spec16.c
|
||||
@@ -495,27 +495,6 @@ static int relay_type_compare( const void *e1, const void *e2 )
|
||||
@ -294,7 +314,7 @@ index a52c03aaa6a7..15ef9a3f8930 100644
|
||||
entry_point->u.func.nb_args = 0;
|
||||
assert( !spec->ordinals[0] );
|
||||
diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
|
||||
index b1e20e0484dc..22dd399cb2b4 100644
|
||||
index b1e20e0484d..22dd399cb2b 100644
|
||||
--- a/tools/winebuild/spec32.c
|
||||
+++ b/tools/winebuild/spec32.c
|
||||
@@ -374,6 +374,109 @@ static void output_relay_debug( DLLSPEC *spec )
|
||||
@ -416,7 +436,7 @@ index b1e20e0484dc..22dd399cb2b4 100644
|
||||
output_exports( spec );
|
||||
output_imports( spec );
|
||||
diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
|
||||
index 2a1fc960926b..07a579004adc 100644
|
||||
index 2a1fc960926..07a579004ad 100644
|
||||
--- a/tools/winebuild/utils.c
|
||||
+++ b/tools/winebuild/utils.c
|
||||
@@ -860,6 +860,7 @@ void free_dll_spec( DLLSPEC *spec )
|
||||
|
@ -1,22 +1,22 @@
|
||||
From 49daa93dd311ff1b28e2878852b6337140b4d499 Mon Sep 17 00:00:00 2001
|
||||
From 22a245956909fc1cd3a733d460441bb05d09c775 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 15 May 2017 16:27:56 +0200
|
||||
Subject: [PATCH] winebuild: Add stub functions in fake dlls.
|
||||
|
||||
---
|
||||
dlls/kernel32/tests/loader.c | 8 +-
|
||||
dlls/ntdll/signal_i386.c | 34 ++++++
|
||||
dlls/ntdll/thread.c | 35 ++++++
|
||||
include/winternl.h | 2 +-
|
||||
tools/winebuild/build.h | 1 +
|
||||
tools/winebuild/spec32.c | 209 +++++++++++++++++++++++++++++++++--
|
||||
tools/winebuild/utils.c | 10 +-
|
||||
6 files changed, 249 insertions(+), 15 deletions(-)
|
||||
6 files changed, 250 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
|
||||
index 4e7a15970cb..ec173c94a8e 100644
|
||||
index 926fa913866..902907329c0 100644
|
||||
--- a/dlls/kernel32/tests/loader.c
|
||||
+++ b/dlls/kernel32/tests/loader.c
|
||||
@@ -1560,9 +1560,7 @@ static void test_FakeDLL(void)
|
||||
@@ -1596,9 +1596,7 @@ static void test_FakeDLL(void)
|
||||
ok(ptr != NULL, "MapViewOfFile failed with error %u\n", GetLastError());
|
||||
|
||||
dir = RtlImageDirectoryEntryToData(ptr, TRUE, IMAGE_DIRECTORY_ENTRY_EXPORT, &size);
|
||||
@ -26,7 +26,7 @@ index 4e7a15970cb..ec173c94a8e 100644
|
||||
|
||||
names = RVAToAddr(dir->AddressOfNames, ptr);
|
||||
ordinals = RVAToAddr(dir->AddressOfNameOrdinals, ptr);
|
||||
@@ -1591,17 +1589,20 @@ todo_wine
|
||||
@@ -1627,17 +1625,20 @@ todo_wine
|
||||
/* check position in memory */
|
||||
dll_rva = (DWORD_PTR)dll_func - (DWORD_PTR)module;
|
||||
map_rva = funcs[ordinals[i]];
|
||||
@ -47,7 +47,7 @@ index 4e7a15970cb..ec173c94a8e 100644
|
||||
ok(!memcmp(map_func, dll_func, 0x20), "%s: Function content does not match!\n", func_name);
|
||||
|
||||
if (!strcmp(func_name, "NtSetEvent"))
|
||||
@@ -1615,10 +1616,11 @@ todo_wine
|
||||
@@ -1651,10 +1652,11 @@ todo_wine
|
||||
ok(event != NULL, "CreateEvent failed with error %u\n", GetLastError());
|
||||
pNtSetEvent(event, 0);
|
||||
ok(WaitForSingleObject(event, 0) == WAIT_OBJECT_0, "Event was not signaled\n");
|
||||
@ -60,15 +60,15 @@ index 4e7a15970cb..ec173c94a8e 100644
|
||||
UnmapViewOfFile(ptr);
|
||||
CloseHandle(map);
|
||||
CloseHandle(file);
|
||||
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
|
||||
index 04fdaf564b3..1dcc54895dc 100644
|
||||
--- a/dlls/ntdll/signal_i386.c
|
||||
+++ b/dlls/ntdll/signal_i386.c
|
||||
@@ -479,6 +479,39 @@ static wine_signal_handler handlers[256];
|
||||
extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
|
||||
extern NTSTATUS WINAPI __syscall_NtGetContextThread( HANDLE handle, CONTEXT *context );
|
||||
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
|
||||
index edd6c4dfa99..678af513264 100644
|
||||
--- a/dlls/ntdll/thread.c
|
||||
+++ b/dlls/ntdll/thread.c
|
||||
@@ -214,6 +214,39 @@ void map_user_shared_data(void)
|
||||
|
||||
+static void* WINAPI __wine_fakedll_dispatcher( const char *module, ULONG ord )
|
||||
extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
|
||||
|
||||
+static void *WINAPI __wine_fakedll_dispatcher( const char *module, ULONG ord )
|
||||
+{
|
||||
+ UNICODE_STRING name;
|
||||
+ NTSTATUS status;
|
||||
@ -101,19 +101,27 @@ index 04fdaf564b3..1dcc54895dc 100644
|
||||
+ return proc;
|
||||
+}
|
||||
+
|
||||
enum i386_trap_code
|
||||
{
|
||||
TRAP_x86_UNKNOWN = -1, /* Unknown fault (TRAP_sig not defined) */
|
||||
@@ -2565,6 +2598,7 @@ NTSTATUS signal_alloc_thread( TEB *teb )
|
||||
else thread_data->fs = gdt_fs_sel;
|
||||
|
||||
/***********************************************************************
|
||||
* thread_init
|
||||
*
|
||||
@@ -251,6 +284,7 @@ TEB *thread_init(void)
|
||||
unix_funcs->alloc_thread( teb );
|
||||
unix_funcs->init_thread( teb );
|
||||
teb->WOW32Reserved = __wine_syscall_dispatcher;
|
||||
+ teb->Spare2 = __wine_fakedll_dispatcher;
|
||||
+ teb->Spare2 = (ULONG_PTR)__wine_fakedll_dispatcher;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
peb = teb->Peb;
|
||||
peb->FastPebLock = &peb_lock;
|
||||
@@ -497,6 +531,7 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, SECURITY_DESCRIPTOR *descr,
|
||||
teb->Tib.StackLimit = stack.StackLimit;
|
||||
teb->DeallocationStack = stack.DeallocationStack;
|
||||
teb->WOW32Reserved = __wine_syscall_dispatcher;
|
||||
+ teb->Spare2 = (ULONG_PTR)__wine_fakedll_dispatcher;
|
||||
|
||||
thread_data = (struct ntdll_thread_data *)&teb->GdiTebBatch;
|
||||
thread_data->request_fd = request_pipe[1];
|
||||
diff --git a/include/winternl.h b/include/winternl.h
|
||||
index 26ee5b601fb..03f86dae253 100644
|
||||
index 065f3d24f52..199b8fc52f2 100644
|
||||
--- a/include/winternl.h
|
||||
+++ b/include/winternl.h
|
||||
@@ -398,7 +398,7 @@ typedef struct _TEB
|
||||
@ -126,7 +134,7 @@ index 26ee5b601fb..03f86dae253 100644
|
||||
PVOID ReservedForPerf; /* f7c/1750 */
|
||||
PVOID ReservedForOle; /* f80/1758 */
|
||||
diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
|
||||
index 210324406a9..1d296d42463 100644
|
||||
index 8930df408d3..44113bad28a 100644
|
||||
--- a/tools/winebuild/build.h
|
||||
+++ b/tools/winebuild/build.h
|
||||
@@ -358,6 +358,7 @@ extern void put_word( unsigned short val );
|
||||
@ -394,7 +402,7 @@ index c38f1fe663c..bf82ca497c0 100644
|
||||
/* .reloc contents */
|
||||
align_output_rva( file_align, section_align );
|
||||
diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
|
||||
index 64e1fa51455..edb983a65c9 100644
|
||||
index 80dec6db29e..d394a1382c6 100644
|
||||
--- a/tools/winebuild/utils.c
|
||||
+++ b/tools/winebuild/utils.c
|
||||
@@ -549,7 +549,7 @@ size_t output_buffer_size;
|
||||
|
@ -1,23 +1,22 @@
|
||||
From c605ff6f4bcab597bd9769f49b95d009d561b68d Mon Sep 17 00:00:00 2001
|
||||
From fa2f2b41cb6af594457b76ba90c042387c368ef6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 7 Sep 2017 00:38:09 +0200
|
||||
Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit.
|
||||
|
||||
---
|
||||
dlls/kernel32/tests/loader.c | 7 +-
|
||||
dlls/ntdll/signal_x86_64.c | 2 +
|
||||
dlls/ntdll/thread.c | 13 +-
|
||||
libs/wine/loader.c | 4 +
|
||||
server/mapping.c | 6 +-
|
||||
tools/winebuild/parser.c | 2 +-
|
||||
tools/winebuild/spec32.c | 285 ++++++++++++++++++++++++++++++++++-
|
||||
7 files changed, 308 insertions(+), 11 deletions(-)
|
||||
6 files changed, 306 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
|
||||
index 1f525194ce7..21af7b4ce7a 100644
|
||||
index 95939ba6bde..ae5462f6e55 100644
|
||||
--- a/dlls/kernel32/tests/loader.c
|
||||
+++ b/dlls/kernel32/tests/loader.c
|
||||
@@ -1574,7 +1574,7 @@ static void test_filenames(void)
|
||||
@@ -1573,7 +1573,7 @@ static void test_filenames(void)
|
||||
|
||||
static void test_FakeDLL(void)
|
||||
{
|
||||
@ -26,7 +25,7 @@ index 1f525194ce7..21af7b4ce7a 100644
|
||||
NTSTATUS (WINAPI *pNtSetEvent)(HANDLE, ULONG *) = NULL;
|
||||
IMAGE_EXPORT_DIRECTORY *dir;
|
||||
HMODULE module = GetModuleHandleA("ntdll.dll");
|
||||
@@ -1616,8 +1616,13 @@ static void test_FakeDLL(void)
|
||||
@@ -1615,8 +1615,13 @@ static void test_FakeDLL(void)
|
||||
|
||||
dll_func = (BYTE *)GetProcAddress(module, func_name);
|
||||
ok(dll_func != NULL, "%s: GetProcAddress returned NULL\n", func_name);
|
||||
@ -40,31 +39,11 @@ index 1f525194ce7..21af7b4ce7a 100644
|
||||
{
|
||||
todo_wine ok(0, "%s: Export is a stub-function, skipping\n", func_name);
|
||||
continue;
|
||||
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
|
||||
index 5defcd6a7af..c2936045c5d 100644
|
||||
--- a/dlls/ntdll/signal_x86_64.c
|
||||
+++ b/dlls/ntdll/signal_x86_64.c
|
||||
@@ -354,6 +354,7 @@ static inline void set_sigcontext( const CONTEXT *context, ucontext_t *sigcontex
|
||||
#endif
|
||||
}
|
||||
|
||||
+extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
|
||||
|
||||
/***********************************************************************
|
||||
* Definitions for Win32 unwind tables
|
||||
@@ -3142,6 +3143,7 @@ void signal_init_threading(void)
|
||||
*/
|
||||
NTSTATUS signal_alloc_thread( TEB *teb )
|
||||
{
|
||||
+ teb->WOW32Reserved = __wine_syscall_dispatcher;
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
|
||||
index e5ff24f34f1..ddaf41637d0 100644
|
||||
index 678af513264..297893d8898 100644
|
||||
--- a/dlls/ntdll/thread.c
|
||||
+++ b/dlls/ntdll/thread.c
|
||||
@@ -56,6 +56,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(thread);
|
||||
@@ -54,6 +54,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(thread);
|
||||
|
||||
struct _KUSER_SHARED_DATA *user_shared_data = NULL;
|
||||
|
||||
@ -73,7 +52,7 @@ index e5ff24f34f1..ddaf41637d0 100644
|
||||
void (WINAPI *kernel32_start_process)(LPTHREAD_START_ROUTINE,void*) = NULL;
|
||||
|
||||
/* info passed to a starting thread */
|
||||
@@ -281,9 +283,9 @@ TEB *thread_init(void)
|
||||
@@ -267,9 +269,9 @@ TEB *thread_init(void)
|
||||
/* reserve space for shared user data */
|
||||
|
||||
addr = (void *)0x7ffe0000;
|
||||
@ -85,7 +64,7 @@ index e5ff24f34f1..ddaf41637d0 100644
|
||||
if (status)
|
||||
{
|
||||
MESSAGE( "wine: failed to map the shared user data: %08x\n", status );
|
||||
@@ -291,6 +293,13 @@ TEB *thread_init(void)
|
||||
@@ -277,6 +279,13 @@ TEB *thread_init(void)
|
||||
}
|
||||
user_shared_data = addr;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 06fef705b2735f358f64443c2c3f5c1904eae273 Mon Sep 17 00:00:00 2001
|
||||
From 86c0ddea979a6124a4e60a970501102b83664a21 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 8 Jun 2017 23:50:03 +0200
|
||||
Subject: [PATCH] programs/winedevice: Load some common drivers and fix ldr
|
||||
@ -10,7 +10,7 @@ Subject: [PATCH] programs/winedevice: Load some common drivers and fix ldr
|
||||
2 files changed, 76 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c
|
||||
index 356c60a2e78d..bdc69c16f448 100644
|
||||
index f51064986b5..d34db7c5828 100644
|
||||
--- a/dlls/ntoskrnl.exe/tests/driver.c
|
||||
+++ b/dlls/ntoskrnl.exe/tests/driver.c
|
||||
@@ -44,6 +44,7 @@ static const WCHAR driver_link[] = {'\\','D','o','s','D','e','v','i','c','e','s'
|
||||
@ -21,7 +21,7 @@ index 356c60a2e78d..bdc69c16f448 100644
|
||||
|
||||
static HANDLE okfile;
|
||||
static LONG successes;
|
||||
@@ -1504,6 +1505,7 @@ static void test_resource(void)
|
||||
@@ -1681,6 +1682,7 @@ static void test_resource(void)
|
||||
ok(status == STATUS_SUCCESS, "got status %#x\n", status);
|
||||
}
|
||||
|
||||
@ -29,8 +29,8 @@ index 356c60a2e78d..bdc69c16f448 100644
|
||||
static void test_lookup_thread(void)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@@ -1779,6 +1781,52 @@ static void test_affinity(void)
|
||||
KeRevertToUserAffinityThread();
|
||||
@@ -2132,6 +2134,52 @@ static void test_process_memory(const struct test_input *test_input)
|
||||
ObDereferenceObject(process);
|
||||
}
|
||||
|
||||
+static void test_default_modules(void)
|
||||
@ -82,7 +82,7 @@ index 356c60a2e78d..bdc69c16f448 100644
|
||||
static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *stack)
|
||||
{
|
||||
ULONG length = stack->Parameters.DeviceIoControl.OutputBufferLength;
|
||||
@@ -1825,6 +1873,7 @@ static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *st
|
||||
@@ -2178,6 +2226,7 @@ static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *st
|
||||
test_stack_callout();
|
||||
test_lookaside_list();
|
||||
test_ob_reference(test_input->path);
|
||||
@ -90,7 +90,7 @@ index 356c60a2e78d..bdc69c16f448 100644
|
||||
test_resource();
|
||||
test_lookup_thread();
|
||||
test_IoAttachDeviceToDeviceStack();
|
||||
@@ -2076,6 +2125,7 @@ NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, PUNICODE_STRING registry)
|
||||
@@ -2431,6 +2480,7 @@ NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, PUNICODE_STRING registry)
|
||||
DbgPrint("loading driver\n");
|
||||
|
||||
driver_obj = driver;
|
||||
@ -99,7 +99,7 @@ index 356c60a2e78d..bdc69c16f448 100644
|
||||
/* Allow unloading of the driver */
|
||||
driver->DriverUnload = driver_Unload;
|
||||
diff --git a/programs/winedevice/device.c b/programs/winedevice/device.c
|
||||
index 0755caaafb01..6595788053e8 100644
|
||||
index 0755caaafb0..6595788053e 100644
|
||||
--- a/programs/winedevice/device.c
|
||||
+++ b/programs/winedevice/device.c
|
||||
@@ -120,7 +120,33 @@ static DWORD WINAPI service_handler( DWORD ctrl, DWORD event_type, LPVOID event_
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e5ee1bec04910d5109591ee82177cdddaab60da7 Mon Sep 17 00:00:00 2001
|
||||
From 9d0ef7cd2af3c8ca34f24247a7927c24c7086741 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 6 Sep 2015 12:41:17 +0200
|
||||
Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in
|
||||
@ -29,10 +29,10 @@ index 42532bd9f1c..ba46f170670 100644
|
||||
@ cdecl wine_server_handle_to_fd(long long ptr ptr)
|
||||
@ cdecl wine_server_release_fd(long long)
|
||||
diff --git a/dlls/ntdll/server.c b/dlls/ntdll/server.c
|
||||
index ed4e3f25531..ae1e41a485e 100644
|
||||
index c7788b99e2d..54291d0a909 100644
|
||||
--- a/dlls/ntdll/server.c
|
||||
+++ b/dlls/ntdll/server.c
|
||||
@@ -687,6 +687,14 @@ void CDECL wine_server_release_fd( HANDLE handle, int unix_fd )
|
||||
@@ -239,6 +239,14 @@ void CDECL wine_server_release_fd( HANDLE handle, int unix_fd )
|
||||
unix_funcs->server_release_fd( handle, unix_fd );
|
||||
}
|
||||
|
||||
@ -48,22 +48,22 @@ index ed4e3f25531..ae1e41a485e 100644
|
||||
/***********************************************************************
|
||||
* server_init_process
|
||||
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
|
||||
index 4a3f101d301..8b10964603e 100644
|
||||
index aa020845bb9..0ef08edc474 100644
|
||||
--- a/dlls/ntdll/unix/loader.c
|
||||
+++ b/dlls/ntdll/unix/loader.c
|
||||
@@ -1000,6 +1000,7 @@ static struct unix_funcs unix_funcs =
|
||||
wine_server_call,
|
||||
@@ -1014,6 +1014,7 @@ static struct unix_funcs unix_funcs =
|
||||
server_wait,
|
||||
server_queue_process_apc,
|
||||
server_send_fd,
|
||||
server_remove_fd_from_cache,
|
||||
+ server_remove_fds_from_cache_by_type,
|
||||
server_get_unix_fd,
|
||||
server_fd_to_handle,
|
||||
server_handle_to_fd,
|
||||
diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
|
||||
index 8dc3f33bc80..dd2cb6cf5e2 100644
|
||||
index 8889c5d4b12..929ff354d65 100644
|
||||
--- a/dlls/ntdll/unix/server.c
|
||||
+++ b/dlls/ntdll/unix/server.c
|
||||
@@ -559,6 +559,26 @@ int CDECL server_remove_fd_from_cache( HANDLE handle )
|
||||
@@ -983,6 +983,26 @@ static int remove_fd_from_cache( HANDLE handle )
|
||||
return fd;
|
||||
}
|
||||
|
||||
@ -91,34 +91,34 @@ index 8dc3f33bc80..dd2cb6cf5e2 100644
|
||||
/***********************************************************************
|
||||
* server_get_unix_fd
|
||||
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
|
||||
index 2bf39f85371..32c03fd8983 100644
|
||||
index 0694426dddb..5c13dce0b0a 100644
|
||||
--- a/dlls/ntdll/unix/unix_private.h
|
||||
+++ b/dlls/ntdll/unix/unix_private.h
|
||||
@@ -63,6 +63,7 @@ extern void CDECL dbg_init(void) DECLSPEC_HIDDEN;
|
||||
extern unsigned int CDECL server_call_unlocked( void *req_ptr ) DECLSPEC_HIDDEN;
|
||||
@@ -68,6 +68,7 @@ extern unsigned int CDECL server_wait( const select_op_t *select_op, data_size_t
|
||||
const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
|
||||
extern unsigned int CDECL server_queue_process_apc( HANDLE process, const apc_call_t *call, apc_result_t *result ) DECLSPEC_HIDDEN;
|
||||
extern void CDECL server_send_fd( int fd ) DECLSPEC_HIDDEN;
|
||||
extern int CDECL server_remove_fd_from_cache( HANDLE handle ) DECLSPEC_HIDDEN;
|
||||
+extern void CDECL server_remove_fds_from_cache_by_type( enum server_fd_type type ) DECLSPEC_HIDDEN;
|
||||
extern int CDECL server_get_unix_fd( HANDLE handle, unsigned int wanted_access, int *unix_fd,
|
||||
int *needs_close, enum server_fd_type *type,
|
||||
unsigned int *options ) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
|
||||
index 142e8956e7e..452c725dfde 100644
|
||||
index 323141d3840..0189c247b7a 100644
|
||||
--- a/dlls/ntdll/unixlib.h
|
||||
+++ b/dlls/ntdll/unixlib.h
|
||||
@@ -25,7 +25,7 @@
|
||||
#include "wine/debug.h"
|
||||
@@ -27,7 +27,7 @@
|
||||
struct ldt_copy;
|
||||
|
||||
/* increment this when you change the function table */
|
||||
-#define NTDLL_UNIXLIB_VERSION 10
|
||||
+#define NTDLL_UNIXLIB_VERSION 11
|
||||
-#define NTDLL_UNIXLIB_VERSION 13
|
||||
+#define NTDLL_UNIXLIB_VERSION 14
|
||||
|
||||
struct unix_funcs
|
||||
{
|
||||
@@ -55,6 +55,7 @@ struct unix_funcs
|
||||
unsigned int (CDECL *server_call)( void *req_ptr );
|
||||
@@ -80,6 +80,7 @@ struct unix_funcs
|
||||
const LARGE_INTEGER *timeout );
|
||||
unsigned int (CDECL *server_queue_process_apc)( HANDLE process, const apc_call_t *call, apc_result_t *result );
|
||||
void (CDECL *server_send_fd)( int fd );
|
||||
int (CDECL *server_remove_fd_from_cache)( HANDLE handle );
|
||||
+ void (CDECL *server_remove_fds_from_cache_by_type)( enum server_fd_type type );
|
||||
int (CDECL *server_get_unix_fd)( HANDLE handle, unsigned int wanted_access, int *unix_fd,
|
||||
int *needs_close, enum server_fd_type *type, unsigned int *options );
|
||||
|
@ -1 +1 @@
|
||||
bf83d755d987fec552cd1dce30638c31c49ab760
|
||||
3c86adab766e3bc7c91da088c2dd6bc41a917055
|
||||
|
Loading…
Reference in New Issue
Block a user