diff --git a/patches/eventfd_synchronization/0020-server-Create-eventfd-file-descriptors-for-message-q.patch b/patches/eventfd_synchronization/0020-server-Create-eventfd-file-descriptors-for-message-q.patch index 4e3c33d5..c8a1681b 100644 --- a/patches/eventfd_synchronization/0020-server-Create-eventfd-file-descriptors-for-message-q.patch +++ b/patches/eventfd_synchronization/0020-server-Create-eventfd-file-descriptors-for-message-q.patch @@ -1,4 +1,4 @@ -From 0d55971a114d650b7826e01e43ccd3a60597fefd Mon Sep 17 00:00:00 2001 +From 61e2cd91e7eb3654e6663a44d950f40808c4f30b Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Mon, 6 Jul 2020 16:01:56 -0500 Subject: [PATCH] server: Create eventfd file descriptors for message queues. @@ -8,10 +8,10 @@ Subject: [PATCH] server: Create eventfd file descriptors for message queues. 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/server/queue.c b/server/queue.c -index b6decc521e9..23fb338924e 100644 +index 0aa8888d646..e29764f7870 100644 --- a/server/queue.c +++ b/server/queue.c -@@ -41,6 +41,7 @@ +@@ -42,6 +42,7 @@ #include "process.h" #include "request.h" #include "user.h" @@ -19,7 +19,7 @@ index b6decc521e9..23fb338924e 100644 #define WM_NCMOUSEFIRST WM_NCMOUSEMOVE #define WM_NCMOUSELAST (WM_NCMOUSEFIRST+(WM_MOUSELAST-WM_MOUSEFIRST)) -@@ -142,6 +143,7 @@ struct msg_queue +@@ -143,6 +144,7 @@ struct msg_queue timeout_t last_get_msg; /* time of last get message call */ int keystate_lock; /* owns an input keystate lock */ unsigned int ignore_post_msg; /* ignore post messages newer than this unique id */ @@ -27,7 +27,7 @@ index b6decc521e9..23fb338924e 100644 }; struct hotkey -@@ -158,6 +160,7 @@ static void msg_queue_dump( struct object *obj, int verbose ); +@@ -159,6 +161,7 @@ static void msg_queue_dump( struct object *obj, int verbose ); static int msg_queue_add_queue( struct object *obj, struct wait_queue_entry *entry ); static void msg_queue_remove_queue( struct object *obj, struct wait_queue_entry *entry ); static int msg_queue_signaled( struct object *obj, struct wait_queue_entry *entry ); @@ -35,7 +35,7 @@ index b6decc521e9..23fb338924e 100644 static void msg_queue_satisfied( struct object *obj, struct wait_queue_entry *entry ); static void msg_queue_destroy( struct object *obj ); static void msg_queue_poll_event( struct fd *fd, int event ); -@@ -173,7 +176,7 @@ static const struct object_ops msg_queue_ops = +@@ -174,7 +177,7 @@ static const struct object_ops msg_queue_ops = msg_queue_add_queue, /* add_queue */ msg_queue_remove_queue, /* remove_queue */ msg_queue_signaled, /* signaled */ @@ -44,7 +44,7 @@ index b6decc521e9..23fb338924e 100644 msg_queue_satisfied, /* satisfied */ no_signal, /* signal */ no_get_fd, /* get_fd */ -@@ -313,12 +316,16 @@ static struct msg_queue *create_msg_queue( struct thread *thread, struct thread_ +@@ -314,12 +317,16 @@ static struct msg_queue *create_msg_queue( struct thread *thread, struct thread_ queue->last_get_msg = current_time; queue->keystate_lock = 0; queue->ignore_post_msg = 0; @@ -70,8 +70,8 @@ index b6decc521e9..23fb338924e 100644 + esync_clear( queue->esync_fd ); } - /* check whether msg is a keyboard message */ -@@ -1046,6 +1056,13 @@ static int msg_queue_signaled( struct object *obj, struct wait_queue_entry *entr + /* check if message is matched by the filter */ +@@ -1040,6 +1050,13 @@ static int msg_queue_signaled( struct object *obj, struct wait_queue_entry *entr return ret || is_signaled( queue ); } @@ -85,7 +85,7 @@ index b6decc521e9..23fb338924e 100644 static void msg_queue_satisfied( struct object *obj, struct wait_queue_entry *entry ) { struct msg_queue *queue = (struct msg_queue *)obj; -@@ -1090,6 +1107,7 @@ static void msg_queue_destroy( struct object *obj ) +@@ -1084,6 +1101,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 ); @@ -93,7 +93,7 @@ index b6decc521e9..23fb338924e 100644 } static void msg_queue_poll_event( struct fd *fd, int event ) -@@ -2485,6 +2503,9 @@ DECL_HANDLER(set_queue_mask) +@@ -2458,6 +2476,9 @@ DECL_HANDLER(set_queue_mask) if (req->skip_wait) queue->wake_mask = queue->changed_mask = 0; else wake_up( &queue->obj, 0 ); } @@ -103,7 +103,7 @@ index b6decc521e9..23fb338924e 100644 } } -@@ -2498,6 +2519,9 @@ DECL_HANDLER(get_queue_status) +@@ -2471,6 +2492,9 @@ DECL_HANDLER(get_queue_status) reply->wake_bits = queue->wake_bits; reply->changed_bits = queue->changed_bits; queue->changed_bits &= ~req->clear_bits; @@ -113,7 +113,7 @@ index b6decc521e9..23fb338924e 100644 } else reply->wake_bits = reply->changed_bits = 0; } -@@ -2746,6 +2770,10 @@ DECL_HANDLER(get_message) +@@ -2717,6 +2741,10 @@ DECL_HANDLER(get_message) queue->wake_mask = req->wake_mask; queue->changed_mask = req->changed_mask; set_error( STATUS_PENDING ); /* FIXME */ @@ -125,5 +125,5 @@ index b6decc521e9..23fb338924e 100644 found_msg: -- -2.35.1 +2.40.1 diff --git a/patches/loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch b/patches/loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch index 0ed83adf..1fd04c41 100644 --- a/patches/loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch +++ b/patches/loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch @@ -1,4 +1,4 @@ -From 2a1229098b39f923ff6e9a13bde05e161c797b0a Mon Sep 17 00:00:00 2001 +From 7dff09756ebc13c38695050b9de271a84c2ea7b6 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 9 Jul 2019 14:13:28 +1000 Subject: [PATCH] user32: Do not enumerate the registry in @@ -25,11 +25,11 @@ index 8f3cd8acae7..072f1fab23a 100644 { SendMessageTimeoutW(handle, WM_DEVICECHANGE, flags, (LPARAM)header, SMTO_ABORTIFHUNG, 2000, NULL); diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c -index 8f3d5750c2f..3bdfd042e85 100644 +index 197a82db251..6385ef002b9 100644 --- a/dlls/user32/tests/input.c +++ b/dlls/user32/tests/input.c -@@ -5091,6 +5091,40 @@ static void test_EnableMouseInPointer( char **argv, BOOL enable ) - CloseHandle( info.hProcess ); +@@ -5369,6 +5369,40 @@ static void test_ClipCursor( char **argv ) + if (!EqualRect( &rect, &virtual_rect )) ok_ret( 1, ClipCursor( NULL ) ); } +static void test_GetKeyboardLayoutList(void) @@ -69,7 +69,7 @@ index 8f3d5750c2f..3bdfd042e85 100644 START_TEST(input) { char **argv; -@@ -5142,6 +5176,7 @@ START_TEST(input) +@@ -5413,6 +5447,7 @@ START_TEST(input) test_GetRawInputBuffer(); test_RegisterRawInputDevices(); test_rawinput(argv[0]); @@ -78,10 +78,10 @@ index 8f3d5750c2f..3bdfd042e85 100644 if(pGetMouseMovePointsEx) diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c -index 11bb129134c..9864d80ceff 100644 +index 22f371969b9..e0a0bd332ed 100644 --- a/dlls/win32u/input.c +++ b/dlls/win32u/input.c -@@ -1250,11 +1250,7 @@ HKL WINAPI NtUserActivateKeyboardLayout( HKL layout, UINT flags ) +@@ -1257,11 +1257,7 @@ HKL WINAPI NtUserActivateKeyboardLayout( HKL layout, UINT flags ) */ UINT WINAPI NtUserGetKeyboardLayoutList( INT size, HKL *layouts ) { @@ -94,7 +94,7 @@ index 11bb129134c..9864d80ceff 100644 HKL layout; TRACE_(keyboard)( "size %d, layouts %p.\n", size, layouts ); -@@ -1268,33 +1264,6 @@ UINT WINAPI NtUserGetKeyboardLayoutList( INT size, HKL *layouts ) +@@ -1275,33 +1271,6 @@ UINT WINAPI NtUserGetKeyboardLayoutList( INT size, HKL *layouts ) if (size && layouts) { layouts[count - 1] = layout; @@ -129,5 +129,5 @@ index 11bb129134c..9864d80ceff 100644 return count; -- -2.39.2 +2.40.1 diff --git a/staging/upstream-commit b/staging/upstream-commit index af15b314..5bbf8823 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -7ed63c30e8dee3509c52e11230470be2dcfe6cf5 +6b0836e3f157318b00effc1de563da4d4b0d16b8