Rebase against fcddf19498fca9b51baea705f5748b998f4560b9.

This commit is contained in:
Zebediah Figura
2023-11-29 18:35:48 -06:00
parent 97a1486fb9
commit 614cfc4589
33 changed files with 403 additions and 410 deletions

View File

@@ -1,4 +1,4 @@
From 05ebaac121b440567aa88de7a77d0ef19a8d9242 Mon Sep 17 00:00:00 2001
From 955a93ac10d1328e293fbf033e28107f98c43c7f Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 12:09:22 -0500
Subject: [PATCH] ntdll: Create eventfd-based objects for semaphores.
@@ -305,7 +305,7 @@ index 00000000000..7be4e03fa34
+}
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
new file mode 100644
index 00000000000..a50a755149a
index 00000000000..5fec18860f8
--- /dev/null
+++ b/dlls/ntdll/unix/esync.h
@@ -0,0 +1,35 @@
@@ -329,11 +329,11 @@ index 00000000000..a50a755149a
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+extern int do_esync(void) DECLSPEC_HIDDEN;
+extern void esync_init(void) DECLSPEC_HIDDEN;
+extern int do_esync(void);
+extern void esync_init(void);
+
+extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
+ const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max) DECLSPEC_HIDDEN;
+ const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max);
+
+
+/* We have to synchronize on the fd cache mutex so that our calls to receive_fd
@@ -343,9 +343,9 @@ index 00000000000..a50a755149a
+ * "server_fd_mutex" or something similar. */
+extern pthread_mutex_t fd_cache_mutex;
+
+extern int receive_fd( obj_handle_t *handle ) DECLSPEC_HIDDEN;
+extern int receive_fd( obj_handle_t *handle );
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index 42b5aa9d84e..974a3624a28 100644
index aa120ae38ec..fdda50575d1 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -87,6 +87,7 @@
@@ -356,7 +356,7 @@ index 42b5aa9d84e..974a3624a28 100644
#include "wine/list.h"
#include "ntsyscalls.h"
#include "wine/debug.h"
@@ -1811,6 +1812,7 @@ static void start_main_thread(void)
@@ -1790,6 +1791,7 @@ static void start_main_thread(void)
signal_alloc_thread( teb );
dbg_init();
startup_info_size = server_init_process();

View File

