Rebase against ec8485ec10e3c27b89ec5f1289bc8a3cdad5f3f6.

This commit is contained in:
Sebastian Lackner 2017-04-02 09:51:02 +02:00
parent 55ab42ece0
commit e3753add9b
9 changed files with 189 additions and 268 deletions

View File

@ -1,17 +1,30 @@
From 16ca16e67d52e1713bc8d5a661a9213fe0ac4913 Mon Sep 17 00:00:00 2001
From e02790b9f90a8f6f65e50543de94861850d90177 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 15 Jan 2016 13:01:15 +0100
Subject: kernelbase: Add dll and add stub for QuirkIsEnabled.
---
dlls/kernelbase/Makefile.in | 3 +
dlls/kernelbase/kernelbase.spec | 1127 ++++++++++++++++++++++++++++++++++++++-
dlls/kernelbase/misc.c | 37 ++
dlls/shlwapi/shlwapi.spec | 2 +-
tools/make_specfiles | 1 +
5 files changed, 1153 insertions(+), 17 deletions(-)
.../api-ms-win-core-quirks-l1-1-0.spec | 2 +-
dlls/kernelbase/Makefile.in | 3 +
dlls/kernelbase/kernelbase.spec | 1127 +++++++++++++++++++-
dlls/kernelbase/misc.c | 37 +
dlls/shlwapi/shlwapi.spec | 2 +-
tools/make_specfiles | 1 +
6 files changed, 1154 insertions(+), 18 deletions(-)
create mode 100644 dlls/kernelbase/misc.c
diff --git a/dlls/api-ms-win-core-quirks-l1-1-0/api-ms-win-core-quirks-l1-1-0.spec b/dlls/api-ms-win-core-quirks-l1-1-0/api-ms-win-core-quirks-l1-1-0.spec
index 761120f6f6..54ce373b96 100644
--- a/dlls/api-ms-win-core-quirks-l1-1-0/api-ms-win-core-quirks-l1-1-0.spec
+++ b/dlls/api-ms-win-core-quirks-l1-1-0/api-ms-win-core-quirks-l1-1-0.spec
@@ -1,6 +1,6 @@
@ stub QuirkGetData
@ stub QuirkGetData2
-@ stub QuirkIsEnabled
+@ stdcall QuirkIsEnabled(ptr) kernelbase.QuirkIsEnabled
@ stub QuirkIsEnabled2
@ stub QuirkIsEnabled3
@ stub QuirkIsEnabledForPackage
diff --git a/dlls/kernelbase/Makefile.in b/dlls/kernelbase/Makefile.in
index b9caed090b..2beb34bafd 100644
--- a/dlls/kernelbase/Makefile.in
@ -1770,10 +1783,10 @@ index 6b6ead2696..7c2a9d117e 100644
422 stdcall -noname SHGlobalCounterCreateNamedA(str long)
423 stdcall -noname SHGlobalCounterCreateNamedW(wstr long)
diff --git a/tools/make_specfiles b/tools/make_specfiles
index 404af769d2..5de2d5cec9 100755
index bd0314ff15..770e2f6c21 100755
--- a/tools/make_specfiles
+++ b/tools/make_specfiles
@@ -249,6 +249,7 @@ my @dll_groups =
@@ -250,6 +250,7 @@ my @dll_groups =
[
"kernel32",
"advapi32",

View File

@ -1,65 +0,0 @@
From 97744349e9a23aa024910d87a89bd94652db4914 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 15 Jan 2016 13:07:09 +0100
Subject: api-ms-win-core-quirks-l1-1-0: Add dll.
---
configure.ac | 1 +
dlls/api-ms-win-core-quirks-l1-1-0/Makefile.in | 1 +
.../api-ms-win-core-quirks-l1-1-0.spec | 8 ++++++++
tools/make_specfiles | 4 ++++
4 files changed, 14 insertions(+)
create mode 100644 dlls/api-ms-win-core-quirks-l1-1-0/Makefile.in
create mode 100644 dlls/api-ms-win-core-quirks-l1-1-0/api-ms-win-core-quirks-l1-1-0.spec
diff --git a/configure.ac b/configure.ac
index 84316f9..e826dd0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2720,6 +2720,7 @@ WINE_CONFIG_DLL(api-ms-win-core-processthreads-l1-1-2)
WINE_CONFIG_DLL(api-ms-win-core-profile-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-core-psapi-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-core-psapi-obsolete-l1-1-0)
+WINE_CONFIG_DLL(api-ms-win-core-quirks-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-core-realtime-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-core-registry-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-core-registryuserspecific-l1-1-0)
diff --git a/dlls/api-ms-win-core-quirks-l1-1-0/Makefile.in b/dlls/api-ms-win-core-quirks-l1-1-0/Makefile.in
new file mode 100644
index 0000000..9486e8b
--- /dev/null
+++ b/dlls/api-ms-win-core-quirks-l1-1-0/Makefile.in
@@ -0,0 +1 @@
+MODULE = api-ms-win-core-quirks-l1-1-0.dll
diff --git a/dlls/api-ms-win-core-quirks-l1-1-0/api-ms-win-core-quirks-l1-1-0.spec b/dlls/api-ms-win-core-quirks-l1-1-0/api-ms-win-core-quirks-l1-1-0.spec
new file mode 100644
index 0000000..54ce373
--- /dev/null
+++ b/dlls/api-ms-win-core-quirks-l1-1-0/api-ms-win-core-quirks-l1-1-0.spec
@@ -0,0 +1,8 @@
+@ stub QuirkGetData
+@ stub QuirkGetData2
+@ stdcall QuirkIsEnabled(ptr) kernelbase.QuirkIsEnabled
+@ stub QuirkIsEnabled2
+@ stub QuirkIsEnabled3
+@ stub QuirkIsEnabledForPackage
+@ stub QuirkIsEnabledForPackage2
+@ stub QuirkIsEnabledForProcess
diff --git a/tools/make_specfiles b/tools/make_specfiles
index eba8548..609f7a0 100755
--- a/tools/make_specfiles
+++ b/tools/make_specfiles
@@ -239,6 +239,10 @@ my @dll_groups =
"api-ms-win-core-bem-l1-1-0",
],
[
+ "kernelbase",
+ "api-ms-win-core-quirks-l1-1-0",
+ ],
+ [
"ole32",
"api-ms-win-downlevel-ole32-l1-1-0",
"api-ms-win-core-com-l1-1-0",
--
2.9.0

View File

@ -1,17 +1,17 @@
From aefdbc0fabb66052164ecd45fecfb0b947a130ac Mon Sep 17 00:00:00 2001
From b9d73e9b13df905bfab65d07babae2f40469c405 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: uiautomationcore: Add dll and stub some functions.
---
dlls/uiautomationcore/Makefile.in | 1 +
dlls/uiautomationcore/uia_main.c | 89 ++++++++++++++++++++++++++++-
dlls/uiautomationcore/uiautomationcore.spec | 14 +++--
include/uiautomationcoreapi.h | 16 ++++++
4 files changed, 114 insertions(+), 6 deletions(-)
dlls/uiautomationcore/uia_main.c | 65 +++++++++++++++++++++++++----
dlls/uiautomationcore/uiautomationcore.spec | 8 +++-
include/uiautomationcoreapi.h | 10 +++--
4 files changed, 72 insertions(+), 12 deletions(-)
diff --git a/dlls/uiautomationcore/Makefile.in b/dlls/uiautomationcore/Makefile.in
index 78d6254a015..029fc2e4995 100644
index 78d6254a01..029fc2e499 100644
--- a/dlls/uiautomationcore/Makefile.in
+++ b/dlls/uiautomationcore/Makefile.in
@@ -1,4 +1,5 @@
@ -21,7 +21,7 @@ index 78d6254a015..029fc2e4995 100644
C_SRCS = \
uia_main.c
diff --git a/dlls/uiautomationcore/uia_main.c b/dlls/uiautomationcore/uia_main.c
index 994d8e6080b..f1429faeff9 100644
index af986810f5..0f1e84450c 100644
--- a/dlls/uiautomationcore/uia_main.c
+++ b/dlls/uiautomationcore/uia_main.c
@@ -1,4 +1,5 @@
@ -30,20 +30,15 @@ index 994d8e6080b..f1429faeff9 100644
* Copyright 2017 Jacek Caban for CodeWeavers
*
* This library is free software; you can redistribute it and/or
@@ -16,7 +17,11 @@
@@ -16,6 +17,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include "uiautomationcore.h"
+#include <stdarg.h>
+#include "windef.h"
+#include "winbase.h"
+#define COBJMACROS
+#include "uiautomationcoreapi.h"
#include "uiautomation.h"
#include "wine/debug.h"
@@ -37,11 +42,91 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, void *lpv)
@@ -37,12 +39,61 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, void *lpv)
return TRUE;
}
@ -87,37 +82,6 @@ index 994d8e6080b..f1429faeff9 100644
+static IUnknown dummy = { &dummy_Vtbl };
+
+/***********************************************************************
+ * UiaLookupId (uiautomationcore.@)
+ */
+int WINAPI UiaLookupId(AutomationIdentifierType type, const GUID *guid)
+{
+ FIXME("(%d, %s)\n", type, debugstr_guid(guid));
+ return 1;
+}
+
+/***********************************************************************
+ * UiaGetReservedMixedAttributeValue (uiautomationcore.@)
+ */
+HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
+{
+ FIXME("(%p): stub\n", value);
+
+ *value = &dummy;
+ return S_OK;
+}
+
+/***********************************************************************
+ * UiaGetReservedNotSupportedValue (uiautomationcore.@)
+ */
+HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value)
+{
+ FIXME("(%p): stub\n", value);
+
+ *value = &dummy;
+ return S_OK;
+}
+
+/***********************************************************************
+ * UiaReturnRawElementProvider (uiautomationcore.@)
+ */
+LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wparam, LPARAM lparam,
@ -136,11 +100,44 @@ index 994d8e6080b..f1429faeff9 100644
+ FIXME("(): stub\n");
return FALSE;
}
@@ -51,8 +102,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;
}
@@ -61,16 +112,16 @@ 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;
}
/***********************************************************************
* UiaLookupId (uiautomationcore.@)
*/
-int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid)
+int WINAPI UiaLookupId(AutomationIdentifierType type, const GUID *guid)
{
- FIXME("(%d, %s) stub!\n", type, debugstr_guid(guid));
+ FIXME("(%d, %s): stub!\n", type, debugstr_guid(guid));
return 1;
}
diff --git a/dlls/uiautomationcore/uiautomationcore.spec b/dlls/uiautomationcore/uiautomationcore.spec
index 3026001b6b7..221711c41d2 100644
index ddf84f63c0..221711c41d 100644
--- a/dlls/uiautomationcore/uiautomationcore.spec
+++ b/dlls/uiautomationcore/uiautomationcore.spec
@@ -53,14 +53,16 @@
@@ -53,6 +53,8 @@
@ stub TransformPattern_Rotate
@ stub UiaAddEvent
@ stdcall UiaClientsAreListening()
@ -149,26 +146,14 @@ index 3026001b6b7..221711c41d2 100644
@ stub UiaEventAddWindow
@ stub UiaEventRemoveWindow
@ stub UiaFind
@ stub UiaGetErrorDescription
@ stub UiaGetPatternProvider
@ stub UiaGetPropertyValue
-@ stub UiaGetReservedMixedAttributeValue
-@ stub UiaGetReservedNotSupportedValue
+@ stdcall UiaGetReservedMixedAttributeValue(ptr)
+@ stdcall UiaGetReservedNotSupportedValue(ptr)
@ stub UiaGetRootNode
@ stub UiaGetRuntimeId
@ stub UiaGetUpdatedCache
@@ -69,7 +71,8 @@
@@ -69,6 +71,7 @@
@ stub UiaHUiaNodeFromVariant
@ stub UiaHasServerSideProvider
@ stub UiaHostProviderFromHwnd
-@ stub UiaLookupId
+@ stub UiaIAccessibleFromProvider
+@ stdcall UiaLookupId(long ptr)
@ stdcall UiaLookupId(long ptr)
@ stub UiaNavigate
@ stub UiaNodeFromFocus
@ stub UiaNodeFromHandle
@@ -77,13 +80,16 @@
@ stub UiaNodeFromProvider
@ stub UiaNodeRelease
@ -188,42 +173,32 @@ index 3026001b6b7..221711c41d2 100644
@ stub UiaTextRangeRelease
@ stub ValuePattern_SetValue
diff --git a/include/uiautomationcoreapi.h b/include/uiautomationcoreapi.h
index 340f5005db4..b9107ceb792 100644
index fbe47ad184..8d13a16c53 100644
--- a/include/uiautomationcoreapi.h
+++ b/include/uiautomationcoreapi.h
@@ -19,6 +19,8 @@
#ifndef _INC_UIAUTOMATIONCOREAPI
#define _INC_UIAUTOMATIONCOREAPI
+#include "uiautomationcore.h"
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -34,6 +36,16 @@ extern "C" {
#define UiaAppendRuntimeId 3
#define UiaRootObjectId -25
@@ -39,20 +39,22 @@ DECLARE_HANDLE(HUIAPATTERNOBJECT);
DECLARE_HANDLE(HUIATEXTRANGE);
DECLARE_HANDLE(HUIAEVENT);
-enum AutomationIdentifierType
+typedef enum AutomationIdentifierType
+{
+ AutomationIdentifierType_Property,
+ AutomationIdentifierType_Pattern,
+ AutomationIdentifierType_Event,
+ AutomationIdentifierType_ControlType,
{
AutomationIdentifierType_Property,
AutomationIdentifierType_Pattern,
AutomationIdentifierType_Event,
AutomationIdentifierType_ControlType,
- AutomationIdentifierType_TextAttribute
-};
+ AutomationIdentifierType_TextAttribute,
+ AutomationIdentifierType_LandmarkType,
+} AutomationIdentifierType;
+
DECLARE_HANDLE(HUIANODE);
DECLARE_HANDLE(HUIAPATTERNOBJECT);
DECLARE_HANDLE(HUIATEXTRANGE);
@@ -41,6 +53,10 @@ DECLARE_HANDLE(HUIAEVENT);
HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value);
HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value);
-int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid);
+int WINAPI UiaLookupId(AutomationIdentifierType type, const GUID *guid);
BOOL WINAPI UiaPatternRelease(HUIAPATTERNOBJECT hobj);
BOOL WINAPI UiaTextRangeRelease(HUIATEXTRANGE hobj);
+int WINAPI UiaLookupId(AutomationIdentifierType type, const GUID *guid);
+HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value);
+HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value);
+LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wparam, LPARAM lparam, IRawElementProviderSimple *provider);
#ifdef __cplusplus

