mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against 7ca1c4900e42d608150822ef87a7ce2847a59b6f.
This commit is contained in:
parent
3a14d63abf
commit
cb9aa710d5
@ -1,8 +1,8 @@
|
||||
From 2ca666409e42b5ecf78b32a583d3ba95cbcce356 Mon Sep 17 00:00:00 2001
|
||||
From 31b8b93cd83da65ee4439f0f06fb673257f1850c Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Sun, 10 Jun 2018 23:12:16 -0500
|
||||
Subject: [PATCH 41/83] server: Allocate shared memory segments for semaphores
|
||||
and mutexes.
|
||||
Subject: [PATCH] server: Allocate shared memory segments for semaphores and
|
||||
mutexes.
|
||||
|
||||
As has been described in the README, these two objects have state that can't
|
||||
be expressed (or read from) the eventfd descriptor. Namely, for semaphores
|
||||
@ -16,17 +16,17 @@ We use the WINEPREFIX dir to discriminate shm sections for simultaneously
|
||||
running servers; this is based off of code in libwine (specifically
|
||||
init_server_dir()).
|
||||
---
|
||||
server/esync.c | 65 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
server/esync.c | 64 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
server/esync.h | 1 +
|
||||
server/main.c | 4 +++
|
||||
server/protocol.def | 2 ++
|
||||
4 files changed, 72 insertions(+)
|
||||
4 files changed, 71 insertions(+)
|
||||
|
||||
diff --git a/server/esync.c b/server/esync.c
|
||||
index 5dd38c42a..e9a1ec15e 100644
|
||||
index 5dd38c42a..fb9d02fc7 100644
|
||||
--- a/server/esync.c
|
||||
+++ b/server/esync.c
|
||||
@@ -21,17 +21,26 @@
|
||||
@@ -21,12 +21,20 @@
|
||||
#include "config.h"
|
||||
#include "wine/port.h"
|
||||
|
||||
@ -47,13 +47,7 @@ index 5dd38c42a..e9a1ec15e 100644
|
||||
|
||||
#include "ntstatus.h"
|
||||
#define WIN32_NO_STATUS
|
||||
#include "windef.h"
|
||||
#include "winternl.h"
|
||||
+#include "wine/library.h"
|
||||
|
||||
#include "handle.h"
|
||||
#include "request.h"
|
||||
@@ -52,11 +61,46 @@ int do_esync(void)
|
||||
@@ -52,11 +60,46 @@ int do_esync(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -72,8 +66,8 @@ index 5dd38c42a..e9a1ec15e 100644
|
||||
+{
|
||||
+ struct stat st;
|
||||
+
|
||||
+ if (stat( wine_get_config_dir(), &st ) == -1)
|
||||
+ fatal_error( "cannot stat %s\n", wine_get_config_dir() );
|
||||
+ if (fstat( config_dir_fd, &st ) == -1)
|
||||
+ fatal_error( "cannot stat config dir\n" );
|
||||
+
|
||||
+ if (st.st_ino != (unsigned long)st.st_ino)
|
||||
+ sprintf( shm_name, "/wine-%lx%08lx-esync", (unsigned long)((unsigned long long)st.st_ino >> 32), (unsigned long)st.st_ino );
|
||||
@ -100,7 +94,7 @@ index 5dd38c42a..e9a1ec15e 100644
|
||||
};
|
||||
|
||||
static void esync_dump( struct object *obj, int verbose );
|
||||
@@ -146,6 +190,25 @@ static struct esync *create_esync( struct object *root, const struct unicode_str
|
||||
@@ -146,6 +189,25 @@ static struct esync *create_esync( struct object *root, const struct unicode_str
|
||||
return NULL;
|
||||
}
|
||||
esync->type = type;
|
||||
@ -126,7 +120,7 @@ index 5dd38c42a..e9a1ec15e 100644
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -247,6 +310,7 @@ DECL_HANDLER(create_esync)
|
||||
@@ -247,6 +309,7 @@ DECL_HANDLER(create_esync)
|
||||
req->access, objattr->attributes );
|
||||
|
||||
reply->type = esync->type;
|
||||
@ -134,7 +128,7 @@ index 5dd38c42a..e9a1ec15e 100644
|
||||
send_client_fd( current->process, esync->fd, reply->handle );
|
||||
release_object( esync );
|
||||
}
|
||||
@@ -278,6 +342,7 @@ DECL_HANDLER(open_esync)
|
||||
@@ -278,6 +341,7 @@ DECL_HANDLER(open_esync)
|
||||
}
|
||||
|
||||
reply->type = esync->type;
|
||||
@ -155,7 +149,7 @@ index 2687c72e4..aeb58c546 100644
|
||||
void esync_wake_up( struct object *obj );
|
||||
void esync_clear( int fd );
|
||||
diff --git a/server/main.c b/server/main.c
|
||||
index 13af3b9fe..2a91f5ec8 100644
|
||||
index 57463aecc..2f4b3411b 100644
|
||||
--- a/server/main.c
|
||||
+++ b/server/main.c
|
||||
@@ -36,6 +36,7 @@
|
||||
@ -163,10 +157,10 @@ index 13af3b9fe..2a91f5ec8 100644
|
||||
#include "thread.h"
|
||||
#include "request.h"
|
||||
+#include "esync.h"
|
||||
#include "wine/library.h"
|
||||
|
||||
/* command-line options */
|
||||
@@ -142,6 +143,9 @@ int main( int argc, char *argv[] )
|
||||
int debug_level = 0;
|
||||
@@ -141,6 +142,9 @@ int main( int argc, char *argv[] )
|
||||
sock_init();
|
||||
open_master_socket();
|
||||
|
||||
@ -177,10 +171,10 @@ index 13af3b9fe..2a91f5ec8 100644
|
||||
init_scheduler();
|
||||
init_signals();
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index d14fdb607..c2b554490 100644
|
||||
index f0dc0d24d..88a443de4 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -4052,6 +4052,7 @@ struct handle_info
|
||||
@@ -4040,6 +4040,7 @@ struct handle_info
|
||||
@REPLY
|
||||
obj_handle_t handle; /* handle to the object */
|
||||
int type; /* type of esync object (see below) */
|
||||
@ -188,7 +182,7 @@ index d14fdb607..c2b554490 100644
|
||||
@END
|
||||
|
||||
/* Open an esync object */
|
||||
@@ -4064,6 +4065,7 @@ struct handle_info
|
||||
@@ -4052,6 +4053,7 @@ struct handle_info
|
||||
@REPLY
|
||||
obj_handle_t handle; /* handle to the event */
|
||||
int type; /* type of esync object (above) */
|
||||
@ -197,5 +191,5 @@ index d14fdb607..c2b554490 100644
|
||||
|
||||
/* Retrieve the esync fd for an object. */
|
||||
--
|
||||
2.20.1
|
||||
2.23.0
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From fce0ca471688700deb77c63e53e1c921ad109a68 Mon Sep 17 00:00:00 2001
|
||||
From e51af93f24d248e0f20fe0688c2dba4a6f3f9344 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 4 Feb 2017 16:20:37 +0100
|
||||
Subject: [PATCH] kernel32: Implement some processor group functions.
|
||||
@ -13,7 +13,7 @@ Subject: [PATCH] kernel32: Implement some processor group functions.
|
||||
6 files changed, 49 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec b/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec
|
||||
index e653ac6d212..b6af37ab0aa 100644
|
||||
index e653ac6d2..b6af37ab0 100644
|
||||
--- a/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec
|
||||
+++ b/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec
|
||||
@@ -21,7 +21,7 @@
|
||||
@ -26,7 +26,7 @@ index e653ac6d212..b6af37ab0aa 100644
|
||||
@ stdcall GetNamedPipeServerProcessId(long ptr) kernel32.GetNamedPipeServerProcessId
|
||||
@ stdcall GetShortPathNameA(str ptr long) kernel32.GetShortPathNameA
|
||||
diff --git a/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec b/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
|
||||
index fd1a0bcf0ab..b281fd963da 100644
|
||||
index fd1a0bcf0..b281fd963 100644
|
||||
--- a/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
|
||||
+++ b/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
|
||||
@@ -26,7 +26,7 @@
|
||||
@ -39,10 +39,10 @@ index fd1a0bcf0ab..b281fd963da 100644
|
||||
@ stdcall GetNamedPipeServerProcessId(long ptr) kernel32.GetNamedPipeServerProcessId
|
||||
@ stdcall GetNumaAvailableMemoryNodeEx(long ptr) kernel32.GetNumaAvailableMemoryNodeEx
|
||||
diff --git a/dlls/kernel32/cpu.c b/dlls/kernel32/cpu.c
|
||||
index ad8ebeb873a..1014dfe3c83 100644
|
||||
index 0849ac551..f0b06dcc1 100644
|
||||
--- a/dlls/kernel32/cpu.c
|
||||
+++ b/dlls/kernel32/cpu.c
|
||||
@@ -231,7 +231,9 @@ SIZE_T WINAPI GetLargePageMinimum(void)
|
||||
@@ -122,7 +122,9 @@ err:
|
||||
*/
|
||||
WORD WINAPI GetActiveProcessorGroupCount(void)
|
||||
{
|
||||
@ -53,7 +53,7 @@ index ad8ebeb873a..1014dfe3c83 100644
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -240,14 +242,26 @@ WORD WINAPI GetActiveProcessorGroupCount(void)
|
||||
@@ -131,14 +133,26 @@ WORD WINAPI GetActiveProcessorGroupCount(void)
|
||||
*/
|
||||
DWORD WINAPI GetActiveProcessorCount(WORD group)
|
||||
{
|
||||
@ -87,7 +87,7 @@ index ad8ebeb873a..1014dfe3c83 100644
|
||||
|
||||
/***********************************************************************
|
||||
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
|
||||
index d4ba5c71c13..c896469bde5 100644
|
||||
index 04fa5f2e7..44681ebb3 100644
|
||||
--- a/dlls/kernel32/kernel32.spec
|
||||
+++ b/dlls/kernel32/kernel32.spec
|
||||
@@ -717,7 +717,7 @@
|
||||
@ -100,10 +100,10 @@ index d4ba5c71c13..c896469bde5 100644
|
||||
@ stdcall -import GetModuleFileNameW(long ptr long)
|
||||
@ stdcall -import GetModuleHandleA(str)
|
||||
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
|
||||
index 973c1a919bb..b5ff2c69869 100644
|
||||
index a3118d11b..520c2b09f 100644
|
||||
--- a/dlls/kernel32/tests/process.c
|
||||
+++ b/dlls/kernel32/tests/process.c
|
||||
@@ -91,6 +91,7 @@ static SIZE_T (WINAPI *pGetLargePageMinimum)(void);
|
||||
@@ -92,6 +92,7 @@ static SIZE_T (WINAPI *pGetLargePageMinimum)(void);
|
||||
static BOOL (WINAPI *pInitializeProcThreadAttributeList)(struct _PROC_THREAD_ATTRIBUTE_LIST*, DWORD, DWORD, SIZE_T*);
|
||||
static BOOL (WINAPI *pUpdateProcThreadAttribute)(struct _PROC_THREAD_ATTRIBUTE_LIST*, DWORD, DWORD_PTR, void *,SIZE_T,void*,SIZE_T*);
|
||||
static void (WINAPI *pDeleteProcThreadAttributeList)(struct _PROC_THREAD_ATTRIBUTE_LIST*);
|
||||
@ -111,7 +111,7 @@ index 973c1a919bb..b5ff2c69869 100644
|
||||
|
||||
/* ############################### */
|
||||
static char base[MAX_PATH];
|
||||
@@ -258,6 +259,7 @@ static BOOL init(void)
|
||||
@@ -259,6 +260,7 @@ static BOOL init(void)
|
||||
pInitializeProcThreadAttributeList = (void *)GetProcAddress(hkernel32, "InitializeProcThreadAttributeList");
|
||||
pUpdateProcThreadAttribute = (void *)GetProcAddress(hkernel32, "UpdateProcThreadAttribute");
|
||||
pDeleteProcThreadAttributeList = (void *)GetProcAddress(hkernel32, "DeleteProcThreadAttributeList");
|
||||
@ -119,8 +119,8 @@ index 973c1a919bb..b5ff2c69869 100644
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -3908,6 +3910,26 @@ static void test_ProcThreadAttributeList(void)
|
||||
pDeleteProcThreadAttributeList(&list);
|
||||
@@ -3923,6 +3925,26 @@ void test_parent_process_attribute(unsigned int level, HANDLE read_pipe)
|
||||
}
|
||||
}
|
||||
|
||||
+static void test_GetActiveProcessorCount(void)
|
||||
@ -146,7 +146,7 @@ index 973c1a919bb..b5ff2c69869 100644
|
||||
START_TEST(process)
|
||||
{
|
||||
HANDLE job;
|
||||
@@ -3992,6 +4014,7 @@ START_TEST(process)
|
||||
@@ -4013,6 +4035,7 @@ START_TEST(process)
|
||||
test_GetNumaProcessorNode();
|
||||
test_session_info();
|
||||
test_GetLogicalProcessorInformationEx();
|
||||
@ -155,10 +155,10 @@ index 973c1a919bb..b5ff2c69869 100644
|
||||
test_ProcThreadAttributeList();
|
||||
test_SuspendProcessState();
|
||||
diff --git a/include/winnt.h b/include/winnt.h
|
||||
index c8d4a9593ce..d4c29465862 100644
|
||||
index d18b2e03b..86f30ade4 100644
|
||||
--- a/include/winnt.h
|
||||
+++ b/include/winnt.h
|
||||
@@ -6454,6 +6454,8 @@ typedef struct _GROUP_AFFINITY
|
||||
@@ -6459,6 +6459,8 @@ typedef struct _GROUP_AFFINITY
|
||||
WORD Reserved[3];
|
||||
} GROUP_AFFINITY, *PGROUP_AFFINITY;
|
||||
|
||||
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "67d1321c2b8eb5d54aa8fbe0807d9052ae56c1ed"
|
||||
echo "7ca1c4900e42d608150822ef87a7ce2847a59b6f"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 7d0a3a7800a523d111df2d40da43ee7bb4ab362b Mon Sep 17 00:00:00 2001
|
||||
From 65522961f3a0cc382bf2effc445228815ee06e58 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Fri, 13 Nov 2015 22:39:00 +0100
|
||||
Subject: server: Allow multiple registry notifications for the same key.
|
||||
|
||||
---
|
||||
dlls/ntdll/tests/reg.c | 6 +++---
|
||||
server/registry.c | 53 ++++++++++++++++++++++++++------------------------
|
||||
dlls/ntdll/tests/reg.c | 6 ++---
|
||||
server/registry.c | 53 ++++++++++++++++++++++--------------------
|
||||
2 files changed, 31 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/tests/reg.c b/dlls/ntdll/tests/reg.c
|
||||
index 0160869..e67b2b4 100644
|
||||
index 9bb8d2502..1ba688084 100644
|
||||
--- a/dlls/ntdll/tests/reg.c
|
||||
+++ b/dlls/ntdll/tests/reg.c
|
||||
@@ -1785,7 +1785,7 @@ static void test_notify(void)
|
||||
@@ -1874,7 +1874,7 @@ static void test_notify(void)
|
||||
pRtlFreeUnicodeString(&str);
|
||||
|
||||
status = pNtWaitForSingleObject(events[0], FALSE, &timeout);
|
||||
@ -21,7 +21,7 @@ index 0160869..e67b2b4 100644
|
||||
status = pNtWaitForSingleObject(events[1], FALSE, &timeout);
|
||||
ok(status == STATUS_SUCCESS, "NtWaitForSingleObject returned %x\n", status);
|
||||
|
||||
@@ -1798,7 +1798,7 @@ static void test_notify(void)
|
||||
@@ -1887,7 +1887,7 @@ static void test_notify(void)
|
||||
ok(status == STATUS_SUCCESS, "NtDeleteSubkey failed: %x\n", status);
|
||||
|
||||
status = pNtWaitForSingleObject(events[0], FALSE, &timeout);
|
||||
@ -30,7 +30,7 @@ index 0160869..e67b2b4 100644
|
||||
status = pNtWaitForSingleObject(events[1], FALSE, &timeout);
|
||||
ok(status == STATUS_SUCCESS, "NtWaitForSingleObject returned %x\n", status);
|
||||
|
||||
@@ -1812,7 +1812,7 @@ static void test_notify(void)
|
||||
@@ -1901,7 +1901,7 @@ static void test_notify(void)
|
||||
pNtClose(key);
|
||||
|
||||
status = pNtWaitForSingleObject(events[0], FALSE, &timeout);
|
||||
@ -40,12 +40,12 @@ index 0160869..e67b2b4 100644
|
||||
ok(status == STATUS_SUCCESS, "NtWaitForSingleObject returned %x\n", status);
|
||||
|
||||
diff --git a/server/registry.c b/server/registry.c
|
||||
index 97b16ed..53a8d43 100644
|
||||
index 964e2ebd5..41af3cbe7 100644
|
||||
--- a/server/registry.c
|
||||
+++ b/server/registry.c
|
||||
@@ -50,10 +50,16 @@
|
||||
@@ -49,10 +49,16 @@
|
||||
|
||||
#include "winternl.h"
|
||||
#include "wine/library.h"
|
||||
|
||||
+struct notify_event
|
||||
+{
|
||||
@ -83,7 +83,7 @@ index 97b16ed..53a8d43 100644
|
||||
if (del)
|
||||
{
|
||||
list_remove( ¬ify->entry );
|
||||
@@ -2263,6 +2274,7 @@ DECL_HANDLER(set_registry_notification)
|
||||
@@ -2277,6 +2288,7 @@ DECL_HANDLER(set_registry_notification)
|
||||
struct key *key;
|
||||
struct event *event;
|
||||
struct notify *notify;
|
||||
@ -91,7 +91,7 @@ index 97b16ed..53a8d43 100644
|
||||
|
||||
key = get_hkey_obj( req->hkey, KEY_NOTIFY );
|
||||
if (key)
|
||||
@@ -2271,29 +2283,20 @@ DECL_HANDLER(set_registry_notification)
|
||||
@@ -2285,29 +2297,20 @@ DECL_HANDLER(set_registry_notification)
|
||||
if (event)
|
||||
{
|
||||
notify = find_notify( key, current->process, req->hkey );
|
||||
@ -133,5 +133,5 @@ index 97b16ed..53a8d43 100644
|
||||
set_error( STATUS_PENDING );
|
||||
}
|
||||
--
|
||||
2.8.0
|
||||
2.23.0
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user