@@ -1,4 +1,4 @@
From 06faa163af3dd5fa6e4794bf244c662533a88b69 Mon Sep 17 00:00:00 2001
From d8135b1bdafffc23be62c216edda9ac280045753 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 12:16:34 -0500
Subject: [PATCH] ntdll: Implement NtReleaseSemaphore().
@@ -10,7 +10,7 @@ Subject: [PATCH] ntdll: Implement NtReleaseSemaphore().
3 files changed, 47 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index 9e1ef7d8afd..c7320d78bd3 100644
index 7be4e03fa34..e8da4bd311b 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -28,6 +28,7 @@
@@ -21,7 +21,7 @@ index 9e1ef7d8afd..c7320d78bd3 100644
#include <stdlib.h>
#include <sys/mman.h>
#ifdef HAVE_SYS_STAT_H
@@ -171,6 +172,16 @@ static struct esync *add_to_list( HANDLE handle, enum esync_type type, int fd, v
@@ -170,6 +171,16 @@ static struct esync *add_to_list( HANDLE handle, enum esync_type type, int fd, v
return &esync_list[entry][idx];
}
@@ -38,7 +38,7 @@ index 9e1ef7d8afd..c7320d78bd3 100644
static NTSTATUS create_esync( enum esync_type type, HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, int initval, int max )
{
@@ -226,6 +237,38 @@ extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
@@ -225,6 +236,38 @@ extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
return create_esync( ESYNC_SEMAPHORE, handle, access, attr, initial, max );
}
@@ -78,22 +78,22 @@ index 9e1ef7d8afd..c7320d78bd3 100644
{
struct stat st;
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index a50a755149a..09838e95535 100644
index 5fec18860f8..cbaaed3e308 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -23,6 +23,7 @@ extern void esync_init(void) DECLSPEC_HIDDEN;
@@ -23,6 +23,7 @@ extern void esync_init(void);
extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max) DECLSPEC_HIDDEN;
+extern NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max);
+extern NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev );
/* We have to synchronize on the fd cache mutex so that our calls to receive_fd
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index fff4970549b..fbd28292524 100644
index f21ceb80298..c85f985b4f3 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -359,6 +359,9 @@ NTSTATUS WINAPI NtReleaseSemaphore( HANDLE handle, ULONG count, ULONG *previous
@@ -358,6 +358,9 @@ NTSTATUS WINAPI NtReleaseSemaphore( HANDLE handle, ULONG count, ULONG *previous
{
unsigned int ret;
@@ -104,5 +104,5 @@ index fff4970549b..fbd28292524 100644
{
req->handle = wine_server_obj_handle( handle );
--
2.38.1
2.42.0

View File

@@ -1,4 +1,4 @@
From 7e750cacff9e1db07141e02f3763d2b24720a00b Mon Sep 17 00:00:00 2001
From e57a0ae8ff11195fa4a29aa1c1ccc250c0036073 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 12:20:44 -0500
Subject: [PATCH] ntdll: Implement NtClose().
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement NtClose().
3 files changed, 23 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index 8f28a36d93f..02b07bf36be 100644
index e8da4bd311b..e031e9cb94f 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -184,6 +184,24 @@ static struct esync *get_cached_object( HANDLE handle )
@@ -181,6 +181,24 @@ static struct esync *get_cached_object( HANDLE handle )
return &esync_list[entry][idx];
}
@@ -39,22 +39,22 @@ index 8f28a36d93f..02b07bf36be 100644
const OBJECT_ATTRIBUTES *attr, int initval, int max )
{
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index 09838e95535..14e52416764 100644
index cbaaed3e308..c63491dcaad 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -20,6 +20,7 @@
extern int do_esync(void) DECLSPEC_HIDDEN;
extern void esync_init(void) DECLSPEC_HIDDEN;
+extern NTSTATUS esync_close( HANDLE handle ) DECLSPEC_HIDDEN;
extern int do_esync(void);
extern void esync_init(void);
+extern NTSTATUS esync_close( HANDLE handle );
extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max);
diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
index 2f1d106a8da..af67e57176a 100644
index cd8dbbdcc10..00d665d9e62 100644
--- a/dlls/ntdll/unix/server.c
+++ b/dlls/ntdll/unix/server.c
@@ -88,6 +88,7 @@
@@ -79,6 +79,7 @@
#include "wine/server.h"
#include "wine/debug.h"
#include "unix_private.h"
@@ -62,7 +62,7 @@ index 2f1d106a8da..af67e57176a 100644
#include "ddk/wdm.h"
WINE_DEFAULT_DEBUG_CHANNEL(server);
@@ -1762,6 +1763,9 @@ NTSTATUS WINAPI NtClose( HANDLE handle )
@@ -1839,6 +1840,9 @@ NTSTATUS WINAPI NtClose( HANDLE handle )
* retrieve it again */
fd = remove_fd_from_cache( handle );
@@ -73,5 +73,5 @@ index 2f1d106a8da..af67e57176a 100644
{
req->handle = wine_server_obj_handle( handle );
--
2.30.2
2.42.0

View File

@@ -1,4 +1,4 @@
From e6666b78dbd54b0017de39c85f06900503780110 Mon Sep 17 00:00:00 2001
From cdced5d4d89a932fa456191551899e1919a1881e Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 12:34:42 -0500
Subject: [PATCH] ntdll: Implement NtWaitForMultipleObjects().
@@ -10,7 +10,7 @@ Subject: [PATCH] ntdll: Implement NtWaitForMultipleObjects().
3 files changed, 180 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index f111342688e..dac49af3083 100644
index e031e9cb94f..75ceb95bc66 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -22,6 +22,8 @@
@@ -35,7 +35,7 @@ index f111342688e..dac49af3083 100644
#include <sys/types.h>
#include <unistd.h>
@@ -287,6 +295,168 @@ NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev )
@@ -286,6 +294,168 @@ NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev )
return STATUS_SUCCESS;
}
@@ -205,24 +205,24 @@ index f111342688e..dac49af3083 100644
{
struct stat st;
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index 14e52416764..87516e7597a 100644
index c63491dcaad..92b609ebd27 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -26,6 +26,9 @@ extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max) DECLSPEC_HIDDEN;
extern NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max);
extern NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev );
+extern NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_any,
+ BOOLEAN alertable, const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
+ BOOLEAN alertable, const LARGE_INTEGER *timeout );
+
/* We have to synchronize on the fd cache mutex so that our calls to receive_fd
* don't race with theirs. It looks weird, I know.
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index db992f3a9ad..bc643558a28 100644
index c85f985b4f3..79141999e33 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -1410,6 +1410,13 @@ NTSTATUS WINAPI NtWaitForMultipleObjects( DWORD count, const HANDLE *handles, BO
@@ -1479,6 +1479,13 @@ NTSTATUS WINAPI NtWaitForMultipleObjects( DWORD count, const HANDLE *handles, BO
if (!count || count > MAXIMUM_WAIT_OBJECTS) return STATUS_INVALID_PARAMETER_1;
@@ -237,5 +237,5 @@ index db992f3a9ad..bc643558a28 100644
select_op.wait.op = wait_any ? SELECT_WAIT : SELECT_WAIT_ALL;
for (i = 0; i < count; i++) select_op.wait.handles[i] = wine_server_obj_handle( handles[i] );
--
2.33.0
2.42.0

View File

@@ -1,4 +1,4 @@
From 4af235c5bc5797cae39578991b302b47052afcbb Mon Sep 17 00:00:00 2001
From 9c2870d27349ce3548c84ff1f7b5825b5c398296 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 14:40:43 -0500
Subject: [PATCH] ntdll, server: Implement NtCreateEvent().
@@ -11,10 +11,10 @@ Subject: [PATCH] ntdll, server: Implement NtCreateEvent().
4 files changed, 49 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index 1b71105491c..e440e9baa4a 100644
index 75ceb95bc66..06842f0c8f5 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -91,6 +91,13 @@ struct semaphore
@@ -88,6 +88,13 @@ struct semaphore
};
C_ASSERT(sizeof(struct semaphore) == 8);
@@ -28,7 +28,7 @@ index 1b71105491c..e440e9baa4a 100644
static char shm_name[29];
static int shm_fd;
static void **shm_addrs;
@@ -297,6 +304,18 @@ NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev )
@@ -294,6 +301,18 @@ NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev )
return STATUS_SUCCESS;
}
@@ -47,7 +47,7 @@ index 1b71105491c..e440e9baa4a 100644
#define TICKSPERSEC 10000000
#define TICKSPERMSEC 10000
@@ -342,6 +361,14 @@ static void update_grabbed_object( struct esync *obj )
@@ -339,6 +358,14 @@ static void update_grabbed_object( struct esync *obj )
* etc. */
InterlockedExchangeAdd( &semaphore->count, -1 );
}
@@ -63,24 +63,24 @@ index 1b71105491c..e440e9baa4a 100644
/* A value of STATUS_NOT_IMPLEMENTED returned from this function means that we
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index 87516e7597a..d9c7df967f8 100644
index 92b609ebd27..7bb963faf51 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -26,6 +26,9 @@ extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max) DECLSPEC_HIDDEN;
extern NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max);
extern NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev );
+extern NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
+ const OBJECT_ATTRIBUTES *attr, EVENT_TYPE type, BOOLEAN initial ) DECLSPEC_HIDDEN;
+ const OBJECT_ATTRIBUTES *attr, EVENT_TYPE type, BOOLEAN initial );
+
extern NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_any,
BOOLEAN alertable, const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
BOOLEAN alertable, const LARGE_INTEGER *timeout );
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index f5be91e09d4..b54874b5d3d 100644
index 79141999e33..161c170f59c 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -440,6 +440,10 @@ NTSTATUS WINAPI NtCreateEvent( HANDLE *handle, ACCESS_MASK access, const OBJECT_
@@ -387,6 +387,10 @@ NTSTATUS WINAPI NtCreateEvent( HANDLE *handle, ACCESS_MASK access, const OBJECT_
*handle = 0;
if (type != NotificationEvent && type != SynchronizationEvent) return STATUS_INVALID_PARAMETER;
@@ -92,10 +92,10 @@ index f5be91e09d4..b54874b5d3d 100644
SERVER_START_REQ( create_event )
diff --git a/server/esync.c b/server/esync.c
index e41bbbf9349..f89f29150ea 100644
index 75ef586df30..6a63c0dd5e9 100644
--- a/server/esync.c
+++ b/server/esync.c
@@ -203,6 +203,13 @@ struct semaphore
@@ -201,6 +201,13 @@ struct semaphore
};
C_ASSERT(sizeof(struct semaphore) == 8);
@@ -109,7 +109,7 @@ index e41bbbf9349..f89f29150ea 100644
struct esync *create_esync( struct object *root, const struct unicode_str *name,
unsigned int attr, int initval, int max, enum esync_type type,
const struct security_descriptor *sd )
@@ -258,6 +265,14 @@ struct esync *create_esync( struct object *root, const struct unicode_str *name,
@@ -256,6 +263,14 @@ struct esync *create_esync( struct object *root, const struct unicode_str *name,
semaphore->count = initval;
break;
}
@@ -125,5 +125,5 @@ index e41bbbf9349..f89f29150ea 100644
assert( 0 );
}
--
2.30.2
2.42.0

View File

@@ -1,4 +1,4 @@
From ff044319027197bb9a1f20a19f01d8c299835818 Mon Sep 17 00:00:00 2001
From e2ab736b2e8b98268bdf840a460ee54b8388328e Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 14:46:24 -0500
Subject: [PATCH] ntdll: Implement NtSetEvent().
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement NtSetEvent().
3 files changed, 20 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index 059d7fd9ca6..410cfd3c2ce 100644
index 06842f0c8f5..3bb7f2daf8f 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -314,6 +314,21 @@ NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
@@ -313,6 +313,21 @@ NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
return create_esync( type, handle, access, attr, initial, 0 );
}
@@ -36,22 +36,22 @@ index 059d7fd9ca6..410cfd3c2ce 100644
#define TICKSPERMSEC 10000
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index d9c7df967f8..b585af047ee 100644
index 7bb963faf51..d92165214d6 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -28,6 +28,7 @@ extern NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev
extern NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, EVENT_TYPE type, BOOLEAN initial ) DECLSPEC_HIDDEN;
+extern NTSTATUS esync_set_event( HANDLE handle ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr, EVENT_TYPE type, BOOLEAN initial );
+extern NTSTATUS esync_set_event( HANDLE handle );
extern NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_any,
BOOLEAN alertable, const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
BOOLEAN alertable, const LARGE_INTEGER *timeout );
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 7be736927b2..8e793941711 100644
index 161c170f59c..706d381d7c7 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -440,8 +440,12 @@ NTSTATUS WINAPI NtOpenEvent( HANDLE *handle, ACCESS_MASK access, const OBJECT_AT
@@ -439,8 +439,12 @@ NTSTATUS WINAPI NtOpenEvent( HANDLE *handle, ACCESS_MASK access, const OBJECT_AT
*/
NTSTATUS WINAPI NtSetEvent( HANDLE handle, LONG *prev_state )
{
@@ -65,5 +65,5 @@ index 7be736927b2..8e793941711 100644
{
req->handle = wine_server_obj_handle( handle );
--
2.38.1
2.42.0

View File

@@ -1,4 +1,4 @@
From c1c004fcfb9d38086fd682e64aca7fd6aaad4cc9 Mon Sep 17 00:00:00 2001
From 98024ae21fbeb4f86c89000bd7953cf192c833ef Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 14:51:21 -0500
Subject: [PATCH] ntdll: Implement NtResetEvent().
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement NtResetEvent().
3 files changed, 21 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index 410cfd3c2ce..80eb3773ee4 100644
index 3bb7f2daf8f..8ee0c99c5d9 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -329,6 +329,21 @@ NTSTATUS esync_set_event( HANDLE handle )
@@ -328,6 +328,21 @@ NTSTATUS esync_set_event( HANDLE handle )
return STATUS_SUCCESS;
}
@@ -36,22 +36,22 @@ index 410cfd3c2ce..80eb3773ee4 100644
#define TICKSPERMSEC 10000
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index b585af047ee..8480a213b2a 100644
index d92165214d6..6e5d6233a2e 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -28,6 +28,7 @@ extern NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev
extern NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, EVENT_TYPE type, BOOLEAN initial ) DECLSPEC_HIDDEN;
+extern NTSTATUS esync_reset_event( HANDLE handle ) DECLSPEC_HIDDEN;
extern NTSTATUS esync_set_event( HANDLE handle ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr, EVENT_TYPE type, BOOLEAN initial );
+extern NTSTATUS esync_reset_event( HANDLE handle );
extern NTSTATUS esync_set_event( HANDLE handle );
extern NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_any,
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 8e793941711..f57a825872b 100644
index 706d381d7c7..fdf4215039b 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -463,8 +463,13 @@ NTSTATUS WINAPI NtSetEvent( HANDLE handle, LONG *prev_state )
@@ -462,8 +462,13 @@ NTSTATUS WINAPI NtSetEvent( HANDLE handle, LONG *prev_state )
*/
NTSTATUS WINAPI NtResetEvent( HANDLE handle, LONG *prev_state )
{
@@ -66,5 +66,5 @@ index 8e793941711..f57a825872b 100644
{
req->handle = wine_server_obj_handle( handle );
--
2.38.1
2.42.0

View File

@@ -1,4 +1,4 @@
From 1496c3a96452deeb4ca687bc61e2125bc82fff71 Mon Sep 17 00:00:00 2001
From a4145f3d6ea7973ce83c7eef109613482c6adf11 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 16:34:56 -0500
Subject: [PATCH] ntdll, server: Implement NtCreateMutant().
@@ -11,10 +11,10 @@ Subject: [PATCH] ntdll, server: Implement NtCreateMutant().
4 files changed, 37 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index 88490e08ef9..df9eb2696a1 100644
index 06d7d8babc6..e979a5b81ae 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -91,6 +91,13 @@ struct semaphore
@@ -83,6 +83,13 @@ struct semaphore
};
C_ASSERT(sizeof(struct semaphore) == 8);
@@ -28,7 +28,7 @@ index 88490e08ef9..df9eb2696a1 100644
struct event
{
int signaled;
@@ -415,6 +422,15 @@ NTSTATUS esync_reset_event( HANDLE handle )
@@ -407,6 +414,15 @@ NTSTATUS esync_reset_event( HANDLE handle )
return STATUS_SUCCESS;
}
@@ -45,24 +45,24 @@ index 88490e08ef9..df9eb2696a1 100644
#define TICKSPERMSEC 10000
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index 8480a213b2a..38ebefc9eed 100644
index 6e5d6233a2e..9b2f88670d1 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -31,6 +31,9 @@ extern NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
extern NTSTATUS esync_reset_event( HANDLE handle ) DECLSPEC_HIDDEN;
extern NTSTATUS esync_set_event( HANDLE handle ) DECLSPEC_HIDDEN;
extern NTSTATUS esync_reset_event( HANDLE handle );
extern NTSTATUS esync_set_event( HANDLE handle );
+extern NTSTATUS esync_create_mutex( HANDLE *handle, ACCESS_MASK access,
+ const OBJECT_ATTRIBUTES *attr, BOOLEAN initial ) DECLSPEC_HIDDEN;
+ const OBJECT_ATTRIBUTES *attr, BOOLEAN initial );
+
extern NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_any,
BOOLEAN alertable, const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
BOOLEAN alertable, const LARGE_INTEGER *timeout );
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 47ab533d5c7..7e492320cee 100644
index fdf4215039b..1bf4a381a8f 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -608,6 +608,10 @@ NTSTATUS WINAPI NtCreateMutant( HANDLE *handle, ACCESS_MASK access, const OBJECT
@@ -555,6 +555,10 @@ NTSTATUS WINAPI NtCreateMutant( HANDLE *handle, ACCESS_MASK access, const OBJECT
struct object_attributes *objattr;
*handle = 0;
@@ -74,10 +74,10 @@ index 47ab533d5c7..7e492320cee 100644
SERVER_START_REQ( create_mutex )
diff --git a/server/esync.c b/server/esync.c
index ac59779a454..913104e3dd4 100644
index 669afbc70d7..3f1c61bc1f0 100644
--- a/server/esync.c
+++ b/server/esync.c
@@ -204,6 +204,13 @@ struct semaphore
@@ -202,6 +202,13 @@ struct semaphore
};
C_ASSERT(sizeof(struct semaphore) == 8);
@@ -91,7 +91,7 @@ index ac59779a454..913104e3dd4 100644
struct event
{
int signaled;
@@ -274,6 +281,13 @@ struct esync *create_esync( struct object *root, const struct unicode_str *name,
@@ -272,6 +279,13 @@ struct esync *create_esync( struct object *root, const struct unicode_str *name,
event->locked = 0;
break;
}
@@ -106,5 +106,5 @@ index ac59779a454..913104e3dd4 100644
assert( 0 );
}
--
2.30.2
2.42.0

View File

@@ -1,4 +1,4 @@
From 24a1dd64bee6e9140d6f05241c03f572bb464436 Mon Sep 17 00:00:00 2001
From 9ec9a7f034e533a613288382aaf93b468eafb945 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 16:37:49 -0500
Subject: [PATCH] ntdll: Implement NtReleaseMutant().
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement NtReleaseMutant().
3 files changed, 38 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index 350b1ffb756..ded71e631f7 100644
index e979a5b81ae..48fcf38a64c 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -424,6 +424,40 @@ NTSTATUS esync_create_mutex( HANDLE *handle, ACCESS_MASK access,
@@ -423,6 +423,40 @@ NTSTATUS esync_create_mutex( HANDLE *handle, ACCESS_MASK access,
return create_esync( ESYNC_MUTEX, handle, access, attr, initial ? 0 : 1, 0 );
}
@@ -55,22 +55,22 @@ index 350b1ffb756..ded71e631f7 100644
#define TICKSPERMSEC 10000
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index 38ebefc9eed..e69c46ca462 100644
index 9b2f88670d1..8eaa79a5823 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -33,6 +33,7 @@ extern NTSTATUS esync_set_event( HANDLE handle ) DECLSPEC_HIDDEN;
@@ -33,6 +33,7 @@ extern NTSTATUS esync_set_event( HANDLE handle );
extern NTSTATUS esync_create_mutex( HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, BOOLEAN initial ) DECLSPEC_HIDDEN;
+extern NTSTATUS esync_release_mutex( HANDLE *handle, LONG *prev ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr, BOOLEAN initial );
+extern NTSTATUS esync_release_mutex( HANDLE *handle, LONG *prev );
extern NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_any,
BOOLEAN alertable, const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
BOOLEAN alertable, const LARGE_INTEGER *timeout );
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 2640320587e..620d013751f 100644
index 1bf4a381a8f..20391617e40 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -609,6 +609,9 @@ NTSTATUS WINAPI NtReleaseMutant( HANDLE handle, LONG *prev_count )
@@ -608,6 +608,9 @@ NTSTATUS WINAPI NtReleaseMutant( HANDLE handle, LONG *prev_count )
{
unsigned int ret;
@@ -81,5 +81,5 @@ index 2640320587e..620d013751f 100644
{
req->handle = wine_server_obj_handle( handle );
--
2.38.1
2.42.0

View File

@@ -1,4 +1,4 @@
From 69a95eb896feed92ce839162b83b79701d02cdcd Mon Sep 17 00:00:00 2001
From 622de4743d9585d895bb560b4c8ac6ab01aff23f Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 16:52:39 -0500
Subject: [PATCH] ntdll: Implement NtSignalAndWaitForSingleObject().
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement NtSignalAndWaitForSingleObject().
3 files changed, 33 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index 0682428372c..6d8653cd107 100644
index 9e980643a6e..db70e5075d1 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -850,6 +850,34 @@ NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_an
@@ -842,6 +842,34 @@ NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_an
return ret;
}
@@ -49,23 +49,23 @@ index 0682428372c..6d8653cd107 100644
{
struct stat st;
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index e69c46ca462..bee08ff857f 100644
index 8eaa79a5823..88a6d5c8975 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -37,6 +37,8 @@ extern NTSTATUS esync_release_mutex( HANDLE *handle, LONG *prev ) DECLSPEC_HIDDE
@@ -37,6 +37,8 @@ extern NTSTATUS esync_release_mutex( HANDLE *handle, LONG *prev );
extern NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_any,
BOOLEAN alertable, const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
BOOLEAN alertable, const LARGE_INTEGER *timeout );
+extern NTSTATUS esync_signal_and_wait( HANDLE signal, HANDLE wait, BOOLEAN alertable,
+ const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
+ const LARGE_INTEGER *timeout );
/* We have to synchronize on the fd cache mutex so that our calls to receive_fd
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 1a19bb78a9c..64f96a32ccf 100644
index 20391617e40..12ed44f7a8e 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -1320,6 +1320,9 @@ NTSTATUS WINAPI NtSignalAndWaitForSingleObject( HANDLE signal, HANDLE wait,
@@ -1531,6 +1531,9 @@ NTSTATUS WINAPI NtSignalAndWaitForSingleObject( HANDLE signal, HANDLE wait,
select_op_t select_op;
UINT flags = SELECT_INTERRUPTIBLE;
@@ -76,5 +76,5 @@ index 1a19bb78a9c..64f96a32ccf 100644
if (alertable) flags |= SELECT_ALERTABLE;
--
2.28.0
2.42.0

View File

@@ -1,4 +1,4 @@
From fd251549dc6a59073937ba74b195f9dc7a892616 Mon Sep 17 00:00:00 2001
From 494fb32d263fe0329a3672e9244ba44623d9ba07 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 16:56:09 -0500
Subject: [PATCH] ntdll: Implement NtOpenSemaphore().
@@ -12,10 +12,10 @@ Subject: [PATCH] ntdll: Implement NtOpenSemaphore().
5 files changed, 96 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index cdf5f602695..583afebb17c 100644
index db70e5075d1..f03ad7b7b73 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -329,6 +329,45 @@ static NTSTATUS create_esync( enum esync_type type, HANDLE *handle, ACCESS_MASK
@@ -328,6 +328,45 @@ static NTSTATUS create_esync( enum esync_type type, HANDLE *handle, ACCESS_MASK
return ret;
}
@@ -61,7 +61,7 @@ index cdf5f602695..583afebb17c 100644
extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max)
{
@@ -338,6 +377,14 @@ extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
@@ -337,6 +376,14 @@ extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
return create_esync( ESYNC_SEMAPHORE, handle, access, attr, initial, max );
}
@@ -77,23 +77,23 @@ index cdf5f602695..583afebb17c 100644
{
struct esync *obj;
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index bee08ff857f..2738e8b7f87 100644
index 88a6d5c8975..6818be9c16f 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -24,6 +24,8 @@ extern NTSTATUS esync_close( HANDLE handle ) DECLSPEC_HIDDEN;
@@ -24,6 +24,8 @@ extern NTSTATUS esync_close( HANDLE handle );
extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max);
+extern NTSTATUS esync_open_semaphore( HANDLE *handle, ACCESS_MASK access,
+ const OBJECT_ATTRIBUTES *attr ) DECLSPEC_HIDDEN;
extern NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev ) DECLSPEC_HIDDEN;
+ const OBJECT_ATTRIBUTES *attr );
extern NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev );
extern NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index ce3061a7f31..dd8ed16f868 100644
index 12ed44f7a8e..31253e2235b 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -301,6 +301,10 @@ NTSTATUS WINAPI NtOpenSemaphore( HANDLE *handle, ACCESS_MASK access, const OBJEC
@@ -300,6 +300,10 @@ NTSTATUS WINAPI NtOpenSemaphore( HANDLE *handle, ACCESS_MASK access, const OBJEC
unsigned int ret;
*handle = 0;
@@ -147,10 +147,10 @@ index 3f1c61bc1f0..eca9b6aa67d 100644
* server. The client should only read from (i.e. wait on) this object. */
DECL_HANDLER(get_esync_fd)
diff --git a/server/protocol.def b/server/protocol.def
index 40bdd8a70b4..acd90615cf7 100644
index 55a6310e603..c9ebc5528c1 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -3812,6 +3812,18 @@ enum esync_type
@@ -3908,6 +3908,18 @@ enum esync_type
unsigned int shm_idx;
@END
@@ -170,5 +170,5 @@ index 40bdd8a70b4..acd90615cf7 100644
@REQ(get_esync_fd)
obj_handle_t handle; /* handle to the object */
--
2.38.1
2.42.0

View File

@@ -1,4 +1,4 @@
From 96393a0cd6acfcb87d11488e726d4e294e646c4f Mon Sep 17 00:00:00 2001
From f2313d3bdf72803a41a8d38604b6ebdba4440e24 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 16:58:19 -0500
Subject: [PATCH] ntdll: Implement NtOpenEvent().
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement NtOpenEvent().
3 files changed, 13 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index 8e7e50ce777..a03a3a09b36 100644
index f03ad7b7b73..c0ee03c5828 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -437,6 +437,14 @@ NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
@@ -429,6 +429,14 @@ NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
return create_esync( type, handle, access, attr, initial, 0 );
}
@@ -29,23 +29,23 @@ index 8e7e50ce777..a03a3a09b36 100644
{
static const uint64_t value = 1;
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index 2738e8b7f87..da1b72d4413 100644
index 6818be9c16f..03894d61fcf 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -30,6 +30,8 @@ extern NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev
extern NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, EVENT_TYPE type, BOOLEAN initial ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr, EVENT_TYPE type, BOOLEAN initial );
+extern NTSTATUS esync_open_event( HANDLE *handle, ACCESS_MASK access,
+ const OBJECT_ATTRIBUTES *attr ) DECLSPEC_HIDDEN;
extern NTSTATUS esync_reset_event( HANDLE handle ) DECLSPEC_HIDDEN;
extern NTSTATUS esync_set_event( HANDLE handle ) DECLSPEC_HIDDEN;
+ const OBJECT_ATTRIBUTES *attr );
extern NTSTATUS esync_reset_event( HANDLE handle );
extern NTSTATUS esync_set_event( HANDLE handle );
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 36322f6afb6..6bc8200f46b 100644
index 31253e2235b..fcd0413ce42 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -476,6 +476,9 @@ NTSTATUS WINAPI NtOpenEvent( HANDLE *handle, ACCESS_MASK access, const OBJECT_AT
@@ -423,6 +423,9 @@ NTSTATUS WINAPI NtOpenEvent( HANDLE *handle, ACCESS_MASK access, const OBJECT_AT
*handle = 0;
if ((ret = validate_open_object_attributes( attr ))) return ret;
@@ -56,5 +56,5 @@ index 36322f6afb6..6bc8200f46b 100644
{
req->access = access;
--
2.30.2
2.42.0

View File

@@ -1,4 +1,4 @@
From 995f2ecab37c47bb3112d11ce2313d37711965ca Mon Sep 17 00:00:00 2001
From 07946ba13f255372cd72467a30ef2a24ed6714c5 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 16:59:35 -0500
Subject: [PATCH] ntdll: Implement NtOpenMutant().
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement NtOpenMutant().
3 files changed, 13 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index a03a3a09b36..d1a282c65e9 100644
index c0ee03c5828..2844f9f760c 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -486,6 +486,14 @@ NTSTATUS esync_create_mutex( HANDLE *handle, ACCESS_MASK access,
@@ -478,6 +478,14 @@ NTSTATUS esync_create_mutex( HANDLE *handle, ACCESS_MASK access,
return create_esync( ESYNC_MUTEX, handle, access, attr, initial ? 0 : 1, 0 );
}
@@ -29,23 +29,23 @@ index a03a3a09b36..d1a282c65e9 100644
{
struct esync *obj;
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index da1b72d4413..cb48e2cd022 100644
index 03894d61fcf..ac12604a815 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -37,6 +37,8 @@ extern NTSTATUS esync_set_event( HANDLE handle ) DECLSPEC_HIDDEN;
@@ -37,6 +37,8 @@ extern NTSTATUS esync_set_event( HANDLE handle );
extern NTSTATUS esync_create_mutex( HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, BOOLEAN initial ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr, BOOLEAN initial );
+extern NTSTATUS esync_open_mutex( HANDLE *handle, ACCESS_MASK access,
+ const OBJECT_ATTRIBUTES *attr ) DECLSPEC_HIDDEN;
extern NTSTATUS esync_release_mutex( HANDLE *handle, LONG *prev ) DECLSPEC_HIDDEN;
+ const OBJECT_ATTRIBUTES *attr );
extern NTSTATUS esync_release_mutex( HANDLE *handle, LONG *prev );
extern NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_any,
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 6bc8200f46b..c1c57caab40 100644
index fcd0413ce42..33a1dc77c47 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -646,6 +646,9 @@ NTSTATUS WINAPI NtOpenMutant( HANDLE *handle, ACCESS_MASK access, const OBJECT_A
@@ -593,6 +593,9 @@ NTSTATUS WINAPI NtOpenMutant( HANDLE *handle, ACCESS_MASK access, const OBJECT_A
*handle = 0;
if ((ret = validate_open_object_attributes( attr ))) return ret;
@@ -56,5 +56,5 @@ index 6bc8200f46b..c1c57caab40 100644
{
req->access = access;
--
2.30.2
2.42.0

View File

@@ -1,4 +1,4 @@
From 148a48dc487268a0b2d99304aee5ee4be271ded8 Mon Sep 17 00:00:00 2001
From e79efd700a74900e5268b736dc3bbb86b0db00ce Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 17:24:17 -0500
Subject: [PATCH] ntdll: Implement NtQuerySemaphore().
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement NtQuerySemaphore().
3 files changed, 23 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index 2a7c3865617..6837d0916be 100644
index aeeea1731ce..f65e5389986 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -425,6 +425,25 @@ NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev )
@@ -417,6 +417,25 @@ NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev )
return STATUS_SUCCESS;
}
@@ -40,22 +40,22 @@ index 2a7c3865617..6837d0916be 100644
const OBJECT_ATTRIBUTES *attr, EVENT_TYPE event_type, BOOLEAN initial )
{
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index cb48e2cd022..599ed6dbd9b 100644
index ac12604a815..e7d4cd2aba4 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -26,6 +26,7 @@ extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max);
extern NTSTATUS esync_open_semaphore( HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr ) DECLSPEC_HIDDEN;
+extern NTSTATUS esync_query_semaphore( HANDLE handle, void *info, ULONG *ret_len ) DECLSPEC_HIDDEN;
extern NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr );
+extern NTSTATUS esync_query_semaphore( HANDLE handle, void *info, ULONG *ret_len );
extern NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev );
extern NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 4a97cdd32fd..27cc6b7723f 100644
index 33a1dc77c47..c9450003ce3 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -388,6 +388,9 @@ NTSTATUS WINAPI NtQuerySemaphore( HANDLE handle, SEMAPHORE_INFORMATION_CLASS cla
@@ -340,6 +340,9 @@ NTSTATUS WINAPI NtQuerySemaphore( HANDLE handle, SEMAPHORE_INFORMATION_CLASS cla
if (len != sizeof(SEMAPHORE_BASIC_INFORMATION)) return STATUS_INFO_LENGTH_MISMATCH;
@@ -66,5 +66,5 @@ index 4a97cdd32fd..27cc6b7723f 100644
{
req->handle = wine_server_obj_handle( handle );
--
2.28.0
2.42.0

View File

@@ -1,4 +1,4 @@
From c22c32f977d17cf6e385d664ae5c52252f27f55a Mon Sep 17 00:00:00 2001
From f4ff71d953f4f6fc91f0ac3cdea8c964a2911f07 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 17:26:56 -0500
Subject: [PATCH] ntdll: Implement NtQueryEvent().
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement NtQueryEvent().
3 files changed, 24 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index 6837d0916be..e6c331675f4 100644
index f65e5389986..c75dd23d897 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -496,6 +496,26 @@ NTSTATUS esync_reset_event( HANDLE handle )
@@ -488,6 +488,26 @@ NTSTATUS esync_reset_event( HANDLE handle )
return STATUS_SUCCESS;
}
@@ -41,22 +41,22 @@ index 6837d0916be..e6c331675f4 100644
const OBJECT_ATTRIBUTES *attr, BOOLEAN initial )
{
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index 599ed6dbd9b..8ac3924da2d 100644
index e7d4cd2aba4..9a0fcd163dd 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -33,6 +33,7 @@ extern NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, EVENT_TYPE type, BOOLEAN initial ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr, EVENT_TYPE type, BOOLEAN initial );
extern NTSTATUS esync_open_event( HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr ) DECLSPEC_HIDDEN;
+extern NTSTATUS esync_query_event( HANDLE handle, void *info, ULONG *ret_len ) DECLSPEC_HIDDEN;
extern NTSTATUS esync_reset_event( HANDLE handle ) DECLSPEC_HIDDEN;
extern NTSTATUS esync_set_event( HANDLE handle ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr );
+extern NTSTATUS esync_query_event( HANDLE handle, void *info, ULONG *ret_len );
extern NTSTATUS esync_reset_event( HANDLE handle );
extern NTSTATUS esync_set_event( HANDLE handle );
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 27cc6b7723f..52b40c84cfc 100644
index c9450003ce3..2fea9f532bd 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -581,6 +581,9 @@ NTSTATUS WINAPI NtQueryEvent( HANDLE handle, EVENT_INFORMATION_CLASS class,
@@ -539,6 +539,9 @@ NTSTATUS WINAPI NtQueryEvent( HANDLE handle, EVENT_INFORMATION_CLASS class,
if (len != sizeof(EVENT_BASIC_INFORMATION)) return STATUS_INFO_LENGTH_MISMATCH;
@@ -67,5 +67,5 @@ index 27cc6b7723f..52b40c84cfc 100644
{
req->handle = wine_server_obj_handle( handle );
--
2.28.0
2.42.0

View File

@@ -1,4 +1,4 @@
From b28111b0ed869637fd11d7a57440c1788bdc3a4b Mon Sep 17 00:00:00 2001
From b930741dcf601f4a9f5cf761d57154c9216c5ec9 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 17:28:58 -0500
Subject: [PATCH] ntdll: Implement NtQueryMutant().
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement NtQueryMutant().
3 files changed, 24 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index e6c331675f4..13cdaf4f73e 100644
index c75dd23d897..68c060a294c 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -567,6 +567,26 @@ NTSTATUS esync_release_mutex( HANDLE *handle, LONG *prev )
@@ -559,6 +559,26 @@ NTSTATUS esync_release_mutex( HANDLE *handle, LONG *prev )
return STATUS_SUCCESS;
}
@@ -41,22 +41,22 @@ index e6c331675f4..13cdaf4f73e 100644
#define TICKSPERMSEC 10000
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index 8ac3924da2d..18788fa273b 100644
index 9a0fcd163dd..61846238ab7 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -41,6 +41,7 @@ extern NTSTATUS esync_create_mutex( HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, BOOLEAN initial ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr, BOOLEAN initial );
extern NTSTATUS esync_open_mutex( HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr ) DECLSPEC_HIDDEN;
+extern NTSTATUS esync_query_mutex( HANDLE handle, void *info, ULONG *ret_len ) DECLSPEC_HIDDEN;
extern NTSTATUS esync_release_mutex( HANDLE *handle, LONG *prev ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr );
+extern NTSTATUS esync_query_mutex( HANDLE handle, void *info, ULONG *ret_len );
extern NTSTATUS esync_release_mutex( HANDLE *handle, LONG *prev );
extern NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_any,
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 52b40c84cfc..acec96c0a3c 100644
index 2fea9f532bd..5d25f086d5d 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -696,6 +696,9 @@ NTSTATUS WINAPI NtQueryMutant( HANDLE handle, MUTANT_INFORMATION_CLASS class,
@@ -657,6 +657,9 @@ NTSTATUS WINAPI NtQueryMutant( HANDLE handle, MUTANT_INFORMATION_CLASS class,
if (len != sizeof(MUTANT_BASIC_INFORMATION)) return STATUS_INFO_LENGTH_MISMATCH;
@@ -67,5 +67,5 @@ index 52b40c84cfc..acec96c0a3c 100644
{
req->handle = wine_server_obj_handle( handle );
--
2.28.0
2.42.0

View File

@@ -1,4 +1,4 @@
From 1d7cb4fe562903aa56abe64c97d0d84357b67f49 Mon Sep 17 00:00:00 2001
From 41abb8ffe452643a16622e8e543f9b95ad8dc291 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 17:56:40 -0500
Subject: [PATCH] ntdll: Implement NtPulseEvent().
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement NtPulseEvent().
3 files changed, 29 insertions(+)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index ff0210f3cd4..3a47b5aa39e 100644
index 6ebc09d87bf..31f268c69d5 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -600,6 +600,31 @@ NTSTATUS esync_reset_event( HANDLE handle )
@@ -599,6 +599,31 @@ NTSTATUS esync_reset_event( HANDLE handle )
return STATUS_SUCCESS;
}
@@ -46,22 +46,22 @@ index ff0210f3cd4..3a47b5aa39e 100644
{
struct esync *obj;
diff --git a/dlls/ntdll/unix/esync.h b/dlls/ntdll/unix/esync.h
index 18788fa273b..188304f3be7 100644
index 61846238ab7..59f8809fc1a 100644
--- a/dlls/ntdll/unix/esync.h
+++ b/dlls/ntdll/unix/esync.h
@@ -33,6 +33,7 @@ extern NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, EVENT_TYPE type, BOOLEAN initial ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr, EVENT_TYPE type, BOOLEAN initial );
extern NTSTATUS esync_open_event( HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr ) DECLSPEC_HIDDEN;
+extern NTSTATUS esync_pulse_event( HANDLE handle ) DECLSPEC_HIDDEN;
extern NTSTATUS esync_query_event( HANDLE handle, void *info, ULONG *ret_len ) DECLSPEC_HIDDEN;
extern NTSTATUS esync_reset_event( HANDLE handle ) DECLSPEC_HIDDEN;
extern NTSTATUS esync_set_event( HANDLE handle ) DECLSPEC_HIDDEN;
const OBJECT_ATTRIBUTES *attr );
+extern NTSTATUS esync_pulse_event( HANDLE handle );
extern NTSTATUS esync_query_event( HANDLE handle, void *info, ULONG *ret_len );
extern NTSTATUS esync_reset_event( HANDLE handle );
extern NTSTATUS esync_set_event( HANDLE handle );
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 4c745b3b72e..4025a7a3a2f 100644
index 5d25f086d5d..3a9fc76c2e4 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -509,6 +509,9 @@ NTSTATUS WINAPI NtPulseEvent( HANDLE handle, LONG *prev_state )
@@ -508,6 +508,9 @@ NTSTATUS WINAPI NtPulseEvent( HANDLE handle, LONG *prev_state )
{
unsigned int ret;
@@ -72,5 +72,5 @@ index 4c745b3b72e..4025a7a3a2f 100644
{
req->handle = wine_server_obj_handle( handle );
--
2.38.1
2.42.0