View File

@ -1,4 +1,4 @@
From 32d3c69ae680a7b6f71e203ca33f882eb0b69c47 Mon Sep 17 00:00:00 2001
From a469c846c5e2abc7a0a4c478b33aeaa83e53f6bb Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 15 Aug 2014 23:06:06 +0200
Subject: ntdll: Move logic to check for broken pipe into a separate function.
@ -8,10 +8,10 @@ Subject: ntdll: Move logic to check for broken pipe into a separate function.
1 file changed, 39 insertions(+), 36 deletions(-)
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index a20c3e8..8de4b98 100644
index 41dd1ae877..03864b7239 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -411,6 +411,31 @@ NTSTATUS FILE_GetNtStatus(void)
@@ -490,6 +490,31 @@ NTSTATUS FILE_GetNtStatus(void)
}
}
@ -43,9 +43,9 @@ index a20c3e8..8de4b98 100644
/* helper function for NtReadFile and FILE_AsyncReadService */
static NTSTATUS read_unix_fd(int fd, char *buf, ULONG *total, ULONG length,
enum server_fd_type type, BOOL avail_mode)
@@ -1557,44 +1582,22 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
if ((status = server_get_unix_fd( handle, FILE_READ_DATA, &fd, &needs_close, NULL, NULL )))
@@ -1719,44 +1744,22 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
break;
}
-#ifdef FIONREAD
- if (ioctl( fd, FIONREAD, &avail ) != 0)
@ -103,5 +103,5 @@ index a20c3e8..8de4b98 100644
}
if (needs_close) close( fd );
--
2.1.3
2.11.0

