Rebase against 2318484e1e33cb30f00eb9a62cb9aa5f83e5dc99.

This commit is contained in:
Alistair Leslie-Hughes 2022-01-03 12:10:34 +11:00
parent 440e5eee17
commit 78d28293de
4 changed files with 26 additions and 26 deletions

View File

@ -1,4 +1,4 @@
From 291fd879b030b16238329ff4f530ab3577ea6fc0 Mon Sep 17 00:00:00 2001
From c204c9ed2a8504868c3cbf487e7a29c4e7254d3f 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.
@ -346,7 +346,7 @@ index 00000000000..a50a755149a
+
+extern int receive_fd( obj_handle_t *handle ) DECLSPEC_HIDDEN;
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index 8f20da7eece..befa355a4fc 100644
index 10884a7a673..28cc48e04bf 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -89,6 +89,7 @@
@ -357,7 +357,7 @@ index 8f20da7eece..befa355a4fc 100644
#include "wine/list.h"
#include "wine/debug.h"
@@ -2081,6 +2082,7 @@ static void start_main_thread(void)
@@ -2082,6 +2083,7 @@ static void start_main_thread(void)
signal_init_thread( teb );
dbg_init();
startup_info_size = server_init_process();
@ -366,19 +366,19 @@ index 8f20da7eece..befa355a4fc 100644
init_cpu_info();
init_files();
diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
index a388247beb2..79b83589d81 100644
index 6a3224d8385..de65f936a59 100644
--- a/dlls/ntdll/unix/server.c
+++ b/dlls/ntdll/unix/server.c
@@ -104,7 +104,7 @@ timeout_t server_start_time = 0; /* time of server startup */
sigset_t server_block_set; /* signals to block during server calls */
@@ -106,7 +106,7 @@ sigset_t server_block_set; /* signals to block during server calls */
static int fd_socket = -1; /* socket to exchange file descriptors with the server */
static int initial_cwd = -1;
static pid_t server_pid;
-static pthread_mutex_t fd_cache_mutex = PTHREAD_MUTEX_INITIALIZER;
+pthread_mutex_t fd_cache_mutex = PTHREAD_MUTEX_INITIALIZER;
/* atomically exchange a 64-bit value */
static inline LONG64 interlocked_xchg64( LONG64 *dest, LONG64 val )
@@ -801,7 +801,7 @@ void wine_server_send_fd( int fd )
@@ -803,7 +803,7 @@ void wine_server_send_fd( int fd )
*
* Receive a file descriptor passed from the server.
*/
@ -422,5 +422,5 @@ index b9dbfa322bc..99e57eca44c 100644
int do_esync(void)
{
--
2.33.0
2.34.1

View File

@ -1,4 +1,4 @@
From a1368a522fdc4e741fee7bfbd84eec632bcf4ce0 Mon Sep 17 00:00:00 2001
From 24fa0367db3de31fdc2da7bd61c27699c091cdaa Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 15:11:12 -0500
Subject: [PATCH] server: Create eventfd file descriptors for process objects.
@ -11,10 +11,10 @@ Subject: [PATCH] server: Create eventfd file descriptors for process objects.
4 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/server/esync.c b/server/esync.c
index d61dfdcd956..e18b76bff5b 100644
index c7b0323f204..27049ffbdb0 100644
--- a/server/esync.c
+++ b/server/esync.c
@@ -297,6 +297,24 @@ struct esync *create_esync( struct object *root, const struct unicode_str *name,
@@ -295,6 +295,24 @@ struct esync *create_esync( struct object *root, const struct unicode_str *name,
#endif
}
@ -49,10 +49,10 @@ index 7ca4ca89394..6a0a367124d 100644
void esync_init(void);
+int esync_create_fd( int initval, int flags );
diff --git a/server/process.c b/server/process.c
index e144593445d..f9468c771d0 100644
index ca9844c5c90..eca2f8f4bca 100644
--- a/server/process.c
+++ b/server/process.c
@@ -49,6 +49,7 @@
@@ -63,6 +63,7 @@
#include "request.h"
#include "user.h"
#include "security.h"
@ -60,7 +60,7 @@ index e144593445d..f9468c771d0 100644
/* process object */
@@ -81,6 +82,7 @@ static struct security_descriptor *process_get_sd( struct object *obj );
@@ -95,6 +96,7 @@ static struct security_descriptor *process_get_sd( struct object *obj );
static void process_poll_event( struct fd *fd, int event );
static struct list *process_get_kernel_obj_list( struct object *obj );
static void process_destroy( struct object *obj );
@ -68,7 +68,7 @@ index e144593445d..f9468c771d0 100644
static void terminate_process( struct process *process, struct thread *skip, int exit_code );
static const struct object_ops process_ops =
@@ -91,7 +93,7 @@ static const struct object_ops process_ops =
@@ -105,7 +107,7 @@ static const struct object_ops process_ops =
add_queue, /* add_queue */
remove_queue, /* remove_queue */
process_signaled, /* signaled */
@ -77,15 +77,15 @@ index e144593445d..f9468c771d0 100644
no_satisfied, /* satisfied */
no_signal, /* signal */
no_get_fd, /* get_fd */
@@ -555,6 +557,7 @@ struct process *create_process( int fd, struct process *parent, unsigned int fla
process->trace_data = 0;
@@ -684,6 +686,7 @@ struct process *create_process( int fd, struct process *parent, unsigned int fla
process->rawinput_mouse = NULL;
process->rawinput_kbd = NULL;
memset( &process->image_info, 0, sizeof(process->image_info) );
+ process->esync_fd = -1;
list_init( &process->kernel_object );
list_init( &process->thread_list );
list_init( &process->locks );
@@ -611,6 +614,9 @@ struct process *create_process( int fd, struct process *parent, unsigned int fla
@@ -741,6 +744,9 @@ struct process *create_process( int fd, struct process *parent, unsigned int fla
if (!token_assign_label( process->token, security_high_label_sid ))
goto error;
@ -95,7 +95,7 @@ index e144593445d..f9468c771d0 100644
set_fd_events( process->msg_fd, POLLIN ); /* start listening to events */
return process;
@@ -657,6 +663,7 @@ static void process_destroy( struct object *obj )
@@ -787,6 +793,7 @@ static void process_destroy( struct object *obj )
if (process->token) release_object( process->token );
free( process->dir_cache );
free( process->image );
@ -103,7 +103,7 @@ index e144593445d..f9468c771d0 100644
}
/* dump a process on stdout for debugging purposes */
@@ -674,6 +681,13 @@ static int process_signaled( struct object *obj, struct wait_queue_entry *entry
@@ -804,6 +811,13 @@ static int process_signaled( struct object *obj, struct wait_queue_entry *entry
return !process->running_threads;
}
@ -118,17 +118,17 @@ index e144593445d..f9468c771d0 100644
{
access = default_map_access( obj, access );
diff --git a/server/process.h b/server/process.h
index 0e1a83859d9..71aae9c9494 100644
index 632faf9c4bf..1ba69b3406e 100644
--- a/server/process.h
+++ b/server/process.h
@@ -87,6 +87,7 @@ struct process
const struct rawinput_device *rawinput_mouse; /* rawinput mouse device, if any */
@@ -90,6 +90,7 @@ struct process
const struct rawinput_device *rawinput_kbd; /* rawinput keyboard device, if any */
struct list kernel_object; /* list of kernel object pointers */
pe_image_info_t image_info; /* main exe image info */
+ int esync_fd; /* esync file descriptor (signaled on exit) */
};
/* process functions */
--
2.30.2
2.34.1

View File

@ -51,7 +51,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "b173a96237b1f1c02c642f3d4a57ecb507ebc664"
echo "2318484e1e33cb30f00eb9a62cb9aa5f83e5dc99"
}
# Show version information

View File

@ -1 +1 @@
b173a96237b1f1c02c642f3d4a57ecb507ebc664
2318484e1e33cb30f00eb9a62cb9aa5f83e5dc99