Compare commits

...

28 Commits
v7.7 ... v7.9

Author SHA1 Message Date
Alistair Leslie-Hughes
2a411514e5 Release v7.9 2022-05-21 16:20:50 +10:00
Alistair Leslie-Hughes
6ea30a2e5b Rebase against 230e953e31f7228d10c8b0a0d2e8cf4f9af9a231. 2022-05-21 16:19:49 +10:00
Alistair Leslie-Hughes
e31ff0a923 Rebase against 56d9ed83c14cd7d92076fc518d1a601fa3119b6b. 2022-05-17 08:29:30 +10:00
Zebediah Figura
e534d6546a eventfd_synchronization: Backport some fixes that didn' make it into wine-staging. 2022-05-13 21:13:29 -05:00
Zebediah Figura
ea360c871f Rebase against b35faeb5035a8ed1480577a34603170fc0e2f901. 2022-05-12 18:28:09 -05:00
Alistair Leslie-Hughes
8382473334 Release v7.8 2022-05-07 16:23:27 +10:00
Alistair Leslie-Hughes
699309db0f Rebase against 3ded60bd1654dc689d24a23305f4a93acce3a6f2. 2022-05-07 16:07:11 +10:00
Alistair Leslie-Hughes
828a61e0bb Updated sapi-iteration-tokens patchset
Fixes: Bless Unlimited Launcher.
2022-05-06 11:52:22 +10:00
Alistair Leslie-Hughes
6a9fb5a923 Rebase against 7de36f8e98b2cbbdcc360bdba96a5fe83e815d1a. 2022-05-06 10:48:57 +10:00
Alistair Leslie-Hughes
38391a1d70 sapi-iteration-tokens: Updated patchset 2022-05-05 15:02:19 +10:00
Alistair Leslie-Hughes
486d9f3f74 Rebase against 1c4131ba788579f511318270410734d73575caa6. 2022-05-05 09:02:49 +10:00
Alistair Leslie-Hughes
9c37968a29 Added user32-alttab-focus patchset 2022-05-04 12:28:16 +10:00
Alistair Leslie-Hughes
0f597ea71c Rebase against 16901659588c14b8336e5b2d1a5ace985c72e1f8. 2022-05-04 08:18:03 +10:00
Alistair Leslie-Hughes
cd7567fdc1 Rebase against f91f4348356285ede39915f0d10ffae11c4871e5. 2022-05-03 09:02:07 +10:00
Alistair Leslie-Hughes
d7507fbe00 Added kernelbase-ResolveLocaleName patchset 2022-04-29 14:44:32 +10:00
Zebediah Figura
50067e77d5 Rebase against 64b96eec7d0aea470f897a3ed0ac9e1b3a680cc5. 2022-04-28 23:36:32 -05:00
Zebediah Figura
ad3c7cfc9a winedevice-Default_Drivers: Remove dependency on ntoskrnl-Stubs. 2022-04-28 18:29:34 -05:00
Zebediah Figura
5117eec7bf ntoskrnl-Stubs: Remove patches.
No known application is helped by these patches. If one is found they will be trivial to rewrite.
2022-04-27 18:54:56 -05:00
Zebediah Figura
8a35065016 api-ms-win-Stub_DLLs: Remove ext-ms-win-* patches.
No known application is helped by these patches. If one is found they will be trivial to rewrite.
2022-04-27 18:54:51 -05:00
Zebediah Figura
55c6cecd5c api-ms-win-Stub_DLLs: Remove the patch for iertutil.811.
No known application is helped by this patch. If one is found it will be trivial to rewrite.
2022-04-27 18:51:44 -05:00
Zebediah Figura
7de1ccb1fa Rebase against 2e9a72759cc8508d1ddb7be5d813fdd7bc64e6a5. 2022-04-27 16:34:32 -05:00
Zebediah Figura
b54ac2f2b2 winex11-CandidateWindowPos: Directly use win32u for user functions. 2022-04-26 18:02:07 -05:00
Zebediah Figura
9e823e7f3e winex11-CandidateWindowPos: Rebase and re-enable. 2022-04-26 17:50:51 -05:00
Zebediah Figura
87212e802d Rebase against 4ec67b7a6447dfc4af8c03c141c600b41b90ef53. 2022-04-26 17:50:51 -05:00
Zebediah Figura
91cb025138 user32-rawinput-mouse: Use malloc() instead of HeapAlloc() in winex11. 2022-04-25 23:09:31 -05:00
Zebediah Figura
d589a0bc44 user32-Mouse_Message_Hwnd: Use malloc() instead of HeapAlloc() in winex11. 2022-04-25 23:09:30 -05:00
Zebediah Figura
7b5a66b852 winex11-_NET_ACTIVE_WINDOW: Avoid another user32 API. 2022-04-25 23:08:57 -05:00
Alistair Leslie-Hughes
9d853b7c44 Rebase against 7af93f497c3e71f69511743f42b86b2ef5e13b32. 2022-04-26 13:50:30 +10:00
52 changed files with 595 additions and 2279 deletions

View File