View File

@ -1,4 +1,4 @@
From 3f96971d0d54e5d32a57970c36cb55e3ad6ff7c8 Mon Sep 17 00:00:00 2001
From bb9a6f2fb4431cb18e2a835808c02156bbd9d709 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 6 Jun 2015 01:21:05 +0200
Subject: server: Return correct error codes for NtWriteFile when pipes are
@ -25,7 +25,7 @@ index ba365ed666..23f1a5f5f5 100644
CloseHandle(hfile);
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index 899ebddabb..91316bd2c4 100644
index 98a699e48f..25f59761cf 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -1235,6 +1235,9 @@ static NTSTATUS write_unix_fd(int fd, const char *buf, ULONG *total, ULONG lengt
@ -39,10 +39,10 @@ index 899ebddabb..91316bd2c4 100644
}
}
diff --git a/server/named_pipe.c b/server/named_pipe.c
index 74a9a44dcf..9a8d8b37ca 100644
index d310740165..2775fcab51 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -119,6 +119,8 @@ struct named_pipe_device
@@ -129,6 +129,8 @@ struct named_pipe_device
struct namespace *pipes; /* named pipe namespace */
};
@ -51,7 +51,7 @@ index 74a9a44dcf..9a8d8b37ca 100644
static void named_pipe_dump( struct object *obj, int verbose );
static unsigned int named_pipe_map_access( struct object *obj, unsigned int access );
static int named_pipe_link_name( struct object *obj, struct object_name *name, struct object *parent );
@@ -155,6 +157,7 @@ static void pipe_end_queue_async( struct fd *fd, struct async *async, int type,
@@ -167,6 +169,7 @@ static void pipe_end_reselect_async( struct fd *fd, struct async_queue *queue );
/* server end functions */
static void pipe_server_dump( struct object *obj, int verbose );
static struct fd *pipe_server_get_fd( struct object *obj );
@ -59,7 +59,7 @@ index 74a9a44dcf..9a8d8b37ca 100644
static void pipe_server_destroy( struct object *obj);
static obj_handle_t pipe_server_flush( struct fd *fd, struct async *async, int blocking );
static enum server_fd_type pipe_server_get_fd_type( struct fd *fd );
@@ -180,7 +183,7 @@ static const struct object_ops pipe_server_ops =
@@ -192,7 +195,7 @@ static const struct object_ops pipe_server_ops =
NULL, /* unlink_name */
no_open_file, /* open_file */
no_alloc_handle, /* alloc_handle */
@ -68,15 +68,15 @@ index 74a9a44dcf..9a8d8b37ca 100644
pipe_server_destroy /* destroy */
};
@@ -201,6 +204,7 @@ static const struct fd_ops pipe_server_fd_ops =
@@ -213,6 +216,7 @@ static const struct fd_ops pipe_server_fd_ops =
static void pipe_client_dump( struct object *obj, int verbose );
static int pipe_client_signaled( struct object *obj, struct wait_queue_entry *entry );
static struct fd *pipe_client_get_fd( struct object *obj );
+static int pipe_client_close_handle( struct object *obj, struct process *process, obj_handle_t handle );
static void pipe_client_destroy( struct object *obj );
static obj_handle_t pipe_client_flush( struct fd *fd, struct async *async, int blocking );
static enum server_fd_type pipe_client_get_fd_type( struct fd *fd );
@@ -224,7 +228,7 @@ static const struct object_ops pipe_client_ops =
static obj_handle_t pipe_client_ioctl( struct fd *fd, ioctl_code_t code, struct async *async,
@@ -238,7 +242,7 @@ static const struct object_ops pipe_client_ops =
NULL, /* unlink_name */
no_open_file, /* open_file */
no_alloc_handle, /* alloc_handle */
@ -85,8 +85,8 @@ index 74a9a44dcf..9a8d8b37ca 100644
pipe_client_destroy /* destroy */
};
@@ -418,6 +422,23 @@ static void do_disconnect( struct pipe_server *server )
server->pipe_end.fd = NULL;
@@ -482,6 +486,23 @@ static void pipe_end_destroy( struct pipe_end *pipe_end )
free_async_queue( pipe_end->write_q );
}
+static int pipe_server_close_handle( struct object *obj, struct process *process, obj_handle_t handle )
@ -109,7 +109,7 @@ index 74a9a44dcf..9a8d8b37ca 100644
static void pipe_server_destroy( struct object *obj)
{
struct pipe_server *server = (struct pipe_server *)obj;
@@ -446,6 +467,24 @@ static void pipe_server_destroy( struct object *obj)
@@ -511,6 +532,24 @@ static void pipe_server_destroy( struct object *obj)
release_object( server->pipe );
}
@ -135,10 +135,10 @@ index 74a9a44dcf..9a8d8b37ca 100644
{
struct pipe_client *client = (struct pipe_client *)obj;
diff --git a/server/protocol.def b/server/protocol.def
index e7a55d7a2d..f1e7af1d56 100644
index 341a6f6085..9769bb9e7b 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -2427,6 +2427,7 @@ enum message_type
@@ -2431,6 +2431,7 @@ enum message_type
#define NAMED_PIPE_MESSAGE_STREAM_WRITE 0x0001
#define NAMED_PIPE_MESSAGE_STREAM_READ 0x0002
#define NAMED_PIPE_NONBLOCKING_MODE 0x0004

View File

@ -1,4 +1,4 @@
From a5a9edf432ca2aecef11db6bde388730cc9eadf8 Mon Sep 17 00:00:00 2001
From 657d43d3027ea116d3348542eac23d1d915258f0 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 24 Feb 2016 15:45:09 +0100
Subject: server: Do not allow to queue async operation for broken pipes.
@ -8,10 +8,10 @@ Subject: server: Do not allow to queue async operation for broken pipes.
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/server/named_pipe.c b/server/named_pipe.c
index 9a8d8b37ca..df9f5c4926 100644
index 2775fcab51..3542c91b4a 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -665,8 +665,20 @@ static obj_handle_t pipe_client_flush( struct fd *fd, struct async *async, int b
@@ -811,8 +811,20 @@ static obj_handle_t pipe_end_write( struct fd *fd, struct async *async, int bloc
static void pipe_end_queue_async( struct fd *fd, struct async *async, int type, int count )
{
struct pipe_end *pipe_end = get_fd_user( fd );
@ -33,7 +33,7 @@ index 9a8d8b37ca..df9f5c4926 100644
+ default_fd_queue_async( fd, async, type, count );
}
static inline int is_overlapped( unsigned int options )
static void pipe_end_reselect_async( struct fd *fd, struct async_queue *queue )
--
2.11.0

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "5b4f8a385b46a8a8a8b09b8ca6578aa7b7995a1e"
echo "ec8485ec10e3c27b89ec5f1289bc8a3cdad5f3f6"
}
# Show version information
@ -2787,30 +2787,29 @@ fi
# |
# | Modified files:
# | * configure.ac, dlls/api-ms-win-core-heap-l2-1-0/Makefile.in, dlls/api-ms-win-core-heap-l2-1-0/api-ms-win-core-
# | heap-l2-1-0.spec, dlls/api-ms-win-core-quirks-l1-1-0/Makefile.in, dlls/api-ms-win-core-quirks-l1-1-0/api-ms-win-core-
# | quirks-l1-1-0.spec, dlls/api-ms-win-core-shlwapi-obsolete-l1-2-0/Makefile.in, dlls/api-ms-win-core-shlwapi-
# | obsolete-l1-2-0/api-ms-win-core-shlwapi-obsolete-l1-2-0.spec, dlls/api-ms-win-rtcore-ntuser-draw-l1-1-0/Makefile.in,
# | dlls/api-ms-win-rtcore-ntuser-draw-l1-1-0/api-ms-win-rtcore-ntuser-draw-l1-1-0.spec, dlls/api-ms-win-rtcore-ntuser-
# | window-l1-1-0/Makefile.in, dlls/api-ms-win-rtcore-ntuser-window-l1-1-0/api-ms-win-rtcore-ntuser-window-l1-1-0.spec, dlls
# | /api-ms-win-shcore-obsolete-l1-1-0/Makefile.in, dlls/api-ms-win-shcore-obsolete-l1-1-0/api-ms-win-shcore-
# | obsolete-l1-1-0.spec, dlls/api-ms-win-shcore-stream-l1-1-0/Makefile.in, dlls/api-ms-win-shcore-stream-l1-1-0/api-ms-win-
# | shcore-stream-l1-1-0.spec, dlls/api-ms-win-shcore-thread-l1-1-0/Makefile.in, dlls/api-ms-win-shcore-thread-l1-1-0/api-
# | ms-win-shcore-thread-l1-1-0.spec, dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in, dlls/ext-ms-win-appmodel-
# | usercontext-l1-1-0/ext-ms-win-appmodel-usercontext-l1-1-0.spec, dlls/ext-ms-win-appmodel-usercontext-l1-1-0/main.c, dlls
# | /ext-ms-win-ntuser-mouse-l1-1-0/Makefile.in, dlls/ext-ms-win-ntuser-mouse-l1-1-0/ext-ms-win-ntuser-mouse-l1-1-0.spec,
# | dlls/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0/Makefile.in, dlls/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0/ext-ms-win-
# | rtcore-ntuser-syscolors-l1-1-0.spec, dlls/ext-ms-win-uxtheme-themes-l1-1-0/Makefile.in, dlls/ext-ms-win-uxtheme-
# | themes-l1-1-0/ext-ms-win-uxtheme-themes-l1-1-0.spec, dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in, dlls/ext-ms-win-xaml-
# | pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec, dlls/ext-ms-win-xaml-pal-l1-1-0/main.c, dlls/feclient/Makefile.in,
# | dlls/feclient/feclient.spec, dlls/feclient/main.c, dlls/iertutil/Makefile.in, dlls/iertutil/iertutil.spec,
# | dlls/iertutil/main.c, dlls/kernelbase/Makefile.in, dlls/kernelbase/kernelbase.spec, dlls/kernelbase/misc.c,
# | dlls/shcore/Makefile.in, dlls/shcore/main.c, dlls/shcore/shcore.spec, dlls/shlwapi/shlwapi.spec,
# | dlls/uiautomationcore/Makefile.in, dlls/uiautomationcore/uia_main.c, dlls/uiautomationcore/uiautomationcore.spec,
# | include/Makefile.in, include/shellscalingapi.h, include/uiautomationcoreapi.h, tools/make_specfiles
# | heap-l2-1-0.spec, dlls/api-ms-win-core-quirks-l1-1-0/api-ms-win-core-quirks-l1-1-0.spec, dlls/api-ms-win-core-shlwapi-
# | obsolete-l1-2-0/Makefile.in, dlls/api-ms-win-core-shlwapi-obsolete-l1-2-0/api-ms-win-core-shlwapi-obsolete-l1-2-0.spec,
# | dlls/api-ms-win-rtcore-ntuser-draw-l1-1-0/Makefile.in, dlls/api-ms-win-rtcore-ntuser-draw-l1-1-0/api-ms-win-rtcore-
# | ntuser-draw-l1-1-0.spec, dlls/api-ms-win-rtcore-ntuser-window-l1-1-0/Makefile.in, dlls/api-ms-win-rtcore-ntuser-
# | window-l1-1-0/api-ms-win-rtcore-ntuser-window-l1-1-0.spec, dlls/api-ms-win-shcore-obsolete-l1-1-0/Makefile.in, dlls/api-
# | ms-win-shcore-obsolete-l1-1-0/api-ms-win-shcore-obsolete-l1-1-0.spec, dlls/api-ms-win-shcore-stream-l1-1-0/Makefile.in,
# | dlls/api-ms-win-shcore-stream-l1-1-0/api-ms-win-shcore-stream-l1-1-0.spec, dlls/api-ms-win-shcore-
# | thread-l1-1-0/Makefile.in, dlls/api-ms-win-shcore-thread-l1-1-0/api-ms-win-shcore-thread-l1-1-0.spec, dlls/ext-ms-win-
# | appmodel-usercontext-l1-1-0/Makefile.in, dlls/ext-ms-win-appmodel-usercontext-l1-1-0/ext-ms-win-appmodel-
# | usercontext-l1-1-0.spec, dlls/ext-ms-win-appmodel-usercontext-l1-1-0/main.c, dlls/ext-ms-win-ntuser-
# | mouse-l1-1-0/Makefile.in, dlls/ext-ms-win-ntuser-mouse-l1-1-0/ext-ms-win-ntuser-mouse-l1-1-0.spec, dlls/ext-ms-win-
# | rtcore-ntuser-syscolors-l1-1-0/Makefile.in, dlls/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0/ext-ms-win-rtcore-ntuser-
# | syscolors-l1-1-0.spec, dlls/ext-ms-win-uxtheme-themes-l1-1-0/Makefile.in, dlls/ext-ms-win-uxtheme-themes-l1-1-0/ext-ms-
# | win-uxtheme-themes-l1-1-0.spec, dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in, dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-
# | xaml-pal-l1-1-0.spec, dlls/ext-ms-win-xaml-pal-l1-1-0/main.c, dlls/feclient/Makefile.in, dlls/feclient/feclient.spec,
# | dlls/feclient/main.c, dlls/iertutil/Makefile.in, dlls/iertutil/iertutil.spec, dlls/iertutil/main.c,
# | dlls/kernelbase/Makefile.in, dlls/kernelbase/kernelbase.spec, dlls/kernelbase/misc.c, dlls/shcore/Makefile.in,
# | dlls/shcore/main.c, dlls/shcore/shcore.spec, dlls/shlwapi/shlwapi.spec, dlls/uiautomationcore/Makefile.in,
# | dlls/uiautomationcore/uia_main.c, dlls/uiautomationcore/uiautomationcore.spec, include/Makefile.in,
# | include/shellscalingapi.h, include/uiautomationcoreapi.h, tools/make_specfiles
# |
if test "$enable_api_ms_win_Stub_DLLs" -eq 1; then
patch_apply api-ms-win-Stub_DLLs/0001-kernelbase-Add-dll-and-add-stub-for-QuirkIsEnabled.patch
patch_apply api-ms-win-Stub_DLLs/0002-api-ms-win-core-quirks-l1-1-0-Add-dll.patch
patch_apply api-ms-win-Stub_DLLs/0005-api-ms-win-core-heap-l2-1-0-Add-dll.patch
patch_apply api-ms-win-Stub_DLLs/0006-iertutil-Add-dll-and-add-stub-for-ordinal-811.patch
patch_apply api-ms-win-Stub_DLLs/0007-shcore-Add-dll.patch
@ -2834,7 +2833,6 @@ if test "$enable_api_ms_win_Stub_DLLs" -eq 1; then
patch_apply api-ms-win-Stub_DLLs/0027-uiautomationcore-Add-dll-and-stub-some-functions.patch
(
printf '%s\n' '+ { "Michael Müller", "kernelbase: Add dll and add stub for QuirkIsEnabled.", 1 },';
printf '%s\n' '+ { "Michael Müller", "api-ms-win-core-quirks-l1-1-0: Add dll.", 1 },';
printf '%s\n' '+ { "Michael Müller", "api-ms-win-core-heap-l2-1-0: Add dll.", 1 },';
printf '%s\n' '+ { "Michael Müller", "iertutil: Add dll and add stub for ordinal 811.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "shcore: Add dll.", 1 },';

View File

@ -1,4 +1,4 @@
From 1e74c7027e966201f44742df6736e9cdc1ad4ee8 Mon Sep 17 00:00:00 2001
From 85ccf78e42e8c913c71385fa8ff469d757fb5ffd Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 17 Aug 2015 01:11:47 +0200
Subject: server: Store a reference to the parent object for pipe servers. (v2)
@ -11,10 +11,10 @@ Subject: server: Store a reference to the parent object for pipe servers. (v2)
4 files changed, 53 insertions(+), 19 deletions(-)
diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c
index 43c5ee46d7..9a1ba670ab 100644
index b58f76365f..84b783b80a 100644
--- a/dlls/ntdll/tests/om.c
+++ b/dlls/ntdll/tests/om.c
@@ -1487,14 +1487,11 @@ static void test_query_object(void)
@@ -1503,14 +1503,11 @@ static void test_query_object(void)
status = pNtQueryObject( handle, ObjectNameInformation, buffer, sizeof(buffer), &len );
ok( status == STATUS_SUCCESS , "NtQueryObject returned %x\n", status );
str = (UNICODE_STRING *)buffer;
@ -30,10 +30,10 @@ index 43c5ee46d7..9a1ba670ab 100644
"name too short %s\n", wine_dbgstr_w(str->Buffer) );
trace( "got %s len %u\n", wine_dbgstr_w(str->Buffer), len );
diff --git a/server/named_pipe.c b/server/named_pipe.c
index df9f5c4926..5adbb2058b 100644
index a7811c1185..3d19e6c42c 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -157,6 +157,8 @@ static void pipe_end_queue_async( struct fd *fd, struct async *async, int type,
@@ -169,6 +169,8 @@ static void pipe_end_reselect_async( struct fd *fd, struct async_queue *queue );
/* server end functions */
static void pipe_server_dump( struct object *obj, int verbose );
static struct fd *pipe_server_get_fd( struct object *obj );
@ -42,7 +42,7 @@ index df9f5c4926..5adbb2058b 100644
static int pipe_server_close_handle( struct object *obj, struct process *process, obj_handle_t handle );
static void pipe_server_destroy( struct object *obj);
static obj_handle_t pipe_server_flush( struct fd *fd, struct async *async, int blocking );
@@ -179,8 +181,8 @@ static const struct object_ops pipe_server_ops =
@@ -191,8 +193,8 @@ static const struct object_ops pipe_server_ops =
default_get_sd, /* get_sd */
default_set_sd, /* set_sd */
no_lookup_name, /* lookup_name */
@ -53,7 +53,7 @@ index df9f5c4926..5adbb2058b 100644
no_open_file, /* open_file */
no_alloc_handle, /* alloc_handle */
pipe_server_close_handle, /* close_handle */
@@ -204,6 +206,8 @@ static const struct fd_ops pipe_server_fd_ops =
@@ -216,6 +218,8 @@ static const struct fd_ops pipe_server_fd_ops =
static void pipe_client_dump( struct object *obj, int verbose );
static int pipe_client_signaled( struct object *obj, struct wait_queue_entry *entry );
static struct fd *pipe_client_get_fd( struct object *obj );
@ -62,7 +62,7 @@ index df9f5c4926..5adbb2058b 100644
static int pipe_client_close_handle( struct object *obj, struct process *process, obj_handle_t handle );
static void pipe_client_destroy( struct object *obj );
static obj_handle_t pipe_client_flush( struct fd *fd, struct async *async, int blocking );
@@ -224,8 +228,8 @@ static const struct object_ops pipe_client_ops =
@@ -238,8 +242,8 @@ static const struct object_ops pipe_client_ops =
default_get_sd, /* get_sd */
default_set_sd, /* set_sd */
no_lookup_name, /* lookup_name */
@ -73,8 +73,8 @@ index df9f5c4926..5adbb2058b 100644
no_open_file, /* open_file */
no_alloc_handle, /* alloc_handle */
pipe_client_close_handle, /* close_handle */
@@ -422,6 +426,17 @@ static void do_disconnect( struct pipe_server *server )
server->pipe_end.fd = NULL;
@@ -486,6 +490,17 @@ static void pipe_end_destroy( struct pipe_end *pipe_end )
free_async_queue( pipe_end->write_q );
}
+static int pipe_server_link_name( struct object *obj, struct object_name *name, struct object *parent )
@ -91,7 +91,7 @@ index df9f5c4926..5adbb2058b 100644
static int pipe_server_close_handle( struct object *obj, struct process *process, obj_handle_t handle )
{
#ifdef __linux__
@@ -467,6 +482,17 @@ static void pipe_server_destroy( struct object *obj)
@@ -532,6 +547,17 @@ static void pipe_server_destroy( struct object *obj)
release_object( server->pipe );
}
@ -109,7 +109,7 @@ index df9f5c4926..5adbb2058b 100644
static int pipe_client_close_handle( struct object *obj, struct process *process, obj_handle_t handle )
{
#ifdef __linux__
@@ -786,9 +812,10 @@ static void init_pipe_end( struct pipe_end *pipe_end, unsigned int pipe_flags, d
@@ -1003,9 +1029,10 @@ static void init_pipe_end( struct pipe_end *pipe_end, unsigned int pipe_flags, d
static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned int options,
unsigned int pipe_flags )
{
@ -121,7 +121,7 @@ index df9f5c4926..5adbb2058b 100644
if (!server)
return NULL;
@@ -810,11 +837,13 @@ static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned
@@ -1027,11 +1054,13 @@ static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned
return server;
}
@ -137,7 +137,7 @@ index df9f5c4926..5adbb2058b 100644
if (!client)
return NULL;
@@ -913,7 +942,7 @@ static struct object *named_pipe_open_file( struct object *obj, unsigned int acc
@@ -1130,7 +1159,7 @@ static struct object *named_pipe_open_file( struct object *obj, unsigned int acc
return NULL;
}
@ -147,7 +147,7 @@ index df9f5c4926..5adbb2058b 100644
type = ((pipe->flags & NAMED_PIPE_MESSAGE_STREAM_WRITE) && is_messagemode_supported()) ?
SOCK_SEQPACKET : SOCK_STREAM;
diff --git a/server/object.c b/server/object.c
index 46f020e522..653687d5bf 100644
index 2ce1cdcd56..37ac0adce6 100644
--- a/server/object.c
+++ b/server/object.c
@@ -176,7 +176,7 @@ WCHAR *get_object_full_name( struct object *obj, data_size_t *ret_len )
@ -201,7 +201,7 @@ index 46f020e522..653687d5bf 100644
/* dump the name of an object to stderr */
diff --git a/server/object.h b/server/object.h
index 72ad8528c5..ddb4410525 100644
index 9ff123ebff..4a5d282a47 100644
--- a/server/object.h
+++ b/server/object.h
@@ -135,6 +135,8 @@ extern WCHAR *get_object_full_name( struct object *obj, data_size_t *ret_len );

View File

@ -3005,7 +3005,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
return hr;
}
@@ -2255,8 +2273,12 @@ HRESULT surface_color_fill(struct wined3d_surface *s, const RECT *rect, const st
@@ -2258,8 +2276,12 @@ HRESULT surface_color_fill(struct wined3d_surface *s, const RECT *rect, const st
{
struct wined3d_resource *resource = &s->container->resource;
struct wined3d_device *device = resource->device;
@ -3018,7 +3018,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
const struct blit_shader *blitter;
HRESULT hr;
@@ -2267,6 +2289,7 @@ HRESULT surface_color_fill(struct wined3d_surface *s, const RECT *rect, const st
@@ -2270,6 +2292,7 @@ HRESULT surface_color_fill(struct wined3d_surface *s, const RECT *rect, const st
return WINED3DERR_INVALIDCALL;
}
@ -3026,7 +3026,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
view_desc.format_id = resource->format->id;
view_desc.flags = 0;
view_desc.u.texture.level_idx = s->texture_level;
@@ -2282,6 +2305,19 @@ HRESULT surface_color_fill(struct wined3d_surface *s, const RECT *rect, const st
@@ -2285,6 +2308,19 @@ HRESULT surface_color_fill(struct wined3d_surface *s, const RECT *rect, const st
hr = blitter->color_fill(device, view, rect, color);
wined3d_rendertarget_view_decref(view);
@ -3046,7 +3046,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
return hr;
}
@@ -2608,7 +2644,11 @@ static BOOL surface_load_texture(struct wined3d_surface *surface,
@@ -2611,7 +2647,11 @@ static BOOL surface_load_texture(struct wined3d_surface *surface,
/* Don't use PBOs for converted surfaces. During PBO conversion we look at
* WINED3D_TEXTURE_CONVERTED but it isn't set (yet) in all cases it is
* getting called. */
@ -3084,7 +3084,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
swapchain_cleanup(swapchain);
swapchain->parent_ops->wined3d_object_destroyed(swapchain->parent);
HeapFree(GetProcessHeap(), 0, swapchain);
@@ -585,7 +594,11 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
@@ -539,7 +548,11 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
swapchain_blit(swapchain, context, src_rect, dst_rect);
}
@ -3096,7 +3096,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
gl_info->gl_ops.gl.p_glFinish();
/* call wglSwapBuffers through the gl table to avoid confusing the Steam overlay */
@@ -965,6 +978,9 @@ static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3
@@ -919,6 +932,9 @@ static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3
}
wined3d_cs_init_object(device->cs, wined3d_swapchain_cs_init, swapchain);
@ -3106,7 +3106,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
if (!swapchain->context[0])
{
@@ -1105,6 +1121,10 @@ static struct wined3d_context *swapchain_create_context(struct wined3d_swapchain
@@ -1059,6 +1075,10 @@ static struct wined3d_context *swapchain_create_context(struct wined3d_swapchain
TRACE("Creating a new context for swapchain %p, thread %u.\n", swapchain, GetCurrentThreadId());
@ -3117,7 +3117,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
if (!(ctx = context_create(swapchain, swapchain->front_buffer, swapchain->ds_format)))
{
ERR("Failed to create a new context for the swapchain\n");
@@ -1291,6 +1311,9 @@ HRESULT CDECL wined3d_swapchain_resize_buffers(struct wined3d_swapchain *swapcha
@@ -1245,6 +1265,9 @@ HRESULT CDECL wined3d_swapchain_resize_buffers(struct wined3d_swapchain *swapcha
enum wined3d_multisample_type multisample_type, unsigned int multisample_quality)
{
BOOL update_desc = FALSE;
@ -3127,7 +3127,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
TRACE("swapchain %p, buffer_count %u, width %u, height %u, format %s, "
"multisample_type %#x, multisample_quality %#x.\n",
@@ -1302,6 +1325,10 @@ HRESULT CDECL wined3d_swapchain_resize_buffers(struct wined3d_swapchain *swapcha
@@ -1256,6 +1279,10 @@ HRESULT CDECL wined3d_swapchain_resize_buffers(struct wined3d_swapchain *swapcha
if (buffer_count && buffer_count != swapchain->desc.backbuffer_count)
FIXME("Cannot change the back buffer count yet.\n");
@ -3141,7 +3141,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -338,7 +338,11 @@ void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int su
@@ -333,7 +333,11 @@ void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int su
if (locations & WINED3D_LOCATION_BUFFER)
{
data->addr = NULL;
@ -3153,7 +3153,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
return;
}
if (locations & WINED3D_LOCATION_USER_MEMORY)
@@ -439,6 +443,7 @@ static HRESULT wined3d_texture_init(struct wined3d_texture *texture, const struc
@@ -434,6 +438,7 @@ static HRESULT wined3d_texture_init(struct wined3d_texture *texture, const struc
/* Context activation is done by the caller. */
static void wined3d_texture_remove_buffer_object(struct wined3d_texture *texture,
@ -3161,7 +3161,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
unsigned int sub_resource_idx, const struct wined3d_gl_info *gl_info)
{
GLuint *buffer_object = &texture->sub_resources[sub_resource_idx].buffer_object;
@@ -451,6 +456,19 @@ static void wined3d_texture_remove_buffer_object(struct wined3d_texture *texture
@@ -446,6 +451,19 @@ static void wined3d_texture_remove_buffer_object(struct wined3d_texture *texture
wined3d_texture_invalidate_location(texture, sub_resource_idx, WINED3D_LOCATION_BUFFER);
*buffer_object = 0;
@ -3181,7 +3181,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
}
static void wined3d_texture_update_map_binding(struct wined3d_texture *texture)
@@ -470,7 +488,11 @@ static void wined3d_texture_update_map_binding(struct wined3d_texture *texture)
@@ -465,7 +483,11 @@ static void wined3d_texture_update_map_binding(struct wined3d_texture *texture)
&& !wined3d_texture_load_location(texture, i, context, map_binding))
ERR("Failed to load location %s.\n", wined3d_debug_location(map_binding));
if (texture->resource.map_binding == WINED3D_LOCATION_BUFFER)
@ -3193,7 +3193,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
}
if (context)
@@ -627,28 +649,46 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture)
@@ -622,28 +644,46 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture)
unsigned int sub_count = texture->level_count * texture->layer_count;
struct wined3d_device *device = texture->resource.device;
struct wined3d_context *context = NULL;
@ -3240,7 +3240,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
}
if (context)
context_release(context);
@@ -1392,6 +1432,9 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
@@ -1387,6 +1427,9 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
if (surface->dc)
{
wined3d_cs_destroy_object(device->cs, texture2d_destroy_dc, surface);
@ -3250,7 +3250,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
create_dib = TRUE;
}
@@ -1452,18 +1495,30 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
@@ -1447,18 +1490,30 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
wined3d_texture_invalidate_location(texture, 0, ~valid_location);
if (create_dib)
@ -3281,7 +3281,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
if (sub_resource->buffer_object)
return;
@@ -1475,6 +1530,16 @@ static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *textur
@@ -1470,6 +1525,16 @@ static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *textur
TRACE("Created buffer object %u for texture %p, sub-resource %u.\n",
sub_resource->buffer_object, texture, sub_resource_idx);
@ -3298,7 +3298,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
}
static void wined3d_texture_force_reload(struct wined3d_texture *texture)
@@ -1600,7 +1665,11 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned
@@ -1595,7 +1660,11 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned
return TRUE;
case WINED3D_LOCATION_BUFFER:
@ -3310,7 +3310,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
return TRUE;
case WINED3D_LOCATION_TEXTURE_RGB:
@@ -1655,7 +1724,9 @@ static struct wined3d_texture_sub_resource *wined3d_texture_get_sub_resource(str
@@ -1650,7 +1719,9 @@ static struct wined3d_texture_sub_resource *wined3d_texture_get_sub_resource(str
HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture,
UINT layer, const struct wined3d_box *dirty_region)
{
@ -3320,7 +3320,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
unsigned int sub_resource_idx;
TRACE("texture %p, layer %u, dirty_region %s.\n", texture, layer, debug_box(dirty_region));
@@ -1667,6 +1738,7 @@ HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture,
@@ -1662,6 +1733,7 @@ HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture,
}
sub_resource_idx = layer * texture->level_count;
@ -3328,7 +3328,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
if (dirty_region)
WARN("Ignoring dirty_region %s.\n", debug_box(dirty_region));
@@ -1680,6 +1752,9 @@ HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture,
@@ -1675,6 +1747,9 @@ HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture,
wined3d_texture_invalidate_location(texture, sub_resource_idx, ~texture->resource.map_binding);
context_release(context);
@ -3338,7 +3338,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
return WINED3D_OK;
}
@@ -1913,7 +1988,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
@@ -1908,7 +1983,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
}
else if (sub_resource->locations & WINED3D_LOCATION_BUFFER)
{
@ -3350,7 +3350,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
wined3d_texture_bind_and_dirtify(texture, context, location == WINED3D_LOCATION_TEXTURE_SRGB);
wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch);
texture1d_upload_data(texture, sub_resource_idx, context, NULL, &data, row_pitch, slice_pitch);
@@ -1958,7 +2037,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
@@ -1953,7 +2032,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
case WINED3D_LOCATION_BUFFER:
if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
{
@ -3362,7 +3362,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB)
wined3d_texture_bind_and_dirtify(texture, context, FALSE);
@@ -2252,8 +2335,13 @@ static void wined3d_texture_unload(struct wined3d_resource *resource)
@@ -2247,8 +2330,13 @@ static void wined3d_texture_unload(struct wined3d_resource *resource)
wined3d_texture_invalidate_location(texture, i, ~WINED3D_LOCATION_DISCARDED);
}
@ -3376,7 +3376,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
if (resource->type == WINED3D_RTYPE_TEXTURE_2D)
{
@@ -2857,6 +2945,9 @@ static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3
@@ -2852,6 +2940,9 @@ static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3
if ((desc->usage & WINED3DUSAGE_OWNDC) || (device->wined3d->flags & WINED3D_NO3D))
{
wined3d_cs_init_object(device->cs, texture2d_create_dc, surface);
@ -3386,7 +3386,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
if (!surface->dc)
{
wined3d_texture_cleanup_sync(texture);
@@ -3037,7 +3128,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
@@ -3032,7 +3123,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
}
else if (sub_resource->locations & WINED3D_LOCATION_BUFFER)
{
@ -3398,7 +3398,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
wined3d_texture_bind_and_dirtify(texture, context,
location == WINED3D_LOCATION_TEXTURE_SRGB);
wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch);
@@ -3083,7 +3178,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
@@ -3078,7 +3173,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
case WINED3D_LOCATION_BUFFER:
if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
{
@ -3410,7 +3410,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB)
wined3d_texture_bind_and_dirtify(texture, context, FALSE);
@@ -3304,8 +3403,18 @@ HRESULT CDECL wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned
@@ -3299,8 +3398,18 @@ HRESULT CDECL wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned
if (dst_texture->sub_resources[dst_sub_resource_idx].map_count
|| (src_texture && src_texture->sub_resources[src_sub_resource_idx].map_count))
{
@ -3429,7 +3429,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
}
if ((dst_format_flags & WINED3DFMT_FLAG_BLOCKS) && (flags & WINED3D_BLT_COLOR_FILL))
@@ -3654,7 +3763,14 @@ HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned i
@@ -3649,7 +3758,14 @@ HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned i
return WINED3DERR_INVALIDCALL;
if (!surface->dc)
@ -3444,7 +3444,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
if (!surface->dc)
return WINED3DERR_INVALIDCALL;
@@ -3698,7 +3814,14 @@ HRESULT CDECL wined3d_texture_release_dc(struct wined3d_texture *texture, unsign
@@ -3693,7 +3809,14 @@ HRESULT CDECL wined3d_texture_release_dc(struct wined3d_texture *texture, unsign
}
if (!(texture->resource.usage & WINED3DUSAGE_OWNDC) && !(device->wined3d->flags & WINED3D_NO3D))
@ -3541,7 +3541,7 @@ diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -391,6 +391,9 @@ struct wined3d_settings
@@ -390,6 +390,9 @@ struct wined3d_settings
unsigned int max_sm_ps;
unsigned int max_sm_cs;
BOOL no_3d;
@ -3551,7 +3551,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
};
extern struct wined3d_settings wined3d_settings DECLSPEC_HIDDEN;
@@ -1573,6 +1576,10 @@ struct wined3d_query
@@ -1572,6 +1575,10 @@ struct wined3d_query
const void *data;
DWORD data_size;
const struct wined3d_query_ops *query_ops;
@ -3562,7 +3562,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
};
union wined3d_gl_query_object
@@ -1614,6 +1621,9 @@ struct wined3d_occlusion_query
@@ -1613,6 +1620,9 @@ struct wined3d_occlusion_query
GLuint id;
struct wined3d_context *context;
UINT64 samples;
@ -3572,7 +3572,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
};
struct wined3d_timestamp_query
@@ -2603,6 +2613,16 @@ struct wined3d_state
@@ -2602,6 +2612,16 @@ struct wined3d_state
struct wined3d_rasterizer_state *rasterizer_state;
};
@ -3589,7 +3589,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
#define WINED3D_UNMAPPED_STAGE ~0u
/* Multithreaded flag. Removed from the public header to signal that
@@ -2715,6 +2735,14 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
@@ -2714,6 +2734,14 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN;
@ -3604,7 +3604,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state)
{
@@ -2790,11 +2818,13 @@ static inline void wined3d_resource_release(struct wined3d_resource *resource)
@@ -2789,11 +2817,13 @@ static inline void wined3d_resource_release(struct wined3d_resource *resource)
InterlockedDecrement(&resource->access_count);
}
@ -3618,7 +3618,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
void resource_cleanup(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *device,
enum wined3d_resource_type type, const struct wined3d_format *format,
@@ -2905,7 +2935,11 @@ struct wined3d_texture
@@ -2904,7 +2934,11 @@ struct wined3d_texture
unsigned int map_count;
DWORD locations;
@ -3630,7 +3630,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
} sub_resources[1];
};
@@ -3208,6 +3242,7 @@ enum wined3d_push_constants
@@ -3207,6 +3241,7 @@ enum wined3d_push_constants
WINED3D_PUSH_CONSTANTS_PS_B,
};
@ -3638,7 +3638,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
struct wined3d_cs_ops
{
void *(*require_space)(struct wined3d_cs *cs, size_t size);
@@ -3215,6 +3250,33 @@ struct wined3d_cs_ops
@@ -3214,6 +3249,33 @@ struct wined3d_cs_ops
void (*push_constants)(struct wined3d_cs *cs, enum wined3d_push_constants p,
unsigned int start_idx, unsigned int count, const void *constants);
};
@ -3672,7 +3672,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
struct wined3d_cs
{
@@ -3225,8 +3287,31 @@ struct wined3d_cs
@@ -3224,8 +3286,31 @@ struct wined3d_cs
size_t data_size, start, end;
void *data;
@ -3704,7 +3704,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
struct wined3d_cs *wined3d_cs_create(struct wined3d_device *device) DECLSPEC_HIDDEN;
void wined3d_cs_destroy(struct wined3d_cs *cs) DECLSPEC_HIDDEN;
void wined3d_cs_destroy_object(struct wined3d_cs *cs,
@@ -3237,15 +3322,30 @@ void wined3d_cs_emit_blt_sub_resource(struct wined3d_cs *cs, struct wined3d_reso
@@ -3236,15 +3321,30 @@ void wined3d_cs_emit_blt_sub_resource(struct wined3d_cs *cs, struct wined3d_reso
const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN;
void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects,
DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN;
@ -3735,7 +3735,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
void wined3d_cs_emit_reset_state(struct wined3d_cs *cs) DECLSPEC_HIDDEN;
void wined3d_cs_emit_set_clip_plane(struct wined3d_cs *cs, UINT plane_idx,
const struct wined3d_vec4 *plane) DECLSPEC_HIDDEN;
@@ -3293,10 +3393,20 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, enum wined
@@ -3292,10 +3392,20 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, enum wined
void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs,
struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN;
void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_viewport *viewport) DECLSPEC_HIDDEN;
@ -3756,7 +3756,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
void wined3d_cs_init_object(struct wined3d_cs *cs,
void (*callback)(void *object), void *object) DECLSPEC_HIDDEN;
HRESULT wined3d_cs_map(struct wined3d_cs *cs, struct wined3d_resource *resource, unsigned int sub_resource_idx,
@@ -3304,12 +3414,14 @@ HRESULT wined3d_cs_map(struct wined3d_cs *cs, struct wined3d_resource *resource,
@@ -3303,12 +3413,14 @@ HRESULT wined3d_cs_map(struct wined3d_cs *cs, struct wined3d_resource *resource,
HRESULT wined3d_cs_unmap(struct wined3d_cs *cs, struct wined3d_resource *resource,
unsigned int sub_resource_idx) DECLSPEC_HIDDEN;