Rebase against 2f5f8b4bd4cb5771223d1ee96a55002d18ad01eb.

This commit is contained in:
Alistair Leslie-Hughes
2021-12-18 18:45:43 +11:00
parent 544f90dacc
commit 278310cf80
4 changed files with 125 additions and 109 deletions

View File

@@ -1,17 +1,17 @@
From fb450637e3b533b3dbef8792aa389ca3614bedf3 Mon Sep 17 00:00:00 2001
From fa9bbbaa8630c4b259e287437a627e226c1c34da 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 | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
server/console.c | 36 ++++++++++++++++++++++++++++--------
1 file changed, 28 insertions(+), 8 deletions(-)
diff --git a/server/console.c b/server/console.c
index dd1bf8f4119..887bba4e63c 100644
index e7c97e99579..98ac09efc3f 100644
--- a/server/console.c
+++ b/server/console.c
@@ -42,6 +42,7 @@
@@ -41,6 +41,7 @@
#include "wincon.h"
#include "winternl.h"
#include "wine/condrv.h"
@@ -19,10 +19,26 @@ index dd1bf8f4119..887bba4e63c 100644
struct screen_buffer;
@@ -139,11 +140,13 @@ struct console_server
int busy; /* flag if server processing an ioctl */
int term_fd; /* UNIX terminal fd */
struct termios termios; /* original termios */
@@ -131,20 +132,22 @@ struct console_host_ioctl
struct console_server
{
- struct object obj; /* object header */
- struct fd *fd; /* pseudo-fd for ioctls */
- struct console *console; /* attached console */
- struct list queue; /* ioctl queue */
- struct list read_queue; /* blocking read queue */
+ struct object obj; /* object header */
+ struct fd *fd; /* pseudo-fd for ioctls */
+ struct console *console; /* attached console */
+ struct list queue; /* ioctl queue */
+ struct list read_queue; /* blocking read queue */
unsigned int busy : 1; /* flag if server processing an ioctl */
unsigned int once_input : 1; /* flag if input thread has already been requested */
- int term_fd; /* UNIX terminal fd */
- struct termios termios; /* original termios */
+ int term_fd; /* UNIX terminal fd */
+ struct termios termios; /* original termios */
+ int esync_fd;
};
@@ -33,7 +49,7 @@ index dd1bf8f4119..887bba4e63c 100644
static struct fd *console_server_get_fd( struct object *obj );
static struct object *console_server_lookup_name( struct object *obj, struct unicode_str *name,
unsigned int attr, struct object *root );
@@ -158,7 +161,7 @@ static const struct object_ops console_server_ops =
@@ -159,7 +162,7 @@ static const struct object_ops console_server_ops =
add_queue, /* add_queue */
remove_queue, /* remove_queue */
console_server_signaled, /* signaled */
@@ -42,7 +58,7 @@ index dd1bf8f4119..887bba4e63c 100644
no_satisfied, /* satisfied */
no_signal, /* signal */
console_server_get_fd, /* get_fd */
@@ -526,6 +529,8 @@ static void disconnect_console_server( struct console_server *server )
@@ -597,6 +600,8 @@ static void disconnect_console_server( struct console_server *server )
list_remove( &call->entry );
console_host_ioctl_terminate( call, STATUS_CANCELLED );
}
@@ -51,7 +67,7 @@ index dd1bf8f4119..887bba4e63c 100644
while (!list_empty( &server->read_queue ))
{
struct console_host_ioctl *call = LIST_ENTRY( list_head( &server->read_queue ), struct console_host_ioctl, entry );
@@ -844,6 +849,13 @@ static int console_server_signaled( struct object *obj, struct wait_queue_entry
@@ -897,6 +902,13 @@ static int console_server_signaled( struct object *obj, struct wait_queue_entry
return !server->console || !list_empty( &server->queue );
}
@@ -65,7 +81,7 @@ index dd1bf8f4119..887bba4e63c 100644
static struct fd *console_server_get_fd( struct object* obj )
{
struct console_server *server = (struct console_server*)obj;
@@ -874,6 +886,10 @@ static struct object *create_console_server( void )
@@ -928,6 +940,10 @@ static struct object *create_console_server( void )
return NULL;
}
allow_fd_caching(server->fd);
@@ -76,7 +92,7 @@ index dd1bf8f4119..887bba4e63c 100644
return &server->obj;
}
@@ -1388,6 +1404,8 @@ DECL_HANDLER(get_next_console_request)
@@ -1513,6 +1529,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 );
@@ -85,7 +101,7 @@ index dd1bf8f4119..887bba4e63c 100644
}
if (ioctl)
@@ -1486,6 +1504,8 @@ DECL_HANDLER(get_next_console_request)
@@ -1598,6 +1616,8 @@ DECL_HANDLER(get_next_console_request)
{
set_error( STATUS_PENDING );
}
@@ -95,5 +111,5 @@ index dd1bf8f4119..887bba4e63c 100644
release_object( server );
}
--
2.29.2
2.34.1

View File

@@ -51,7 +51,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "533616d23f9832596e41f839356830c7679df930"
echo "2f5f8b4bd4cb5771223d1ee96a55002d18ad01eb"
}
# Show version information

View File

@@ -1 +1 @@
533616d23f9832596e41f839356830c7679df930
2f5f8b4bd4cb5771223d1ee96a55002d18ad01eb