From f09458658ede39bccde6a8fa22c15c9fa8faf80c Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Fri, 20 Sep 2024 07:43:46 +1000 Subject: [PATCH] Rebase against 7037201214729c25d2439818012c156a3991cdb7. --- ...for-sys-eventfd.h-ppoll-and-shm_open.patch | 22 +++++----- ...ement-FILE_OPEN_REPARSE_POINT-option.patch | 40 +++++++++---------- staging/upstream-commit | 2 +- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/patches/eventfd_synchronization/0001-configure-Check-for-sys-eventfd.h-ppoll-and-shm_open.patch b/patches/eventfd_synchronization/0001-configure-Check-for-sys-eventfd.h-ppoll-and-shm_open.patch index e8e30a41..2895a331 100644 --- a/patches/eventfd_synchronization/0001-configure-Check-for-sys-eventfd.h-ppoll-and-shm_open.patch +++ b/patches/eventfd_synchronization/0001-configure-Check-for-sys-eventfd.h-ppoll-and-shm_open.patch @@ -1,4 +1,4 @@ -From ff79cf149df18ecb2fe60e776673c6d428a13ae8 Mon Sep 17 00:00:00 2001 +From 6dbedd8d7aebe117b013c61f9549848f13619f0e Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Wed, 13 Jun 2018 10:44:49 -0500 Subject: [PATCH] configure: Check for sys/eventfd.h, ppoll(), and shm_open(). @@ -12,10 +12,10 @@ Although perhaps we shouldn't since the server doesn't do this. 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 52612934197..7a1b92a15d6 100644 +index 67775f9cd15..c03d4c3688b 100644 --- a/configure.ac +++ b/configure.ac -@@ -408,6 +408,7 @@ AC_CHECK_HEADERS(\ +@@ -407,6 +407,7 @@ AC_CHECK_HEADERS(\ sys/cdio.h \ sys/epoll.h \ sys/event.h \ @@ -23,7 +23,7 @@ index 52612934197..7a1b92a15d6 100644 sys/extattr.h \ sys/filio.h \ sys/ipc.h \ -@@ -2096,6 +2097,7 @@ AC_CHECK_FUNCS(\ +@@ -2067,6 +2068,7 @@ AC_CHECK_FUNCS(\ port_create \ posix_fadvise \ posix_fallocate \ @@ -31,9 +31,9 @@ index 52612934197..7a1b92a15d6 100644 prctl \ sched_yield \ renameat \ -@@ -2120,6 +2122,12 @@ case $host_os in - ;; - esac +@@ -2087,6 +2089,12 @@ AC_SEARCH_LIBS(clock_gettime, rt, + test "$ac_res" = "none required" || AC_SUBST(RT_LIBS,"$ac_res")]) + LIBS=$ac_save_LIBS +ac_save_LIBS=$LIBS +AC_SEARCH_LIBS(shm_open, rt, @@ -45,10 +45,10 @@ index 52612934197..7a1b92a15d6 100644 AC_LINK_IFELSE([AC_LANG_PROGRAM( [[#include ]], [[sched_setaffinity(0, 0, 0);]])],[wine_cv_have_sched_setaffinity=yes],[wine_cv_have_sched_setaffinity=no])) diff --git a/include/config.h.in b/include/config.h.in -index a09cea2c8ee..8ab002c0030 100644 +index 1c3d4c4d62b..e9686e04a2a 100644 --- a/include/config.h.in +++ b/include/config.h.in -@@ -321,6 +321,9 @@ +@@ -318,6 +318,9 @@ /* Define to 1 if you have the 'posix_fallocate' function. */ #undef HAVE_POSIX_FALLOCATE @@ -58,7 +58,7 @@ index a09cea2c8ee..8ab002c0030 100644 /* Define to 1 if you have the 'prctl' function. */ #undef HAVE_PRCTL -@@ -378,7 +381,10 @@ +@@ -375,7 +378,10 @@ /* Define to 1 if 'interface_id' is a member of 'sg_io_hdr_t'. */ #undef HAVE_SG_IO_HDR_T_INTERFACE_ID @@ -70,7 +70,7 @@ index a09cea2c8ee..8ab002c0030 100644 #undef HAVE_SIGINFO_T_SI_FD /* Define to 1 if you have the 'sigprocmask' function. */ -@@ -507,6 +513,9 @@ +@@ -504,6 +510,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_EPOLL_H diff --git a/patches/ntdll-Junction_Points/0005-server-Implement-FILE_OPEN_REPARSE_POINT-option.patch b/patches/ntdll-Junction_Points/0005-server-Implement-FILE_OPEN_REPARSE_POINT-option.patch index f247adca..24818ffc 100644 --- a/patches/ntdll-Junction_Points/0005-server-Implement-FILE_OPEN_REPARSE_POINT-option.patch +++ b/patches/ntdll-Junction_Points/0005-server-Implement-FILE_OPEN_REPARSE_POINT-option.patch @@ -1,4 +1,4 @@ -From 5306b83f69d37bf99110fc1b662fccc89552be3d Mon Sep 17 00:00:00 2001 +From c2236d2048faf1e01da3130fdb81688da6829d4a Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Thu, 16 Jan 2014 21:02:11 -0700 Subject: [PATCH] server: Implement FILE_OPEN_REPARSE_POINT option. @@ -10,10 +10,10 @@ Signed-off-by: Erich E. Hoover 2 files changed, 142 insertions(+), 7 deletions(-) diff --git a/dlls/kernelbase/file.c b/dlls/kernelbase/file.c -index e1ba92a6448..04cb6760872 100644 +index 1f13511fa7b..1c41e0011f3 100644 --- a/dlls/kernelbase/file.c +++ b/dlls/kernelbase/file.c -@@ -732,6 +732,8 @@ static UINT get_nt_file_options( DWORD attributes ) +@@ -769,6 +769,8 @@ static UINT get_nt_file_options( DWORD attributes ) options |= FILE_SEQUENTIAL_ONLY; if (attributes & FILE_FLAG_WRITE_THROUGH) options |= FILE_WRITE_THROUGH; @@ -23,18 +23,18 @@ index e1ba92a6448..04cb6760872 100644 } diff --git a/server/fd.c b/server/fd.c -index 8576882aaa9..0d5964b2427 100644 +index 04688c5eb0d..94b8bd088ed 100644 --- a/server/fd.c +++ b/server/fd.c -@@ -31,6 +31,7 @@ - #include +@@ -32,6 +32,7 @@ #include #include + #include +#include #include #ifdef HAVE_LINUX_MAJOR_H #include -@@ -101,6 +102,10 @@ +@@ -99,6 +100,10 @@ #include "winioctl.h" #include "ddk/wdm.h" @@ -45,7 +45,7 @@ index 8576882aaa9..0d5964b2427 100644 #if defined(HAVE_SYS_EPOLL_H) && defined(HAVE_EPOLL_CREATE) # include # define USE_EPOLL -@@ -1066,6 +1071,9 @@ static void device_destroy( struct object *obj ) +@@ -1064,6 +1069,9 @@ static void device_destroy( struct object *obj ) list_remove( &device->entry ); /* remove it from the hash table */ } @@ -55,7 +55,7 @@ index 8576882aaa9..0d5964b2427 100644 /****************************************************************/ /* inode functions */ -@@ -1073,10 +1081,29 @@ static void unlink_closed_fd( struct inode *inode, struct closed_fd *fd ) +@@ -1071,10 +1079,29 @@ static void unlink_closed_fd( struct inode *inode, struct closed_fd *fd ) { /* make sure it is still the same file */ struct stat st; @@ -86,7 +86,7 @@ index 8576882aaa9..0d5964b2427 100644 } } -@@ -1115,6 +1142,59 @@ static void inode_dump( struct object *obj, int verbose ) +@@ -1113,6 +1140,59 @@ static void inode_dump( struct object *obj, int verbose ) fprintf( stderr, "\n" ); } @@ -146,7 +146,7 @@ index 8576882aaa9..0d5964b2427 100644 static void inode_destroy( struct object *obj ) { struct inode *inode = (struct inode *)obj; -@@ -1870,6 +1950,38 @@ void get_nt_name( struct fd *fd, struct unicode_str *name ) +@@ -1861,6 +1941,38 @@ void get_nt_name( struct fd *fd, struct unicode_str *name ) name->len = fd->nt_namelen; } @@ -185,7 +185,7 @@ index 8576882aaa9..0d5964b2427 100644 /* open() wrapper that returns a struct fd with no fd user set */ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_name, int flags, mode_t *mode, unsigned int access, -@@ -1930,6 +2042,15 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam +@@ -1921,6 +2033,15 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam } else rw_mode = O_RDONLY; @@ -201,7 +201,7 @@ index 8576882aaa9..0d5964b2427 100644 if ((fd->unix_fd = open( name, rw_mode | (flags & ~O_TRUNC), *mode )) == -1) { /* if we tried to open a directory for write access, retry read-only */ -@@ -1954,7 +2075,7 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam +@@ -1945,7 +2066,7 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam fd->unix_name = NULL; if ((path = dup_fd_name( root, name ))) { @@ -210,7 +210,7 @@ index 8576882aaa9..0d5964b2427 100644 free( path ); } -@@ -1965,10 +2086,11 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam +@@ -1956,10 +2077,11 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam *mode = st.st_mode; /* only bother with an inode for normal files and directories */ @@ -223,7 +223,7 @@ index 8576882aaa9..0d5964b2427 100644 if (!inode) { -@@ -1983,13 +2105,17 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam +@@ -1974,13 +2096,17 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam list_add_head( &inode->open, &fd->inode_entry ); closed_fd = NULL; @@ -243,7 +243,7 @@ index 8576882aaa9..0d5964b2427 100644 { set_error( STATUS_FILE_IS_A_DIRECTORY ); goto error; -@@ -2436,6 +2562,7 @@ static struct fd *get_handle_fd_obj( struct process *process, obj_handle_t handl +@@ -2427,6 +2553,7 @@ static struct fd *get_handle_fd_obj( struct process *process, obj_handle_t handl static int is_dir_empty( int fd ) { @@ -251,7 +251,7 @@ index 8576882aaa9..0d5964b2427 100644 DIR *dir; int empty; struct dirent *de; -@@ -2443,8 +2570,13 @@ static int is_dir_empty( int fd ) +@@ -2434,8 +2561,13 @@ static int is_dir_empty( int fd ) if ((fd = dup( fd )) == -1) return -1; @@ -266,7 +266,7 @@ index 8576882aaa9..0d5964b2427 100644 close( fd ); return -1; } -@@ -2456,6 +2588,7 @@ static int is_dir_empty( int fd ) +@@ -2447,6 +2579,7 @@ static int is_dir_empty( int fd ) empty = 0; } closedir( dir ); @@ -274,7 +274,7 @@ index 8576882aaa9..0d5964b2427 100644 return empty; } -@@ -2494,7 +2627,7 @@ static void set_fd_disposition( struct fd *fd, unsigned int flags ) +@@ -2485,7 +2618,7 @@ static void set_fd_disposition( struct fd *fd, unsigned int flags ) file_set_error(); return; } @@ -284,5 +284,5 @@ index 8576882aaa9..0d5964b2427 100644 if (!(flags & FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE) && !(st.st_mode & (S_IWUSR | S_IWGRP | S_IWOTH))) -- -2.43.0 +2.45.2 diff --git a/staging/upstream-commit b/staging/upstream-commit index 3fad167e..c56d32e2 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -0cdc3b092cbe13b8a029e12fda32b5f5ef04641e +7037201214729c25d2439818012c156a3991cdb7