You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
63c3baa9e5 | ||
|
980a476c49 | ||
|
120e2d362f | ||
|
df26057ddf | ||
|
fa3a80f5af | ||
|
00ab8180c0 | ||
|
fe634350d2 | ||
|
b10ac7d8ac | ||
|
56fd61a713 | ||
|
c9c7130f3c | ||
|
5f113860f5 | ||
|
9a5667dba1 | ||
|
1295604add |
@@ -1,4 +1,4 @@
|
||||
From 7784b62bd2b64aabd6bfef9ef39ac4f3e8c55c77 Mon Sep 17 00:00:00 2001
|
||||
From eb21fcc668da85977bc86b6105f3830cb26c93e6 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 8 Jun 2021 08:56:40 +1000
|
||||
Subject: [PATCH] bcrypt: Stop compile error when HAVE_GNUTLS_CIPHER_INIT not
|
||||
@@ -20,21 +20,21 @@ Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
|
||||
index 37a80bdc062..64825f5b99b 100644
|
||||
index d7b4499c692..11596d5f7ac 100644
|
||||
--- a/dlls/bcrypt/gnutls.c
|
||||
+++ b/dlls/bcrypt/gnutls.c
|
||||
@@ -25,9 +25,10 @@
|
||||
@@ -24,9 +24,10 @@
|
||||
|
||||
#include "config.h"
|
||||
#include "wine/port.h"
|
||||
|
||||
+#include <stdarg.h>
|
||||
+
|
||||
#ifdef HAVE_GNUTLS_CIPHER_INIT
|
||||
|
||||
-#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <gnutls/gnutls.h>
|
||||
#include <gnutls/crypto.h>
|
||||
#include <sys/types.h>
|
||||
--
|
||||
2.30.2
|
||||
2.33.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 916189d1cdf149f16867870121171e20f129da9f Mon Sep 17 00:00:00 2001
|
||||
From 36b4dbb687232d783cc3203da1dee4a797606ba7 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 2 Oct 2014 19:44:31 +0200
|
||||
Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging
|
||||
@@ -9,7 +9,7 @@ Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index 3339596944a..1d435f88755 100644
|
||||
index 255d5afef79..00add6728cc 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -44,6 +44,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
|
||||
@@ -20,7 +20,7 @@ index 3339596944a..1d435f88755 100644
|
||||
|
||||
#ifdef _WIN64
|
||||
#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232)
|
||||
@@ -3373,6 +3374,7 @@ void WINAPI LdrShutdownProcess(void)
|
||||
@@ -3536,6 +3537,7 @@ void WINAPI LdrShutdownProcess(void)
|
||||
process_detach();
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ index 3339596944a..1d435f88755 100644
|
||||
|
||||
/******************************************************************
|
||||
* RtlExitUserProcess (NTDLL.@)
|
||||
@@ -3783,6 +3785,9 @@ static void init_wow64( CONTEXT *context )
|
||||
@@ -3955,6 +3957,9 @@ static void release_address_space(void)
|
||||
*/
|
||||
void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR unknown3, ULONG_PTR unknown4 )
|
||||
{
|
||||
@@ -36,9 +36,9 @@ index 3339596944a..1d435f88755 100644
|
||||
+ UNICODE_STRING staging_event_string;
|
||||
+ HANDLE staging_event;
|
||||
static int attach_done;
|
||||
int i;
|
||||
NTSTATUS status;
|
||||
@@ -3869,6 +3874,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
|
||||
ULONG_PTR cookie;
|
||||
@@ -4041,6 +4046,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
|
||||
if (NtCurrentTeb()->WowTebOffset) init_wow64( context );
|
||||
#endif
|
||||
|
||||
@@ -56,5 +56,5 @@ index 3339596944a..1d435f88755 100644
|
||||
InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
|
||||
RtlReleasePebLock();
|
||||
--
|
||||
2.30.2
|
||||
2.33.0
|
||||
|
||||
|
@@ -1,125 +0,0 @@
|
||||
From ffea83bdf88a4b7d35c2f9a7e1a773d3110b5771 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 12 Apr 2016 01:02:34 +0200
|
||||
Subject: [PATCH] uiautomationcore: Add dll and stub some functions.
|
||||
|
||||
---
|
||||
dlls/uiautomationcore/Makefile.in | 1 +
|
||||
dlls/uiautomationcore/uia_main.c | 53 +++++++++++++++++++++++++++----
|
||||
2 files changed, 48 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/uiautomationcore/Makefile.in b/dlls/uiautomationcore/Makefile.in
|
||||
index 71ea7b99c94..3e6c2d7688a 100644
|
||||
--- a/dlls/uiautomationcore/Makefile.in
|
||||
+++ b/dlls/uiautomationcore/Makefile.in
|
||||
@@ -1,5 +1,6 @@
|
||||
MODULE = uiautomationcore.dll
|
||||
IMPORTLIB = uiautomationcore
|
||||
+IMPORTS = uuid
|
||||
|
||||
EXTRADLLFLAGS = -Wb,--prefer-native
|
||||
|
||||
diff --git a/dlls/uiautomationcore/uia_main.c b/dlls/uiautomationcore/uia_main.c
|
||||
index 2dada95af80..a32ef552f15 100644
|
||||
--- a/dlls/uiautomationcore/uia_main.c
|
||||
+++ b/dlls/uiautomationcore/uia_main.c
|
||||
@@ -1,4 +1,5 @@
|
||||
/*
|
||||
+ * Copyright 2016 Michael MĂĽller
|
||||
* Copyright 2017 Jacek Caban for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
@@ -16,18 +17,58 @@
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
+#define COBJMACROS
|
||||
#include "uiautomation.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(uiautomation);
|
||||
|
||||
+static HRESULT WINAPI dummy_QueryInterface(IUnknown *iface, REFIID iid, void **ppv)
|
||||
+{
|
||||
+ TRACE("(%p, %s, %p)\n", iface, debugstr_guid(iid), ppv);
|
||||
+
|
||||
+ if (!ppv) return E_INVALIDARG;
|
||||
+
|
||||
+ if (!IsEqualIID(&IID_IUnknown, iid))
|
||||
+ {
|
||||
+ FIXME("Unknown interface: %s\n", debugstr_guid(iid));
|
||||
+ *ppv = NULL;
|
||||
+ return E_NOINTERFACE;
|
||||
+ }
|
||||
+
|
||||
+ *ppv = iface;
|
||||
+ IUnknown_AddRef((IUnknown *)*ppv);
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static ULONG WINAPI dummy_AddRef(IUnknown *iface)
|
||||
+{
|
||||
+ FIXME("(%p): stub\n", iface);
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static ULONG WINAPI dummy_Release(IUnknown *iface)
|
||||
+{
|
||||
+ FIXME("(%p): stub\n", iface);
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static const IUnknownVtbl dummy_Vtbl =
|
||||
+{
|
||||
+ dummy_QueryInterface,
|
||||
+ dummy_AddRef,
|
||||
+ dummy_Release,
|
||||
+};
|
||||
+
|
||||
+static IUnknown dummy = { &dummy_Vtbl };
|
||||
+
|
||||
/***********************************************************************
|
||||
* UiaClientsAreListening (uiautomationcore.@)
|
||||
*/
|
||||
BOOL WINAPI UiaClientsAreListening(void)
|
||||
{
|
||||
- FIXME("()\n");
|
||||
+ FIXME("(): stub\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -36,8 +77,8 @@ BOOL WINAPI UiaClientsAreListening(void)
|
||||
*/
|
||||
HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
|
||||
{
|
||||
- FIXME("(%p) stub!\n", value);
|
||||
- *value = NULL;
|
||||
+ FIXME("(%p): stub!\n", value);
|
||||
+ *value = &dummy;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@@ -46,8 +87,8 @@ HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
|
||||
*/
|
||||
HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value)
|
||||
{
|
||||
- FIXME("(%p) stub!\n", value);
|
||||
- *value = NULL;
|
||||
+ FIXME("(%p): stub!\n", value);
|
||||
+ *value = &dummy;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@@ -66,7 +107,7 @@ int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid)
|
||||
LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wParam,
|
||||
LPARAM lParam, IRawElementProviderSimple *elprov)
|
||||
{
|
||||
- FIXME("(%p, %lx, %lx, %p) stub!\n", hwnd, wParam, lParam, elprov);
|
||||
+ FIXME("(%p, %lx, %lx, %p): stub!\n", hwnd, wParam, lParam, elprov);
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
2.33.0
|
||||
|
@@ -0,0 +1,36 @@
|
||||
From 5d62ab1fd576aa9e11a387a6b2a1b250aecc1803 Mon Sep 17 00:00:00 2001
|
||||
From: Eric Pouech <eric.pouech@gmail.com>
|
||||
Date: Fri, 5 Nov 2021 07:56:04 +1100
|
||||
Subject: [PATCH] configure.ac: let dwarf4 be Wine's default debug format
|
||||
|
||||
---
|
||||
configure.ac | 6 ++----
|
||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 57bd9a6f9ec..0196af56783 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1051,8 +1051,7 @@ then
|
||||
if test "x$ac_debug_format_seen" = x
|
||||
then
|
||||
case $CROSSDEBUG in
|
||||
- *dwarf) WINE_TRY_CROSSCFLAGS([-gdwarf-2])
|
||||
- WINE_TRY_CROSSCFLAGS([-gstrict-dwarf]) ;;
|
||||
+ *dwarf) WINE_TRY_CROSSCFLAGS([-gdwarf-4]) ;;
|
||||
pdb) WINE_TRY_CROSSCFLAGS([-gcodeview]) ;;
|
||||
esac
|
||||
fi
|
||||
@@ -1865,8 +1864,7 @@ char*f(const char *h,char n) {return strchr(h,n);}]])],[ac_cv_c_logicalop_noisy=
|
||||
done
|
||||
if test "x$ac_debug_format_seen" = xdefault
|
||||
then
|
||||
- WINE_TRY_CFLAGS([-gdwarf-2])
|
||||
- WINE_TRY_CFLAGS([-gstrict-dwarf])
|
||||
+ WINE_TRY_CFLAGS([-gdwarf-4])
|
||||
fi
|
||||
|
||||
dnl Disable gcc builtins except for Mingw
|
||||
--
|
||||
2.33.0
|
||||
|
@@ -7,104 +7,10 @@ We use ppoll() instead of poll() for the better time granularity.
|
||||
|
||||
Although perhaps we shouldn't since the server doesn't do this.
|
||||
---
|
||||
configure | 68 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
configure.ac | 12 ++++++++
|
||||
include/config.h.in | 9 ++++++
|
||||
3 files changed, 89 insertions(+)
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index ec425d91f63..200b42b7fe7 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -7525,6 +7525,7 @@ for ac_header in \
|
||||
sys/cdio.h \
|
||||
sys/epoll.h \
|
||||
sys/event.h \
|
||||
+ sys/eventfd.h \
|
||||
sys/filio.h \
|
||||
sys/ioctl.h \
|
||||
sys/ipc.h \
|
||||
@@ -17912,6 +17913,7 @@ for ac_func in \
|
||||
port_create \
|
||||
posix_fadvise \
|
||||
posix_fallocate \
|
||||
+ ppoll \
|
||||
prctl \
|
||||
proc_pidinfo \
|
||||
setproctitle \
|
||||
@@ -18255,6 +18257,72 @@ fi
|
||||
;;
|
||||
esac
|
||||
|
||||
+if test "$ac_cv_header_sys_mman_h" = "yes" -a "x$RT_LIBS" = "x"
|
||||
+then
|
||||
+ ac_save_LIBS=$LIBS
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5
|
||||
+$as_echo_n "checking for library containing shm_open... " >&6; }
|
||||
+if ${ac_cv_search_shm_open+:} false; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ ac_func_search_save_LIBS=$LIBS
|
||||
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
+/* end confdefs.h. */
|
||||
+
|
||||
+/* Override any GCC internal prototype to avoid an error.
|
||||
+ Use char because int might match the return type of a GCC
|
||||
+ builtin and then its argument prototype would still apply. */
|
||||
+#ifdef __cplusplus
|
||||
+extern "C"
|
||||
+#endif
|
||||
+char shm_open ();
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+return shm_open ();
|
||||
+ ;
|
||||
+ return 0;
|
||||
+}
|
||||
+_ACEOF
|
||||
+for ac_lib in '' rt; do
|
||||
+ if test -z "$ac_lib"; then
|
||||
+ ac_res="none required"
|
||||
+ else
|
||||
+ ac_res=-l$ac_lib
|
||||
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
|
||||
+ fi
|
||||
+ if ac_fn_c_try_link "$LINENO"; then :
|
||||
+ ac_cv_search_shm_open=$ac_res
|
||||
+fi
|
||||
+rm -f core conftest.err conftest.$ac_objext \
|
||||
+ conftest$ac_exeext
|
||||
+ if ${ac_cv_search_shm_open+:} false; then :
|
||||
+ break
|
||||
+fi
|
||||
+done
|
||||
+if ${ac_cv_search_shm_open+:} false; then :
|
||||
+
|
||||
+else
|
||||
+ ac_cv_search_shm_open=no
|
||||
+fi
|
||||
+rm conftest.$ac_ext
|
||||
+LIBS=$ac_func_search_save_LIBS
|
||||
+fi
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5
|
||||
+$as_echo "$ac_cv_search_shm_open" >&6; }
|
||||
+ac_res=$ac_cv_search_shm_open
|
||||
+if test "$ac_res" != no; then :
|
||||
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
|
||||
+
|
||||
+$as_echo "#define HAVE_SHM_OPEN 1" >>confdefs.h
|
||||
+
|
||||
+ test "$ac_res" = "none required" || RT_LIBS="$ac_res"
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+fi
|
||||
+LIBS=$ac_save_LIBS
|
||||
+
|
||||
if test "x$with_ldap" != "xno"
|
||||
then
|
||||
if ${LDAP_CFLAGS:+false} :; then :
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 718ab1ca50e..d5f82ad2af4 100644
|
||||
--- a/configure.ac
|
||||
|
@@ -1,27 +1,34 @@
|
||||
From f260254e168fbaad0321273037762e218eb6b7a6 Mon Sep 17 00:00:00 2001
|
||||
From 153efcdc01d57fc29c6d1e80eda52f43666b34a6 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <zfigura@codeweavers.com>
|
||||
Date: Mon, 6 Jul 2020 14:57:42 -0500
|
||||
Subject: [PATCH] ntdll: Implement waiting on manual-reset events.
|
||||
|
||||
---
|
||||
dlls/ntdll/unix/esync.c | 22 +++++++++++++++++-----
|
||||
1 file changed, 17 insertions(+), 5 deletions(-)
|
||||
dlls/ntdll/unix/esync.c | 26 ++++++++++++++++++--------
|
||||
1 file changed, 18 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
|
||||
index 97d468b2449..4f993689e0d 100644
|
||||
index 97d468b2449..d58cb6c1ee2 100644
|
||||
--- a/dlls/ntdll/unix/esync.c
|
||||
+++ b/dlls/ntdll/unix/esync.c
|
||||
@@ -483,12 +483,24 @@ NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_an
|
||||
@@ -38,9 +38,7 @@
|
||||
#ifdef HAVE_SYS_MMAN_H
|
||||
# include <sys/mman.h>
|
||||
#endif
|
||||
-#ifdef HAVE_SYS_POLL_H
|
||||
-# include <sys/poll.h>
|
||||
-#endif
|
||||
+#include <poll.h>
|
||||
#ifdef HAVE_SYS_STAT_H
|
||||
# include <sys/stat.h>
|
||||
#endif
|
||||
@@ -483,12 +481,24 @@ NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_an
|
||||
int64_t value;
|
||||
ssize_t size;
|
||||
|
||||
- if ((size = read( fds[i].fd, &value, sizeof(value) )) == sizeof(value))
|
||||
+ if (obj->type == ESYNC_MANUAL_EVENT)
|
||||
{
|
||||
- /* We found our object. */
|
||||
- TRACE("Woken up by handle %p [%d].\n", handles[i], i);
|
||||
- update_grabbed_object( obj );
|
||||
- return i;
|
||||
+ {
|
||||
+ /* Don't grab the object, just check if it's signaled. */
|
||||
+ if (fds[i].revents & POLLIN)
|
||||
+ {
|
||||
@@ -30,7 +37,11 @@ index 97d468b2449..4f993689e0d 100644
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
{
|
||||
- /* We found our object. */
|
||||
- TRACE("Woken up by handle %p [%d].\n", handles[i], i);
|
||||
- update_grabbed_object( obj );
|
||||
- return i;
|
||||
+ if ((size = read( fds[i].fd, &value, sizeof(value) )) == sizeof(value))
|
||||
+ {
|
||||
+ /* We found our object. */
|
||||
@@ -42,5 +53,5 @@ index 97d468b2449..4f993689e0d 100644
|
||||
}
|
||||
}
|
||||
--
|
||||
2.28.0
|
||||
2.33.0
|
||||
|
||||
|
@@ -1,3 +1,2 @@
|
||||
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)
|
||||
|
||||
|
@@ -1,12 +1,12 @@
|
||||
From 187108be05dcf7521646c22f637627147d9bbdb3 Mon Sep 17 00:00:00 2001
|
||||
From f44bf16013c0dace490308af9ce17b3ff6082abf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 3 Apr 2017 05:30:27 +0200
|
||||
Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data.
|
||||
|
||||
---
|
||||
dlls/kernel32/tests/loader.c | 75 ++++++++++++++++++++++++++++++++++++
|
||||
dlls/ntdll/loader.c | 41 ++++++++++++++++++++
|
||||
2 files changed, 116 insertions(+)
|
||||
dlls/ntdll/loader.c | 42 ++++++++++++++++++++
|
||||
2 files changed, 117 insertions(+)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
|
||||
index 4f1b11338a6..56cd5a88e20 100644
|
||||
@@ -109,7 +109,7 @@ index 4f1b11338a6..56cd5a88e20 100644
|
||||
test_dll_file( "kernel32.dll" );
|
||||
test_dll_file( "advapi32.dll" );
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index 65d684e555c..644d531d8f8 100644
|
||||
index 6dcf73295b0..8b9305ff5b6 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -129,6 +129,9 @@ struct file_id
|
||||
@@ -122,7 +122,7 @@ index 65d684e555c..644d531d8f8 100644
|
||||
/* internal representation of loaded modules */
|
||||
typedef struct _wine_modref
|
||||
{
|
||||
@@ -477,6 +480,33 @@ static void call_ldr_notifications( ULONG reason, LDR_DATA_TABLE_ENTRY *module )
|
||||
@@ -476,6 +479,33 @@ static void call_ldr_notifications( ULONG reason, LDR_DATA_TABLE_ENTRY *module )
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,7 +156,7 @@ index 65d684e555c..644d531d8f8 100644
|
||||
/*************************************************************************
|
||||
* get_modref
|
||||
*
|
||||
@@ -1253,7 +1283,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name
|
||||
@@ -1352,7 +1382,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name
|
||||
&wm->ldr.InLoadOrderLinks);
|
||||
InsertTailList(&NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList,
|
||||
&wm->ldr.InMemoryOrderLinks);
|
||||
@@ -169,7 +169,7 @@ index 65d684e555c..644d531d8f8 100644
|
||||
|
||||
if (!(nt->OptionalHeader.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_NX_COMPAT))
|
||||
{
|
||||
@@ -1933,6 +1968,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name,
|
||||
@@ -2032,6 +2067,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name,
|
||||
/* the module has only be inserted in the load & memory order lists */
|
||||
RemoveEntryList(&wm->ldr.InLoadOrderLinks);
|
||||
RemoveEntryList(&wm->ldr.InMemoryOrderLinks);
|
||||
@@ -177,15 +177,23 @@ index 65d684e555c..644d531d8f8 100644
|
||||
|
||||
/* FIXME: there are several more dangling references
|
||||
* left. Including dlls loaded by this dll before the
|
||||
@@ -3518,6 +3554,7 @@ static void free_modref( WINE_MODREF *wm )
|
||||
{
|
||||
@@ -3621,6 +3657,7 @@ static void free_modref( WINE_MODREF *wm )
|
||||
|
||||
RemoveEntryList(&wm->ldr.InLoadOrderLinks);
|
||||
RemoveEntryList(&wm->ldr.InMemoryOrderLinks);
|
||||
+ RemoveEntryList(&wm->ldr.HashLinks);
|
||||
if (wm->ldr.InInitializationOrderLinks.Flink)
|
||||
RemoveEntryList(&wm->ldr.InInitializationOrderLinks);
|
||||
|
||||
@@ -3881,6 +3918,10 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
|
||||
@@ -3983,6 +4020,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
|
||||
|
||||
if (!imports_fixup_done)
|
||||
{
|
||||
+ int i;
|
||||
ANSI_STRING func_name;
|
||||
WINE_MODREF *kernel32;
|
||||
PEB *peb = NtCurrentTeb()->Peb;
|
||||
@@ -4000,6 +4038,10 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
|
||||
sizeof(peb->TlsExpansionBitmapBits) * 8 );
|
||||
RtlSetBits( peb->TlsBitmap, 0, 1 ); /* TLS index 0 is reserved and should be initialized to NULL. */
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From b8a8aafd5c57dba6be726cf5974dfce006ea8d06 Mon Sep 17 00:00:00 2001
|
||||
From 2900e5cd5220e8a41e7c5a5971f7a32e72f508f5 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 30 May 2015 02:23:15 +0200
|
||||
Subject: [PATCH] ntdll: Add support for hiding wine version information from
|
||||
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Add support for hiding wine version information from
|
||||
2 files changed, 103 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index 336b11c6344..46f74df7130 100644
|
||||
index 23d44aae64c..77dd56c88f1 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -74,6 +74,9 @@ BOOL is_wow64 = FALSE;
|
||||
@@ -89,6 +89,9 @@ HMODULE kernel32_handle = 0;
|
||||
/* system search path */
|
||||
static const WCHAR system_path[] = L"C:\\windows\\system32;C:\\windows\\system;C:\\windows";
|
||||
|
||||
@@ -23,7 +23,7 @@ index 336b11c6344..46f74df7130 100644
|
||||
static BOOL is_prefix_bootstrap; /* are we bootstrapping the prefix? */
|
||||
static BOOL imports_fixup_done = FALSE; /* set once the imports have been fixed up, before attaching them */
|
||||
static BOOL process_detaching = FALSE; /* set on process detach to avoid deadlocks with thread detach */
|
||||
@@ -92,6 +95,8 @@ struct dll_dir_entry
|
||||
@@ -107,6 +110,8 @@ struct dll_dir_entry
|
||||
|
||||
static struct list dll_dir_list = LIST_INIT( dll_dir_list ); /* extra dirs from LdrAddDllDirectory */
|
||||
|
||||
@@ -32,7 +32,7 @@ index 336b11c6344..46f74df7130 100644
|
||||
struct ldr_notification
|
||||
{
|
||||
struct list entry;
|
||||
@@ -1673,6 +1678,96 @@ NTSTATUS WINAPI LdrUnlockLoaderLock( ULONG flags, ULONG_PTR magic )
|
||||
@@ -1862,6 +1867,96 @@ NTSTATUS WINAPI LdrUnlockLoaderLock( ULONG flags, ULONG_PTR magic )
|
||||
}
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ index 336b11c6344..46f74df7130 100644
|
||||
/******************************************************************
|
||||
* LdrGetProcedureAddress (NTDLL.@)
|
||||
*/
|
||||
@@ -1692,7 +1787,7 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE module, const ANSI_STRING *name,
|
||||
@@ -1881,7 +1976,7 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE module, const ANSI_STRING *name,
|
||||
{
|
||||
void *proc = name ? find_named_export( module, exports, exp_size, name->Buffer, -1, NULL )
|
||||
: find_ordinal_export( module, exports, exp_size, ord - exports->Base, NULL );
|
||||
@@ -138,9 +138,9 @@ index 336b11c6344..46f74df7130 100644
|
||||
{
|
||||
*address = proc;
|
||||
ret = STATUS_SUCCESS;
|
||||
@@ -1934,6 +2029,8 @@ static void build_ntdll_module(void)
|
||||
assert( wm );
|
||||
@@ -2121,6 +2216,8 @@ static void build_ntdll_module(void)
|
||||
wm->ldr.Flags &= ~LDR_DONT_RESOLVE_REFS;
|
||||
node_ntdll = wm->ldr.DdagNode;
|
||||
if (TRACE_ON(relay)) RELAY_SetupDLL( meminfo.AllocationBase );
|
||||
+
|
||||
+ hidden_exports_init( wm->ldr.FullDllName.Buffer );
|
||||
@@ -148,10 +148,10 @@ index 336b11c6344..46f74df7130 100644
|
||||
|
||||
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index 400ac9398a5..55695f2c370 100644
|
||||
index 27de37d5b88..a8c5e335870 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -100,6 +100,11 @@ static inline TEB64 *NtCurrentTeb64(void) { return (TEB64 *)NtCurrentTeb()->GdiB
|
||||
@@ -149,6 +149,11 @@ static inline TEB64 *NtCurrentTeb64(void) { return (TEB64 *)NtCurrentTeb()->GdiB
|
||||
|
||||
NTSTATUS WINAPI RtlHashUnicodeString(PCUNICODE_STRING,BOOLEAN,ULONG,ULONG*);
|
||||
|
||||
@@ -164,5 +164,5 @@ index 400ac9398a5..55695f2c370 100644
|
||||
static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len )
|
||||
{
|
||||
--
|
||||
2.30.2
|
||||
2.33.0
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,209 +0,0 @@
|
||||
From 2cecfc6394a63db07b92c572d0702cf2a8bf0f31 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Thu, 9 Jan 2020 14:51:05 -0600
|
||||
Subject: [PATCH] ntdll/tests: Add some tests for Rtl* resources.
|
||||
|
||||
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
|
||||
---
|
||||
dlls/ntdll/tests/sync.c | 164 ++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 164 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/tests/sync.c b/dlls/ntdll/tests/sync.c
|
||||
index 3d6b6a3a04d..21124dae922 100644
|
||||
--- a/dlls/ntdll/tests/sync.c
|
||||
+++ b/dlls/ntdll/tests/sync.c
|
||||
@@ -44,7 +44,12 @@ static NTSTATUS (WINAPI *pNtReleaseSemaphore)( HANDLE, ULONG, ULONG * );
|
||||
static NTSTATUS (WINAPI *pNtResetEvent)( HANDLE, LONG * );
|
||||
static NTSTATUS (WINAPI *pNtSetEvent)( HANDLE, LONG * );
|
||||
static NTSTATUS (WINAPI *pNtWaitForKeyedEvent)( HANDLE, const void *, BOOLEAN, const LARGE_INTEGER * );
|
||||
+static BOOLEAN (WINAPI *pRtlAcquireResourceExclusive)( RTL_RWLOCK *, BOOLEAN );
|
||||
+static BOOLEAN (WINAPI *pRtlAcquireResourceShared)( RTL_RWLOCK *, BOOLEAN );
|
||||
+static void (WINAPI *pRtlDeleteResource)( RTL_RWLOCK * );
|
||||
+static void (WINAPI *pRtlInitializeResource)( RTL_RWLOCK * );
|
||||
static void (WINAPI *pRtlInitUnicodeString)( UNICODE_STRING *, const WCHAR * );
|
||||
+static void (WINAPI *pRtlReleaseResource)( RTL_RWLOCK * );
|
||||
static NTSTATUS (WINAPI *pRtlWaitOnAddress)( const void *, const void *, SIZE_T, const LARGE_INTEGER * );
|
||||
static void (WINAPI *pRtlWakeAddressAll)( const void * );
|
||||
static void (WINAPI *pRtlWakeAddressSingle)( const void * );
|
||||
@@ -595,6 +600,159 @@ static void test_wait_on_address(void)
|
||||
ok(address == 0, "got %s\n", wine_dbgstr_longlong(address));
|
||||
}
|
||||
|
||||
+static HANDLE thread_ready, thread_done;
|
||||
+
|
||||
+static DWORD WINAPI resource_shared_thread(void *arg)
|
||||
+{
|
||||
+ RTL_RWLOCK *resource = arg;
|
||||
+ BOOLEAN ret;
|
||||
+
|
||||
+ ret = pRtlAcquireResourceShared(resource, TRUE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+
|
||||
+ SetEvent(thread_ready);
|
||||
+ ok(!WaitForSingleObject(thread_done, 1000), "wait failed\n");
|
||||
+ pRtlReleaseResource(resource);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static DWORD WINAPI resource_exclusive_thread(void *arg)
|
||||
+{
|
||||
+ RTL_RWLOCK *resource = arg;
|
||||
+ BOOLEAN ret;
|
||||
+
|
||||
+ ret = pRtlAcquireResourceExclusive(resource, TRUE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+
|
||||
+ SetEvent(thread_ready);
|
||||
+ ok(!WaitForSingleObject(thread_done, 1000), "wait failed\n");
|
||||
+ pRtlReleaseResource(resource);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void test_resource(void)
|
||||
+{
|
||||
+ HANDLE thread, thread2;
|
||||
+ RTL_RWLOCK resource;
|
||||
+ BOOLEAN ret;
|
||||
+
|
||||
+ pRtlInitializeResource(&resource);
|
||||
+ thread_ready = CreateEventA(NULL, FALSE, FALSE, NULL);
|
||||
+ thread_done = CreateEventA(NULL, FALSE, FALSE, NULL);
|
||||
+
|
||||
+ ret = pRtlAcquireResourceShared(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ ret = pRtlAcquireResourceShared(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ ret = pRtlAcquireResourceExclusive(&resource, FALSE);
|
||||
+ ok(ret == FALSE, "got %u\n", ret);
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+
|
||||
+ ret = pRtlAcquireResourceExclusive(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ ret = pRtlAcquireResourceExclusive(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ ret = pRtlAcquireResourceShared(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+
|
||||
+ /* Do not acquire the resource ourselves, but spawn a shared thread holding it. */
|
||||
+
|
||||
+ thread = CreateThread(NULL, 0, resource_shared_thread, &resource, 0, NULL);
|
||||
+ ok(!WaitForSingleObject(thread_ready, 1000), "wait failed\n");
|
||||
+
|
||||
+ ret = pRtlAcquireResourceExclusive(&resource, FALSE);
|
||||
+ ok(ret == FALSE, "got %u\n", ret);
|
||||
+ ret = pRtlAcquireResourceShared(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+
|
||||
+ SetEvent(thread_done);
|
||||
+ ok(!WaitForSingleObject(thread, 1000), "wait failed\n");
|
||||
+ CloseHandle(thread);
|
||||
+
|
||||
+ ret = pRtlAcquireResourceExclusive(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+ ret = pRtlAcquireResourceShared(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+
|
||||
+ /* Acquire the resource as exclusive, and then spawn a shared thread. */
|
||||
+
|
||||
+ ret = pRtlAcquireResourceExclusive(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ thread = CreateThread(NULL, 0, resource_shared_thread, &resource, 0, NULL);
|
||||
+ ok(WaitForSingleObject(thread_ready, 100) == WAIT_TIMEOUT, "expected timeout\n");
|
||||
+
|
||||
+ ret = pRtlAcquireResourceExclusive(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+ ret = pRtlAcquireResourceShared(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+ ok(!WaitForSingleObject(thread_ready, 1000), "wait failed\n");
|
||||
+ SetEvent(thread_done);
|
||||
+ ok(!WaitForSingleObject(thread, 1000), "wait failed\n");
|
||||
+ CloseHandle(thread);
|
||||
+
|
||||
+ /* Acquire the resource as shared, and then spawn an exclusive thread. */
|
||||
+
|
||||
+ ret = pRtlAcquireResourceShared(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ thread = CreateThread(NULL, 0, resource_exclusive_thread, &resource, 0, NULL);
|
||||
+ ok(WaitForSingleObject(thread_ready, 100) == WAIT_TIMEOUT, "expected timeout\n");
|
||||
+
|
||||
+ ret = pRtlAcquireResourceExclusive(&resource, FALSE);
|
||||
+ ok(ret == FALSE, "got %u\n", ret);
|
||||
+ ret = pRtlAcquireResourceShared(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+ ok(!WaitForSingleObject(thread_ready, 1000), "wait failed\n");
|
||||
+ SetEvent(thread_done);
|
||||
+ ok(!WaitForSingleObject(thread, 1000), "wait failed\n");
|
||||
+ CloseHandle(thread);
|
||||
+
|
||||
+ /* Spawn a shared and then exclusive waiter. */
|
||||
+ thread = CreateThread(NULL, 0, resource_shared_thread, &resource, 0, NULL);
|
||||
+ ok(!WaitForSingleObject(thread_ready, 1000), "wait failed\n");
|
||||
+ thread2 = CreateThread(NULL, 0, resource_exclusive_thread, &resource, 0, NULL);
|
||||
+ ok(WaitForSingleObject(thread_ready, 100) == WAIT_TIMEOUT, "expected timeout\n");
|
||||
+
|
||||
+ ret = pRtlAcquireResourceExclusive(&resource, FALSE);
|
||||
+ ok(ret == FALSE, "got %u\n", ret);
|
||||
+ ret = pRtlAcquireResourceShared(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+
|
||||
+ SetEvent(thread_done);
|
||||
+ ok(!WaitForSingleObject(thread, 1000), "wait failed\n");
|
||||
+ CloseHandle(thread);
|
||||
+
|
||||
+ ok(!WaitForSingleObject(thread_ready, 1000), "wait failed\n");
|
||||
+ SetEvent(thread_done);
|
||||
+ ok(!WaitForSingleObject(thread2, 1000), "wait failed\n");
|
||||
+ CloseHandle(thread2);
|
||||
+
|
||||
+ ret = pRtlAcquireResourceExclusive(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+ ret = pRtlAcquireResourceShared(&resource, FALSE);
|
||||
+ ok(ret == TRUE, "got %u\n", ret);
|
||||
+ pRtlReleaseResource(&resource);
|
||||
+
|
||||
+ CloseHandle(thread_ready);
|
||||
+ CloseHandle(thread_done);
|
||||
+ pRtlDeleteResource(&resource);
|
||||
+}
|
||||
+
|
||||
START_TEST(sync)
|
||||
{
|
||||
HMODULE module = GetModuleHandleA("ntdll.dll");
|
||||
@@ -617,7 +775,12 @@ START_TEST(sync)
|
||||
pNtResetEvent = (void *)GetProcAddress(module, "NtResetEvent");
|
||||
pNtSetEvent = (void *)GetProcAddress(module, "NtSetEvent");
|
||||
pNtWaitForKeyedEvent = (void *)GetProcAddress(module, "NtWaitForKeyedEvent");
|
||||
+ pRtlAcquireResourceExclusive = (void *)GetProcAddress(module, "RtlAcquireResourceExclusive");
|
||||
+ pRtlAcquireResourceShared = (void *)GetProcAddress(module, "RtlAcquireResourceShared");
|
||||
+ pRtlDeleteResource = (void *)GetProcAddress(module, "RtlDeleteResource");
|
||||
+ pRtlInitializeResource = (void *)GetProcAddress(module, "RtlInitializeResource");
|
||||
pRtlInitUnicodeString = (void *)GetProcAddress(module, "RtlInitUnicodeString");
|
||||
+ pRtlReleaseResource = (void *)GetProcAddress(module, "RtlReleaseResource");
|
||||
pRtlWaitOnAddress = (void *)GetProcAddress(module, "RtlWaitOnAddress");
|
||||
pRtlWakeAddressAll = (void *)GetProcAddress(module, "RtlWakeAddressAll");
|
||||
pRtlWakeAddressSingle = (void *)GetProcAddress(module, "RtlWakeAddressSingle");
|
||||
@@ -627,4 +790,5 @@ START_TEST(sync)
|
||||
test_mutant();
|
||||
test_semaphore();
|
||||
test_keyed_events();
|
||||
+ test_resource();
|
||||
}
|
||||
--
|
||||
2.30.2
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 683cdfce393f1a4fca23d1520866d3e663a8c60f Mon Sep 17 00:00:00 2001
|
||||
From c83cd4d1151d182c3ae35f87b20b6ba30cf24316 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Mon, 7 Jun 2021 16:26:18 -0500
|
||||
Subject: [PATCH] ntdll: Reimplement Win32 futexes on top of thread-ID alerts.
|
||||
@@ -6,34 +6,36 @@ Subject: [PATCH] ntdll: Reimplement Win32 futexes on top of thread-ID alerts.
|
||||
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
|
||||
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
|
||||
---
|
||||
dlls/ntdll/sync.c | 215 ++++++++++++++++++++++++++++++++++++++-
|
||||
dlls/ntdll/sync.c | 214 ++++++++++++++++++++++++++++++++++++++-
|
||||
dlls/ntdll/unix/loader.c | 3 -
|
||||
dlls/ntdll/unix/sync.c | 162 -----------------------------
|
||||
dlls/ntdll/unixlib.h | 6 +-
|
||||
4 files changed, 213 insertions(+), 173 deletions(-)
|
||||
4 files changed, 212 insertions(+), 173 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c
|
||||
index f1263ae33fd..c0a6e3a729e 100644
|
||||
index bfb30661864..db68a466d8a 100644
|
||||
--- a/dlls/ntdll/sync.c
|
||||
+++ b/dlls/ntdll/sync.c
|
||||
@@ -34,8 +34,16 @@
|
||||
@@ -34,11 +34,18 @@
|
||||
#include "windef.h"
|
||||
#include "winternl.h"
|
||||
#include "wine/debug.h"
|
||||
+#include "wine/list.h"
|
||||
#include "ntdll_misc.h"
|
||||
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(sync);
|
||||
+
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(sync);
|
||||
WINE_DECLARE_DEBUG_CHANNEL(relay);
|
||||
|
||||
+static const char *debugstr_timeout( const LARGE_INTEGER *timeout )
|
||||
+{
|
||||
+ if (!timeout) return "(infinite)";
|
||||
+ return wine_dbgstr_longlong( timeout->QuadPart );
|
||||
+}
|
||||
|
||||
+
|
||||
/******************************************************************
|
||||
* RtlRunOnceInitialize (NTDLL.@)
|
||||
@@ -530,13 +538,142 @@ NTSTATUS WINAPI RtlSleepConditionVariableSRW( RTL_CONDITION_VARIABLE *variable,
|
||||
*/
|
||||
@@ -863,13 +870,142 @@ NTSTATUS WINAPI RtlSleepConditionVariableSRW( RTL_CONDITION_VARIABLE *variable,
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -177,7 +179,7 @@ index f1263ae33fd..c0a6e3a729e 100644
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
@@ -544,7 +681,42 @@ NTSTATUS WINAPI RtlWaitOnAddress( const void *addr, const void *cmp, SIZE_T size
|
||||
@@ -877,7 +1013,42 @@ NTSTATUS WINAPI RtlWaitOnAddress( const void *addr, const void *cmp, SIZE_T size
|
||||
*/
|
||||
void WINAPI RtlWakeAddressAll( const void *addr )
|
||||
{
|
||||
@@ -221,7 +223,7 @@ index f1263ae33fd..c0a6e3a729e 100644
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
@@ -552,5 +724,42 @@ void WINAPI RtlWakeAddressAll( const void *addr )
|
||||
@@ -885,5 +1056,42 @@ void WINAPI RtlWakeAddressAll( const void *addr )
|
||||
*/
|
||||
void WINAPI RtlWakeAddressSingle( const void *addr )
|
||||
{
|
||||
@@ -266,10 +268,10 @@ index f1263ae33fd..c0a6e3a729e 100644
|
||||
+ if (tid) NtAlertThreadByThreadId( (HANDLE)(DWORD_PTR)tid );
|
||||
}
|
||||
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
|
||||
index 8720660eb6b..269788bcf91 100644
|
||||
index a9645d45653..2504311053b 100644
|
||||
--- a/dlls/ntdll/unix/loader.c
|
||||
+++ b/dlls/ntdll/unix/loader.c
|
||||
@@ -2151,9 +2151,6 @@ static struct unix_funcs unix_funcs =
|
||||
@@ -2148,9 +2148,6 @@ static struct unix_funcs unix_funcs =
|
||||
#endif
|
||||
DbgUiIssueRemoteBreakin,
|
||||
RtlGetSystemTimePrecise,
|
||||
@@ -472,15 +474,15 @@ index 7f5d9a49ef5..43838e593dc 100644
|
||||
- mutex_unlock( &addr_mutex );
|
||||
-}
|
||||
diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
|
||||
index 4b7c8b45be7..921ceedbdb2 100644
|
||||
index d56259deff2..c602e6c9af0 100644
|
||||
--- a/dlls/ntdll/unixlib.h
|
||||
+++ b/dlls/ntdll/unixlib.h
|
||||
@@ -26,7 +26,7 @@
|
||||
struct _DISPATCHER_CONTEXT;
|
||||
|
||||
/* increment this when you change the function table */
|
||||
-#define NTDLL_UNIXLIB_VERSION 126
|
||||
+#define NTDLL_UNIXLIB_VERSION 127
|
||||
-#define NTDLL_UNIXLIB_VERSION 127
|
||||
+#define NTDLL_UNIXLIB_VERSION 128
|
||||
|
||||
struct unix_funcs
|
||||
{
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
From d43977918339fdda79e06331502254eaf456adab Mon Sep 17 00:00:00 2001
|
||||
From ce1c07228439555e3cdf5e68298fc7cf542a0ff5 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Mon, 31 Aug 2020 23:38:09 -0500
|
||||
Subject: [PATCH] ntdll: Reimplement the critical section fast path on top of
|
||||
@@ -84,10 +84,10 @@ index db68a466d8a..3a47679bb60 100644
|
||||
return ret;
|
||||
}
|
||||
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
|
||||
index 269788bcf91..5302b7f1638 100644
|
||||
index 2504311053b..173e611b018 100644
|
||||
--- a/dlls/ntdll/unix/loader.c
|
||||
+++ b/dlls/ntdll/unix/loader.c
|
||||
@@ -2151,9 +2151,6 @@ static struct unix_funcs unix_funcs =
|
||||
@@ -2148,9 +2148,6 @@ static struct unix_funcs unix_funcs =
|
||||
#endif
|
||||
DbgUiIssueRemoteBreakin,
|
||||
RtlGetSystemTimePrecise,
|
||||
@@ -233,15 +233,15 @@ index 6b8835bcba0..d142fa894b1 100644
|
||||
extern NTSTATUS CDECL fast_RtlAcquireSRWLockExclusive( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN;
|
||||
extern NTSTATUS CDECL fast_RtlTryAcquireSRWLockShared( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
|
||||
index 921ceedbdb2..d86501dfb5e 100644
|
||||
index c602e6c9af0..25a624c3e21 100644
|
||||
--- a/dlls/ntdll/unixlib.h
|
||||
+++ b/dlls/ntdll/unixlib.h
|
||||
@@ -26,7 +26,7 @@
|
||||
struct _DISPATCHER_CONTEXT;
|
||||
|
||||
/* increment this when you change the function table */
|
||||
-#define NTDLL_UNIXLIB_VERSION 127
|
||||
+#define NTDLL_UNIXLIB_VERSION 128
|
||||
-#define NTDLL_UNIXLIB_VERSION 128
|
||||
+#define NTDLL_UNIXLIB_VERSION 129
|
||||
|
||||
struct unix_funcs
|
||||
{
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From a90c16005d368581ea802f9fb2780fcb10d23566 Mon Sep 17 00:00:00 2001
|
||||
From cde4ea0e9ec950f3f2dd95b3f96cee83b948da3d Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Mon, 31 Aug 2020 23:55:29 -0500
|
||||
Subject: [PATCH] ntdll: Get rid of the direct futex path for condition
|
||||
@@ -81,18 +81,18 @@ index 3a47679bb60..6e68d07b81b 100644
|
||||
if (flags & RTL_CONDITION_VARIABLE_LOCKMODE_SHARED)
|
||||
RtlAcquireSRWLockShared( lock );
|
||||
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
|
||||
index 5302b7f1638..bb25f50581c 100644
|
||||
index 173e611b018..86cd373b21d 100644
|
||||
--- a/dlls/ntdll/unix/loader.c
|
||||
+++ b/dlls/ntdll/unix/loader.c
|
||||
@@ -2157,8 +2157,6 @@ static struct unix_funcs unix_funcs =
|
||||
@@ -2154,8 +2154,6 @@ static struct unix_funcs unix_funcs =
|
||||
fast_RtlAcquireSRWLockShared,
|
||||
fast_RtlReleaseSRWLockExclusive,
|
||||
fast_RtlReleaseSRWLockShared,
|
||||
- fast_RtlWakeConditionVariable,
|
||||
- fast_wait_cv,
|
||||
ntdll_atan,
|
||||
ntdll_ceil,
|
||||
ntdll_cos,
|
||||
load_so_dll,
|
||||
init_builtin_dll,
|
||||
init_unix_lib,
|
||||
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
|
||||
index 6a636d30f21..f0267c2df1c 100644
|
||||
--- a/dlls/ntdll/unix/sync.c
|
||||
@@ -203,15 +203,15 @@ index d142fa894b1..f192215f32a 100644
|
||||
extern NTSTATUS CDECL unwind_builtin_dll( ULONG type, struct _DISPATCHER_CONTEXT *dispatch,
|
||||
CONTEXT *context ) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
|
||||
index d86501dfb5e..5b56f1f2cf1 100644
|
||||
index 25a624c3e21..51771b1b5d6 100644
|
||||
--- a/dlls/ntdll/unixlib.h
|
||||
+++ b/dlls/ntdll/unixlib.h
|
||||
@@ -26,7 +26,7 @@
|
||||
struct _DISPATCHER_CONTEXT;
|
||||
|
||||
/* increment this when you change the function table */
|
||||
-#define NTDLL_UNIXLIB_VERSION 128
|
||||
+#define NTDLL_UNIXLIB_VERSION 129
|
||||
-#define NTDLL_UNIXLIB_VERSION 129
|
||||
+#define NTDLL_UNIXLIB_VERSION 130
|
||||
|
||||
struct unix_funcs
|
||||
{
|
||||
@@ -223,8 +223,8 @@ index d86501dfb5e..5b56f1f2cf1 100644
|
||||
- NTSTATUS (CDECL *fast_wait_cv)( RTL_CONDITION_VARIABLE *variable, const void *value,
|
||||
- const LARGE_INTEGER *timeout );
|
||||
|
||||
/* math functions */
|
||||
double (CDECL *atan)( double d );
|
||||
/* loader functions */
|
||||
NTSTATUS (CDECL *load_so_dll)( UNICODE_STRING *nt_name, void **module );
|
||||
--
|
||||
2.33.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From f032b2f1811e4a13a817b69b1f81fa9171e70502 Mon Sep 17 00:00:00 2001
|
||||
From 0c3f702c6a607cec5d8553b27ed9fd35f1864211 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Sun, 22 Nov 2020 20:51:10 -0600
|
||||
Subject: [PATCH] ntdll: Reimplement SRW locks on top of Win32 futexes.
|
||||
@@ -393,10 +393,10 @@ index 6e68d07b81b..e380f3e4e93 100644
|
||||
|
||||
/***********************************************************************
|
||||
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
|
||||
index bb25f50581c..a8dc128adcf 100644
|
||||
index 86cd373b21d..4d3b5593b96 100644
|
||||
--- a/dlls/ntdll/unix/loader.c
|
||||
+++ b/dlls/ntdll/unix/loader.c
|
||||
@@ -2151,12 +2151,6 @@ static struct unix_funcs unix_funcs =
|
||||
@@ -2148,12 +2148,6 @@ static struct unix_funcs unix_funcs =
|
||||
#endif
|
||||
DbgUiIssueRemoteBreakin,
|
||||
RtlGetSystemTimePrecise,
|
||||
@@ -406,9 +406,9 @@ index bb25f50581c..a8dc128adcf 100644
|
||||
- fast_RtlAcquireSRWLockShared,
|
||||
- fast_RtlReleaseSRWLockExclusive,
|
||||
- fast_RtlReleaseSRWLockShared,
|
||||
ntdll_atan,
|
||||
ntdll_ceil,
|
||||
ntdll_cos,
|
||||
load_so_dll,
|
||||
init_builtin_dll,
|
||||
init_unix_lib,
|
||||
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
|
||||
index f0267c2df1c..19a499ff2c9 100644
|
||||
--- a/dlls/ntdll/unix/sync.c
|
||||
@@ -764,15 +764,15 @@ index f192215f32a..fc52b7d210e 100644
|
||||
|
||||
extern NTSTATUS CDECL unwind_builtin_dll( ULONG type, struct _DISPATCHER_CONTEXT *dispatch,
|
||||
diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
|
||||
index 5b56f1f2cf1..a3eaf9a59d0 100644
|
||||
index 51771b1b5d6..7a63f6f1ec6 100644
|
||||
--- a/dlls/ntdll/unixlib.h
|
||||
+++ b/dlls/ntdll/unixlib.h
|
||||
@@ -26,7 +26,7 @@
|
||||
struct _DISPATCHER_CONTEXT;
|
||||
|
||||
/* increment this when you change the function table */
|
||||
-#define NTDLL_UNIXLIB_VERSION 129
|
||||
+#define NTDLL_UNIXLIB_VERSION 130
|
||||
-#define NTDLL_UNIXLIB_VERSION 130
|
||||
+#define NTDLL_UNIXLIB_VERSION 131
|
||||
|
||||
struct unix_funcs
|
||||
{
|
||||
@@ -788,9 +788,9 @@ index 5b56f1f2cf1..a3eaf9a59d0 100644
|
||||
- NTSTATUS (CDECL *fast_RtlReleaseSRWLockExclusive)( RTL_SRWLOCK *lock );
|
||||
- NTSTATUS (CDECL *fast_RtlReleaseSRWLockShared)( RTL_SRWLOCK *lock );
|
||||
-
|
||||
/* math functions */
|
||||
double (CDECL *atan)( double d );
|
||||
double (CDECL *ceil)( double d );
|
||||
/* loader functions */
|
||||
NTSTATUS (CDECL *load_so_dll)( UNICODE_STRING *nt_name, void **module );
|
||||
void (CDECL *init_builtin_dll)( void *module );
|
||||
--
|
||||
2.33.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From f0c0ce75dc3ad0f1ea033bab64ed22cec0d5ca93 Mon Sep 17 00:00:00 2001
|
||||
From 4b28fdca0eed2a8307b7f0acb26748713a87181a Mon Sep 17 00:00:00 2001
|
||||
From: Alex Henrie <alexhenrie24@gmail.com>
|
||||
Date: Tue, 29 Dec 2015 00:48:02 -0700
|
||||
Subject: [PATCH] mountmgr.sys: Do a device check before returning a default
|
||||
@@ -10,20 +10,20 @@ Fixes https://bugs.winehq.org/show_bug.cgi?id=39793
|
||||
1 file changed, 24 insertions(+)
|
||||
|
||||
diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c
|
||||
index 37ba33840b5..c8af6856043 100644
|
||||
index 4dfe0c62916..f196ca9803f 100644
|
||||
--- a/dlls/mountmgr.sys/device.c
|
||||
+++ b/dlls/mountmgr.sys/device.c
|
||||
@@ -27,6 +27,9 @@
|
||||
#include <stdio.h>
|
||||
@@ -28,6 +28,9 @@
|
||||
#include <stdlib.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
+#ifdef HAVE_TERMIOS_H
|
||||
+# include <termios.h>
|
||||
+#endif
|
||||
#include <sys/time.h>
|
||||
#include <sys/stat.h>
|
||||
#ifdef HAVE_SYS_IOCTL_H
|
||||
# include <sys/ioctl.h>
|
||||
@@ -1970,6 +1973,27 @@ static BOOL create_port_device( DRIVER_OBJECT *driver, int n, const char *unix_p
|
||||
@@ -2241,6 +2244,27 @@ static BOOL create_port_device( DRIVER_OBJECT *driver, int n, const char *unix_p
|
||||
|
||||
sprintfW( dos_name, dos_name_format, n );
|
||||
|
||||
@@ -52,5 +52,5 @@ index 37ba33840b5..c8af6856043 100644
|
||||
unlink( dosdevices_path );
|
||||
if (symlink( unix_path, dosdevices_path ) != 0)
|
||||
--
|
||||
2.28.0
|
||||
2.33.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From dd7071e971c22e8100510f51763b0efa4e03eb33 Mon Sep 17 00:00:00 2001
|
||||
From c16f89f347e49c107a46dda6d3b9bb811ccceb47 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Wesie <awesie@gmail.com>
|
||||
Date: Fri, 24 Apr 2020 14:55:14 -0500
|
||||
Subject: [PATCH] ntdll: Track if a WRITECOPY page has been modified.
|
||||
@@ -12,10 +12,10 @@ Signed-off-by: Andrew Wesie <awesie@gmail.com>
|
||||
1 file changed, 19 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
|
||||
index 312448de4a0..37264c91689 100644
|
||||
index d727ff341df..d39f73c8d85 100644
|
||||
--- a/dlls/ntdll/unix/virtual.c
|
||||
+++ b/dlls/ntdll/unix/virtual.c
|
||||
@@ -141,6 +141,7 @@ struct file_view
|
||||
@@ -125,6 +125,7 @@ struct file_view
|
||||
#define VPROT_GUARD 0x10
|
||||
#define VPROT_COMMITTED 0x20
|
||||
#define VPROT_WRITEWATCH 0x40
|
||||
@@ -23,7 +23,7 @@ index 312448de4a0..37264c91689 100644
|
||||
/* per-mapping protection flags */
|
||||
#define VPROT_SYSTEM 0x0200 /* system view (underlying mmap not under our control) */
|
||||
#define VPROT_NATIVE 0x0400
|
||||
@@ -1136,7 +1137,7 @@ static int get_unix_prot( BYTE vprot )
|
||||
@@ -1120,7 +1121,7 @@ static int get_unix_prot( BYTE vprot )
|
||||
#if defined(__i386__)
|
||||
if (vprot & VPROT_WRITECOPY)
|
||||
{
|
||||
@@ -32,7 +32,7 @@ index 312448de4a0..37264c91689 100644
|
||||
prot = (prot & ~PROT_WRITE) | PROT_READ;
|
||||
else
|
||||
prot |= PROT_WRITE | PROT_READ;
|
||||
@@ -1573,7 +1574,11 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz
|
||||
@@ -1557,7 +1558,11 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz
|
||||
*/
|
||||
static DWORD get_win32_prot( BYTE vprot, unsigned int map_prot )
|
||||
{
|
||||
@@ -45,7 +45,7 @@ index 312448de4a0..37264c91689 100644
|
||||
if (vprot & VPROT_GUARD) ret |= PAGE_GUARD;
|
||||
if (map_prot & SEC_NOCACHE) ret |= PAGE_NOCACHE;
|
||||
return ret;
|
||||
@@ -1684,12 +1689,21 @@ static BOOL set_vprot( struct file_view *view, void *base, size_t size, BYTE vpr
|
||||
@@ -1668,12 +1673,21 @@ static BOOL set_vprot( struct file_view *view, void *base, size_t size, BYTE vpr
|
||||
if (view->protect & VPROT_WRITEWATCH)
|
||||
{
|
||||
/* each page may need different protections depending on write watch flag */
|
||||
@@ -69,7 +69,7 @@ index 312448de4a0..37264c91689 100644
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -3449,7 +3463,7 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack )
|
||||
@@ -3433,7 +3447,7 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack )
|
||||
}
|
||||
if (vprot & VPROT_WRITECOPY)
|
||||
{
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From e54feda95d0e88080d118d2079c62f091dffe3e3 Mon Sep 17 00:00:00 2001
|
||||
From a4d9cd0e60613fac787bb65e6a22fb1b24e19179 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Sat, 22 May 2021 17:38:50 -0500
|
||||
Subject: [PATCH] wined3d: Make depth bounds test into a proper state.
|
||||
@@ -12,10 +12,10 @@ Subject: [PATCH] wined3d: Make depth bounds test into a proper state.
|
||||
5 files changed, 98 insertions(+), 31 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 1b4ed519260..33a8519a613 100644
|
||||
index bcd26b6fbb1..88f47e4437c 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -145,6 +145,7 @@ enum wined3d_cs_op
|
||||
@@ -152,6 +152,7 @@ enum wined3d_cs_op
|
||||
WINED3D_CS_OP_SET_RENDER_STATE,
|
||||
WINED3D_CS_OP_SET_TEXTURE_STATE,
|
||||
WINED3D_CS_OP_SET_SAMPLER_STATE,
|
||||
@@ -23,7 +23,7 @@ index 1b4ed519260..33a8519a613 100644
|
||||
WINED3D_CS_OP_SET_TRANSFORM,
|
||||
WINED3D_CS_OP_SET_CLIP_PLANE,
|
||||
WINED3D_CS_OP_SET_COLOR_KEY,
|
||||
@@ -395,6 +396,12 @@ struct wined3d_cs_set_sampler_state
|
||||
@@ -402,6 +403,12 @@ struct wined3d_cs_set_sampler_state
|
||||
DWORD value;
|
||||
};
|
||||
|
||||
@@ -36,7 +36,7 @@ index 1b4ed519260..33a8519a613 100644
|
||||
struct wined3d_cs_set_transform
|
||||
{
|
||||
enum wined3d_cs_op opcode;
|
||||
@@ -619,6 +626,7 @@ static const char *debug_cs_op(enum wined3d_cs_op op)
|
||||
@@ -626,6 +633,7 @@ static const char *debug_cs_op(enum wined3d_cs_op op)
|
||||
WINED3D_TO_STR(WINED3D_CS_OP_SET_RENDER_STATE);
|
||||
WINED3D_TO_STR(WINED3D_CS_OP_SET_TEXTURE_STATE);
|
||||
WINED3D_TO_STR(WINED3D_CS_OP_SET_SAMPLER_STATE);
|
||||
@@ -44,7 +44,7 @@ index 1b4ed519260..33a8519a613 100644
|
||||
WINED3D_TO_STR(WINED3D_CS_OP_SET_TRANSFORM);
|
||||
WINED3D_TO_STR(WINED3D_CS_OP_SET_CLIP_PLANE);
|
||||
WINED3D_TO_STR(WINED3D_CS_OP_SET_COLOR_KEY);
|
||||
@@ -1939,6 +1947,28 @@ void wined3d_device_context_emit_set_sampler_state(struct wined3d_device_context
|
||||
@@ -1946,6 +1954,28 @@ void wined3d_device_context_emit_set_sampler_state(struct wined3d_device_context
|
||||
wined3d_device_context_submit(context, WINED3D_CS_QUEUE_DEFAULT);
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ index 1b4ed519260..33a8519a613 100644
|
||||
static void wined3d_cs_exec_set_transform(struct wined3d_cs *cs, const void *data)
|
||||
{
|
||||
const struct wined3d_cs_set_transform *op = data;
|
||||
@@ -2963,6 +2993,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
@@ -2993,6 +3023,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_SET_RENDER_STATE */ wined3d_cs_exec_set_render_state,
|
||||
/* WINED3D_CS_OP_SET_TEXTURE_STATE */ wined3d_cs_exec_set_texture_state,
|
||||
/* WINED3D_CS_OP_SET_SAMPLER_STATE */ wined3d_cs_exec_set_sampler_state,
|
||||
@@ -82,11 +82,11 @@ index 1b4ed519260..33a8519a613 100644
|
||||
/* WINED3D_CS_OP_SET_CLIP_PLANE */ wined3d_cs_exec_set_clip_plane,
|
||||
/* WINED3D_CS_OP_SET_COLOR_KEY */ wined3d_cs_exec_set_color_key,
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 436c4dfe854..b0c7579b4ed 100644
|
||||
index c5de58c29c9..b5a6bde6602 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -1923,6 +1923,14 @@ out:
|
||||
wined3d_mutex_unlock();
|
||||
@@ -1925,6 +1925,14 @@ out:
|
||||
wined3d_device_context_unlock(context);
|
||||
}
|
||||
|
||||
+static void wined3d_device_context_set_depth_bounds(struct wined3d_device_context *context,
|
||||
@@ -100,7 +100,7 @@ index 436c4dfe854..b0c7579b4ed 100644
|
||||
void CDECL wined3d_device_context_set_viewports(struct wined3d_device_context *context, unsigned int viewport_count,
|
||||
const struct wined3d_viewport *viewports)
|
||||
{
|
||||
@@ -3612,7 +3620,8 @@ static void wined3d_device_set_texture(struct wined3d_device *device,
|
||||
@@ -3645,7 +3653,8 @@ static void wined3d_device_set_texture(struct wined3d_device *device,
|
||||
void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
|
||||
struct wined3d_stateblock *stateblock)
|
||||
{
|
||||
@@ -110,7 +110,7 @@ index 436c4dfe854..b0c7579b4ed 100644
|
||||
const struct wined3d_stateblock_state *state = &stateblock->stateblock_state;
|
||||
const struct wined3d_saved_states *changed = &stateblock->changed;
|
||||
const unsigned int word_bit_count = sizeof(DWORD) * CHAR_BIT;
|
||||
@@ -3718,7 +3727,7 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
|
||||
@@ -3751,7 +3760,7 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
|
||||
case WINED3D_RS_COLORWRITEENABLE1:
|
||||
case WINED3D_RS_COLORWRITEENABLE2:
|
||||
case WINED3D_RS_COLORWRITEENABLE3:
|
||||
@@ -119,7 +119,7 @@ index 436c4dfe854..b0c7579b4ed 100644
|
||||
break;
|
||||
|
||||
case WINED3D_RS_BACK_STENCILFAIL:
|
||||
@@ -3737,7 +3746,7 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
|
||||
@@ -3770,7 +3779,7 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
|
||||
case WINED3D_RS_ZENABLE:
|
||||
case WINED3D_RS_ZFUNC:
|
||||
case WINED3D_RS_ZWRITEENABLE:
|
||||
@@ -128,7 +128,7 @@ index 436c4dfe854..b0c7579b4ed 100644
|
||||
break;
|
||||
|
||||
case WINED3D_RS_FILLMODE:
|
||||
@@ -3746,9 +3755,15 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
|
||||
@@ -3779,9 +3788,15 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
|
||||
case WINED3D_RS_DEPTHBIAS:
|
||||
case WINED3D_RS_SCISSORTESTENABLE:
|
||||
case WINED3D_RS_ANTIALIASEDLINEENABLE:
|
||||
@@ -145,7 +145,7 @@ index 436c4dfe854..b0c7579b4ed 100644
|
||||
default:
|
||||
wined3d_device_set_render_state(device, idx, state->rs[idx]);
|
||||
break;
|
||||
@@ -3937,6 +3952,20 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
|
||||
@@ -3970,6 +3985,20 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -167,10 +167,10 @@ index 436c4dfe854..b0c7579b4ed 100644
|
||||
{
|
||||
map = changed->textureState[i];
|
||||
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
||||
index 8316269afcf..6cd4ff30458 100644
|
||||
index fd2ade572c8..c873841ffb6 100644
|
||||
--- a/dlls/wined3d/state.c
|
||||
+++ b/dlls/wined3d/state.c
|
||||
@@ -2040,42 +2040,31 @@ static void state_tessellation(struct wined3d_context *context, const struct win
|
||||
@@ -2046,42 +2046,31 @@ static void state_tessellation(struct wined3d_context *context, const struct win
|
||||
state->render_states[WINED3D_RS_ENABLEADAPTIVETESSELLATION]);
|
||||
}
|
||||
|
||||
@@ -227,7 +227,7 @@ index 8316269afcf..6cd4ff30458 100644
|
||||
}
|
||||
|
||||
static void state_wrapu(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
|
||||
@@ -4685,6 +4674,8 @@ const struct wined3d_state_entry_template misc_state_template_gl[] =
|
||||
@@ -4691,6 +4680,8 @@ const struct wined3d_state_entry_template misc_state_template_gl[] =
|
||||
{ STATE_DEPTH_STENCIL, { STATE_DEPTH_STENCIL, depth_stencil_2s }, EXT_STENCIL_TWO_SIDE },
|
||||
{ STATE_DEPTH_STENCIL, { STATE_DEPTH_STENCIL, depth_stencil }, WINED3D_GL_EXT_NONE },
|
||||
{ STATE_STENCIL_REF, { STATE_DEPTH_STENCIL, NULL }, WINED3D_GL_EXT_NONE },
|
||||
@@ -236,7 +236,7 @@ index 8316269afcf..6cd4ff30458 100644
|
||||
{ STATE_STREAMSRC, { STATE_STREAMSRC, streamsrc }, WINED3D_GL_EXT_NONE },
|
||||
{ STATE_VDECL, { STATE_VDECL, vdecl_miscpart }, WINED3D_GL_EXT_NONE },
|
||||
{ STATE_RASTERIZER, { STATE_RASTERIZER, rasterizer_cc }, ARB_CLIP_CONTROL },
|
||||
@@ -4798,7 +4789,6 @@ const struct wined3d_state_entry_template misc_state_template_gl[] =
|
||||
@@ -4804,7 +4795,6 @@ const struct wined3d_state_entry_template misc_state_template_gl[] =
|
||||
{ STATE_RENDER(WINED3D_RS_ADAPTIVETESS_Y), { STATE_RENDER(WINED3D_RS_ENABLEADAPTIVETESSELLATION),NULL }, WINED3D_GL_EXT_NONE },
|
||||
{ STATE_RENDER(WINED3D_RS_ADAPTIVETESS_Z), { STATE_RENDER(WINED3D_RS_ENABLEADAPTIVETESSELLATION),NULL }, WINED3D_GL_EXT_NONE },
|
||||
{ STATE_RENDER(WINED3D_RS_ADAPTIVETESS_W), { STATE_RENDER(WINED3D_RS_ENABLEADAPTIVETESSELLATION),NULL }, WINED3D_GL_EXT_NONE },
|
||||
@@ -245,7 +245,7 @@ index 8316269afcf..6cd4ff30458 100644
|
||||
{ STATE_RENDER(WINED3D_RS_MULTISAMPLEANTIALIAS), { STATE_RENDER(WINED3D_RS_MULTISAMPLEANTIALIAS), state_msaa }, ARB_MULTISAMPLE },
|
||||
{ STATE_RENDER(WINED3D_RS_MULTISAMPLEANTIALIAS), { STATE_RENDER(WINED3D_RS_MULTISAMPLEANTIALIAS), state_msaa_w }, WINED3D_GL_EXT_NONE },
|
||||
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
|
||||
index 47718c9f710..39d39396a6e 100644
|
||||
index 29326668e07..84cdea02991 100644
|
||||
--- a/dlls/wined3d/utils.c
|
||||
+++ b/dlls/wined3d/utils.c
|
||||
@@ -5323,6 +5323,8 @@ const char *debug_d3dstate(DWORD state)
|
||||
@@ -258,10 +258,10 @@ index 47718c9f710..39d39396a6e 100644
|
||||
return wine_dbg_sprintf("UNKNOWN_STATE(%#x)", state);
|
||||
}
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 56c90ba6606..e7ee1c1478a 100644
|
||||
index aa8974366a6..735dbff805e 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -1854,7 +1854,10 @@ void dispatch_compute(struct wined3d_device *device, const struct wined3d_state
|
||||
@@ -1861,7 +1861,10 @@ void dispatch_compute(struct wined3d_device *device, const struct wined3d_state
|
||||
#define STATE_STENCIL_REF (STATE_DEPTH_STENCIL + 1)
|
||||
#define STATE_IS_STENCIL_REF(a) ((a) == STATE_STENCIL_REF)
|
||||
|
||||
@@ -273,7 +273,7 @@ index 56c90ba6606..e7ee1c1478a 100644
|
||||
|
||||
#define STATE_COMPUTE_SHADER (STATE_COMPUTE_OFFSET)
|
||||
#define STATE_IS_COMPUTE_SHADER(a) ((a) == STATE_COMPUTE_SHADER)
|
||||
@@ -3703,6 +3706,13 @@ struct wined3d_light_state
|
||||
@@ -3714,6 +3717,13 @@ struct wined3d_light_state
|
||||
const struct wined3d_light_info *lights[WINED3D_MAX_ACTIVE_LIGHTS];
|
||||
};
|
||||
|
||||
@@ -287,7 +287,7 @@ index 56c90ba6606..e7ee1c1478a 100644
|
||||
#define WINED3D_STATE_NO_REF 0x00000001
|
||||
#define WINED3D_STATE_INIT_DEFAULT 0x00000002
|
||||
|
||||
@@ -3757,8 +3767,11 @@ struct wined3d_state
|
||||
@@ -3768,8 +3778,11 @@ struct wined3d_state
|
||||
struct wined3d_blend_state *blend_state;
|
||||
struct wined3d_color blend_factor;
|
||||
unsigned int sample_mask;
|
||||
@@ -299,7 +299,7 @@ index 56c90ba6606..e7ee1c1478a 100644
|
||||
struct wined3d_rasterizer_state *rasterizer_state;
|
||||
};
|
||||
|
||||
@@ -4878,6 +4891,8 @@ void wined3d_device_context_emit_set_clip_plane(struct wined3d_device_context *c
|
||||
@@ -4914,6 +4927,8 @@ void wined3d_device_context_emit_set_clip_plane(struct wined3d_device_context *c
|
||||
void wined3d_device_context_emit_set_constant_buffers(struct wined3d_device_context *context,
|
||||
enum wined3d_shader_type type, unsigned int start_idx, unsigned int count,
|
||||
const struct wined3d_constant_buffer_state *buffers) DECLSPEC_HIDDEN;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From c7cbd42a6085d03a94ee4ac9b77834b3725bf033 Mon Sep 17 00:00:00 2001
|
||||
From 6c3c8c98a9f28aa2d51626fde58efcb78cf08ab1 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Sat, 22 May 2021 18:11:07 -0500
|
||||
Subject: [PATCH] nvapi: Implement NvAPI_D3D11_SetDepthBoundsTest().
|
||||
@@ -117,11 +117,11 @@ index c8b66ac2fa3..b8b4750203a 100644
|
||||
/* d3d9 tests */
|
||||
wc.lpfnWndProc = DefWindowProcA;
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index b0c7579b4ed..8c61c530812 100644
|
||||
index b5a6bde6602..607af1514dc 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -1923,7 +1923,7 @@ out:
|
||||
wined3d_mutex_unlock();
|
||||
@@ -1925,7 +1925,7 @@ out:
|
||||
wined3d_device_context_unlock(context);
|
||||
}
|
||||
|
||||
-static void wined3d_device_context_set_depth_bounds(struct wined3d_device_context *context,
|
||||
@@ -130,7 +130,7 @@ index b0c7579b4ed..8c61c530812 100644
|
||||
{
|
||||
TRACE("context %p, enable %d, min %.8e, max %.8e.\n", context, enable, min, max);
|
||||
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
|
||||
index 1bce4def265..802194dcbec 100644
|
||||
index 48bea5980ff..81ac821c1c6 100644
|
||||
--- a/dlls/wined3d/wined3d.spec
|
||||
+++ b/dlls/wined3d/wined3d.spec
|
||||
@@ -124,6 +124,7 @@
|
||||
@@ -142,7 +142,7 @@ index 1bce4def265..802194dcbec 100644
|
||||
@ cdecl wined3d_device_context_set_depth_stencil_view(ptr ptr)
|
||||
@ cdecl wined3d_device_context_set_index_buffer(ptr ptr long long)
|
||||
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
|
||||
index 7be893b8f21..689fc55fdfe 100644
|
||||
index 7a6588ea4f4..d90569238fc 100644
|
||||
--- a/include/wine/wined3d.h
|
||||
+++ b/include/wine/wined3d.h
|
||||
@@ -2513,6 +2513,8 @@ void __cdecl wined3d_device_context_set_blend_state(struct wined3d_device_contex
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user