Compare commits

...

18 Commits

Author SHA1 Message Date
Alistair Leslie-Hughes
0111d074e6 Release v7.0-rc6 2022-01-15 13:32:32 +11:00
Alistair Leslie-Hughes
b4028037d9 Rebase against 7aaeec35e2d7cc799461858edb788e412e9a1fbe. 2022-01-13 12:59:06 +11:00
Alistair Leslie-Hughes
e1c496b21e updated nvcuda-CUDA_Support patchset
Thanks Sveinar Søpler.
2022-01-12 11:35:55 +11:00
Alistair Leslie-Hughes
ee4ca71a7f Release v7.0-rc5 2022-01-08 10:48:47 +11:00
Alistair Leslie-Hughes
3b01c6e2c5 Updated nvcuda-CUDA_Support patchset
This patch add functions for CUDA 10, and reorders
them to be easier to update in future.
2022-01-05 17:03:33 +11:00
Alistair Leslie-Hughes
98c906f843 Rebase against 529e4154a34a5a774fe7036552ffbb060740da90. 2022-01-04 11:45:19 +11:00
Alistair Leslie-Hughes
a43d3ddd1c Release v7.0-rc4 2022-01-03 12:17:06 +11:00
Alistair Leslie-Hughes
78d28293de Rebase against 2318484e1e33cb30f00eb9a62cb9aa5f83e5dc99. 2022-01-03 12:10:34 +11:00
Alistair Leslie-Hughes
440e5eee17 Rebase against b173a96237b1f1c02c642f3d4a57ecb507ebc664. 2021-12-29 10:57:36 +11:00
Alistair Leslie-Hughes
93e94fcbc0 Release v7.0-rc3 2021-12-27 11:27:52 +11:00
Alistair Leslie-Hughes
fa5989b7aa Rebase against d03984709d87d6eaa0e2e7746f0db5d8fdf81b5a. 2021-12-23 10:22:27 +11:00
Alistair Leslie-Hughes
8f579c4eed Release v7.0-rc2 2021-12-18 18:59:04 +11:00
Alistair Leslie-Hughes
278310cf80 Rebase against 2f5f8b4bd4cb5771223d1ee96a55002d18ad01eb. 2021-12-18 18:45:43 +11:00
Alistair Leslie-Hughes
544f90dacc Release v7.0-rc1 2021-12-11 19:10:05 +11:00
Alistair Leslie-Hughes
9937bf0463 Rebase against 533616d23f9832596e41f839356830c7679df930. 2021-12-11 17:41:22 +11:00
Alistair Leslie-Hughes
155e98e765 Rebase against f69d4a865f926aa5c4a9c55cfe4d2dbc10746e5c. 2021-12-10 11:34:32 +11:00
Alistair Leslie-Hughes
2653c32b45 Rebase against b495ff5cc8088af66d6d4f186f82231043e45a95. 2021-12-09 09:49:58 +11:00
Alistair Leslie-Hughes
a2fcffc18e Rebase against 835dfaab023175028161974c5cd8585b77df101c. 2021-12-07 14:08:29 +11:00
32 changed files with 1096 additions and 481 deletions

View File