@@ -1,4 +1,4 @@
From a0211ba2069af11a64588a49222dcdcce1d805be Mon Sep 17 00:00:00 2001
From 92914d4648be5dd7ee62b35d3ca2fc7376d0dbd0 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Tue, 22 Mar 2016 21:54:26 +0100
Subject: [PATCH] d2d1: Avoid implicit cast of interface pointer.
@@ -13,10 +13,10 @@ Subject: [PATCH] d2d1: Avoid implicit cast of interface pointer.
6 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/dlls/d2d1/bitmap.c b/dlls/d2d1/bitmap.c
index bc958e50a1..76ecc7f02a 100644
index 971e3c7ff6b..fcd96eb6374 100644
--- a/dlls/d2d1/bitmap.c
+++ b/dlls/d2d1/bitmap.c
@@ -617,5 +617,5 @@ struct d2d_bitmap *unsafe_impl_from_ID2D1Bitmap(ID2D1Bitmap *iface)
@@ -646,5 +646,5 @@ struct d2d_bitmap *unsafe_impl_from_ID2D1Bitmap(ID2D1Bitmap *iface)
if (!iface)
return NULL;
assert(iface->lpVtbl == (ID2D1BitmapVtbl *)&d2d_bitmap_vtbl);
@@ -24,10 +24,10 @@ index bc958e50a1..76ecc7f02a 100644
+ return CONTAINING_RECORD((ID2D1Bitmap1*)iface, struct d2d_bitmap, ID2D1Bitmap1_iface);
}
diff --git a/dlls/d2d1/brush.c b/dlls/d2d1/brush.c
index 80fc0f5331..a612e683b6 100644
index b9a673fe54c..c5a52db6b01 100644
--- a/dlls/d2d1/brush.c
+++ b/dlls/d2d1/brush.c
@@ -253,7 +253,7 @@ static void d2d_brush_init(struct d2d_brush *brush, ID2D1Factory *factory,
@@ -259,7 +259,7 @@ static void d2d_brush_init(struct d2d_brush *brush, ID2D1Factory *factory,
static inline struct d2d_brush *impl_from_ID2D1SolidColorBrush(ID2D1SolidColorBrush *iface)
{
@@ -36,7 +36,7 @@ index 80fc0f5331..a612e683b6 100644
}
static HRESULT STDMETHODCALLTYPE d2d_solid_color_brush_QueryInterface(ID2D1SolidColorBrush *iface,
@@ -396,7 +396,7 @@ HRESULT d2d_solid_color_brush_create(ID2D1Factory *factory, const D2D1_COLOR_F *
@@ -402,7 +402,7 @@ HRESULT d2d_solid_color_brush_create(ID2D1Factory *factory, const D2D1_COLOR_F *
static inline struct d2d_brush *impl_from_ID2D1LinearGradientBrush(ID2D1LinearGradientBrush *iface)
{
@@ -45,7 +45,7 @@ index 80fc0f5331..a612e683b6 100644
}
static HRESULT STDMETHODCALLTYPE d2d_linear_gradient_brush_QueryInterface(ID2D1LinearGradientBrush *iface,
@@ -583,7 +583,7 @@ HRESULT d2d_linear_gradient_brush_create(ID2D1Factory *factory,
@@ -589,7 +589,7 @@ HRESULT d2d_linear_gradient_brush_create(ID2D1Factory *factory,
static inline struct d2d_brush *impl_from_ID2D1RadialGradientBrush(ID2D1RadialGradientBrush *iface)
{
@@ -54,7 +54,7 @@ index 80fc0f5331..a612e683b6 100644
}
static HRESULT STDMETHODCALLTYPE d2d_radial_gradient_brush_QueryInterface(ID2D1RadialGradientBrush *iface,
@@ -815,7 +815,7 @@ HRESULT d2d_radial_gradient_brush_create(ID2D1Factory *factory,
@@ -821,7 +821,7 @@ HRESULT d2d_radial_gradient_brush_create(ID2D1Factory *factory,
static inline struct d2d_brush *impl_from_ID2D1BitmapBrush1(ID2D1BitmapBrush1 *iface)
{
@@ -64,7 +64,7 @@ index 80fc0f5331..a612e683b6 100644
static HRESULT STDMETHODCALLTYPE d2d_bitmap_brush_QueryInterface(ID2D1BitmapBrush1 *iface,
diff --git a/dlls/d2d1/dc_render_target.c b/dlls/d2d1/dc_render_target.c
index 47aa99697d..0efa3ebeaf 100644
index e7e0fa57ed7..1166ae204c2 100644
--- a/dlls/d2d1/dc_render_target.c
+++ b/dlls/d2d1/dc_render_target.c
@@ -23,7 +23,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(d2d);
@@ -77,19 +77,19 @@ index 47aa99697d..0efa3ebeaf 100644
static HRESULT d2d_dc_render_target_present(IUnknown *outer_unknown)
diff --git a/dlls/d2d1/geometry.c b/dlls/d2d1/geometry.c
index 79850f1c20..b9b6a32f76 100644
index e97bae0b54a..661387b570b 100644
--- a/dlls/d2d1/geometry.c
+++ b/dlls/d2d1/geometry.c
@@ -2982,7 +2982,7 @@ static const struct ID2D1GeometrySinkVtbl d2d_geometry_sink_vtbl =
@@ -3356,7 +3356,7 @@ static const struct ID2D1GeometrySinkVtbl d2d_geometry_sink_vtbl =
static inline struct d2d_geometry *impl_from_ID2D1PathGeometry(ID2D1PathGeometry *iface)
static inline struct d2d_geometry *impl_from_ID2D1PathGeometry1(ID2D1PathGeometry1 *iface)
{
- return CONTAINING_RECORD(iface, struct d2d_geometry, ID2D1Geometry_iface);
+ return CONTAINING_RECORD((ID2D1Geometry *)iface, struct d2d_geometry, ID2D1Geometry_iface);
}
static HRESULT STDMETHODCALLTYPE d2d_path_geometry_QueryInterface(ID2D1PathGeometry *iface, REFIID iid, void **out)
@@ -3502,7 +3502,7 @@ void d2d_path_geometry_init(struct d2d_geometry *geometry, ID2D1Factory2 *factor
static HRESULT STDMETHODCALLTYPE d2d_path_geometry_QueryInterface(ID2D1PathGeometry1 *iface, REFIID iid, void **out)
@@ -4229,7 +4229,7 @@ fail:
static inline struct d2d_geometry *impl_from_ID2D1RectangleGeometry(ID2D1RectangleGeometry *iface)
{
@@ -98,7 +98,7 @@ index 79850f1c20..b9b6a32f76 100644
}
static HRESULT STDMETHODCALLTYPE d2d_rectangle_geometry_QueryInterface(ID2D1RectangleGeometry *iface,
@@ -3841,7 +3841,7 @@ fail:
@@ -4941,7 +4941,7 @@ fail:
static inline struct d2d_geometry *impl_from_ID2D1TransformedGeometry(ID2D1TransformedGeometry *iface)
{
@@ -107,7 +107,7 @@ index 79850f1c20..b9b6a32f76 100644
}
static HRESULT STDMETHODCALLTYPE d2d_transformed_geometry_QueryInterface(ID2D1TransformedGeometry *iface,
@@ -4122,7 +4122,7 @@ void d2d_transformed_geometry_init(struct d2d_geometry *geometry, ID2D1Factory2
@@ -5225,7 +5225,7 @@ void d2d_transformed_geometry_init(struct d2d_geometry *geometry, ID2D1Factory *
static inline struct d2d_geometry *impl_from_ID2D1GeometryGroup(ID2D1GeometryGroup *iface)
{
@@ -117,7 +117,7 @@ index 79850f1c20..b9b6a32f76 100644
static HRESULT STDMETHODCALLTYPE d2d_geometry_group_QueryInterface(ID2D1GeometryGroup *iface,
diff --git a/dlls/d2d1/hwnd_render_target.c b/dlls/d2d1/hwnd_render_target.c
index 625f101eaa..f3626c42ce 100644
index 4ce220bf433..32eeaf02c9f 100644
--- a/dlls/d2d1/hwnd_render_target.c
+++ b/dlls/d2d1/hwnd_render_target.c
@@ -23,7 +23,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(d2d);
@@ -130,7 +130,7 @@ index 625f101eaa..f3626c42ce 100644
static HRESULT d2d_hwnd_render_target_present(IUnknown *outer_unknown)
diff --git a/dlls/d2d1/state_block.c b/dlls/d2d1/state_block.c
index e3175146a6..b66752983e 100644
index 114a3efd883..4f662be4549 100644
--- a/dlls/d2d1/state_block.c
+++ b/dlls/d2d1/state_block.c
@@ -187,5 +187,5 @@ struct d2d_state_block *unsafe_impl_from_ID2D1DrawingStateBlock(ID2D1DrawingStat
@@ -141,5 +141,5 @@ index e3175146a6..b66752983e 100644
+ return CONTAINING_RECORD((ID2D1DrawingStateBlock1*)iface, struct d2d_state_block, ID2D1DrawingStateBlock1_iface);
}
--
2.17.1
2.35.1

View File

@@ -1,17 +1,18 @@
From 7d77edaea3c4ba8067e4b73034df5c58940daebc Mon Sep 17 00:00:00 2001
From a9cf27a493697c97249ce526483d25c871c053c4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 1 Jun 2014 22:51:32 +0200
Subject: winex11.drv: Indicate direct rendering through OpenGL extension
Subject: [PATCH] winex11.drv: Indicate direct rendering through OpenGL
extension
---
dlls/winex11.drv/opengl.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
dlls/winex11.drv/opengl.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c
index 71af3db..966d32d 100644
index 92555841f71..71e7ecbcf7c 100644
--- a/dlls/winex11.drv/opengl.c
+++ b/dlls/winex11.drv/opengl.c
@@ -440,6 +440,7 @@ static int GLXErrorHandler(Display *dpy,
@@ -410,6 +410,7 @@ static int GLXErrorHandler(Display *dpy, XErrorEvent *event, void *arg)
static BOOL X11DRV_WineGL_InitOpenglInfo(void)
{
static const char legacy_extensions[] = " WGL_EXT_extensions_string WGL_EXT_swap_control";
@@ -19,14 +20,14 @@ index 71af3db..966d32d 100644
int screen = DefaultScreen(gdi_display);
Window win = 0, root = 0;
@@ -493,16 +494,18 @@ static BOOL X11DRV_WineGL_InitOpenglInfo
@@ -465,16 +466,18 @@ static BOOL X11DRV_WineGL_InitOpenglInfo(void)
}
gl_renderer = (const char *)opengl_funcs.gl.p_glGetString(GL_RENDERER);
gl_version = (const char *)opengl_funcs.gl.p_glGetString(GL_VERSION);
+ glx_direct = pglXIsDirect(gdi_display, ctx);
str = (const char *) opengl_funcs.gl.p_glGetString(GL_EXTENSIONS);
- glExtensions = HeapAlloc(GetProcessHeap(), 0, strlen(str)+sizeof(legacy_extensions));
+ glExtensions = HeapAlloc(GetProcessHeap(), 0, strlen(str)+sizeof(legacy_extensions)+sizeof(direct_extension));
- glExtensions = malloc( strlen(str) + sizeof(legacy_extensions) );
+ glExtensions = malloc( strlen(str)+sizeof(legacy_extensions)+sizeof(direct_extension) );
strcpy(glExtensions, str);
strcat(glExtensions, legacy_extensions);
+ if (glx_direct)
@@ -41,4 +42,5 @@ index 71af3db..966d32d 100644
TRACE("GL version : %s.\n", gl_version);
TRACE("GL renderer : %s.\n", gl_renderer);
--
1.7.9.5
2.35.1

View File

@@ -1,94 +0,0 @@
From 49de5f50cf6eb5a3c4ab07be05ca25f96991ab8a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 17 Jan 2016 17:07:35 +0100
Subject: [PATCH] ext-ms-win-xaml-pal-l1-1-0: Add dll and add stub for
XamlBehaviorEnabled.
---
configure.ac | 1 +
dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in | 4 +++
.../ext-ms-win-xaml-pal-l1-1-0.spec | 6 ++++
dlls/ext-ms-win-xaml-pal-l1-1-0/main.c | 35 +++++++++++++++++++
4 files changed, 46 insertions(+)
create mode 100644 dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in
create mode 100644 dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec
create mode 100644 dlls/ext-ms-win-xaml-pal-l1-1-0/main.c
diff --git a/configure.ac b/configure.ac
index 7fb2da63a0b..e9ea24f2680 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2572,6 +2572,7 @@ WINE_CONFIG_MAKEFILE(dlls/evr)
WINE_CONFIG_MAKEFILE(dlls/evr/tests)
WINE_CONFIG_MAKEFILE(dlls/explorerframe)
WINE_CONFIG_MAKEFILE(dlls/explorerframe/tests)
+WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-xaml-pal-l1-1-0)
WINE_CONFIG_MAKEFILE(dlls/faultrep)
WINE_CONFIG_MAKEFILE(dlls/faultrep/tests)
WINE_CONFIG_MAKEFILE(dlls/feclient)
diff --git a/dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in b/dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in
new file mode 100644
index 00000000000..6382d85272b
--- /dev/null
+++ b/dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in
@@ -0,0 +1,4 @@
+MODULE = ext-ms-win-xaml-pal-l1-1-0.dll
+
+C_SRCS = \
+ main.c
diff --git a/dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec b/dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec
new file mode 100644
index 00000000000..c167f5e753e
--- /dev/null
+++ b/dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec
@@ -0,0 +1,6 @@
+@ stub CreatePhoneAppBarProxy
+@ stub CreateWinTextBoxProxy
+@ stub GetThemeServices
+@ stdcall XamlBehaviorEnabled(ptr)
+@ stub XamlPalInitialize
+@ stub XamlPalUninitialize
diff --git a/dlls/ext-ms-win-xaml-pal-l1-1-0/main.c b/dlls/ext-ms-win-xaml-pal-l1-1-0/main.c
new file mode 100644
index 00000000000..3e282758f41
--- /dev/null
+++ b/dlls/ext-ms-win-xaml-pal-l1-1-0/main.c
@@ -0,0 +1,35 @@
+/*
+ * ext-ms-win-xaml-pal-l1-1-0
+ *
+ * Copyright 2016 Michael MĂĽller
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(xaml);
+
+BOOL WINAPI XamlBehaviorEnabled(void *unknown)
+{
+ FIXME("(%p): stub\n", unknown);
+ return TRUE;
+}
--
2.34.1

View File

@@ -1,91 +0,0 @@
From adf1cce491f1580f73599ba2ec951a4004b4e091 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 17 Jan 2016 17:12:45 +0100
Subject: [PATCH] ext-ms-win-appmodel-usercontext-l1-1-0: Add dll and add stub
for UserContextExtInitialize.
---
configure.ac | 1 +
.../Makefile.in | 4 +++
...xt-ms-win-appmodel-usercontext-l1-1-0.spec | 3 ++
.../main.c | 35 +++++++++++++++++++
4 files changed, 43 insertions(+)
create mode 100644 dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in
create mode 100644 dlls/ext-ms-win-appmodel-usercontext-l1-1-0/ext-ms-win-appmodel-usercontext-l1-1-0.spec
create mode 100644 dlls/ext-ms-win-appmodel-usercontext-l1-1-0/main.c
diff --git a/configure.ac b/configure.ac
index e9ea24f2680..54c8fcb183b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2572,6 +2572,7 @@ WINE_CONFIG_MAKEFILE(dlls/evr)
WINE_CONFIG_MAKEFILE(dlls/evr/tests)
WINE_CONFIG_MAKEFILE(dlls/explorerframe)
WINE_CONFIG_MAKEFILE(dlls/explorerframe/tests)
+WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-appmodel-usercontext-l1-1-0)
WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-xaml-pal-l1-1-0)
WINE_CONFIG_MAKEFILE(dlls/faultrep)
WINE_CONFIG_MAKEFILE(dlls/faultrep/tests)
diff --git a/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in
new file mode 100644
index 00000000000..16eee7588ff
--- /dev/null
+++ b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in
@@ -0,0 +1,4 @@
+MODULE = ext-ms-win-appmodel-usercontext-l1-1-0.dll
+
+C_SRCS = \
+ main.c
diff --git a/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/ext-ms-win-appmodel-usercontext-l1-1-0.spec b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/ext-ms-win-appmodel-usercontext-l1-1-0.spec
new file mode 100644
index 00000000000..7642d156c94
--- /dev/null
+++ b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/ext-ms-win-appmodel-usercontext-l1-1-0.spec
@@ -0,0 +1,3 @@
+@ stub UserContextExtCleanup
+@ stdcall UserContextExtInitialize()
+@ stub UserContextExtSetToken
diff --git a/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/main.c b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/main.c
new file mode 100644
index 00000000000..7a9e75f7109
--- /dev/null
+++ b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/main.c
@@ -0,0 +1,35 @@
+/*
+ * ext-ms-win-appmodel-usercontext-l1-1-0
+ *
+ * Copyright 2016 Michael MĂĽller
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(usercontext);
+
+HRESULT WINAPI UserContextExtInitialize(void)
+{
+ FIXME("(): stub\n");
+ return S_OK;
+}
--
2.34.1

View File

@@ -1,41 +0,0 @@
From 751d2904a1ac0831cab220eaedbbd01ba8a14356 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 21 Jan 2016 00:40:29 +0100
Subject: [PATCH] ext-ms-win-xaml-pal-l1-1-0: Add stub for GetThemeServices.
---
dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec | 2 +-
dlls/ext-ms-win-xaml-pal-l1-1-0/main.c | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec b/dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec
index c167f5e..042e037 100644
--- a/dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec
+++ b/dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec
@@ -1,6 +1,6 @@
@ stub CreatePhoneAppBarProxy
@ stub CreateWinTextBoxProxy
-@ stub GetThemeServices
+@ stdcall GetThemeServices(ptr)
@ stdcall XamlBehaviorEnabled(ptr)
@ stub XamlPalInitialize
@ stub XamlPalUninitialize
diff --git a/dlls/ext-ms-win-xaml-pal-l1-1-0/main.c b/dlls/ext-ms-win-xaml-pal-l1-1-0/main.c
index 3e28275..45353ba 100644
--- a/dlls/ext-ms-win-xaml-pal-l1-1-0/main.c
+++ b/dlls/ext-ms-win-xaml-pal-l1-1-0/main.c
@@ -33,3 +33,11 @@ BOOL WINAPI XamlBehaviorEnabled(void *unknown)
FIXME("(%p): stub\n", unknown);
return TRUE;
}
+
+HRESULT WINAPI GetThemeServices(void **interface)
+{
+ FIXME("(%p): stub\n", interface);
+
+ *interface = NULL;
+ return E_NOTIMPL;
+}
--
1.9.1

View File

@@ -1,5 +0,0 @@
Fixes: Add ext-ms-win-xaml-pal-l1-1-0 dll and XamlBehaviourEnabled() stub
Fixes: Add ext-ms-win-xaml-pal-l1-1-0.GetThemeServices() stub
Fixes: Add ext-ms-win-appmodel-usercontext-l1-1-0 dll and UserContextExtInitialize() stub
Fixes: Add iertutil dll
Fixes: Return dummy interface in some uiautomationcore functions

View File

@@ -1,76 +0,0 @@
From 9ea60091ba885b5f63266374f49f0d63e2cf2767 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 16 Dec 2020 11:07:05 +1100
Subject: [PATCH] d3drm: Support IDirect3D3 when creating device
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=39346
---
dlls/d3drm/device.c | 26 ++++++++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/dlls/d3drm/device.c b/dlls/d3drm/device.c
index 2e1b5f2d24f..fff272197bf 100644
--- a/dlls/d3drm/device.c
+++ b/dlls/d3drm/device.c
@@ -124,7 +124,9 @@ HRESULT d3drm_device_init(struct d3drm_device *device, UINT version, IDirectDraw
IDirectDrawSurface *ds = NULL;
IDirect3DDevice *device1 = NULL;
IDirect3DDevice2 *device2 = NULL;
+ IDirect3DDevice3 *device3 = NULL;
IDirect3D2 *d3d2 = NULL;
+ IDirect3D3 *d3d3 = NULL;
DDSURFACEDESC desc, surface_desc;
HRESULT hr;
@@ -171,19 +173,29 @@ HRESULT d3drm_device_init(struct d3drm_device *device, UINT version, IDirectDraw
if (version == 1)
hr = IDirectDrawSurface_QueryInterface(surface, &IID_IDirect3DRGBDevice, (void **)&device1);
- else
+ else if (version == 2)
{
IDirectDraw_QueryInterface(ddraw, &IID_IDirect3D2, (void**)&d3d2);
hr = IDirect3D2_CreateDevice(d3d2, &IID_IDirect3DRGBDevice, surface, &device2);
IDirect3D2_Release(d3d2);
}
+ else
+ {
+ IDirectDrawSurface4 *surface4 = NULL;
+
+ IDirectDrawSurface_QueryInterface(surface, &IID_IDirectDrawSurface4, (void**)&surface4);
+ IDirectDraw_QueryInterface(ddraw, &IID_IDirect3D3, (void**)&d3d3);
+ hr = IDirect3D3_CreateDevice(d3d3, &IID_IDirect3DRGBDevice, surface4, &device3, NULL);
+ IDirectDrawSurface4_Release(surface4);
+ IDirect3D3_Release(d3d3);
+ }
if (FAILED(hr))
{
IDirectDrawSurface_DeleteAttachedSurface(surface, 0, ds);
return hr;
}
- if (version != 1)
+ if (version == 2)
{
hr = IDirect3DDevice2_QueryInterface(device2, &IID_IDirect3DDevice, (void**)&device1);
IDirect3DDevice2_Release(device2);
@@ -193,6 +205,16 @@ HRESULT d3drm_device_init(struct d3drm_device *device, UINT version, IDirectDraw
return hr;
}
}
+ else if (version == 3)
+ {
+ hr = IDirect3DDevice3_QueryInterface(device3, &IID_IDirect3DDevice, (void**)&device1);
+ IDirect3DDevice3_Release(device3);
+ if (FAILED(hr))
+ {
+ IDirectDrawSurface_DeleteAttachedSurface(surface, 0, ds);
+ return hr;
+ }
+ }
device->device = device1;
device->width = desc.dwWidth;
device->height = desc.dwHeight;
--
2.29.2

View File

@@ -1 +0,0 @@
Fixes: [39346] Support IDirect3D3 when creating device.

View File

@@ -1,7 +1,7 @@
From cfbee3f0f952769dbf663489c2a209493c7412d3 Mon Sep 17 00:00:00 2001
From 5d9d9cbdb4043848aa5ebdd8a1349d9c876650e3 Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Sun, 11 Jan 2015 16:18:03 +0100
Subject: d3dx9_36: Add support for FOURCC surface to
Subject: [PATCH] d3dx9_36: Add support for FOURCC surface to
save_dds_surface_to_memory.
---
@@ -9,10 +9,10 @@ Subject: d3dx9_36: Add support for FOURCC surface to
1 file changed, 8 insertions(+)
diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c
index 4fa2a76..58b676d 100644
index 26809a47e18..db334ee83f1 100644
--- a/dlls/d3dx9_36/surface.c
+++ b/dlls/d3dx9_36/surface.c
@@ -311,6 +311,14 @@ static HRESULT d3dformat_to_dds_pixel_format(struct dds_pixel_format *pixel_form
@@ -433,6 +433,14 @@ static HRESULT d3dformat_to_dds_pixel_format(struct dds_pixel_format *pixel_form
}
}
@@ -24,9 +24,9 @@ index 4fa2a76..58b676d 100644
+ return D3D_OK;
+ }
+
WARN("Unknown pixel format %#x\n", d3dformat);
WARN("Unknown pixel format %#x.\n", d3dformat);
return E_NOTIMPL;
}
--
2.6.4
2.35.1

View File

@@ -1,4 +1,4 @@
From 27524b275c81c1c9057e4b4ca3d9cec734a3bd8a Mon Sep 17 00:00:00 2001
From 846f2603e9d2a3a3b5a56b0e1140bb49a95053a6 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Thu, 7 Jun 2018 20:09:59 -0500
Subject: [PATCH] server: Create server objects for eventfd-based
@@ -7,10 +7,10 @@ Subject: [PATCH] server: Create server objects for eventfd-based
---
server/Makefile.in | 1 +
server/esync.c | 318 ++++++++++++++++++++++++++++++++++++++++++++
server/esync.h | 22 +++
server/esync.h | 24 ++++
server/main.c | 4 +
server/protocol.def | 25 +++-
5 files changed, 369 insertions(+), 1 deletion(-)
5 files changed, 371 insertions(+), 1 deletion(-)
create mode 100644 server/esync.c
create mode 100644 server/esync.h
@@ -352,10 +352,10 @@ index 00000000000..b9dbfa322bc
+}
diff --git a/server/esync.h b/server/esync.h
new file mode 100644
index 00000000000..7ca4ca89394
index 00000000000..00f9e638d83
--- /dev/null
+++ b/server/esync.h
@@ -0,0 +1,22 @@
@@ -0,0 +1,24 @@
+/*
+ * eventfd-based synchronization objects
+ *
@@ -376,6 +376,8 @@ index 00000000000..7ca4ca89394
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <unistd.h>
+
+extern int do_esync(void);
+void esync_init(void);
diff --git a/server/main.c b/server/main.c
@@ -401,10 +403,10 @@ index a134d811d82..3436b0871b4 100644
set_current_time();
init_scheduler();
diff --git a/server/protocol.def b/server/protocol.def
index c413cc7d7bb..607d56a666c 100644
index 6bfcda213a4..6b0e0e6f6e4 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -3733,7 +3733,6 @@ struct handle_info
@@ -3738,7 +3738,6 @@ struct handle_info
obj_handle_t handle; /* process handle */
@END
@@ -412,7 +414,7 @@ index c413cc7d7bb..607d56a666c 100644
/* Iterate thread list for process */
@REQ(get_next_thread)
obj_handle_t process; /* process handle */
@@ -3744,3 +3743,27 @@ struct handle_info
@@ -3749,3 +3748,27 @@ struct handle_info
@REPLY
obj_handle_t handle; /* next thread handle */
@END
@@ -441,5 +443,5 @@ index c413cc7d7bb..607d56a666c 100644
+ unsigned int shm_idx;
+@END
--
2.33.0
2.35.1

View File

@@ -1,4 +1,4 @@
From 670ee9563c1021c05993ef8525a4661daa01d3dd Mon Sep 17 00:00:00 2001
From dcb50e04b4ec205f4a6688c71a23cb2863cffce6 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Fri, 8 Jun 2018 21:01:24 -0500
Subject: [PATCH] server: Create eventfd file descriptors for event objects.
@@ -9,14 +9,14 @@ This lets system processes shut down.
---
server/esync.c | 8 ++++++++
server/esync.h | 1 +
server/event.c | 30 ++++++++++++++++++++++++++++--
3 files changed, 37 insertions(+), 2 deletions(-)
server/event.c | 29 +++++++++++++++++++++++++++--
3 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/server/esync.c b/server/esync.c
index 2b9307267f9..975e5d2ddd6 100644
index 6696119b207..8cb46c4f2ce 100644
--- a/server/esync.c
+++ b/server/esync.c
@@ -331,6 +331,14 @@ void esync_wake_up( struct object *obj )
@@ -329,6 +329,14 @@ void esync_wake_up( struct object *obj )
}
}
@@ -32,27 +32,19 @@ index 2b9307267f9..975e5d2ddd6 100644
{
struct esync *esync;
diff --git a/server/esync.h b/server/esync.h
index 1e12560ddd6..fcbfd0989bb 100644
index 1241e6d9f1a..d259b5f604d 100644
--- a/server/esync.h
+++ b/server/esync.h
@@ -22,3 +22,4 @@ extern int do_esync(void);
@@ -24,3 +24,4 @@ extern int do_esync(void);
void esync_init(void);
int esync_create_fd( int initval, int flags );
void esync_wake_up( struct object *obj );
+void esync_clear( int fd );
diff --git a/server/event.c b/server/event.c
index c727bfdd1ba..69126abc096 100644
index c727bfdd1ba..f1a88e3d23f 100644
--- a/server/event.c
+++ b/server/event.c
@@ -24,6 +24,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
+#include <unistd.h>
#include <sys/types.h>
#include "ntstatus.h"
@@ -35,6 +36,7 @@
@@ -35,6 +35,7 @@
#include "thread.h"
#include "request.h"
#include "security.h"
@@ -60,7 +52,7 @@ index c727bfdd1ba..69126abc096 100644
static const WCHAR event_name[] = {'E','v','e','n','t'};
@@ -56,13 +58,16 @@ struct event
@@ -56,13 +57,16 @@ struct event
struct list kernel_object; /* list of kernel object pointers */
int manual_reset; /* is it a manual reset event? */
int signaled; /* event has been signaled */
@@ -77,7 +69,7 @@ index c727bfdd1ba..69126abc096 100644
static const struct object_ops event_ops =
{
@@ -72,7 +77,7 @@ static const struct object_ops event_ops =
@@ -72,7 +76,7 @@ static const struct object_ops event_ops =
add_queue, /* add_queue */
remove_queue, /* remove_queue */
event_signaled, /* signaled */
@@ -86,7 +78,7 @@ index c727bfdd1ba..69126abc096 100644
event_satisfied, /* satisfied */
event_signal, /* signal */
no_get_fd, /* get_fd */
@@ -86,7 +91,7 @@ static const struct object_ops event_ops =
@@ -86,7 +90,7 @@ static const struct object_ops event_ops =
no_open_file, /* open_file */
event_get_kernel_obj_list, /* get_kernel_obj_list */
no_close_handle, /* close_handle */
@@ -95,7 +87,7 @@ index c727bfdd1ba..69126abc096 100644
};
@@ -152,6 +157,9 @@ struct event *create_event( struct object *root, const struct unicode_str *name,
@@ -152,6 +156,9 @@ struct event *create_event( struct object *root, const struct unicode_str *name,
list_init( &event->kernel_object );
event->manual_reset = manual_reset;
event->signaled = initial_state;
@@ -105,7 +97,7 @@ index c727bfdd1ba..69126abc096 100644
}
}
return event;
@@ -180,6 +188,9 @@ void set_event( struct event *event )
@@ -180,6 +187,9 @@ void set_event( struct event *event )
void reset_event( struct event *event )
{
event->signaled = 0;
@@ -115,7 +107,7 @@ index c727bfdd1ba..69126abc096 100644
}
static void event_dump( struct object *obj, int verbose )
@@ -197,6 +208,13 @@ static int event_signaled( struct object *obj, struct wait_queue_entry *entry )
@@ -197,6 +207,13 @@ static int event_signaled( struct object *obj, struct wait_queue_entry *entry )
return event->signaled;
}
@@ -129,7 +121,7 @@ index c727bfdd1ba..69126abc096 100644
static void event_satisfied( struct object *obj, struct wait_queue_entry *entry )
{
struct event *event = (struct event *)obj;
@@ -225,6 +243,14 @@ static struct list *event_get_kernel_obj_list( struct object *obj )
@@ -225,6 +242,14 @@ static struct list *event_get_kernel_obj_list( struct object *obj )
return &event->kernel_object;
}
@@ -145,5 +137,5 @@ index c727bfdd1ba..69126abc096 100644
unsigned int attr, const struct security_descriptor *sd )
{
--
2.33.0
2.35.1

View File

@@ -1,14 +1,14 @@
From a273680e7cbdc66e9fdb6fd6482803ddfed94dca Mon Sep 17 00:00:00 2001
From 0d55971a114d650b7826e01e43ccd3a60597fefd Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 16:01:56 -0500
Subject: [PATCH] server: Create eventfd file descriptors for message queues.
---
server/queue.c | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
server/queue.c | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
diff --git a/server/queue.c b/server/queue.c
index b6decc521e9..e70c0f5ad81 100644
index b6decc521e9..23fb338924e 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -41,6 +41,7 @@
@@ -85,7 +85,15 @@ index b6decc521e9..e70c0f5ad81 100644
static void msg_queue_satisfied( struct object *obj, struct wait_queue_entry *entry )
{
struct msg_queue *queue = (struct msg_queue *)obj;
@@ -2485,6 +2502,9 @@ DECL_HANDLER(set_queue_mask)
@@ -1090,6 +1107,7 @@ static void msg_queue_destroy( struct object *obj )
release_object( queue->input );
if (queue->hooks) release_object( queue->hooks );
if (queue->fd) release_object( queue->fd );
+ if (do_esync()) close( queue->esync_fd );
}
static void msg_queue_poll_event( struct fd *fd, int event )
@@ -2485,6 +2503,9 @@ DECL_HANDLER(set_queue_mask)
if (req->skip_wait) queue->wake_mask = queue->changed_mask = 0;
else wake_up( &queue->obj, 0 );
}
@@ -95,7 +103,7 @@ index b6decc521e9..e70c0f5ad81 100644
}
}
@@ -2498,6 +2518,9 @@ DECL_HANDLER(get_queue_status)
@@ -2498,6 +2519,9 @@ DECL_HANDLER(get_queue_status)
reply->wake_bits = queue->wake_bits;
reply->changed_bits = queue->changed_bits;
queue->changed_bits &= ~req->clear_bits;
@@ -105,7 +113,7 @@ index b6decc521e9..e70c0f5ad81 100644
}
else reply->wake_bits = reply->changed_bits = 0;
}
@@ -2746,6 +2769,10 @@ DECL_HANDLER(get_message)
@@ -2746,6 +2770,10 @@ DECL_HANDLER(get_message)
queue->wake_mask = req->wake_mask;
queue->changed_mask = req->changed_mask;
set_error( STATUS_PENDING ); /* FIXME */
@@ -117,5 +125,5 @@ index b6decc521e9..e70c0f5ad81 100644
found_msg:
--
2.34.1
2.35.1

View File

@@ -1,4 +1,4 @@
From 3518ce5bf3c6010425f35bb228b3fb2b238b1726 Mon Sep 17 00:00:00 2001
From 8111350c608821aa86c6acfb4959446abf97d382 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Sat, 9 Jun 2018 15:39:37 -0500
Subject: [PATCH] server: Create eventfd descriptors for device manager
@@ -11,22 +11,14 @@ process.
This lets drivers like mountmgr finally work, and so winecfg can open the
Drives tab.
---
server/device.c | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
server/device.c | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/server/device.c b/server/device.c
index 80904d33d0d..2a7727f05ae 100644
index f730fa81afa..c45d0102a56 100644
--- a/server/device.c
+++ b/server/device.c
@@ -25,6 +25,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
+#include <unistd.h>
#include "ntstatus.h"
#define WIN32_NO_STATUS
@@ -38,6 +39,7 @@
@@ -38,6 +38,7 @@
#include "handle.h"
#include "request.h"
#include "process.h"
@@ -34,7 +26,7 @@ index 80904d33d0d..2a7727f05ae 100644
/* IRP object */
@@ -93,10 +95,12 @@ struct device_manager
@@ -93,10 +94,12 @@ struct device_manager
struct list requests; /* list of pending irps across all devices */
struct irp_call *current_call; /* call currently executed on client side */
struct wine_rb_tree kernel_objects; /* map of objects that have client side pointer associated */
@@ -47,7 +39,7 @@ index 80904d33d0d..2a7727f05ae 100644
static void device_manager_destroy( struct object *obj );
static const struct object_ops device_manager_ops =
@@ -107,7 +111,7 @@ static const struct object_ops device_manager_ops =
@@ -107,7 +110,7 @@ static const struct object_ops device_manager_ops =
add_queue, /* add_queue */
remove_queue, /* remove_queue */
device_manager_signaled, /* signaled */
@@ -56,7 +48,7 @@ index 80904d33d0d..2a7727f05ae 100644
no_satisfied, /* satisfied */
no_signal, /* signal */
no_get_fd, /* get_fd */
@@ -751,6 +755,9 @@ static void delete_file( struct device_file *file )
@@ -751,6 +754,9 @@ static void delete_file( struct device_file *file )
/* terminate all pending requests */
LIST_FOR_EACH_ENTRY_SAFE( irp, next, &file->requests, struct irp_call, dev_entry )
{
@@ -66,7 +58,7 @@ index 80904d33d0d..2a7727f05ae 100644
list_remove( &irp->mgr_entry );
set_irp_result( irp, STATUS_FILE_DELETED, NULL, 0, 0 );
}
@@ -786,6 +793,13 @@ static int device_manager_signaled( struct object *obj, struct wait_queue_entry
@@ -786,6 +792,13 @@ static int device_manager_signaled( struct object *obj, struct wait_queue_entry
return !list_empty( &manager->requests );
}
@@ -80,7 +72,7 @@ index 80904d33d0d..2a7727f05ae 100644
static void device_manager_destroy( struct object *obj )
{
struct device_manager *manager = (struct device_manager *)obj;
@@ -820,6 +834,9 @@ static void device_manager_destroy( struct object *obj )
@@ -820,6 +833,9 @@ static void device_manager_destroy( struct object *obj )
assert( !irp->file && !irp->async );
release_object( irp );
}
@@ -90,7 +82,7 @@ index 80904d33d0d..2a7727f05ae 100644
}
static struct device_manager *create_device_manager(void)
@@ -832,6 +849,9 @@ static struct device_manager *create_device_manager(void)
@@ -832,6 +848,9 @@ static struct device_manager *create_device_manager(void)
list_init( &manager->devices );
list_init( &manager->requests );
wine_rb_init( &manager->kernel_objects, compare_kernel_object );
@@ -100,7 +92,7 @@ index 80904d33d0d..2a7727f05ae 100644
}
return manager;
}
@@ -1019,6 +1039,9 @@ DECL_HANDLER(get_next_device_request)
@@ -1021,6 +1040,9 @@ DECL_HANDLER(get_next_device_request)
/* we already own the object if it's only on manager queue */
if (irp->file) grab_object( irp );
manager->current_call = irp;
@@ -111,5 +103,5 @@ index 80904d33d0d..2a7727f05ae 100644
else close_handle( current->process, reply->next );
}
--
2.33.0
2.35.1

View File

@@ -1,17 +1,17 @@
From 1ad0cfe6a328fd4ffdbce2c61e1cc7c822391734 Mon Sep 17 00:00:00 2001
From 543476e8a53d41c69e89fbaa7d9cee8a48059944 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Fri, 15 Jun 2018 11:01:44 -0500
Subject: [PATCH] server: Create eventfd descriptors for timers.
---
server/timer.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
server/timer.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/server/timer.c b/server/timer.c
index 23d03aa3582..43b40a13032 100644
index f59902d5607..36645a2a8d2 100644
--- a/server/timer.c
+++ b/server/timer.c
@@ -36,6 +36,7 @@
@@ -35,6 +35,7 @@
#include "file.h"
#include "handle.h"
#include "request.h"
@@ -19,7 +19,7 @@ index 23d03aa3582..43b40a13032 100644
static const WCHAR timer_name[] = {'T','i','m','e','r'};
@@ -62,10 +63,12 @@ struct timer
@@ -61,10 +62,12 @@ struct timer
struct thread *thread; /* thread that set the APC function */
client_ptr_t callback; /* callback APC function */
client_ptr_t arg; /* callback argument */
@@ -32,7 +32,7 @@ index 23d03aa3582..43b40a13032 100644
static void timer_satisfied( struct object *obj, struct wait_queue_entry *entry );
static void timer_destroy( struct object *obj );
@@ -77,7 +80,7 @@ static const struct object_ops timer_ops =
@@ -76,7 +79,7 @@ static const struct object_ops timer_ops =
add_queue, /* add_queue */
remove_queue, /* remove_queue */
timer_signaled, /* signaled */
@@ -41,7 +41,7 @@ index 23d03aa3582..43b40a13032 100644
timer_satisfied, /* satisfied */
no_signal, /* signal */
no_get_fd, /* get_fd */
@@ -112,6 +115,10 @@ static struct timer *create_timer( struct object *root, const struct unicode_str
@@ -111,6 +114,10 @@ static struct timer *create_timer( struct object *root, const struct unicode_str
timer->period = 0;
timer->timeout = NULL;
timer->thread = NULL;
@@ -52,7 +52,7 @@ index 23d03aa3582..43b40a13032 100644
}
}
return timer;
@@ -185,6 +192,9 @@ static int set_timer( struct timer *timer, timeout_t expire, unsigned int period
@@ -182,6 +189,9 @@ static int set_timer( struct timer *timer, timeout_t expire, unsigned int period
{
period = 0; /* period doesn't make any sense for a manual timer */
timer->signaled = 0;
@@ -62,7 +62,7 @@ index 23d03aa3582..43b40a13032 100644
}
timer->when = (expire <= 0) ? expire - monotonic_time : max( expire, current_time );
timer->period = period;
@@ -212,6 +222,13 @@ static int timer_signaled( struct object *obj, struct wait_queue_entry *entry )
@@ -209,6 +219,13 @@ static int timer_signaled( struct object *obj, struct wait_queue_entry *entry )
return timer->signaled;
}
@@ -76,6 +76,14 @@ index 23d03aa3582..43b40a13032 100644
static void timer_satisfied( struct object *obj, struct wait_queue_entry *entry )
{
struct timer *timer = (struct timer *)obj;
@@ -223,6 +240,7 @@ static void timer_destroy( struct object *obj )
if (timer->timeout) remove_timeout_user( timer->timeout );
if (timer->thread) release_object( timer->thread );
+ if (do_esync()) close( timer->esync_fd );
}
/* create a timer */
--
2.20.1
2.35.1

View File

@@ -1,14 +1,14 @@
From fa9bbbaa8630c4b259e287437a627e226c1c34da Mon Sep 17 00:00:00 2001
From 6adfd0593d10cc9ec8ed8364de167d40ee2098ce Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Sat, 17 Oct 2020 19:13:16 -0500
Subject: [PATCH] server: Create esync file descriptors for console servers.
---
server/console.c | 36 ++++++++++++++++++++++++++++--------
1 file changed, 28 insertions(+), 8 deletions(-)
server/console.c | 37 +++++++++++++++++++++++++++++--------
1 file changed, 29 insertions(+), 8 deletions(-)
diff --git a/server/console.c b/server/console.c
index e7c97e99579..98ac09efc3f 100644
index ae5d84f7a06..3f9c0ce356c 100644
--- a/server/console.c
+++ b/server/console.c
@@ -41,6 +41,7 @@
@@ -67,7 +67,15 @@ index e7c97e99579..98ac09efc3f 100644
while (!list_empty( &server->read_queue ))
{
struct console_host_ioctl *call = LIST_ENTRY( list_head( &server->read_queue ), struct console_host_ioctl, entry );
@@ -897,6 +902,13 @@ static int console_server_signaled( struct object *obj, struct wait_queue_entry
@@ -877,6 +882,7 @@ static void console_server_destroy( struct object *obj )
assert( obj->ops == &console_server_ops );
disconnect_console_server( server );
if (server->fd) release_object( server->fd );
+ if (do_esync()) close( server->esync_fd );
}
static struct object *console_server_lookup_name( struct object *obj, struct unicode_str *name,
@@ -918,6 +924,13 @@ static int console_server_signaled( struct object *obj, struct wait_queue_entry
return !server->console || !list_empty( &server->queue );
}
@@ -81,7 +89,7 @@ index e7c97e99579..98ac09efc3f 100644
static struct fd *console_server_get_fd( struct object* obj )
{
struct console_server *server = (struct console_server*)obj;
@@ -928,6 +940,10 @@ static struct object *create_console_server( void )
@@ -949,6 +962,10 @@ static struct object *create_console_server( void )
return NULL;
}
allow_fd_caching(server->fd);
@@ -92,7 +100,7 @@ index e7c97e99579..98ac09efc3f 100644
return &server->obj;
}
@@ -1513,6 +1529,8 @@ DECL_HANDLER(get_next_console_request)
@@ -1562,6 +1579,8 @@ DECL_HANDLER(get_next_console_request)
/* set result of previous ioctl */
ioctl = LIST_ENTRY( list_head( &server->queue ), struct console_host_ioctl, entry );
list_remove( &ioctl->entry );
@@ -101,7 +109,7 @@ index e7c97e99579..98ac09efc3f 100644
}
if (ioctl)
@@ -1598,6 +1616,8 @@ DECL_HANDLER(get_next_console_request)
@@ -1647,6 +1666,8 @@ DECL_HANDLER(get_next_console_request)
{
set_error( STATUS_PENDING );
}
@@ -111,5 +119,5 @@ index e7c97e99579..98ac09efc3f 100644
release_object( server );
}
--
2.34.1
2.35.1

View File

@@ -1,4 +1,4 @@
From 9b66229c8a8857e4dfbcee80698b83ca0ca7f2f9 Mon Sep 17 00:00:00 2001
From b052dd526d176c8b842f446279ee78542b184f08 Mon Sep 17 00:00:00 2001
From: Fabian Maurer <dark.shadow4@web.de>
Date: Fri, 10 Apr 2020 18:47:18 +0200
Subject: [PATCH] kernelbase: Implement sortkey generation on official tables
@@ -10,10 +10,10 @@ Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
2 files changed, 413 insertions(+), 123 deletions(-)
diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
index 3b43dea2a2b..ac9b4da0d67 100644
index 8dc5814162a..d6084e3f328 100644
--- a/dlls/kernel32/tests/locale.c
+++ b/dlls/kernel32/tests/locale.c
@@ -2568,6 +2568,13 @@ static void test_lcmapstring_unicode(lcmapstring_wrapper func_ptr, const char *f
@@ -2586,6 +2586,13 @@ static void test_lcmapstring_unicode(lcmapstring_wrapper func_ptr, const char *f
lstrlenW(symbols_stripped) + 1, ret);
ok(!lstrcmpW(buf, symbols_stripped), "%s string comparison mismatch\n", func_name);
@@ -27,7 +27,7 @@ index 3b43dea2a2b..ac9b4da0d67 100644
/* test srclen = 0 */
SetLastError(0xdeadbeef);
ret = func_ptr(0, upper_case, 0, buf, ARRAY_SIZE(buf));
@@ -3101,6 +3108,135 @@ static void test_sorting(void)
@@ -3222,6 +3229,135 @@ static void test_sorting(void)
}
}
@@ -163,7 +163,7 @@ index 3b43dea2a2b..ac9b4da0d67 100644
static void test_FoldStringA(void)
{
int ret, i, j;
@@ -7492,6 +7628,7 @@ START_TEST(locale)
@@ -7649,6 +7785,7 @@ START_TEST(locale)
test_locale_nls();
test_geo_name();
test_sorting();
@@ -172,10 +172,10 @@ index 3b43dea2a2b..ac9b4da0d67 100644
test_EnumCalendarInfoW();
test_EnumCalendarInfoExA();
diff --git a/dlls/kernelbase/locale.c b/dlls/kernelbase/locale.c
index 997c7b6f4bc..e494fe6bb48 100644
index d046cefd749..993ac707a55 100644
--- a/dlls/kernelbase/locale.c
+++ b/dlls/kernelbase/locale.c
@@ -2857,127 +2857,6 @@ static int wcstombs_codepage( UINT codepage, DWORD flags, const WCHAR *src, int
@@ -3048,127 +3048,6 @@ static int wcstombs_codepage( const CPTABLEINFO *info, DWORD flags, const WCHAR
return wcstombs_sbcs( info, src, srclen, dst, dstlen );
}
@@ -301,9 +301,9 @@ index 997c7b6f4bc..e494fe6bb48 100644
-
-
/* compose a full-width katakana. return consumed source characters. */
static int compose_katakana( const WCHAR *src, int srclen, WCHAR *dst )
static int map_to_fullwidth( const WCHAR *src, int srclen, WCHAR *dst )
{
@@ -3305,6 +3184,280 @@ static int compare_weights(int flags, const WCHAR *str1, int len1,
@@ -3358,6 +3237,280 @@ static int compare_weights(int flags, const WCHAR *str1, int len1,
return len1 - len2;
}
@@ -584,7 +584,7 @@ index 997c7b6f4bc..e494fe6bb48 100644
static int compare_tzdate( const TIME_FIELDS *tf, const SYSTEMTIME *compare )
{
@@ -5759,8 +5912,8 @@ INT WINAPI DECLSPEC_HOTPATCH LCMapStringEx( const WCHAR *locale, DWORD flags, co
@@ -5713,8 +5866,8 @@ INT WINAPI DECLSPEC_HOTPATCH LCMapStringEx( const WCHAR *locale, DWORD flags, co
TRACE( "(%s,0x%08lx,%s,%d,%p,%d)\n",
debugstr_w(locale), flags, debugstr_wn(src, srclen), srclen, dst, dstlen );

View File

@@ -1,4 +1,4 @@
From dc71919fd156f8fabcb47594cb13ee3210ff571c Mon Sep 17 00:00:00 2001
From cc964cf26e79a89fb3d7345847a23d93368e3eed Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 9 Jul 2019 14:13:28 +1000
Subject: [PATCH] user32: Do not enumerate the registry in
@@ -9,23 +9,23 @@ not the complete list from the registry.
---
dlls/user32/input.c | 1 -
dlls/user32/tests/input.c | 35 +++++++++++++++++++++++++++++++++++
dlls/win32u/input.c | 35 ++---------------------------------
3 files changed, 37 insertions(+), 34 deletions(-)
dlls/win32u/input.c | 33 +--------------------------------
3 files changed, 36 insertions(+), 33 deletions(-)
diff --git a/dlls/user32/input.c b/dlls/user32/input.c
index 6cf60abeae2..3907430dd22 100644
index 06756b5551e..99abab38ccf 100644
--- a/dlls/user32/input.c
+++ b/dlls/user32/input.c
@@ -802,7 +802,6 @@ static void CALLBACK TrackMouseEventProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent,
}
@@ -521,7 +521,6 @@ BOOL WINAPI UnloadKeyboardLayout( HKL layout )
return FALSE;
}
-
/***********************************************************************
* TrackMouseEvent [USER32]
*
* EnableMouseInPointer (USER32.@)
*/
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c
index 79f3dfc3dc0..b3c1bd560ae 100644
index 8b84a39d009..d7520459c6d 100644
--- a/dlls/user32/tests/input.c
+++ b/dlls/user32/tests/input.c
@@ -4481,6 +4481,40 @@ static void test_SendInput(void)
@@ -78,10 +78,10 @@ index 79f3dfc3dc0..b3c1bd560ae 100644
if(pGetMouseMovePointsEx)
test_GetMouseMovePointsEx(argv[0]);
diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c
index 72af32fd471..a18f81fc331 100644
index 28fc5a918c8..24782e405a7 100644
--- a/dlls/win32u/input.c
+++ b/dlls/win32u/input.c
@@ -821,11 +821,7 @@ HKL WINAPI NtUserActivateKeyboardLayout( HKL layout, UINT flags )
@@ -933,11 +933,7 @@ HKL WINAPI NtUserActivateKeyboardLayout( HKL layout, UINT flags )
*/
UINT WINAPI NtUserGetKeyboardLayoutList( INT size, HKL *layouts )
{
@@ -94,7 +94,7 @@ index 72af32fd471..a18f81fc331 100644
HKL layout;
TRACE_(keyboard)( "size %d, layouts %p.\n", size, layouts );
@@ -839,33 +835,6 @@ UINT WINAPI NtUserGetKeyboardLayoutList( INT size, HKL *layouts )
@@ -951,33 +947,6 @@ UINT WINAPI NtUserGetKeyboardLayoutList( INT size, HKL *layouts )
if (size && layouts)
{
layouts[count - 1] = layout;

View File

@@ -1,219 +1,74 @@
From 50e78099e8c5fbd74131e339b8e48488e1581c74 Mon Sep 17 00:00:00 2001
From de8040e1a8900116a6a3fa0f0560e4a3c66d4d71 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 5 Aug 2017 03:39:23 +0200
Subject: [PATCH] ntdll: Use fast CS functions for heap locking.
---
dlls/ntdll/heap.c | 50 +++++++++++++++++++++++------------------------
1 file changed, 25 insertions(+), 25 deletions(-)
dlls/ntdll/heap.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c
index af2a489b727..178f81006d0 100644
index 51567d0552b..b1dcb01cd4f 100644
--- a/dlls/ntdll/heap.c
+++ b/dlls/ntdll/heap.c
@@ -1338,7 +1338,7 @@ static BOOL HEAP_IsRealArena( HEAP *heapPtr, /* [in] ptr to the heap */
flags |= heapPtr->flags;
/* calling HeapLock may result in infinite recursion, so do the critsect directly */
if (!(flags & HEAP_NO_SERIALIZE))
- RtlEnterCriticalSection( &heapPtr->critSection );
+ enter_critical_section( &heapPtr->critSection );
if (block) /* only check this single memory block */
{
@@ -1384,7 +1384,7 @@ static BOOL HEAP_IsRealArena( HEAP *heapPtr, /* [in] ptr to the heap */
ret = TRUE;
done:
- if (!(flags & HEAP_NO_SERIALIZE)) RtlLeaveCriticalSection( &heapPtr->critSection );
+ if (!(flags & HEAP_NO_SERIALIZE)) leave_critical_section( &heapPtr->critSection );
return ret;
@@ -340,13 +340,13 @@ static inline ULONG heap_get_flags( const HEAP *heap, ULONG flags )
static void heap_lock( HEAP *heap, ULONG flags )
{
if (heap_get_flags( heap, flags ) & HEAP_NO_SERIALIZE) return;
- RtlEnterCriticalSection( &heap->cs );
+ enter_critical_section( &heap->cs );
}
@@ -1558,9 +1558,9 @@ HANDLE WINAPI RtlCreateHeap( ULONG flags, PVOID addr, SIZE_T totalSize, SIZE_T c
static void heap_unlock( HEAP *heap, ULONG flags )
{
if (heap_get_flags( heap, flags ) & HEAP_NO_SERIALIZE) return;
- RtlLeaveCriticalSection( &heap->cs );
+ leave_critical_section( &heap->cs );
}
static void heap_set_status( const HEAP *heap, ULONG flags, NTSTATUS status )
@@ -1577,9 +1577,9 @@ HANDLE WINAPI RtlCreateHeap( ULONG flags, PVOID addr, SIZE_T totalSize, SIZE_T c
if (processHeap)
{
HEAP *heapPtr = subheap->heap;
- RtlEnterCriticalSection( &processHeap->critSection );
+ enter_critical_section( &processHeap->critSection );
- RtlEnterCriticalSection( &processHeap->cs );
+ enter_critical_section( &processHeap->cs );
list_add_head( &processHeap->entry, &heapPtr->entry );
- RtlLeaveCriticalSection( &processHeap->critSection );
+ leave_critical_section( &processHeap->critSection );
- RtlLeaveCriticalSection( &processHeap->cs );
+ leave_critical_section( &processHeap->cs );
}
else if (!addr)
{
@@ -1598,9 +1598,9 @@ HANDLE WINAPI RtlDestroyHeap( HANDLE heap )
@@ -1623,9 +1623,9 @@ HANDLE WINAPI RtlDestroyHeap( HANDLE heap )
if (heap == processHeap) return heap; /* cannot delete the main process heap */
/* remove it from the per-process list */
- RtlEnterCriticalSection( &processHeap->critSection );
+ enter_critical_section( &processHeap->critSection );
- RtlEnterCriticalSection( &processHeap->cs );
+ enter_critical_section( &processHeap->cs );
list_remove( &heapPtr->entry );
- RtlLeaveCriticalSection( &processHeap->critSection );
+ leave_critical_section( &processHeap->critSection );
- RtlLeaveCriticalSection( &processHeap->cs );
+ leave_critical_section( &processHeap->cs );
heapPtr->critSection.DebugInfo->Spare[0] = 0;
RtlDeleteCriticalSection( &heapPtr->critSection );
@@ -1673,12 +1673,12 @@ void * WINAPI DECLSPEC_HOTPATCH RtlAllocateHeap( HANDLE heap, ULONG flags, SIZE_
}
if (rounded_size < HEAP_MIN_DATA_SIZE) rounded_size = HEAP_MIN_DATA_SIZE;
- if (!(flags & HEAP_NO_SERIALIZE)) RtlEnterCriticalSection( &heapPtr->critSection );
+ if (!(flags & HEAP_NO_SERIALIZE)) enter_critical_section( &heapPtr->critSection );
if (rounded_size >= HEAP_MIN_LARGE_BLOCK_SIZE && (flags & HEAP_GROWABLE))
{
void *ret = allocate_large_block( heap, flags, size );
- if (!(flags & HEAP_NO_SERIALIZE)) RtlLeaveCriticalSection( &heapPtr->critSection );
+ if (!(flags & HEAP_NO_SERIALIZE)) leave_critical_section( &heapPtr->critSection );
if (!ret && (flags & HEAP_GENERATE_EXCEPTIONS)) RtlRaiseStatus( STATUS_NO_MEMORY );
TRACE("(%p,%08x,%08lx): returning %p\n", heap, flags, size, ret );
return ret;
@@ -1690,7 +1690,7 @@ void * WINAPI DECLSPEC_HOTPATCH RtlAllocateHeap( HANDLE heap, ULONG flags, SIZE_
{
TRACE("(%p,%08x,%08lx): returning NULL\n",
heap, flags, size );
- if (!(flags & HEAP_NO_SERIALIZE)) RtlLeaveCriticalSection( &heapPtr->critSection );
+ if (!(flags & HEAP_NO_SERIALIZE)) leave_critical_section( &heapPtr->critSection );
if (flags & HEAP_GENERATE_EXCEPTIONS) RtlRaiseStatus( STATUS_NO_MEMORY );
return NULL;
}
@@ -1716,7 +1716,7 @@ void * WINAPI DECLSPEC_HOTPATCH RtlAllocateHeap( HANDLE heap, ULONG flags, SIZE_
notify_alloc( pInUse + 1, size, flags & HEAP_ZERO_MEMORY );
initialize_block( pInUse + 1, size, pInUse->unused_bytes, flags );
- if (!(flags & HEAP_NO_SERIALIZE)) RtlLeaveCriticalSection( &heapPtr->critSection );
+ if (!(flags & HEAP_NO_SERIALIZE)) leave_critical_section( &heapPtr->critSection );
TRACE("(%p,%08x,%08lx): returning %p\n", heap, flags, size, pInUse + 1 );
return pInUse + 1;
@@ -1756,7 +1756,7 @@ BOOLEAN WINAPI DECLSPEC_HOTPATCH RtlFreeHeap( HANDLE heap, ULONG flags, void *pt
flags &= HEAP_NO_SERIALIZE;
flags |= heapPtr->flags;
- if (!(flags & HEAP_NO_SERIALIZE)) RtlEnterCriticalSection( &heapPtr->critSection );
+ if (!(flags & HEAP_NO_SERIALIZE)) enter_critical_section( &heapPtr->critSection );
/* Inform valgrind we are trying to free memory, so it can throw up an error message */
notify_free( ptr );
@@ -1770,12 +1770,12 @@ BOOLEAN WINAPI DECLSPEC_HOTPATCH RtlFreeHeap( HANDLE heap, ULONG flags, void *pt
else
HEAP_MakeInUseBlockFree( subheap, pInUse );
- if (!(flags & HEAP_NO_SERIALIZE)) RtlLeaveCriticalSection( &heapPtr->critSection );
+ if (!(flags & HEAP_NO_SERIALIZE)) leave_critical_section( &heapPtr->critSection );
TRACE("(%p,%08x,%p): returning TRUE\n", heap, flags, ptr );
return TRUE;
error:
- if (!(flags & HEAP_NO_SERIALIZE)) RtlLeaveCriticalSection( &heapPtr->critSection );
+ if (!(flags & HEAP_NO_SERIALIZE)) leave_critical_section( &heapPtr->critSection );
RtlSetLastWin32ErrorAndNtStatusFromNtStatus( STATUS_INVALID_PARAMETER );
TRACE("(%p,%08x,%p): returning FALSE\n", heap, flags, ptr );
return FALSE;
@@ -1817,7 +1817,7 @@ PVOID WINAPI RtlReAllocateHeap( HANDLE heap, ULONG flags, PVOID ptr, SIZE_T size
flags &= HEAP_GENERATE_EXCEPTIONS | HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY |
HEAP_REALLOC_IN_PLACE_ONLY;
flags |= heapPtr->flags;
- if (!(flags & HEAP_NO_SERIALIZE)) RtlEnterCriticalSection( &heapPtr->critSection );
+ if (!(flags & HEAP_NO_SERIALIZE)) enter_critical_section( &heapPtr->critSection );
rounded_size = ROUND_SIZE(size) + HEAP_TAIL_EXTRA_SIZE(flags);
if (rounded_size < size) goto oom; /* overflow */
@@ -1911,19 +1911,19 @@ PVOID WINAPI RtlReAllocateHeap( HANDLE heap, ULONG flags, PVOID ptr, SIZE_T size
ret = pArena + 1;
done:
- if (!(flags & HEAP_NO_SERIALIZE)) RtlLeaveCriticalSection( &heapPtr->critSection );
+ if (!(flags & HEAP_NO_SERIALIZE)) leave_critical_section( &heapPtr->critSection );
TRACE("(%p,%08x,%p,%08lx): returning %p\n", heap, flags, ptr, size, ret );
return ret;
oom:
- if (!(flags & HEAP_NO_SERIALIZE)) RtlLeaveCriticalSection( &heapPtr->critSection );
+ if (!(flags & HEAP_NO_SERIALIZE)) leave_critical_section( &heapPtr->critSection );
if (flags & HEAP_GENERATE_EXCEPTIONS) RtlRaiseStatus( STATUS_NO_MEMORY );
RtlSetLastWin32ErrorAndNtStatusFromNtStatus( STATUS_NO_MEMORY );
TRACE("(%p,%08x,%p,%08lx): returning NULL\n", heap, flags, ptr, size );
return NULL;
error:
- if (!(flags & HEAP_NO_SERIALIZE)) RtlLeaveCriticalSection( &heapPtr->critSection );
+ if (!(flags & HEAP_NO_SERIALIZE)) leave_critical_section( &heapPtr->critSection );
RtlSetLastWin32ErrorAndNtStatusFromNtStatus( STATUS_INVALID_PARAMETER );
TRACE("(%p,%08x,%p,%08lx): returning NULL\n", heap, flags, ptr, size );
return NULL;
@@ -1969,7 +1969,7 @@ BOOLEAN WINAPI RtlLockHeap( HANDLE heap )
{
HEAP *heapPtr = HEAP_GetPtr( heap );
if (!heapPtr) return FALSE;
- RtlEnterCriticalSection( &heapPtr->critSection );
+ enter_critical_section( &heapPtr->critSection );
return TRUE;
}
@@ -1990,7 +1990,7 @@ BOOLEAN WINAPI RtlUnlockHeap( HANDLE heap )
{
HEAP *heapPtr = HEAP_GetPtr( heap );
if (!heapPtr) return FALSE;
- RtlLeaveCriticalSection( &heapPtr->critSection );
+ leave_critical_section( &heapPtr->critSection );
return TRUE;
}
@@ -2026,7 +2026,7 @@ SIZE_T WINAPI RtlSizeHeap( HANDLE heap, ULONG flags, const void *ptr )
}
flags &= HEAP_NO_SERIALIZE;
flags |= heapPtr->flags;
- if (!(flags & HEAP_NO_SERIALIZE)) RtlEnterCriticalSection( &heapPtr->critSection );
+ if (!(flags & HEAP_NO_SERIALIZE)) enter_critical_section( &heapPtr->critSection );
pArena = (const ARENA_INUSE *)ptr - 1;
if (!validate_block_pointer( heapPtr, &subheap, pArena ))
@@ -2043,7 +2043,7 @@ SIZE_T WINAPI RtlSizeHeap( HANDLE heap, ULONG flags, const void *ptr )
{
ret = (pArena->size & ARENA_SIZE_MASK) - pArena->unused_bytes;
}
- if (!(flags & HEAP_NO_SERIALIZE)) RtlLeaveCriticalSection( &heapPtr->critSection );
+ if (!(flags & HEAP_NO_SERIALIZE)) leave_critical_section( &heapPtr->critSection );
TRACE("(%p,%08x,%p): returning %08lx\n", heap, flags, ptr, ret );
return ret;
@@ -2090,7 +2090,7 @@ NTSTATUS WINAPI RtlWalkHeap( HANDLE heap, PVOID entry_ptr )
if (!heapPtr || !entry) return STATUS_INVALID_PARAMETER;
- if (!(heapPtr->flags & HEAP_NO_SERIALIZE)) RtlEnterCriticalSection( &heapPtr->critSection );
+ if (!(heapPtr->flags & HEAP_NO_SERIALIZE)) enter_critical_section( &heapPtr->critSection );
/* FIXME: enumerate large blocks too */
@@ -2195,7 +2195,7 @@ NTSTATUS WINAPI RtlWalkHeap( HANDLE heap, PVOID entry_ptr )
if (TRACE_ON(heap)) HEAP_DumpEntry(entry);
HW_end:
- if (!(heapPtr->flags & HEAP_NO_SERIALIZE)) RtlLeaveCriticalSection( &heapPtr->critSection );
+ if (!(heapPtr->flags & HEAP_NO_SERIALIZE)) leave_critical_section( &heapPtr->critSection );
return ret;
}
@@ -2218,7 +2218,7 @@ ULONG WINAPI RtlGetProcessHeaps( ULONG count, HANDLE *heaps )
heapPtr->cs.DebugInfo->Spare[0] = 0;
RtlDeleteCriticalSection( &heapPtr->cs );
@@ -2171,7 +2171,7 @@ ULONG WINAPI RtlGetProcessHeaps( ULONG count, HANDLE *heaps )
ULONG total = 1; /* main heap */
struct list *ptr;
- RtlEnterCriticalSection( &processHeap->critSection );
+ enter_critical_section( &processHeap->critSection );
- RtlEnterCriticalSection( &processHeap->cs );
+ enter_critical_section( &processHeap->cs );
LIST_FOR_EACH( ptr, &processHeap->entry ) total++;
if (total <= count)
{
@@ -2226,7 +2226,7 @@ ULONG WINAPI RtlGetProcessHeaps( ULONG count, HANDLE *heaps )
@@ -2179,7 +2179,7 @@ ULONG WINAPI RtlGetProcessHeaps( ULONG count, HANDLE *heaps )
LIST_FOR_EACH( ptr, &processHeap->entry )
*heaps++ = LIST_ENTRY( ptr, HEAP, entry );
}
- RtlLeaveCriticalSection( &processHeap->critSection );
+ leave_critical_section( &processHeap->critSection );
- RtlLeaveCriticalSection( &processHeap->cs );
+ leave_critical_section( &processHeap->cs );
return total;
}
--
2.17.1
2.35.1

View File

@@ -1,48 +0,0 @@
From 33948747d5b11b2d61004632bf1038dc95060fd3 Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Sun, 1 Feb 2015 12:53:09 +0100
Subject: [PATCH] ntoskrnl.exe: Implement MmMapLockedPages and
MmUnmapLockedPages.
---
dlls/ntoskrnl.exe/ntoskrnl.c | 20 ++++++++++++++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index c1e6a9c..cca3066 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -2821,6 +2821,16 @@ VOID WINAPI MmLockPagableSectionByHandle(PVOID ImageSectionHandle)
FIXME("stub %p\n", ImageSectionHandle);
}
+ /***********************************************************************
+ * MmMapLockedPages (NTOSKRNL.EXE.@)
+ */
+PVOID WINAPI MmMapLockedPages(PMDL MemoryDescriptorList, KPROCESSOR_MODE AccessMode)
+{
+ TRACE("%p %d\n", MemoryDescriptorList, AccessMode);
+ return MemoryDescriptorList->MappedSystemVa;
+}
+
+
/***********************************************************************
* MmMapLockedPagesSpecifyCache (NTOSKRNL.EXE.@)
*/
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 633a8c4..cc74261 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -703,7 +703,7 @@
@ stub MmLockPagableImageSection
@ stdcall MmLockPagableSectionByHandle(ptr)
@ stdcall MmMapIoSpace(int64 long long)
-@ stub MmMapLockedPages
+@ stdcall MmMapLockedPages(ptr long)
@ stdcall MmMapLockedPagesSpecifyCache(ptr long long ptr long long)
@ stub MmMapLockedPagesWithReservedMapping
@ stub MmMapMemoryDumpMdl
--
1.9.1

Some files were not shown because too many files have changed in this diff Show More