@@ -1,18 +1,18 @@
From ef0da9342b0ced44da1ed8532941d53f48ead602 Mon Sep 17 00:00:00 2001
From 8528d4181967d00a7711d32bdaf7ecde5fe7208f Mon Sep 17 00:00:00 2001
From: Jetro Jormalainen <jje-wine@jv.jetro.fi>
Date: Tue, 30 Apr 2019 09:20:54 +1000
Subject: [PATCH] dinput: Allow empty Joystick mappings.
---
dlls/dinput/device.c | 77 ++++++++++++++++++++++++++++++-------
dlls/dinput8/tests/device.c | 50 ++++++++++++++++++++++++
dlls/dinput/tests/device8.c | 50 ++++++++++++++++++++++++
2 files changed, 113 insertions(+), 14 deletions(-)
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c
index b423337c9ce..c9466655ce4 100644
index 1dc3c311f2b..63e6abb54eb 100644
--- a/dlls/dinput/device.c
+++ b/dlls/dinput/device.c
@@ -356,12 +356,26 @@ static DWORD semantic_to_obj_id( struct dinput_device *This, DWORD dwSemantic )
@@ -357,12 +357,26 @@ static DWORD semantic_to_obj_id( struct dinput_device *This, DWORD dwSemantic )
return type | (0x0000ff00 & (instance << 8));
}
@@ -40,7 +40,7 @@ index b423337c9ce..c9466655ce4 100644
{
static const WCHAR *subkey = L"Software\\Wine\\DirectInput\\Mappings\\%s\\%s\\%s";
HKEY hkey;
@@ -372,8 +386,11 @@ static HKEY get_mapping_key(const WCHAR *device, const WCHAR *username, const WC
@@ -373,8 +387,11 @@ static HKEY get_mapping_key(const WCHAR *device, const WCHAR *username, const WC
swprintf( keyname, len, subkey, username, device, guid );
/* The key used is HKCU\Software\Wine\DirectInput\Mappings\[username]\[device]\[mapping_guid] */
@@ -54,7 +54,7 @@ index b423337c9ce..c9466655ce4 100644
free( keyname );
@@ -393,7 +410,9 @@ static HRESULT save_mapping_settings(IDirectInputDevice8W *iface, LPDIACTIONFORM
@@ -394,7 +411,9 @@ static HRESULT save_mapping_settings(IDirectInputDevice8W *iface, LPDIACTIONFORM
if (StringFromCLSID(&lpdiaf->guidActionMap, &guid_str) != S_OK)
return DI_SETTINGSNOTSAVED;
@@ -65,7 +65,7 @@ index b423337c9ce..c9466655ce4 100644
if (!hkey)
{
@@ -428,7 +447,7 @@ static BOOL load_mapping_settings( struct dinput_device *This, LPDIACTIONFORMATW
@@ -429,7 +448,7 @@ static BOOL load_mapping_settings( struct dinput_device *This, LPDIACTIONFORMATW
HKEY hkey;
WCHAR *guid_str;
DIDEVICEINSTANCEW didev;
@@ -74,7 +74,7 @@ index b423337c9ce..c9466655ce4 100644
didev.dwSize = sizeof(didev);
IDirectInputDevice8_GetDeviceInfo(&This->IDirectInputDevice8W_iface, &didev);
@@ -436,7 +455,7 @@ static BOOL load_mapping_settings( struct dinput_device *This, LPDIACTIONFORMATW
@@ -437,7 +456,7 @@ static BOOL load_mapping_settings( struct dinput_device *This, LPDIACTIONFORMATW
if (StringFromCLSID(&lpdiaf->guidActionMap, &guid_str) != S_OK)
return FALSE;
@@ -83,7 +83,7 @@ index b423337c9ce..c9466655ce4 100644
if (!hkey)
{
@@ -456,15 +475,20 @@ static BOOL load_mapping_settings( struct dinput_device *This, LPDIACTIONFORMATW
@@ -457,15 +476,20 @@ static BOOL load_mapping_settings( struct dinput_device *This, LPDIACTIONFORMATW
{
lpdiaf->rgoAction[i].dwObjID = id;
lpdiaf->rgoAction[i].guidInstance = didev.guidInstance;
@@ -107,7 +107,7 @@ index b423337c9ce..c9466655ce4 100644
}
static BOOL set_app_data( struct dinput_device *dev, int offset, UINT_PTR app_data )
@@ -1607,13 +1631,18 @@ static HRESULT WINAPI dinput_device_BuildActionMap( IDirectInputDevice8W *iface,
@@ -1914,13 +1938,18 @@ static HRESULT WINAPI dinput_device_BuildActionMap( IDirectInputDevice8W *iface,
load_success = load_mapping_settings( impl, format, username_buf );
}
@@ -130,7 +130,7 @@ index b423337c9ce..c9466655ce4 100644
genre = format->rgoAction[i].dwSemantic & DIGENRE_ANY;
if (devMask == genre || (devMask == DIGENRE_ANY && genre != DIMOUSE_MASK && genre != DIKEYBOARD_MASK))
{
@@ -1645,6 +1674,14 @@ static HRESULT WINAPI dinput_device_BuildActionMap( IDirectInputDevice8W *iface,
@@ -1952,6 +1981,14 @@ static HRESULT WINAPI dinput_device_BuildActionMap( IDirectInputDevice8W *iface,
}
}
@@ -145,7 +145,7 @@ index b423337c9ce..c9466655ce4 100644
if (!has_actions) return DI_NOEFFECT;
if (flags & (DIDBAM_DEFAULT|DIDBAM_PRESERVE|DIDBAM_INITIALIZE|DIDBAM_HWDEFAULTS))
FIXME("Unimplemented flags %#x\n", flags);
@@ -1662,6 +1699,7 @@ static HRESULT WINAPI dinput_device_SetActionMap( IDirectInputDevice8W *iface, D
@@ -1969,6 +2006,7 @@ static HRESULT WINAPI dinput_device_SetActionMap( IDirectInputDevice8W *iface, D
DIPROPSTRING dps;
WCHAR username_buf[MAX_PATH];
DWORD username_len = MAX_PATH;
@@ -153,7 +153,7 @@ index b423337c9ce..c9466655ce4 100644
int i, action = 0, num_actions = 0;
unsigned int offset = 0;
const DIDATAFORMAT *df;
@@ -1694,12 +1732,23 @@ static HRESULT WINAPI dinput_device_SetActionMap( IDirectInputDevice8W *iface, D
@@ -2001,12 +2039,23 @@ static HRESULT WINAPI dinput_device_SetActionMap( IDirectInputDevice8W *iface, D
data_format.dwFlags = DIDF_RELAXIS;
data_format.dwDataSize = format->dwDataSize;
@@ -178,10 +178,10 @@ index b423337c9ce..c9466655ce4 100644
/* Construct the dataformat and actionmap */
obj_df = malloc( sizeof(DIOBJECTDATAFORMAT) * num_actions );
diff --git a/dlls/dinput8/tests/device.c b/dlls/dinput8/tests/device.c
index 5ae9e225dc9..d3e86c68176 100644
--- a/dlls/dinput8/tests/device.c
+++ b/dlls/dinput8/tests/device.c
diff --git a/dlls/dinput/tests/device8.c b/dlls/dinput/tests/device8.c
index 817e843e33c..ad9ee1f006b 100644
--- a/dlls/dinput/tests/device8.c
+++ b/dlls/dinput/tests/device8.c
@@ -48,6 +48,8 @@ struct enum_data {
/* Dummy GUID */
static const GUID ACTION_MAPPING_GUID = { 0x1, 0x2, 0x3, { 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb } };
@@ -254,5 +254,5 @@ index 5ae9e225dc9..d3e86c68176 100644
IDirectInput_Release(pDI);
}
--
2.33.0
2.34.1

View File

@@ -1,4 +1,4 @@
From 2cee55344dd3bef2ed548d2dff275612021e8641 Mon Sep 17 00:00:00 2001
From f2401390227b40c68bb97983fc028d5060a70e8c Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Wed, 13 Jun 2018 10:44:49 -0500
Subject: [PATCH] configure: Check for sys/eventfd.h, ppoll(), and shm_open().
@@ -7,23 +7,23 @@ We use ppoll() instead of poll() for the better time granularity.
Although perhaps we shouldn't since the server doesn't do this.
---
configure.ac | 12 ++++++++++++
include/config.h.in | 9 +++++++++
2 files changed, 21 insertions(+)
configure.ac | 8 ++++++++
include/config.h.in | 9 +++++++++
2 files changed, 17 insertions(+)
diff --git a/configure.ac b/configure.ac
index 4d3c2fab566..2b26e892b08 100644
index 9683798b57b..b4465a98794 100644
--- a/configure.ac
+++ b/configure.ac
@@ -481,6 +481,7 @@ AC_CHECK_HEADERS(\
@@ -478,6 +478,7 @@ AC_CHECK_HEADERS(\
sys/cdio.h \
sys/epoll.h \
sys/event.h \
+ sys/eventfd.h \
sys/filio.h \
sys/ioctl.h \
sys/ipc.h \
@@ -1959,6 +1960,7 @@ AC_CHECK_FUNCS(\
sys/link.h \
@@ -1991,6 +1992,7 @@ AC_CHECK_FUNCS(\
port_create \
posix_fadvise \
posix_fallocate \
@@ -31,28 +31,24 @@ index 4d3c2fab566..2b26e892b08 100644
prctl \
proc_pidinfo \
sched_yield \
@@ -2001,6 +2003,16 @@ case $host_os in
@@ -2033,6 +2035,12 @@ case $host_os in
;;
esac
+dnl Check for shm_open which may be in -lrt
+if test "$ac_cv_header_sys_mman_h" = "yes" -a "x$RT_LIBS" = "x"
+then
+ ac_save_LIBS=$LIBS
+ AC_SEARCH_LIBS(shm_open, rt,
+ [AC_DEFINE(HAVE_SHM_OPEN, 1, [Define to 1 if you have the `shm_open' function.])
+ test "$ac_res" = "none required" || AC_SUBST(RT_LIBS,"$ac_res")])
+fi
+ac_save_LIBS=$LIBS
+AC_SEARCH_LIBS(shm_open, rt,
+ [AC_DEFINE(HAVE_SHM_OPEN, 1, [Define to 1 if you have the `shm_open' function.])
+ test "$ac_res" = "none required" || AC_SUBST(RT_LIBS,"$ac_res")])
+LIBS=$ac_save_LIBS
+
dnl **** Check for OpenLDAP ***
if test "x$with_ldap" != "xno"
then
diff --git a/include/config.h.in b/include/config.h.in
index 0fe50e8ce7c..48dae80850d 100644
index 197c3b97f09..13f822cb36c 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -398,6 +398,9 @@
@@ -362,6 +362,9 @@
/* Define to 1 if you have the `posix_fallocate' function. */
#undef HAVE_POSIX_FALLOCATE
@@ -62,7 +58,7 @@ index 0fe50e8ce7c..48dae80850d 100644
/* Define to 1 if you have the `prctl' function. */
#undef HAVE_PRCTL
@@ -473,6 +476,9 @@
@@ -434,6 +437,9 @@
/* Define to 1 if `interface_id' is a member of `sg_io_hdr_t'. */
#undef HAVE_SG_IO_HDR_T_INTERFACE_ID
@@ -72,7 +68,7 @@ index 0fe50e8ce7c..48dae80850d 100644
/* Define if sigaddset is supported */
#undef HAVE_SIGADDSET
@@ -625,6 +631,9 @@
@@ -574,6 +580,9 @@
/* Define to 1 if you have the <sys/epoll.h> header file. */
#undef HAVE_SYS_EPOLL_H

View File

@@ -1,4 +1,4 @@
From 2e40c85732d66a427927d26d0d560c835187fcf2 Mon Sep 17 00:00:00 2001
From 27524b275c81c1c9057e4b4ca3d9cec734a3bd8a Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Thu, 7 Jun 2018 20:09:59 -0500
Subject: [PATCH] server: Create server objects for eventfd-based
@@ -6,16 +6,16 @@ Subject: [PATCH] server: Create server objects for eventfd-based
---
server/Makefile.in | 1 +
server/esync.c | 320 ++++++++++++++++++++++++++++++++++++++++++++
server/esync.c | 318 ++++++++++++++++++++++++++++++++++++++++++++
server/esync.h | 22 +++
server/main.c | 4 +
server/protocol.def | 25 +++-
5 files changed, 371 insertions(+), 1 deletion(-)
5 files changed, 369 insertions(+), 1 deletion(-)
create mode 100644 server/esync.c
create mode 100644 server/esync.h
diff --git a/server/Makefile.in b/server/Makefile.in
index b58ce1e3002..5f225fd0591 100644
index c81a2112632..da20dff9f56 100644
--- a/server/Makefile.in
+++ b/server/Makefile.in
@@ -11,6 +11,7 @@ C_SRCS = \
@@ -28,10 +28,10 @@ index b58ce1e3002..5f225fd0591 100644
file.c \
diff --git a/server/esync.c b/server/esync.c
new file mode 100644
index 00000000000..a571855c70a
index 00000000000..b9dbfa322bc
--- /dev/null
+++ b/server/esync.c
@@ -0,0 +1,320 @@
@@ -0,0 +1,318 @@
+/*
+ * eventfd-based synchronization objects
+ *
@@ -61,9 +61,7 @@ index 00000000000..a571855c70a
+#ifdef HAVE_SYS_EVENTFD_H
+# include <sys/eventfd.h>
+#endif
+#ifdef HAVE_SYS_MMAN_H
+# include <sys/mman.h>
+#endif
+#include <sys/mman.h>
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
@@ -381,10 +379,10 @@ index 00000000000..7ca4ca89394
+extern int do_esync(void);
+void esync_init(void);
diff --git a/server/main.c b/server/main.c
index dae08339874..f68888d0fa8 100644
index a134d811d82..3436b0871b4 100644
--- a/server/main.c
+++ b/server/main.c
@@ -37,6 +37,7 @@
@@ -34,6 +34,7 @@
#include "thread.h"
#include "request.h"
#include "unicode.h"
@@ -392,7 +390,7 @@ index dae08339874..f68888d0fa8 100644
/* command-line options */
int debug_level = 0;
@@ -141,6 +142,9 @@ int main( int argc, char *argv[] )
@@ -229,6 +230,9 @@ int main( int argc, char *argv[] )
sock_init();
open_master_socket();
@@ -403,10 +401,10 @@ index dae08339874..f68888d0fa8 100644
set_current_time();
init_scheduler();
diff --git a/server/protocol.def b/server/protocol.def
index 10da65be735..22050c65f06 100644
index c413cc7d7bb..607d56a666c 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -3690,7 +3690,6 @@ struct handle_info
@@ -3733,7 +3733,6 @@ struct handle_info
obj_handle_t handle; /* process handle */
@END
@@ -414,7 +412,7 @@ index 10da65be735..22050c65f06 100644
/* Iterate thread list for process */
@REQ(get_next_thread)
obj_handle_t process; /* process handle */
@@ -3701,3 +3700,27 @@ struct handle_info
@@ -3744,3 +3743,27 @@ struct handle_info
@REPLY
obj_handle_t handle; /* next thread handle */
@END
@@ -443,5 +441,5 @@ index 10da65be735..22050c65f06 100644
+ unsigned int shm_idx;
+@END
--
2.30.2
2.33.0

View File

@@ -1,25 +1,25 @@
From b569bf796e685232a6858b1daa2950408c422adf 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.
---
dlls/ntdll/Makefile.in | 1 +
dlls/ntdll/unix/esync.c | 273 +++++++++++++++++++++++++++++++++++++++
dlls/ntdll/unix/esync.c | 271 +++++++++++++++++++++++++++++++++++++++
dlls/ntdll/unix/esync.h | 35 +++++
dlls/ntdll/unix/loader.c | 2 +
dlls/ntdll/unix/server.c | 4 +-
dlls/ntdll/unix/sync.c | 4 +
server/esync.c | 1 +
7 files changed, 318 insertions(+), 2 deletions(-)
7 files changed, 316 insertions(+), 2 deletions(-)
create mode 100644 dlls/ntdll/unix/esync.c
create mode 100644 dlls/ntdll/unix/esync.h
diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in
index aac7f8eead7..7ea80f19481 100644
index 185bc563e68..d7c757cab32 100644
--- a/dlls/ntdll/Makefile.in
+++ b/dlls/ntdll/Makefile.in
@@ -45,6 +45,7 @@ C_SRCS = \
@@ -46,6 +46,7 @@ C_SRCS = \
unix/cdrom.c \
unix/debug.c \
unix/env.c \
@@ -29,10 +29,10 @@ index aac7f8eead7..7ea80f19481 100644
unix/loadorder.c \
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
new file mode 100644
index 00000000000..7c409c7a9ca
index 00000000000..9e1ef7d8afd
--- /dev/null
+++ b/dlls/ntdll/unix/esync.c
@@ -0,0 +1,273 @@
@@ -0,0 +1,271 @@
+/*
+ * eventfd-based synchronization objects
+ *
@@ -64,9 +64,7 @@ index 00000000000..7c409c7a9ca
+#include <fcntl.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#ifdef HAVE_SYS_MMAN_H
+# include <sys/mman.h>
+#endif
+#include <sys/mman.h>
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
@@ -348,10 +346,10 @@ 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 dfc0d4c9a09..310556948aa 100644
index 10884a7a673..28cc48e04bf 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -86,6 +86,7 @@
@@ -89,6 +89,7 @@
#include "winioctl.h"
#include "winternl.h"
#include "unix_private.h"
@@ -359,7 +357,7 @@ index dfc0d4c9a09..310556948aa 100644
#include "wine/list.h"
#include "wine/debug.h"
@@ -2190,6 +2191,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();
@@ -368,19 +366,19 @@ index dfc0d4c9a09..310556948aa 100644
init_cpu_info();
init_files();
diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
index 53d34e1858a..43b470fc10a 100644
index 6a3224d8385..de65f936a59 100644
--- a/dlls/ntdll/unix/server.c
+++ b/dlls/ntdll/unix/server.c
@@ -114,7 +114,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 )
@@ -828,7 +828,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.
*/
@@ -390,10 +388,10 @@ index 53d34e1858a..43b470fc10a 100644
struct iovec vec;
struct msghdr msghdr;
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 86a836a908f..871fe7fb42e 100644
index 442243d8bcf..72cbf92f93c 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -71,6 +71,7 @@
@@ -64,6 +64,7 @@
#include "wine/server.h"
#include "wine/debug.h"
#include "unix_private.h"
@@ -401,7 +399,7 @@ index 86a836a908f..871fe7fb42e 100644
WINE_DEFAULT_DEBUG_CHANNEL(sync);
@@ -324,6 +325,9 @@ NTSTATUS WINAPI NtCreateSemaphore( HANDLE *handle, ACCESS_MASK access, const OBJ
@@ -262,6 +263,9 @@ NTSTATUS WINAPI NtCreateSemaphore( HANDLE *handle, ACCESS_MASK access, const OBJ
if (max <= 0 || initial < 0 || initial > max) return STATUS_INVALID_PARAMETER;
if ((ret = alloc_object_attributes( attr, &objattr, &len ))) return ret;
@@ -412,10 +410,10 @@ index 86a836a908f..871fe7fb42e 100644
{
req->access = access;
diff --git a/server/esync.c b/server/esync.c
index a571855c70a..e41bbbf9349 100644
index b9dbfa322bc..99e57eca44c 100644
--- a/server/esync.c
+++ b/server/esync.c
@@ -43,6 +43,7 @@
@@ -41,6 +41,7 @@
#include "handle.h"
#include "request.h"
#include "file.h"
@@ -424,5 +422,5 @@ index a571855c70a..e41bbbf9349 100644
int do_esync(void)
{
--
2.33.0
2.34.1

View File

@@ -1,4 +1,4 @@
From e5a3456cde339352e78b10fed8a2fc65ca560041 Mon Sep 17 00:00:00 2001
From 4c255f91363e09892de43bf5f3b991ef5ccce3b2 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 7c409c7a9ca..8f28a36d93f 100644
index 9e1ef7d8afd..c7320d78bd3 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -28,6 +28,7 @@
@@ -19,9 +19,9 @@ index 7c409c7a9ca..8f28a36d93f 100644
#include <stdarg.h>
+#include <stdint.h>
#include <stdlib.h>
#ifdef HAVE_SYS_MMAN_H
# include <sys/mman.h>
@@ -173,6 +174,16 @@ static struct esync *add_to_list( HANDLE handle, enum esync_type type, int fd, v
#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
return &esync_list[entry][idx];
}
@@ -38,7 +38,7 @@ index 7c409c7a9ca..8f28a36d93f 100644
static NTSTATUS create_esync( enum esync_type type, HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, int initval, int max )
{
@@ -228,6 +239,38 @@ extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
@@ -226,6 +237,38 @@ extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
return create_esync( ESYNC_SEMAPHORE, handle, access, attr, initial, max );
}
@@ -90,10 +90,10 @@ index a50a755149a..09838e95535 100644
/* 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 663a170fc61..f4bcda4b473 100644
index 72cbf92f93c..db992f3a9ad 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -407,6 +407,9 @@ NTSTATUS WINAPI NtReleaseSemaphore( HANDLE handle, ULONG count, ULONG *previous
@@ -348,6 +348,9 @@ NTSTATUS WINAPI NtReleaseSemaphore( HANDLE handle, ULONG count, ULONG *previous
{
NTSTATUS ret;
@@ -104,5 +104,5 @@ index 663a170fc61..f4bcda4b473 100644
{
req->handle = wine_server_obj_handle( handle );
--
2.28.0
2.33.0

View File

@@ -1,4 +1,4 @@
From 908363daafc3b5220967d31e2e878f617d465026 Mon Sep 17 00:00:00 2001
From e6666b78dbd54b0017de39c85f06900503780110 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,10 +10,10 @@ 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 02b07bf36be..1b71105491c 100644
index f111342688e..dac49af3083 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -22,17 +22,25 @@
@@ -22,6 +22,8 @@
#pragma makedep unix
#endif
@@ -22,24 +22,20 @@ index 02b07bf36be..1b71105491c 100644
#include "config.h"
#include <assert.h>
#include <errno.h>
#include <fcntl.h>
+#ifdef HAVE_POLL_H
+#include <poll.h>
+#endif
#include <stdarg.h>
#include <stdint.h>
#include <stdlib.h>
#ifdef HAVE_SYS_MMAN_H
# include <sys/mman.h>
#endif
+#ifdef HAVE_SYS_POLL_H
+# include <sys/poll.h>
+#endif
@@ -34,6 +36,12 @@
#ifdef HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
@@ -289,6 +297,168 @@ NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev )
+#ifdef HAVE_POLL_H
+#include <poll.h>
+#endif
+#ifdef HAVE_SYS_POLL_H
+# include <sys/poll.h>
+#endif
#include <sys/types.h>
#include <unistd.h>
@@ -287,6 +295,168 @@ NTSTATUS esync_release_semaphore( HANDLE handle, ULONG count, ULONG *prev )
return STATUS_SUCCESS;
}
@@ -223,10 +219,10 @@ index 14e52416764..87516e7597a 100644
/* 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 f4bcda4b473..445c2a4324d 100644
index db992f3a9ad..bc643558a28 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -1273,6 +1273,13 @@ NTSTATUS WINAPI NtWaitForMultipleObjects( DWORD count, const HANDLE *handles, BO
@@ -1410,6 +1410,13 @@ NTSTATUS WINAPI NtWaitForMultipleObjects( DWORD count, const HANDLE *handles, BO
if (!count || count > MAXIMUM_WAIT_OBJECTS) return STATUS_INVALID_PARAMETER_1;
@@ -241,5 +237,5 @@ index f4bcda4b473..445c2a4324d 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.28.0
2.33.0

View File

@@ -1,28 +1,30 @@
From 153efcdc01d57fc29c6d1e80eda52f43666b34a6 Mon Sep 17 00:00:00 2001
From 4a9eff3f22bfe2c6463e3064ec862617d5dd07d7 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 14:57:42 -0500
Subject: [PATCH] ntdll: Implement waiting on manual-reset events.
---
dlls/ntdll/unix/esync.c | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
dlls/ntdll/unix/esync.c | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
index 97d468b2449..d58cb6c1ee2 100644
index 80eb3773ee4..f4c27796189 100644
--- a/dlls/ntdll/unix/esync.c
+++ b/dlls/ntdll/unix/esync.c
@@ -38,9 +38,7 @@
#ifdef HAVE_SYS_MMAN_H
# include <sys/mman.h>
#endif
-#ifdef HAVE_SYS_POLL_H
-# include <sys/poll.h>
-#endif
+#include <poll.h>
@@ -36,12 +36,7 @@
#ifdef HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
@@ -483,12 +481,24 @@ NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_an
-#ifdef HAVE_POLL_H
#include <poll.h>
-#endif
-#ifdef HAVE_SYS_POLL_H
-# include <sys/poll.h>
-#endif
#include <sys/types.h>
#include <unistd.h>
@@ -481,12 +476,24 @@ NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_an
int64_t value;
ssize_t size;

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

@@ -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

@@ -1,4 +1,4 @@
From 88941e9247f9311f978c60c98f93a149aa9bf0e2 Mon Sep 17 00:00:00 2001
From 11107a30f5ddc2065d2b254fad2d10bc158a1ebb Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Tue, 19 Aug 2014 22:10:49 -0600
Subject: [PATCH] ntdll: Implement retrieving DOS attributes in
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement retrieving DOS attributes in
2 files changed, 50 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index f0762e107f3..714af889bc6 100644
index d621ae6e712..3ddff238d74 100644
--- a/configure.ac
+++ b/configure.ac
@@ -90,6 +90,7 @@ AC_ARG_WITH(usb, AS_HELP_STRING([--without-usb],[do not use the libusb lib
@@ -65,6 +65,7 @@ AC_ARG_WITH(usb, AS_HELP_STRING([--without-usb],[do not use the libusb lib
AC_ARG_WITH(v4l2, AS_HELP_STRING([--without-v4l2],[do not use v4l2 (video capture)]))
AC_ARG_WITH(vkd3d, AS_HELP_STRING([--without-vkd3d],[do not use vkd3d (Direct3D 12 support)]))
AC_ARG_WITH(vulkan, AS_HELP_STRING([--without-vulkan],[do not use Vulkan]))
@@ -21,8 +21,8 @@ index f0762e107f3..714af889bc6 100644
AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi])
AC_ARG_WITH(xcursor, AS_HELP_STRING([--without-xcursor],[do not use the Xcursor extension]),
@@ -697,6 +698,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
#include <sys/socket.h>
@@ -642,6 +643,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
#include <sys/queue.h>
#endif])
+if test "x$with_xattr" != "xno"
@@ -40,10 +40,10 @@ index f0762e107f3..714af889bc6 100644
AC_SUBST(DLLFLAGS,"")
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index e6f813966a5..9addefe92f4 100644
index e459087af76..0b6e5d3b6a7 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -108,6 +108,9 @@
@@ -98,6 +98,9 @@
#ifdef HAVE_SYS_STATFS_H
#include <sys/statfs.h>
#endif
@@ -51,9 +51,9 @@ index e6f813966a5..9addefe92f4 100644
+#include <attr/xattr.h>
+#endif
#include <time.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
@@ -367,6 +370,20 @@ NTSTATUS errno_to_status( int err )
#include <unistd.h>
@@ -355,6 +358,20 @@ NTSTATUS errno_to_status( int err )
}
}
@@ -74,7 +74,7 @@ index e6f813966a5..9addefe92f4 100644
/* get space from the current directory data buffer, allocating a new one if necessary */
static void *get_dir_data_space( struct dir_data *data, unsigned int size )
{
@@ -1448,6 +1465,22 @@ static BOOL append_entry( struct dir_data *data, const char *long_name,
@@ -1436,6 +1453,22 @@ static BOOL append_entry( struct dir_data *data, const char *long_name,
}
@@ -97,7 +97,7 @@ index e6f813966a5..9addefe92f4 100644
/* fetch the attributes of a file */
static inline ULONG get_file_attributes( const struct stat *st )
{
@@ -1491,7 +1524,8 @@ static int fd_get_file_info( int fd, unsigned int options, struct stat *st, ULON
@@ -1479,7 +1512,8 @@ static int fd_get_file_info( int fd, unsigned int options, struct stat *st, ULON
static int get_file_info( const char *path, struct stat *st, ULONG *attr )
{
char *parent_path;
@@ -107,7 +107,7 @@ index e6f813966a5..9addefe92f4 100644
*attr = 0;
ret = lstat( path, st );
@@ -1517,6 +1551,9 @@ static int get_file_info( const char *path, struct stat *st, ULONG *attr )
@@ -1505,6 +1539,9 @@ static int get_file_info( const char *path, struct stat *st, ULONG *attr )
free( parent_path );
}
*attr |= get_file_attributes( st );

View File

@@ -1,4 +1,4 @@
From 65442c83060ee1980900cc5fe38978ef8c29eba4 Mon Sep 17 00:00:00 2001
From c93462e9ca4529f413b82abaa76b593df9947cc6 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Mon, 6 Oct 2014 14:21:11 -0600
Subject: [PATCH] libport: Add support for Mac OS X style extended attributes.
@@ -9,10 +9,10 @@ Subject: [PATCH] libport: Add support for Mac OS X style extended attributes.
2 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/configure.ac b/configure.ac
index cca97ee403b..5e33bfacf91 100644
index 3ddff238d74..57f76f09b96 100644
--- a/configure.ac
+++ b/configure.ac
@@ -702,6 +702,9 @@ AC_CHECK_HEADERS([libprocstat.h],,,
@@ -646,6 +646,9 @@ AC_CHECK_HEADERS([libprocstat.h],,,
if test "x$with_xattr" != "xno"
then
AC_CHECK_HEADERS(attr/xattr.h, [HAVE_XATTR=1])
@@ -23,10 +23,10 @@ index cca97ee403b..5e33bfacf91 100644
if test "x$with_xattr" = "xyes"
then
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index a72d95f8378..5e0ac914e1c 100644
index 6f33d2c748f..d4cb708336c 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -106,7 +106,10 @@
@@ -99,7 +99,10 @@
#include <sys/statfs.h>
#endif
#ifdef HAVE_ATTR_XATTR_H
@@ -36,8 +36,8 @@ index a72d95f8378..5e0ac914e1c 100644
+#include <sys/xattr.h>
#endif
#include <time.h>
#ifdef HAVE_UNISTD_H
@@ -378,7 +381,9 @@ NTSTATUS errno_to_status( int err )
#include <unistd.h>
@@ -364,7 +367,9 @@ NTSTATUS errno_to_status( int err )
static int xattr_fremove( int filedes, const char *name )
{
@@ -48,7 +48,7 @@ index a72d95f8378..5e0ac914e1c 100644
return fremovexattr( filedes, name );
#else
errno = ENOSYS;
@@ -388,7 +393,9 @@ static int xattr_fremove( int filedes, const char *name )
@@ -374,7 +379,9 @@ static int xattr_fremove( int filedes, const char *name )
static int xattr_fset( int filedes, const char *name, void *value, size_t size )
{
@@ -59,7 +59,7 @@ index a72d95f8378..5e0ac914e1c 100644
return fsetxattr( filedes, name, value, size, 0 );
#else
errno = ENOSYS;
@@ -398,7 +405,9 @@ static int xattr_fset( int filedes, const char *name, void *value, size_t size )
@@ -384,7 +391,9 @@ static int xattr_fset( int filedes, const char *name, void *value, size_t size )
static int xattr_get( const char *path, const char *name, void *value, size_t size )
{
@@ -70,7 +70,7 @@ index a72d95f8378..5e0ac914e1c 100644
return getxattr( path, name, value, size );
#else
errno = ENOSYS;
@@ -408,7 +417,9 @@ static int xattr_get( const char *path, const char *name, void *value, size_t si
@@ -394,7 +403,9 @@ static int xattr_get( const char *path, const char *name, void *value, size_t si
static int xattr_remove( const char *path, const char *name )
{
@@ -81,7 +81,7 @@ index a72d95f8378..5e0ac914e1c 100644
return removexattr( path, name );
#else
errno = ENOSYS;
@@ -418,7 +429,9 @@ static int xattr_remove( const char *path, const char *name )
@@ -404,7 +415,9 @@ static int xattr_remove( const char *path, const char *name )
static int xattr_set( const char *path, const char *name, void *value, size_t size )
{
@@ -93,5 +93,5 @@ index a72d95f8378..5e0ac914e1c 100644
#else
errno = ENOSYS;
--
2.28.0
2.33.0

View File

@@ -1,4 +1,4 @@
From e7dacaafcbdef04a9cabfdb645497f89d19ca781 Mon Sep 17 00:00:00 2001
From 691c8c2dfe1c14d968cf91f2356d4fca0611d579 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Mon, 6 Oct 2014 14:26:24 -0600
Subject: [PATCH] ntdll: Add support for FreeBSD style extended attributes.
@@ -9,10 +9,10 @@ Subject: [PATCH] ntdll: Add support for FreeBSD style extended attributes.
2 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index f964230858e..a37b314a063 100644
index 57f76f09b96..b99be0623b9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -689,7 +689,7 @@ AC_CHECK_HEADERS([libprocstat.h],,,
@@ -645,7 +645,7 @@ AC_CHECK_HEADERS([libprocstat.h],,,
if test "x$with_xattr" != "xno"
then
@@ -22,10 +22,10 @@ index f964230858e..a37b314a063 100644
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/xattr.h>]], [[getxattr("", "", "", 0, 0, 0);]])],
[AC_DEFINE(XATTR_ADDITIONAL_OPTIONS, 1, [Define if xattr functions take additional arguments (Mac OS X)])])])
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index 301241e2edd..4ccc74c300a 100644
index d4cb708336c..63fff5f7697 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -114,6 +114,10 @@
@@ -104,6 +104,10 @@
#elif defined(HAVE_SYS_XATTR_H)
#include <sys/xattr.h>
#endif
@@ -34,9 +34,9 @@ index 301241e2edd..4ccc74c300a 100644
+#include <sys/extattr.h>
+#endif
#include <time.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
@@ -381,6 +385,21 @@ NTSTATUS errno_to_status( int err )
#include <unistd.h>
@@ -364,6 +368,21 @@ NTSTATUS errno_to_status( int err )
#ifndef XATTR_USER_PREFIX
#define XATTR_USER_PREFIX "user."
#endif
@@ -58,7 +58,7 @@ index 301241e2edd..4ccc74c300a 100644
static int xattr_fremove( int filedes, const char *name )
{
@@ -388,6 +407,9 @@ static int xattr_fremove( int filedes, const char *name )
@@ -371,6 +390,9 @@ static int xattr_fremove( int filedes, const char *name )
return fremovexattr( filedes, name, 0 );
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
return fremovexattr( filedes, name );
@@ -68,7 +68,7 @@ index 301241e2edd..4ccc74c300a 100644
#else
errno = ENOSYS;
return -1;
@@ -400,6 +422,10 @@ static int xattr_fset( int filedes, const char *name, void *value, size_t size )
@@ -383,6 +405,10 @@ static int xattr_fset( int filedes, const char *name, void *value, size_t size )
return fsetxattr( filedes, name, value, size, 0, 0 );
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
return fsetxattr( filedes, name, value, size, 0 );
@@ -79,7 +79,7 @@ index 301241e2edd..4ccc74c300a 100644
#else
errno = ENOSYS;
return -1;
@@ -412,6 +438,10 @@ static int xattr_get( const char *path, const char *name, void *value, size_t si
@@ -395,6 +421,10 @@ static int xattr_get( const char *path, const char *name, void *value, size_t si
return getxattr( path, name, value, size, 0, 0 );
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
return getxattr( path, name, value, size );
@@ -90,7 +90,7 @@ index 301241e2edd..4ccc74c300a 100644
#else
errno = ENOSYS;
return -1;
@@ -424,6 +454,9 @@ static int xattr_remove( const char *path, const char *name )
@@ -407,6 +437,9 @@ static int xattr_remove( const char *path, const char *name )
return removexattr( path, name, 0 );
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
return removexattr( path, name );
@@ -100,7 +100,7 @@ index 301241e2edd..4ccc74c300a 100644
#else
errno = ENOSYS;
return -1;
@@ -436,6 +469,10 @@ static int xattr_set( const char *path, const char *name, void *value, size_t si
@@ -419,6 +452,10 @@ static int xattr_set( const char *path, const char *name, void *value, size_t si
return setxattr( path, name, value, size, 0, 0 );
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
return setxattr( path, name, value, size, 0 );
@@ -112,5 +112,5 @@ index 301241e2edd..4ccc74c300a 100644
errno = ENOSYS;
return -1;
--
2.29.2
2.33.0

View File

@@ -1,4 +1,4 @@
From 6417963f31677985e181baaa61297671cdf26543 Mon Sep 17 00:00:00 2001
From 6684c0f0f73c1664c923ba150e1cb663704d8991 Mon Sep 17 00:00:00 2001
From: Alex Henrie <alexhenrie24@gmail.com>
Date: Tue, 29 Dec 2015 00:48:02 -0700
Subject: [PATCH] mountmgr.sys: Do a device check before returning a default
@@ -7,9 +7,9 @@ Subject: [PATCH] mountmgr.sys: Do a device check before returning a default
Fixes https://bugs.winehq.org/show_bug.cgi?id=39793
---
dlls/mountmgr.sys/device.c | 2 +-
dlls/mountmgr.sys/unixlib.c | 24 ++++++++++++++++++++++++
dlls/mountmgr.sys/unixlib.c | 22 ++++++++++++++++++++++
dlls/mountmgr.sys/unixlib.h | 1 +
3 files changed, 26 insertions(+), 1 deletion(-)
3 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c
index 8c2808bb643..57ae874b247 100644
@@ -25,20 +25,18 @@ index 8c2808bb643..57ae874b247 100644
/* create DOS device */
if (MOUNTMGR_CALL( set_dosdev_symlink, &params )) return FALSE;
diff --git a/dlls/mountmgr.sys/unixlib.c b/dlls/mountmgr.sys/unixlib.c
index 73735c22d13..5f720c29bd5 100644
index 73735c22d13..f83f7104d82 100644
--- a/dlls/mountmgr.sys/unixlib.c
+++ b/dlls/mountmgr.sys/unixlib.c
@@ -46,6 +46,9 @@
@@ -46,6 +46,7 @@
#ifdef HAVE_SYS_MOUNT_H
#include <sys/mount.h>
#endif
+#ifdef HAVE_TERMIOS_H
+# include <termios.h>
+#endif
+#include <termios.h>
#include "unixlib.h"
@@ -268,6 +271,27 @@ static NTSTATUS set_dosdev_symlink( void *args )
@@ -268,6 +269,27 @@ static NTSTATUS set_dosdev_symlink( void *args )
char *path;
NTSTATUS status = STATUS_SUCCESS;

View File

@@ -1,4 +1,4 @@
From 54b37227849cb6e4d214b4a6740d37624e4bb037 Mon Sep 17 00:00:00 2001
From d7be25a11e01c6f223b39df2fb45cc9f531f6c83 Mon Sep 17 00:00:00 2001
From: Paul Gofman <pgofman@codeweavers.com>
Date: Tue, 14 Jul 2020 15:00:34 +0300
Subject: [PATCH] ntdll: Support x86_64 syscall emulation.
@@ -10,11 +10,11 @@ Subject: [PATCH] ntdll: Support x86_64 syscall emulation.
3 files changed, 125 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 9af23da03e6..058fea5941d 100644
index 5a5d88f10b0..7ae43b0c593 100644
--- a/configure.ac
+++ b/configure.ac
@@ -455,6 +455,7 @@ AC_CHECK_HEADERS(\
linux/joystick.h \
@@ -448,6 +448,7 @@ AC_CHECK_HEADERS(\
linux/ioctl.h \
linux/major.h \
linux/param.h \
+ linux/seccomp.h \
@@ -22,7 +22,7 @@ index 9af23da03e6..058fea5941d 100644
linux/types.h \
linux/ucdrom.h \
diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c
index 4600d079536..f028a855147 100644
index 06d99545913..9a46b4a50b0 100644
--- a/dlls/ntdll/unix/signal_x86_64.c
+++ b/dlls/ntdll/unix/signal_x86_64.c
@@ -27,11 +27,13 @@
@@ -53,7 +53,7 @@ index 4600d079536..f028a855147 100644
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
#include "ntstatus.h"
@@ -2422,6 +2431,118 @@ static inline DWORD is_privileged_instr( CONTEXT *context )
@@ -2432,6 +2441,118 @@ static inline DWORD is_privileged_instr( CONTEXT *context )
return 0;
}
@@ -172,7 +172,7 @@ index 4600d079536..f028a855147 100644
/***********************************************************************
* handle_interrupt
@@ -3000,6 +3121,7 @@ void signal_init_process(void)
@@ -3010,6 +3131,7 @@ void signal_init_process(void)
if (sigaction( SIGSEGV, &sig_act, NULL ) == -1) goto error;
if (sigaction( SIGILL, &sig_act, NULL ) == -1) goto error;
if (sigaction( SIGBUS, &sig_act, NULL ) == -1) goto error;
@@ -180,7 +180,7 @@ index 4600d079536..f028a855147 100644
return;
error:
@@ -3218,6 +3340,7 @@ __ASM_GLOBAL_FUNC( __wine_syscall_dispatcher,
@@ -3228,6 +3350,7 @@ __ASM_GLOBAL_FUNC( __wine_syscall_dispatcher,
"leaq 0x28(%rsp),%rsi\n\t" /* first argument */
"movq %rcx,%rsp\n\t"
"movq 0x00(%rcx),%rax\n\t"
@@ -189,10 +189,10 @@ index 4600d079536..f028a855147 100644
"movl %eax,%ebx\n\t"
"shrl $8,%ebx\n\t"
diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c
index 104397716f1..5f62210f486 100644
index c876d51f8e6..37f1465a139 100644
--- a/tools/winebuild/import.c
+++ b/tools/winebuild/import.c
@@ -1410,7 +1410,6 @@ static int cmp_link_name( const void *e1, const void *e2 )
@@ -1366,7 +1366,6 @@ static int cmp_link_name( const void *e1, const void *e2 )
return strcmp( odp1->link_name, odp2->link_name );
}
@@ -200,7 +200,7 @@ index 104397716f1..5f62210f486 100644
/* output the functions for system calls */
void output_syscalls( DLLSPEC *spec )
{
@@ -1468,7 +1467,7 @@ void output_syscalls( DLLSPEC *spec )
@@ -1424,7 +1423,7 @@ void output_syscalls( DLLSPEC *spec )
* validate that instruction, we can just put a jmp there instead. */
output( "\t.byte 0x4c,0x8b,0xd1\n" ); /* movq %rcx,%r10 */
output( "\t.byte 0xb8\n" ); /* movl $i,%eax */

View File

@@ -1,4 +1,4 @@
From 627618459891aa36fc9a9ac0c04b7035d2272fb1 Mon Sep 17 00:00:00 2001
From 31cfae4fcd5b142a4d1b70ad33159c3bddd42181 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= <gabrielopcode@gmail.com>
Date: Fri, 24 May 2019 15:09:35 +0300
Subject: [PATCH] ntdll/server: Mark drive_c as case-insensitive when created
@@ -13,12 +13,12 @@ Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
1 file changed, 45 insertions(+)
diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
index 8dc3f33bc80..0e6c9d90281 100644
index 0952b54f4ef..f998ce35dd0 100644
--- a/dlls/ntdll/unix/server.c
+++ b/dlls/ntdll/unix/server.c
@@ -55,6 +55,12 @@
#ifdef HAVE_SYS_MMAN_H
#include <sys/mman.h>
@@ -49,6 +49,12 @@
#ifdef HAVE_SYS_UN_H
#include <sys/un.h>
#endif
+#ifdef HAVE_SYS_IOCTL_H
+#include <sys/ioctl.h>
@@ -29,7 +29,7 @@ index 8dc3f33bc80..0e6c9d90281 100644
#ifdef HAVE_SYS_PRCTL_H
# include <sys/prctl.h>
#endif
@@ -93,6 +99,22 @@
@@ -83,6 +89,22 @@
WINE_DEFAULT_DEBUG_CHANNEL(server);
@@ -52,7 +52,7 @@ index 8dc3f33bc80..0e6c9d90281 100644
#ifndef MSG_CMSG_CLOEXEC
#define MSG_CMSG_CLOEXEC 0
#endif
@@ -729,6 +751,28 @@ static const char *init_server_dir( dev_t dev, ino_t ino )
@@ -1140,6 +1162,28 @@ static const char *init_server_dir( dev_t dev, ino_t ino )
}
@@ -81,7 +81,7 @@ index 8dc3f33bc80..0e6c9d90281 100644
/***********************************************************************
* setup_config_dir
*
@@ -765,6 +809,7 @@ static int setup_config_dir(void)
@@ -1176,6 +1220,7 @@ static int setup_config_dir(void)
if (!mkdir( "dosdevices", 0777 ))
{
mkdir( "drive_c", 0777 );
@@ -90,5 +90,5 @@ index 8dc3f33bc80..0e6c9d90281 100644
symlink( "/", "dosdevices/z:" );
}
--
2.26.2
2.33.0

View File

@@ -0,0 +1,439 @@
From 30abce599e93165e426c74dd232159e030adfe28 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 5 Jan 2022 16:51:55 +1100
Subject: [PATCH] nvcuda: Update spec file
---
dlls/nvcuda/nvcuda.spec | 224 +++++++++++++++++++++++++++-------------
1 file changed, 150 insertions(+), 74 deletions(-)
diff --git a/dlls/nvcuda/nvcuda.spec b/dlls/nvcuda/nvcuda.spec
index 70bcc6db833..891920b8699 100644
--- a/dlls/nvcuda/nvcuda.spec
+++ b/dlls/nvcuda/nvcuda.spec
@@ -19,6 +19,7 @@
@ stdcall cuCtxGetCacheConfig(ptr) wine_cuCtxGetCacheConfig
@ stdcall cuCtxGetCurrent(ptr) wine_cuCtxGetCurrent
@ stdcall cuCtxGetDevice(ptr) wine_cuCtxGetDevice
+@ stdcall cuCtxGetFlags(ptr) wine_cuCtxGetFlags
@ stdcall cuCtxGetLimit(ptr long) wine_cuCtxGetLimit
@ stdcall cuCtxGetSharedMemConfig(ptr) wine_cuCtxGetSharedMemConfig
@ stdcall cuCtxGetStreamPriorityRange(ptr ptr) wine_cuCtxGetStreamPriorityRange
@@ -84,15 +85,25 @@
@ stub cuD3D9UnmapVertexBuffer
@ stub cuD3D9UnregisterResource
@ stub cuD3D9UnregisterVertexBuffer
+@ stub cuDestroyExternalMemory
+@ stub cuDestroyExternalSemaphore
@ stdcall cuDeviceCanAccessPeer(ptr long long) wine_cuDeviceCanAccessPeer
@ stdcall cuDeviceComputeCapability(ptr ptr long) wine_cuDeviceComputeCapability
@ stdcall cuDeviceGet(ptr long) wine_cuDeviceGet
@ stdcall cuDeviceGetAttribute(ptr long long) wine_cuDeviceGetAttribute
@ stdcall cuDeviceGetByPCIBusId(ptr str) wine_cuDeviceGetByPCIBusId
@ stdcall cuDeviceGetCount(ptr) wine_cuDeviceGetCount
+@ stub cuDeviceGetLuid
@ stdcall cuDeviceGetName(ptr long long) wine_cuDeviceGetName
+@ stub cuDeviceGetP2PAttribute
@ stdcall cuDeviceGetPCIBusId(ptr long long) wine_cuDeviceGetPCIBusId
@ stdcall cuDeviceGetProperties(ptr long) wine_cuDeviceGetProperties
+@ stub cuDeviceGetUuid
+@ stdcall cuDevicePrimaryCtxGetState(long ptr ptr) wine_cuDevicePrimaryCtxGetState
+@ stdcall cuDevicePrimaryCtxRelease(long) wine_cuDevicePrimaryCtxRelease
+@ stdcall cuDevicePrimaryCtxReset(long) wine_cuDevicePrimaryCtxReset
+@ stdcall cuDevicePrimaryCtxRetain(ptr long) wine_cuDevicePrimaryCtxRetain
+@ stdcall cuDevicePrimaryCtxSetFlags(long long) wine_cuDevicePrimaryCtxSetFlags
@ stdcall cuDeviceTotalMem(ptr long) wine_cuDeviceTotalMem
@ stdcall cuDeviceTotalMem_v2(ptr long) wine_cuDeviceTotalMem_v2
@ stdcall cuDriverGetVersion(ptr) wine_cuDriverGetVersion
@@ -102,8 +113,12 @@
@ stdcall cuEventElapsedTime(ptr ptr ptr) wine_cuEventElapsedTime
@ stdcall cuEventQuery(ptr) wine_cuEventQuery
@ stdcall cuEventRecord(ptr ptr) wine_cuEventRecord
+@ stdcall cuEventRecord_ptsz(ptr ptr) wine_cuEventRecord_ptsz
@ stdcall cuEventSynchronize(ptr) wine_cuEventSynchronize
+@ stub cuExternalMemoryGetMappedBuffer
+@ stub cuExternalMemoryGetMappedMipmappedArray
@ stdcall cuFuncGetAttribute(ptr long ptr) wine_cuFuncGetAttribute
+@ stub cuFuncSetAttribute
@ stdcall cuFuncSetBlockShape(ptr long long long) wine_cuFuncSetBlockShape
@ stdcall cuFuncSetCacheConfig(ptr long) wine_cuFuncSetCacheConfig
@ stdcall cuFuncSetSharedMemConfig(ptr long) wine_cuFuncSetSharedMemConfig
@@ -111,11 +126,14 @@
@ stdcall cuGLCtxCreate(ptr long long) wine_cuGLCtxCreate
@ stdcall cuGLCtxCreate_v2(ptr long long) wine_cuGLCtxCreate_v2
@ stdcall cuGLGetDevices(ptr ptr long long) wine_cuGLGetDevices
+@ stdcall cuGLGetDevices_v2(ptr ptr long long) wine_cuGLGetDevices_v2
@ stdcall cuGLInit() wine_cuGLInit
@ stdcall cuGLMapBufferObject(ptr ptr long) wine_cuGLMapBufferObject
@ stdcall cuGLMapBufferObjectAsync(ptr ptr long ptr) wine_cuGLMapBufferObjectAsync
@ stdcall cuGLMapBufferObjectAsync_v2(ptr ptr long ptr) wine_cuGLMapBufferObjectAsync_v2
+@ stdcall cuGLMapBufferObjectAsync_v2_ptsz(ptr ptr long ptr) wine_cuGLMapBufferObjectAsync_v2_ptsz
@ stdcall cuGLMapBufferObject_v2(ptr ptr long) wine_cuGLMapBufferObject_v2
+@ stdcall cuGLMapBufferObject_v2_ptds(ptr ptr long) wine_cuGLMapBufferObject_v2_ptds
@ stdcall cuGLRegisterBufferObject(long) wine_cuGLRegisterBufferObject
@ stdcall cuGLSetBufferObjectMapFlags(long long) wine_cuGLSetBufferObjectMapFlags
@ stdcall cuGLUnmapBufferObject(long) wine_cuGLUnmapBufferObject
@@ -124,19 +142,57 @@
@ stdcall cuGetErrorName(long ptr) wine_cuGetErrorName
@ stdcall cuGetErrorString(long ptr) wine_cuGetErrorString
@ stdcall cuGetExportTable(ptr ptr) wine_cuGetExportTable
+@ stub cuGraphAddChildGraphNode
+@ stub cuGraphAddDependencies
+@ stub cuGraphAddEmptyNode
+@ stub cuGraphAddHostNode
+@ stub cuGraphAddKernelNode
+@ stub cuGraphAddMemcpyNode
+@ stub cuGraphAddMemsetNode
+@ stub cuGraphChildGraphNodeGetGraph
+@ stub cuGraphClone
+@ stub cuGraphCreate
+@ stub cuGraphDestroy
+@ stub cuGraphDestroyNode
+@ stub cuGraphExecDestroy
+@ stub cuGraphExecKernelNodeSetParams
+@ stub cuGraphGetEdges
+@ stub cuGraphGetNodes
+@ stub cuGraphGetRootNodes
+@ stub cuGraphHostNodeGetParams
+@ stub cuGraphHostNodeSetParams
+@ stub cuGraphInstantiate
+@ stub cuGraphKernelNodeGetParams
+@ stub cuGraphKernelNodeSetParams
+@ stub cuGraphLaunch
+@ stub cuGraphLaunch_ptsz
+@ stub cuGraphMemcpyNodeGetParams
+@ stub cuGraphMemcpyNodeSetParams
+@ stub cuGraphMemsetNodeGetParams
+@ stub cuGraphMemsetNodeSetParams
+@ stub cuGraphNodeFindInClone
+@ stub cuGraphNodeGetDependencies
+@ stub cuGraphNodeGetDependentNodes
+@ stub cuGraphNodeGetType
+@ stub cuGraphRemoveDependencies
@ stub cuGraphicsD3D10RegisterResource
@ stdcall cuGraphicsD3D11RegisterResource(ptr ptr long) wine_cuGraphicsD3D11RegisterResource
@ stub cuGraphicsD3D9RegisterResource
@ stdcall cuGraphicsGLRegisterBuffer(ptr long long) wine_cuGraphicsGLRegisterBuffer
@ stdcall cuGraphicsGLRegisterImage(ptr long long long) wine_cuGraphicsGLRegisterImage
@ stdcall cuGraphicsMapResources(long ptr ptr) wine_cuGraphicsMapResources
+@ stdcall cuGraphicsMapResources_ptsz(long ptr ptr) wine_cuGraphicsMapResources_ptsz
@ stdcall cuGraphicsResourceGetMappedMipmappedArray(ptr ptr) wine_cuGraphicsResourceGetMappedMipmappedArray
@ stdcall cuGraphicsResourceGetMappedPointer(ptr ptr ptr) wine_cuGraphicsResourceGetMappedPointer
@ stdcall cuGraphicsResourceGetMappedPointer_v2(ptr ptr ptr) wine_cuGraphicsResourceGetMappedPointer_v2
@ stdcall cuGraphicsResourceSetMapFlags(ptr long) wine_cuGraphicsResourceSetMapFlags
+@ stdcall cuGraphicsResourceSetMapFlags_v2(ptr long) wine_cuGraphicsResourceSetMapFlags_v2
@ stdcall cuGraphicsSubResourceGetMappedArray(ptr ptr long long) wine_cuGraphicsSubResourceGetMappedArray
@ stdcall cuGraphicsUnmapResources(long ptr ptr) wine_cuGraphicsUnmapResources
+@ stdcall cuGraphicsUnmapResources_ptsz(long ptr ptr) wine_cuGraphicsUnmapResources_ptsz
@ stdcall cuGraphicsUnregisterResource(ptr) wine_cuGraphicsUnregisterResource
+@ stub cuImportExternalMemory
+@ stub cuImportExternalSemaphore
@ stdcall cuInit(long) wine_cuInit
@ stdcall cuIpcCloseMemHandle(long) wine_cuIpcCloseMemHandle
@ stdcall cuIpcGetEventHandle(ptr ptr) wine_cuIpcGetEventHandle
@@ -144,14 +200,24 @@
@ stdcall cuIpcOpenEventHandle(ptr ptr) wine_cuIpcOpenEventHandle
@ stdcall cuIpcOpenMemHandle(ptr ptr long) wine_cuIpcOpenMemHandle
@ stdcall cuLaunch(ptr) wine_cuLaunch
+@ stub cuLaunchCooperativeKernel
+@ stub cuLaunchCooperativeKernelMultiDevice
+@ stub cuLaunchCooperativeKernel_ptsz
@ stdcall cuLaunchGrid(ptr long long) wine_cuLaunchGrid
@ stdcall cuLaunchGridAsync(ptr long long ptr) wine_cuLaunchGridAsync
+@ stub cuLaunchHostFunc
+@ stub cuLaunchHostFunc_ptsz
@ stdcall cuLaunchKernel(ptr long long long long long long long ptr ptr ptr) wine_cuLaunchKernel
+@ stdcall cuLaunchKernel_ptsz(ptr long long long long long long long ptr ptr ptr) wine_cuLaunchKernel_ptsz
@ stdcall cuLinkAddData(ptr long ptr long str long ptr ptr) wine_cuLinkAddData
+@ stdcall cuLinkAddData_v2(ptr long ptr long str long ptr ptr) wine_cuLinkAddData_v2
@ stub cuLinkAddFile
+@ stub cuLinkAddFile_v2
@ stdcall cuLinkComplete(ptr ptr ptr) wine_cuLinkComplete
@ stdcall cuLinkCreate(long ptr ptr ptr) wine_cuLinkCreate
+@ stdcall cuLinkCreate_v2(long ptr ptr ptr) wine_cuLinkCreate_v2
@ stdcall cuLinkDestroy(ptr) wine_cuLinkDestroy
+@ stub cuMemAdvise
@ stdcall cuMemAlloc(ptr long) wine_cuMemAlloc
@ stdcall cuMemAllocHost(ptr long) wine_cuMemAllocHost
@ stdcall cuMemAllocHost_v2(ptr long) wine_cuMemAllocHost_v2
@@ -171,67 +237,108 @@
@ stdcall cuMemHostGetDevicePointer_v2(ptr ptr long) wine_cuMemHostGetDevicePointer_v2
@ stdcall cuMemHostGetFlags(ptr ptr) wine_cuMemHostGetFlags
@ stdcall cuMemHostRegister(ptr long long) wine_cuMemHostRegister
+@ stdcall cuMemHostRegister_v2(ptr long long) wine_cuMemHostRegister_v2
@ stdcall cuMemHostUnregister(ptr) wine_cuMemHostUnregister
+@ stub cuMemPrefetchAsync
+@ stub cuMemPrefetchAsync_ptsz
+@ stub cuMemRangeGetAttribute
+@ stub cuMemRangeGetAttributes
+@ stdcall cuMemcpy(long long long) wine_cuMemcpy
@ stdcall cuMemcpy2D(ptr) wine_cuMemcpy2D
@ stdcall cuMemcpy2DAsync(ptr ptr) wine_cuMemcpy2DAsync
@ stdcall cuMemcpy2DAsync_v2(ptr ptr) wine_cuMemcpy2DAsync_v2
+@ stdcall cuMemcpy2DAsync_v2_ptsz(ptr ptr) wine_cuMemcpy2DAsync_v2_ptsz
@ stdcall cuMemcpy2DUnaligned(ptr) wine_cuMemcpy2DUnaligned
@ stdcall cuMemcpy2DUnaligned_v2(ptr) wine_cuMemcpy2DUnaligned_v2
+@ stdcall cuMemcpy2DUnaligned_v2_ptds(ptr) wine_cuMemcpy2DUnaligned_v2_ptds
@ stdcall cuMemcpy2D_v2(ptr) wine_cuMemcpy2D_v2
+@ stdcall cuMemcpy2D_v2_ptds(ptr) wine_cuMemcpy2D_v2_ptds
@ stdcall cuMemcpy3D(ptr) wine_cuMemcpy3D
@ stdcall cuMemcpy3DAsync(ptr ptr) wine_cuMemcpy3DAsync
@ stdcall cuMemcpy3DAsync_v2(ptr ptr) wine_cuMemcpy3DAsync_v2
+@ stdcall cuMemcpy3DAsync_v2_ptsz(ptr ptr) wine_cuMemcpy3DAsync_v2_ptsz
@ stdcall cuMemcpy3DPeer(ptr) wine_cuMemcpy3DPeer
@ stdcall cuMemcpy3DPeerAsync(ptr ptr) wine_cuMemcpy3DPeerAsync
+@ stdcall cuMemcpy3DPeerAsync_ptsz(ptr ptr) wine_cuMemcpy3DPeerAsync_ptsz
+@ stdcall cuMemcpy3DPeer_ptds(ptr) wine_cuMemcpy3DPeer_ptds
@ stdcall cuMemcpy3D_v2(ptr) wine_cuMemcpy3D_v2
-@ stdcall cuMemcpy(long long long) wine_cuMemcpy
+@ stdcall cuMemcpy3D_v2_ptds(ptr) wine_cuMemcpy3D_v2_ptds
@ stdcall cuMemcpyAsync(long long long ptr) wine_cuMemcpyAsync
+@ stdcall cuMemcpyAsync_ptsz(long long long ptr) wine_cuMemcpyAsync_ptsz
@ stdcall cuMemcpyAtoA(ptr long ptr long long) wine_cuMemcpyAtoA
@ stdcall cuMemcpyAtoA_v2(ptr long ptr long long) wine_cuMemcpyAtoA_v2
+@ stdcall cuMemcpyAtoA_v2_ptds(ptr long ptr long long) wine_cuMemcpyAtoA_v2_ptds
@ stdcall cuMemcpyAtoD(long ptr long long) wine_cuMemcpyAtoD
@ stdcall cuMemcpyAtoD_v2(long ptr long long) wine_cuMemcpyAtoD_v2
+@ stdcall cuMemcpyAtoD_v2_ptds(long ptr long long) wine_cuMemcpyAtoD_v2_ptds
@ stdcall cuMemcpyAtoH(ptr ptr long long) wine_cuMemcpyAtoH
@ stdcall cuMemcpyAtoHAsync(ptr ptr long long ptr) wine_cuMemcpyAtoHAsync
@ stdcall cuMemcpyAtoHAsync_v2(ptr ptr long long ptr) wine_cuMemcpyAtoHAsync_v2
+@ stdcall cuMemcpyAtoHAsync_v2_ptsz(ptr ptr long long ptr) wine_cuMemcpyAtoHAsync_v2_ptsz
@ stdcall cuMemcpyAtoH_v2(ptr ptr long long) wine_cuMemcpyAtoH_v2
+@ stdcall cuMemcpyAtoH_v2_ptds(ptr ptr long long) wine_cuMemcpyAtoH_v2_ptds
@ stdcall cuMemcpyDtoA(ptr long long long) wine_cuMemcpyDtoA
@ stdcall cuMemcpyDtoA_v2(ptr long long long) wine_cuMemcpyDtoA_v2
+@ stdcall cuMemcpyDtoA_v2_ptds(ptr long long long) wine_cuMemcpyDtoA_v2_ptds
@ stdcall cuMemcpyDtoD(long long long) wine_cuMemcpyDtoD
@ stdcall cuMemcpyDtoDAsync(long long long ptr) wine_cuMemcpyDtoDAsync
@ stdcall cuMemcpyDtoDAsync_v2(long long long ptr) wine_cuMemcpyDtoDAsync_v2
+@ stdcall cuMemcpyDtoDAsync_v2_ptsz(long long long ptr) wine_cuMemcpyDtoDAsync_v2_ptsz
@ stdcall cuMemcpyDtoD_v2(long long long) wine_cuMemcpyDtoD_v2
+@ stdcall cuMemcpyDtoD_v2_ptds(long long long) wine_cuMemcpyDtoD_v2_ptds
@ stdcall cuMemcpyDtoH(ptr long long) wine_cuMemcpyDtoH
@ stdcall cuMemcpyDtoHAsync(ptr long long ptr) wine_cuMemcpyDtoHAsync
@ stdcall cuMemcpyDtoHAsync_v2(ptr long long ptr) wine_cuMemcpyDtoHAsync_v2
+@ stdcall cuMemcpyDtoHAsync_v2_ptsz(ptr long long ptr) wine_cuMemcpyDtoHAsync_v2_ptsz
@ stdcall cuMemcpyDtoH_v2(ptr long long) wine_cuMemcpyDtoH_v2
+@ stdcall cuMemcpyDtoH_v2_ptds(ptr long long) wine_cuMemcpyDtoH_v2_ptds
@ stdcall cuMemcpyHtoA(ptr long ptr long) wine_cuMemcpyHtoA
@ stdcall cuMemcpyHtoAAsync(ptr long ptr long ptr) wine_cuMemcpyHtoAAsync
@ stdcall cuMemcpyHtoAAsync_v2(ptr long ptr long ptr) wine_cuMemcpyHtoAAsync_v2
+@ stdcall cuMemcpyHtoAAsync_v2_ptsz(ptr long ptr long ptr) wine_cuMemcpyHtoAAsync_v2_ptsz
@ stdcall cuMemcpyHtoA_v2(ptr long ptr long) wine_cuMemcpyHtoA_v2
+@ stdcall cuMemcpyHtoA_v2_ptds(ptr long ptr long) wine_cuMemcpyHtoA_v2_ptds
@ stdcall cuMemcpyHtoD(long ptr long) wine_cuMemcpyHtoD
@ stdcall cuMemcpyHtoDAsync(long ptr long ptr) wine_cuMemcpyHtoDAsync
@ stdcall cuMemcpyHtoDAsync_v2(long ptr long ptr) wine_cuMemcpyHtoDAsync_v2
+@ stdcall cuMemcpyHtoDAsync_v2_ptsz(long ptr long ptr) wine_cuMemcpyHtoDAsync_v2_ptsz
@ stdcall cuMemcpyHtoD_v2(long ptr long) wine_cuMemcpyHtoD_v2
+@ stdcall cuMemcpyHtoD_v2_ptds(long ptr long) wine_cuMemcpyHtoD_v2_ptds
@ stdcall cuMemcpyPeer(long ptr long ptr long) wine_cuMemcpyPeer
@ stdcall cuMemcpyPeerAsync(long ptr long ptr long ptr) wine_cuMemcpyPeerAsync
+@ stdcall cuMemcpyPeerAsync_ptsz(long ptr long ptr long ptr) wine_cuMemcpyPeerAsync_ptsz
+@ stdcall cuMemcpyPeer_ptds(long ptr long ptr long) wine_cuMemcpyPeer_ptds
+@ stdcall cuMemcpy_ptds(long long long) wine_cuMemcpy_ptds
@ stdcall cuMemsetD16(long long long) wine_cuMemsetD16
@ stdcall cuMemsetD16Async(long long long ptr) wine_cuMemsetD16Async
+@ stdcall cuMemsetD16Async_ptsz(long long long ptr) wine_cuMemsetD16Async_ptsz
@ stdcall cuMemsetD16_v2(long long long) wine_cuMemsetD16_v2
+@ stdcall cuMemsetD16_v2_ptds(long long long) wine_cuMemsetD16_v2_ptds
@ stdcall cuMemsetD2D16(long long long long long) wine_cuMemsetD2D16
@ stdcall cuMemsetD2D16Async(long long long long long ptr) wine_cuMemsetD2D16Async
+@ stdcall cuMemsetD2D16Async_ptsz(long long long long long ptr) wine_cuMemsetD2D16Async_ptsz
@ stdcall cuMemsetD2D16_v2(long long long long long) wine_cuMemsetD2D16_v2
+@ stdcall cuMemsetD2D16_v2_ptds(long long long long long) wine_cuMemsetD2D16_v2_ptds
@ stdcall cuMemsetD2D32(long long long long long) wine_cuMemsetD2D32
@ stdcall cuMemsetD2D32Async(long long long long long ptr) wine_cuMemsetD2D32Async
+@ stdcall cuMemsetD2D32Async_ptsz(long long long long long ptr) wine_cuMemsetD2D32Async_ptsz
@ stdcall cuMemsetD2D32_v2(long long long long long) wine_cuMemsetD2D32_v2
+@ stdcall cuMemsetD2D32_v2_ptds(long long long long long) wine_cuMemsetD2D32_v2_ptds
@ stdcall cuMemsetD2D8(long long long long long) wine_cuMemsetD2D8
@ stdcall cuMemsetD2D8Async(long long long long long ptr) wine_cuMemsetD2D8Async
+@ stdcall cuMemsetD2D8Async_ptsz(long long long long long ptr) wine_cuMemsetD2D8Async_ptsz
@ stdcall cuMemsetD2D8_v2(long long long long long) wine_cuMemsetD2D8_v2
+@ stdcall cuMemsetD2D8_v2_ptds(long long long long long) wine_cuMemsetD2D8_v2_ptds
@ stdcall cuMemsetD32(long long long) wine_cuMemsetD32
@ stdcall cuMemsetD32Async(long long long ptr) wine_cuMemsetD32Async
+@ stdcall cuMemsetD32Async_ptsz(long long long ptr) wine_cuMemsetD32Async_ptsz
@ stdcall cuMemsetD32_v2(long long long) wine_cuMemsetD32_v2
+@ stdcall cuMemsetD32_v2_ptds(long long long) wine_cuMemsetD32_v2_ptds
@ stdcall cuMemsetD8(long long long) wine_cuMemsetD8
@ stdcall cuMemsetD8Async(long long long ptr) wine_cuMemsetD8Async
+@ stdcall cuMemsetD8Async_ptsz(long long long ptr) wine_cuMemsetD8Async_ptsz
@ stdcall cuMemsetD8_v2(long long long) wine_cuMemsetD8_v2
+@ stdcall cuMemsetD8_v2_ptds(long long long) wine_cuMemsetD8_v2_ptds
@ stdcall cuMipmappedArrayCreate(ptr ptr long) wine_cuMipmappedArrayCreate
@ stdcall cuMipmappedArrayDestroy(ptr) wine_cuMipmappedArrayDestroy
@ stdcall cuMipmappedArrayGetLevel(ptr ptr long) wine_cuMipmappedArrayGetLevel
@@ -245,27 +352,63 @@
@ stdcall cuModuleLoadDataEx(ptr ptr long ptr ptr) wine_cuModuleLoadDataEx
@ stdcall cuModuleLoadFatBinary(ptr ptr) wine_cuModuleLoadFatBinary
@ stdcall cuModuleUnload(ptr) wine_cuModuleUnload
+@ stdcall cuOccupancyMaxActiveBlocksPerMultiprocessor(ptr ptr long long) wine_cuOccupancyMaxActiveBlocksPerMultiprocessor
+@ stdcall cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(ptr ptr long long long) wine_cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags
+#@ stdcall cuOccupancyMaxPotentialBlockSize(ptr ptr ptr ptr long long) wine_cuOccupancyMaxPotentialBlockSize
+#@ stdcall cuOccupancyMaxPotentialBlockSizeWithFlags(ptr ptr ptr ptr long long long) wine_cuOccupancyMaxPotentialBlockSizeWithFlags
@ stdcall cuParamSetSize(ptr long) wine_cuParamSetSize
@ stdcall cuParamSetTexRef(ptr long ptr) wine_cuParamSetTexRef
@ stdcall cuParamSetf(ptr long float) wine_cuParamSetf
@ stdcall cuParamSeti(ptr long long) wine_cuParamSeti
@ stdcall cuParamSetv(ptr long ptr long) wine_cuParamSetv
@ stdcall cuPointerGetAttribute(ptr long long) wine_cuPointerGetAttribute
+@ stdcall cuPointerGetAttributes(long ptr ptr long) wine_cuPointerGetAttributes
@ stdcall cuPointerSetAttribute(ptr long long) wine_cuPointerSetAttribute
@ stub cuProfilerInitialize
@ stub cuProfilerStart
@ stub cuProfilerStop
+@ stub cuSignalExternalSemaphoresAsync
+@ stub cuSignalExternalSemaphoresAsync_ptsz
@ stdcall cuStreamAddCallback(ptr ptr ptr long) wine_cuStreamAddCallback
+@ stdcall cuStreamAddCallback_ptsz(ptr ptr ptr long) wine_cuStreamAddCallback_ptsz
@ stdcall cuStreamAttachMemAsync(ptr long long long) wine_cuStreamAttachMemAsync
+@ stdcall cuStreamAttachMemAsync_ptsz(ptr long long long) wine_cuStreamAttachMemAsync_ptsz
+@ stub cuStreamBatchMemOp
+@ stub cuStreamBatchMemOp_ptsz
+@ stub cuStreamBeginCapture
+@ stub cuStreamBeginCapture_ptsz
+@ stub cuStreamBeginCapture_v2
+@ stub cuStreamBeginCapture_v2_ptsz
@ stdcall cuStreamCreate(ptr long) wine_cuStreamCreate
@ stdcall cuStreamCreateWithPriority(ptr long long) wine_cuStreamCreateWithPriority
@ stdcall cuStreamDestroy(ptr) wine_cuStreamDestroy
@ stdcall cuStreamDestroy_v2(ptr) wine_cuStreamDestroy
+@ stub cuStreamEndCapture
+@ stub cuStreamEndCapture_ptsz
+@ stub cuStreamGetCaptureInfo
+@ stub cuStreamGetCaptureInfo_ptsz
+@ stub cuStreamGetCtx
+@ stub cuStreamGetCtx_ptsz
@ stdcall cuStreamGetFlags(ptr ptr) wine_cuStreamGetFlags
+@ stdcall cuStreamGetFlags_ptsz(ptr ptr) wine_cuStreamGetFlags_ptsz
@ stdcall cuStreamGetPriority(ptr ptr) wine_cuStreamGetPriority
+@ stdcall cuStreamGetPriority_ptsz(ptr ptr) wine_cuStreamGetPriority_ptsz
+@ stub cuStreamIsCapturing
+@ stub cuStreamIsCapturing_ptsz
@ stdcall cuStreamQuery(ptr) wine_cuStreamQuery
+@ stdcall cuStreamQuery_ptsz(ptr) wine_cuStreamQuery_ptsz
@ stdcall cuStreamSynchronize(ptr) wine_cuStreamSynchronize
+@ stdcall cuStreamSynchronize_ptsz(ptr) wine_cuStreamSynchronize_ptsz
@ stdcall cuStreamWaitEvent(ptr ptr long) wine_cuStreamWaitEvent
+@ stdcall cuStreamWaitEvent_ptsz(ptr ptr long) wine_cuStreamWaitEvent_ptsz
+@ stub cuStreamWaitValue32
+@ stub cuStreamWaitValue32_ptsz
+@ stub cuStreamWaitValue64
+@ stub cuStreamWaitValue64_ptsz
+@ stub cuStreamWriteValue32
+@ stub cuStreamWriteValue32_ptsz
+@ stub cuStreamWriteValue64
+@ stub cuStreamWriteValue64_ptsz
@ stdcall cuSurfObjectCreate(ptr ptr) wine_cuSurfObjectCreate
@ stdcall cuSurfObjectDestroy(int64) wine_cuSurfObjectDestroy
@ stdcall cuSurfObjectGetResourceDesc(ptr int64) wine_cuSurfObjectGetResourceDesc
@@ -282,6 +425,7 @@
@ stdcall cuTexRefGetAddressMode(ptr ptr long) wine_cuTexRefGetAddressMode
@ stdcall cuTexRefGetAddress_v2(ptr ptr) wine_cuTexRefGetAddress_v2
@ stdcall cuTexRefGetArray(ptr ptr) wine_cuTexRefGetArray
+@ stub cuTexRefGetBorderColor
@ stdcall cuTexRefGetFilterMode(ptr ptr) wine_cuTexRefGetFilterMode
@ stdcall cuTexRefGetFlags(ptr ptr) wine_cuTexRefGetFlags
@ stdcall cuTexRefGetFormat(ptr ptr ptr) wine_cuTexRefGetFormat
@@ -290,13 +434,14 @@
@ stdcall cuTexRefGetMipmapLevelBias(ptr ptr) wine_cuTexRefGetMipmapLevelBias
@ stdcall cuTexRefGetMipmapLevelClamp(ptr ptr ptr) wine_cuTexRefGetMipmapLevelClamp
@ stdcall cuTexRefGetMipmappedArray(ptr ptr) wine_cuTexRefGetMipmappedArray
+@ stdcall cuTexRefSetAddress(ptr ptr long long) wine_cuTexRefSetAddress
@ stdcall cuTexRefSetAddress2D(ptr ptr long long) wine_cuTexRefSetAddress2D
@ stdcall cuTexRefSetAddress2D_v2(ptr ptr long long) wine_cuTexRefSetAddress2D_v2
@ stdcall cuTexRefSetAddress2D_v3(ptr ptr long long) wine_cuTexRefSetAddress2D_v3
-@ stdcall cuTexRefSetAddress(ptr ptr long long) wine_cuTexRefSetAddress
@ stdcall cuTexRefSetAddressMode(ptr long long) wine_cuTexRefSetAddressMode
@ stdcall cuTexRefSetAddress_v2(ptr ptr long long) wine_cuTexRefSetAddress_v2
@ stdcall cuTexRefSetArray(ptr ptr long) wine_cuTexRefSetArray
+@ stub cuTexRefSetBorderColor
@ stdcall cuTexRefSetFilterMode(ptr long) wine_cuTexRefSetFilterMode
@ stdcall cuTexRefSetFlags(ptr long) wine_cuTexRefSetFlags
@ stdcall cuTexRefSetFormat(ptr long long) wine_cuTexRefSetFormat
@@ -305,76 +450,7 @@
@ stdcall cuTexRefSetMipmapLevelBias(ptr float) wine_cuTexRefSetMipmapLevelBias
@ stdcall cuTexRefSetMipmapLevelClamp(ptr float float) wine_cuTexRefSetMipmapLevelClamp
@ stdcall cuTexRefSetMipmappedArray(ptr ptr long) wine_cuTexRefSetMipmappedArray
+@ stub cuThreadExchangeStreamCaptureMode
@ stub cuWGLGetDevice
-
-# CUDA 6.5
-@ stdcall cuGLGetDevices_v2(ptr ptr long long) wine_cuGLGetDevices_v2
-@ stdcall cuGraphicsResourceSetMapFlags_v2(ptr long) wine_cuGraphicsResourceSetMapFlags_v2
-@ stdcall cuLinkAddData_v2(ptr long ptr long str long ptr ptr) wine_cuLinkAddData_v2
-@ stub cuLinkAddFile_v2
-@ stdcall cuLinkCreate_v2(long ptr ptr ptr) wine_cuLinkCreate_v2
-@ stdcall cuMemHostRegister_v2(ptr long long) wine_cuMemHostRegister_v2
-@ stdcall cuOccupancyMaxActiveBlocksPerMultiprocessor(ptr ptr long long) wine_cuOccupancyMaxActiveBlocksPerMultiprocessor
-@ stub cuOccupancyMaxPotentialBlockSize
-#@ stdcall cuOccupancyMaxPotentialBlockSize(ptr ptr ptr ptr long long) wine_cuOccupancyMaxPotentialBlockSize
-
-# CUDA 7.0
-@ stdcall cuCtxGetFlags(ptr) wine_cuCtxGetFlags
-@ stdcall cuDevicePrimaryCtxGetState(long ptr ptr) wine_cuDevicePrimaryCtxGetState
-@ stdcall cuDevicePrimaryCtxRelease(long) wine_cuDevicePrimaryCtxRelease
-@ stdcall cuDevicePrimaryCtxReset(long) wine_cuDevicePrimaryCtxReset
-@ stdcall cuDevicePrimaryCtxRetain(ptr long) wine_cuDevicePrimaryCtxRetain
-@ stdcall cuDevicePrimaryCtxSetFlags(long long) wine_cuDevicePrimaryCtxSetFlags
-@ stdcall cuEventRecord_ptsz(ptr ptr) wine_cuEventRecord_ptsz
-@ stdcall cuGLMapBufferObjectAsync_v2_ptsz(ptr ptr long ptr) wine_cuGLMapBufferObjectAsync_v2_ptsz
-@ stdcall cuGLMapBufferObject_v2_ptds(ptr ptr long) wine_cuGLMapBufferObject_v2_ptds
-@ stdcall cuGraphicsMapResources_ptsz(long ptr ptr) wine_cuGraphicsMapResources_ptsz
-@ stdcall cuGraphicsUnmapResources_ptsz(long ptr ptr) wine_cuGraphicsUnmapResources_ptsz
-@ stdcall cuLaunchKernel_ptsz(ptr long long long long long long long ptr ptr ptr) wine_cuLaunchKernel_ptsz
-@ stdcall cuMemcpy2DAsync_v2_ptsz(ptr ptr) wine_cuMemcpy2DAsync_v2_ptsz
-@ stdcall cuMemcpy2DUnaligned_v2_ptds(ptr) wine_cuMemcpy2DUnaligned_v2_ptds
-@ stdcall cuMemcpy2D_v2_ptds(ptr) wine_cuMemcpy2D_v2_ptds
-@ stdcall cuMemcpy3DAsync_v2_ptsz(ptr ptr) wine_cuMemcpy3DAsync_v2_ptsz
-@ stdcall cuMemcpy3DPeerAsync_ptsz(ptr ptr) wine_cuMemcpy3DPeerAsync_ptsz
-@ stdcall cuMemcpy3DPeer_ptds(ptr) wine_cuMemcpy3DPeer_ptds
-@ stdcall cuMemcpy3D_v2_ptds(ptr) wine_cuMemcpy3D_v2_ptds
-@ stdcall cuMemcpyAsync_ptsz(long long long ptr) wine_cuMemcpyAsync_ptsz
-@ stdcall cuMemcpyAtoA_v2_ptds(ptr long ptr long long) wine_cuMemcpyAtoA_v2_ptds
-@ stdcall cuMemcpyAtoD_v2_ptds(long ptr long long) wine_cuMemcpyAtoD_v2_ptds
-@ stdcall cuMemcpyAtoHAsync_v2_ptsz(ptr ptr long long ptr) wine_cuMemcpyAtoHAsync_v2_ptsz
-@ stdcall cuMemcpyAtoH_v2_ptds(ptr ptr long long) wine_cuMemcpyAtoH_v2_ptds
-@ stdcall cuMemcpyDtoA_v2_ptds(ptr long long long) wine_cuMemcpyDtoA_v2_ptds
-@ stdcall cuMemcpyDtoDAsync_v2_ptsz(long long long ptr) wine_cuMemcpyDtoDAsync_v2_ptsz
-@ stdcall cuMemcpyDtoD_v2_ptds(long long long) wine_cuMemcpyDtoD_v2_ptds
-@ stdcall cuMemcpyDtoHAsync_v2_ptsz(ptr long long ptr) wine_cuMemcpyDtoHAsync_v2_ptsz
-@ stdcall cuMemcpyDtoH_v2_ptds(ptr long long) wine_cuMemcpyDtoH_v2_ptds
-@ stdcall cuMemcpyHtoAAsync_v2_ptsz(ptr long ptr long ptr) wine_cuMemcpyHtoAAsync_v2_ptsz
-@ stdcall cuMemcpyHtoA_v2_ptds(ptr long ptr long) wine_cuMemcpyHtoA_v2_ptds
-@ stdcall cuMemcpyHtoDAsync_v2_ptsz(long ptr long ptr) wine_cuMemcpyHtoDAsync_v2_ptsz
-@ stdcall cuMemcpyHtoD_v2_ptds(long ptr long) wine_cuMemcpyHtoD_v2_ptds
-@ stdcall cuMemcpyPeerAsync_ptsz(long ptr long ptr long ptr) wine_cuMemcpyPeerAsync_ptsz
-@ stdcall cuMemcpyPeer_ptds(long ptr long ptr long) wine_cuMemcpyPeer_ptds
-@ stdcall cuMemcpy_ptds(long long long) wine_cuMemcpy_ptds
-@ stdcall cuMemsetD16Async_ptsz(long long long ptr) wine_cuMemsetD16Async_ptsz
-@ stdcall cuMemsetD16_v2_ptds(long long long) wine_cuMemsetD16_v2_ptds
-@ stdcall cuMemsetD2D16Async_ptsz(long long long long long ptr) wine_cuMemsetD2D16Async_ptsz
-@ stdcall cuMemsetD2D16_v2_ptds(long long long long long) wine_cuMemsetD2D16_v2_ptds
-@ stdcall cuMemsetD2D32Async_ptsz(long long long long long ptr) wine_cuMemsetD2D32Async_ptsz
-@ stdcall cuMemsetD2D32_v2_ptds(long long long long long) wine_cuMemsetD2D32_v2_ptds
-@ stdcall cuMemsetD2D8Async_ptsz(long long long long long ptr) wine_cuMemsetD2D8Async_ptsz
-@ stdcall cuMemsetD2D8_v2_ptds(long long long long long) wine_cuMemsetD2D8_v2_ptds
-@ stdcall cuMemsetD32Async_ptsz(long long long ptr) wine_cuMemsetD32Async_ptsz
-@ stdcall cuMemsetD32_v2_ptds(long long long) wine_cuMemsetD32_v2_ptds
-@ stdcall cuMemsetD8Async_ptsz(long long long ptr) wine_cuMemsetD8Async_ptsz
-@ stdcall cuMemsetD8_v2_ptds(long long long) wine_cuMemsetD8_v2_ptds
-@ stdcall cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(ptr ptr long long long) wine_cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags
-@ stub cuOccupancyMaxPotentialBlockSizeWithFlags
-#@ stdcall cuOccupancyMaxPotentialBlockSizeWithFlags(ptr ptr ptr ptr long long long) wine_cuOccupancyMaxPotentialBlockSizeWithFlags
-@ stdcall cuPointerGetAttributes(long ptr ptr long) wine_cuPointerGetAttributes
-@ stdcall cuStreamAddCallback_ptsz(ptr ptr ptr long) wine_cuStreamAddCallback_ptsz
-@ stdcall cuStreamAttachMemAsync_ptsz(ptr long long long) wine_cuStreamAttachMemAsync_ptsz
-@ stdcall cuStreamGetFlags_ptsz(ptr ptr) wine_cuStreamGetFlags_ptsz
-@ stdcall cuStreamGetPriority_ptsz(ptr ptr) wine_cuStreamGetPriority_ptsz
-@ stdcall cuStreamQuery_ptsz(ptr) wine_cuStreamQuery_ptsz
-@ stdcall cuStreamSynchronize_ptsz(ptr) wine_cuStreamSynchronize_ptsz
-@ stdcall cuStreamWaitEvent_ptsz(ptr ptr long) wine_cuStreamWaitEvent_ptsz
+@ stub cuWaitExternalSemaphoresAsync
+@ stub cuWaitExternalSemaphoresAsync_ptsz
--
2.34.1

View File

@@ -0,0 +1,95 @@
From af088c1d1c1a5757466f620d981b766184b973b7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sveinar=20S=C3=B8pler?= <cybermax@dexter.no>
Date: Tue, 11 Jan 2022 17:25:06 +0100
Subject: [PATCH 1/2] nvcuda: Implement cuDeviceGetUuid and cuDeviceGetLuid
This partially resolves #52342
DAZ Studio4 will fail to initialize cuda if no valid UUID and LUID
is obtained. Linux nvCUDA does not provide a LUID, so this will be
a "fake" LUID for now.
---
dlls/nvcuda/nvcuda.c | 33 +++++++++++++++++++++++++++++++++
dlls/nvcuda/nvcuda.spec | 4 ++--
2 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/dlls/nvcuda/nvcuda.c b/dlls/nvcuda/nvcuda.c
index 5b6bf53a1de..dde0bfa8469 100644
--- a/dlls/nvcuda/nvcuda.c
+++ b/dlls/nvcuda/nvcuda.c
@@ -408,6 +408,9 @@ static CUresult (*pcuStreamQuery_ptsz)(CUstream hStream);
static CUresult (*pcuStreamSynchronize_ptsz)(CUstream hStream);
static CUresult (*pcuStreamWaitEvent_ptsz)(CUstream hStream, CUevent hEvent, unsigned int Flags);
+/* Cuda 10.0 */
+static CUresult (*pcuDeviceGetUuid)(CUuuid *uuid, CUdevice dev);
+static CUresult (*pcuDeviceGetLuid)(char *luid, unsigned int *deviceNodeMask, CUdevice dev);
static void *cuda_handle = NULL;
@@ -758,6 +761,10 @@ static BOOL load_functions(void)
TRY_LOAD_FUNCPTR(cuStreamSynchronize_ptsz);
TRY_LOAD_FUNCPTR(cuStreamWaitEvent_ptsz);
+ /* CUDA 10 */
+ TRY_LOAD_FUNCPTR(cuDeviceGetUuid);
+ TRY_LOAD_FUNCPTR(cuDeviceGetLuid);
+
#undef LOAD_FUNCPTR
#undef TRY_LOAD_FUNCPTR
@@ -2904,6 +2911,32 @@ CUresult WINAPI wine_cuStreamWaitEvent_ptsz(CUstream hStream, CUevent hEvent, un
return pcuStreamWaitEvent_ptsz(hStream, hEvent, Flags);
}
+/*
+ * Additions in CUDA 10.0
+ */
+
+CUresult WINAPI wine_cuDeviceGetUuid(CUuuid *uuid, CUdevice dev)
+{
+ TRACE("(%p, %d)\n", uuid, dev);
+ CHECK_FUNCPTR(cuDeviceGetUuid);
+ return pcuDeviceGetUuid(uuid, dev);
+}
+
+CUresult WINAPI wine_cuDeviceGetLuid(char *luid, unsigned int *deviceNodeMask, CUdevice dev)
+{
+ int wine_luid[] = { 0x0000000e, 0x00000000 };
+
+ TRACE("(%p, %p, %d)\n", luid, deviceNodeMask, dev);
+ CHECK_FUNCPTR(cuDeviceGetLuid);
+ /* Linux native libcuda does not provide a LUID, so we need to fake something and return a success */
+
+ memcpy(luid, &wine_luid, sizeof(wine_luid));
+ FIXME("Fix this LUID: (0x%08x)\n", *luid);
+ *deviceNodeMask = 1;
+
+ return CUDA_SUCCESS;
+}
+
#undef CHECK_FUNCPTR
/*
diff --git a/dlls/nvcuda/nvcuda.spec b/dlls/nvcuda/nvcuda.spec
index 891920b8699..85abf5d2e63 100644
--- a/dlls/nvcuda/nvcuda.spec
+++ b/dlls/nvcuda/nvcuda.spec
@@ -93,12 +93,12 @@
@ stdcall cuDeviceGetAttribute(ptr long long) wine_cuDeviceGetAttribute
@ stdcall cuDeviceGetByPCIBusId(ptr str) wine_cuDeviceGetByPCIBusId
@ stdcall cuDeviceGetCount(ptr) wine_cuDeviceGetCount
-@ stub cuDeviceGetLuid
+@ stdcall cuDeviceGetLuid(ptr ptr long) wine_cuDeviceGetLuid
@ stdcall cuDeviceGetName(ptr long long) wine_cuDeviceGetName
@ stub cuDeviceGetP2PAttribute
@ stdcall cuDeviceGetPCIBusId(ptr long long) wine_cuDeviceGetPCIBusId
@ stdcall cuDeviceGetProperties(ptr long) wine_cuDeviceGetProperties
-@ stub cuDeviceGetUuid
+@ stdcall cuDeviceGetUuid(ptr long) wine_cuDeviceGetUuid
@ stdcall cuDevicePrimaryCtxGetState(long ptr ptr) wine_cuDevicePrimaryCtxGetState
@ stdcall cuDevicePrimaryCtxRelease(long) wine_cuDevicePrimaryCtxRelease
@ stdcall cuDevicePrimaryCtxReset(long) wine_cuDevicePrimaryCtxReset
--
2.34.1

View File

@@ -0,0 +1,88 @@
From c81d2443afb5c48bed31a31ad03fde29b8b7d920 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sveinar=20S=C3=B8pler?= <cybermax@dexter.no>
Date: Tue, 11 Jan 2022 17:30:06 +0100
Subject: [PATCH 2/2] nvcuda: Expand the Unknown1 table
This partially resolve #52342
The table for UUID_Unknown1 needs to be expanded because
DAZ Studio4 uses Unknown1_func5 and Unknown1_func6.
This also gets rid of the WARNING about "Your CUDA version supports a
newer interface for Unknown1 then the Wine implementation" when
using recent nVidia proprietary drivers.
---
dlls/nvcuda/internal.c | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/dlls/nvcuda/internal.c b/dlls/nvcuda/internal.c
index 0b654a967fa..db5f1fd6710 100644
--- a/dlls/nvcuda/internal.c
+++ b/dlls/nvcuda/internal.c
@@ -111,6 +111,10 @@ struct Unknown1_table
void* (WINAPI *func2)(void *param0, void *param1);
void* (WINAPI *func3)(void *param0, void *param1);
void* (WINAPI *func4)(void *param0);
+ void* (WINAPI *func5)(void *param0, void *param1);
+ void* (WINAPI *func6)(void *param0, void *param1);
+ void* (WINAPI *func7)(void *param0, void *param1);
+ void* (WINAPI *func8)(void *param0, void *param1);
};
static const struct
{
@@ -120,6 +124,10 @@ static const struct
void* (*func2)(void *param0, void *param1);
void* (*func3)(void *param0, void *param1);
void* (*func4)(void *param0);
+ void* (*func5)(void *param0, void *param1);
+ void* (*func6)(void *param0, void *param1);
+ void* (*func7)(void *param0, void *param1);
+ void* (*func8)(void *param0, void *param1);
} *Unknown1_orig = NULL;
/*
@@ -233,6 +241,30 @@ static void* WINAPI Unknown1_func4_relay(void *param0)
return Unknown1_orig->func4(param0);
}
+static void* WINAPI Unknown1_func5_relay(void *param0, void *param1)
+{
+ TRACE("(%p, %p)\n", param0, param1);
+ return Unknown1_orig->func5(param0, param1);
+}
+
+static void* WINAPI Unknown1_func6_relay(void *param0, void *param1)
+{
+ TRACE("(%p, %p)\n", param0, param1);
+ return Unknown1_orig->func6(param0, param1);
+}
+
+static void* WINAPI Unknown1_func7_relay(void *param0, void *param1)
+{
+ TRACE("(%p, %p)\n", param0, param1);
+ return Unknown1_orig->func7(param0, param1);
+}
+
+static void* WINAPI Unknown1_func8_relay(void *param0, void *param1)
+{
+ TRACE("(%p, %p)\n", param0, param1);
+ return Unknown1_orig->func8(param0, param1);
+}
+
struct Unknown1_table Unknown1_Impl =
{
sizeof(struct Unknown1_table),
@@ -241,6 +273,10 @@ struct Unknown1_table Unknown1_Impl =
Unknown1_func2_relay,
Unknown1_func3_relay,
Unknown1_func4_relay,
+ Unknown1_func5_relay,
+ Unknown1_func6_relay,
+ Unknown1_func7_relay,
+ Unknown1_func8_relay,
};
static void* WINAPI Unknown2_func0_relay(void *param0, void *param1)
--
2.34.1

View File

@@ -51,13 +51,13 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "3f6102080e632b9f4d8a97c0f0b1231fbd8e759b"
echo "b2f75a026f14805888a4b91d8a2e2c60a35fc1b7"
}
# Show version information
version()
{
echo "Wine Staging 6.23"
echo "Wine Staging 7.0-rc6"
echo "Copyright (C) 2014-2019 the Wine Staging project authors."
echo "Copyright (C) 2018-2020 Alistair Leslie-Hughes"
echo ""
@@ -205,7 +205,6 @@ patch_enable_all ()
enable_user32_Dialog_Paint_Event="$1"
enable_user32_DrawTextExW="$1"
enable_user32_FlashWindowEx="$1"
enable_user32_GetSystemMetrics="$1"
enable_user32_Implement_CascadeWindows="$1"
enable_user32_LR_LOADFROMFILE="$1"
enable_user32_ListBox_Size="$1"
@@ -644,9 +643,6 @@ patch_enable ()
user32-FlashWindowEx)
enable_user32_FlashWindowEx="$2"
;;
user32-GetSystemMetrics)
enable_user32_GetSystemMetrics="$2"
;;
user32-Implement-CascadeWindows)
enable_user32_Implement_CascadeWindows="$2"
;;
@@ -1736,7 +1732,7 @@ fi
# | * [#35815] dinput: Allow remapping of joystick buttons.
# |
# | Modified files:
# | * dlls/dinput/config.c, dlls/dinput/device.c, dlls/dinput/dinput_private.h, dlls/dinput8/tests/device.c
# | * dlls/dinput/config.c, dlls/dinput/device.c, dlls/dinput/dinput_private.h, dlls/dinput/tests/device8.c
# |
if test "$enable_dinput_joy_mappings" -eq 1; then
patch_apply dinput-joy-mappings/0001-dinput-Allow-empty-Joystick-mappings.patch
@@ -2594,6 +2590,9 @@ if test "$enable_nvcuda_CUDA_Support" -eq 1; then
patch_apply nvcuda-CUDA_Support/0010-nvcuda-Search-for-dylib-library-on-Mac-OS-X.patch
patch_apply nvcuda-CUDA_Support/0011-nvcuda-Add-semi-stub-for-cuD3D10GetDevice.patch
patch_apply nvcuda-CUDA_Support/0012-nvcuda-Add-semi-stub-for-cuD3D11GetDevice-and-cuGrap.patch
patch_apply nvcuda-CUDA_Support/0013-nvcuda-Update-spec-file.patch
patch_apply nvcuda-CUDA_Support/0014-nvcuda-Implement-cuDeviceGetUuid-and-cuDeviceGetLuid.patch
patch_apply nvcuda-CUDA_Support/0015-nvcuda-Expand-the-Unknown1-table.patch
fi
# Patchset nvapi-Stub_DLL
@@ -3209,18 +3208,6 @@ if test "$enable_user32_FlashWindowEx" -eq 1; then
patch_apply user32-FlashWindowEx/0001-user32-Improve-FlashWindowEx-message-and-return-valu.patch
fi
# Patchset user32-GetSystemMetrics
# |
# | This patchset fixes the following Wine bugs:
# | * [#18732] Make it possible to change media center / tablet pc status
# |
# | Modified files:
# | * dlls/user32/sysparams.c
# |
if test "$enable_user32_GetSystemMetrics" -eq 1; then
patch_apply user32-GetSystemMetrics/0001-user32-Allow-changing-the-tablet-media-center-status.patch
fi
# Patchset user32-Implement-CascadeWindows
# |
# | This patchset fixes the following Wine bugs:

Some files were not shown because too many files have changed in this diff Show More