Alexandre Julliard : ntdll: Use syscall thunks for wait functions.
Alexandre Julliard
julliard at winehq.org
Thu Jul 16 19:01:20 CDT 2020
Module: wine
Branch: master
Commit: 9f8acda1677e90a5f429ef8db739adce700629ca
URL: https://source.winehq.org/git/wine.git/?a=commit;h=9f8acda1677e90a5f429ef8db739adce700629ca
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Jul 16 10:30:34 2020 +0200
ntdll: Use syscall thunks for wait functions.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/ntdll.spec | 20 +++++++++----------
dlls/ntdll/sync.c | 50 ------------------------------------------------
dlls/ntdll/unix/loader.c | 5 -----
dlls/ntdll/unixlib.h | 11 +----------
4 files changed, 11 insertions(+), 75 deletions(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 405fac61e8..0183a10cab 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -191,7 +191,7 @@
@ stdcall -arch=win32,arm64 NtCurrentTeb()
# @ stub NtDebugActiveProcess
# @ stub NtDebugContinue
-@ stdcall NtDelayExecution(long ptr)
+@ stdcall -syscall NtDelayExecution(long ptr)
@ stdcall NtDeleteAtom(long)
# @ stub NtDeleteBootEntry
@ stdcall NtDeleteFile(ptr)
@@ -401,7 +401,7 @@
@ stdcall NtSetValueKey(long ptr long long ptr long)
@ stdcall NtSetVolumeInformationFile(long ptr ptr long long)
@ stdcall NtShutdownSystem(long)
-@ stdcall NtSignalAndWaitForSingleObject(long long long ptr)
+@ stdcall -syscall NtSignalAndWaitForSingleObject(long long long ptr)
@ stub NtStartProfile
@ stub NtStopProfile
@ stdcall NtSuspendProcess(long)
@@ -423,16 +423,16 @@
@ stub NtW32Call
# @ stub NtWaitForDebugEvent
@ stdcall NtWaitForKeyedEvent(long ptr long ptr)
-@ stdcall NtWaitForMultipleObjects(long ptr long long ptr)
+@ stdcall -syscall NtWaitForMultipleObjects(long ptr long long ptr)
@ stub NtWaitForProcessMutant
-@ stdcall NtWaitForSingleObject(long long ptr)
+@ stdcall -syscall NtWaitForSingleObject(long long ptr)
@ stub NtWaitHighEventPair
@ stub NtWaitLowEventPair
@ stdcall NtWriteFile(long long ptr ptr ptr ptr long ptr ptr)
@ stdcall NtWriteFileGather(long long ptr ptr ptr ptr long ptr ptr)
@ stub NtWriteRequestData
@ stdcall NtWriteVirtualMemory(long ptr ptr long ptr)
-@ stdcall NtYieldExecution()
+@ stdcall -syscall NtYieldExecution()
@ stub PfxFindPrefix
@ stub PfxInitialize
@ stub PfxInsertPrefix
@@ -1176,7 +1176,7 @@
# @ stub ZwCreateWaitablePort
# @ stub ZwDebugActiveProcess
# @ stub ZwDebugContinue
-@ stdcall -private ZwDelayExecution(long ptr) NtDelayExecution
+@ stdcall -private -syscall ZwDelayExecution(long ptr) NtDelayExecution
@ stdcall -private ZwDeleteAtom(long) NtDeleteAtom
# @ stub ZwDeleteBootEntry
@ stdcall -private ZwDeleteFile(ptr) NtDeleteFile
@@ -1385,7 +1385,7 @@
@ stdcall -private ZwSetValueKey(long ptr long long ptr long) NtSetValueKey
@ stdcall -private ZwSetVolumeInformationFile(long ptr ptr long long) NtSetVolumeInformationFile
@ stdcall -private ZwShutdownSystem(long) NtShutdownSystem
-@ stdcall -private ZwSignalAndWaitForSingleObject(long long long ptr) NtSignalAndWaitForSingleObject
+@ stdcall -private -syscall ZwSignalAndWaitForSingleObject(long long long ptr) NtSignalAndWaitForSingleObject
@ stub ZwStartProfile
@ stub ZwStopProfile
@ stdcall -private ZwSuspendProcess(long) NtSuspendProcess
@@ -1407,16 +1407,16 @@
@ stub ZwW32Call
# @ stub ZwWaitForDebugEvent
@ stdcall -private ZwWaitForKeyedEvent(long ptr long ptr) NtWaitForKeyedEvent
-@ stdcall -private ZwWaitForMultipleObjects(long ptr long long ptr) NtWaitForMultipleObjects
+@ stdcall -private -syscall ZwWaitForMultipleObjects(long ptr long long ptr) NtWaitForMultipleObjects
@ stub ZwWaitForProcessMutant
-@ stdcall -private ZwWaitForSingleObject(long long ptr) NtWaitForSingleObject
+@ stdcall -private -syscall ZwWaitForSingleObject(long long ptr) NtWaitForSingleObject
@ stub ZwWaitHighEventPair
@ stub ZwWaitLowEventPair
@ stdcall -private ZwWriteFile(long long ptr ptr ptr ptr long ptr ptr) NtWriteFile
@ stdcall -private ZwWriteFileGather(long long ptr ptr ptr ptr long ptr ptr) NtWriteFileGather
@ stub ZwWriteRequestData
@ stdcall -private ZwWriteVirtualMemory(long ptr ptr long ptr) NtWriteVirtualMemory
-@ stdcall -private ZwYieldExecution() NtYieldExecution
+@ stdcall -private -syscall ZwYieldExecution() NtYieldExecution
@ cdecl -private -arch=i386 _CIcos()
@ cdecl -private -arch=i386 _CIlog()
@ cdecl -private -arch=i386 _CIpow()
diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c
index 6eb328f025..a6666e042e 100644
--- a/dlls/ntdll/sync.c
+++ b/dlls/ntdll/sync.c
@@ -167,56 +167,6 @@ NTSTATUS WINAPI NtSetTimerResolution(IN ULONG resolution,
-/* wait operations */
-
-/******************************************************************
- * NtWaitForMultipleObjects (NTDLL.@)
- */
-NTSTATUS WINAPI NtWaitForMultipleObjects( DWORD count, const HANDLE *handles,
- BOOLEAN wait_any, BOOLEAN alertable,
- const LARGE_INTEGER *timeout )
-{
- return unix_funcs->NtWaitForMultipleObjects( count, handles, wait_any, alertable, timeout );
-}
-
-
-/******************************************************************
- * NtWaitForSingleObject (NTDLL.@)
- */
-NTSTATUS WINAPI NtWaitForSingleObject(HANDLE handle, BOOLEAN alertable, const LARGE_INTEGER *timeout )
-{
- return unix_funcs->NtWaitForSingleObject( handle, alertable, timeout );
-}
-
-
-/******************************************************************
- * NtSignalAndWaitForSingleObject (NTDLL.@)
- */
-NTSTATUS WINAPI NtSignalAndWaitForSingleObject( HANDLE signal, HANDLE wait,
- BOOLEAN alertable, const LARGE_INTEGER *timeout )
-{
- return unix_funcs->NtSignalAndWaitForSingleObject( signal, wait, alertable, timeout );
-}
-
-
-/******************************************************************
- * NtYieldExecution (NTDLL.@)
- */
-NTSTATUS WINAPI NtYieldExecution(void)
-{
- return unix_funcs->NtYieldExecution();
-}
-
-
-/******************************************************************
- * NtDelayExecution (NTDLL.@)
- */
-NTSTATUS WINAPI NtDelayExecution( BOOLEAN alertable, const LARGE_INTEGER *timeout )
-{
- return unix_funcs->NtDelayExecution( alertable, timeout );
-}
-
-
/******************************************************************************
* NtCreateKeyedEvent (NTDLL.@)
*/
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index 53c12384e9..d2ebeae935 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -1372,7 +1372,6 @@ static struct unix_funcs unix_funcs =
NtCreateThreadEx,
NtCreateUserProcess,
NtCurrentTeb,
- NtDelayExecution,
NtDeleteFile,
NtDeviceIoControlFile,
NtDuplicateObject,
@@ -1430,7 +1429,6 @@ static struct unix_funcs unix_funcs =
NtSetLdtEntries,
NtSetSystemTime,
NtSetVolumeInformationFile,
- NtSignalAndWaitForSingleObject,
NtSuspendProcess,
NtSuspendThread,
NtTerminateProcess,
@@ -1438,12 +1436,9 @@ static struct unix_funcs unix_funcs =
NtUnlockVirtualMemory,
NtUnmapViewOfSection,
NtWaitForKeyedEvent,
- NtWaitForMultipleObjects,
- NtWaitForSingleObject,
NtWriteFile,
NtWriteFileGather,
NtWriteVirtualMemory,
- NtYieldExecution,
DbgUiIssueRemoteBreakin,
RtlGetSystemTimePrecise,
RtlWaitOnAddress,
diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
index 5546107d02..9f83b30c40 100644
--- a/dlls/ntdll/unixlib.h
+++ b/dlls/ntdll/unixlib.h
@@ -28,7 +28,7 @@ struct msghdr;
struct _DISPATCHER_CONTEXT;
/* increment this when you change the function table */
-#define NTDLL_UNIXLIB_VERSION 79
+#define NTDLL_UNIXLIB_VERSION 80
struct unix_funcs
{
@@ -67,7 +67,6 @@ struct unix_funcs
RTL_USER_PROCESS_PARAMETERS *params, PS_CREATE_INFO *info,
PS_ATTRIBUTE_LIST *attr );
TEB * (WINAPI *NtCurrentTeb)(void);
- NTSTATUS (WINAPI *NtDelayExecution)( BOOLEAN alertable, const LARGE_INTEGER *timeout );
NTSTATUS (WINAPI *NtDeleteFile)( OBJECT_ATTRIBUTES *attr );
NTSTATUS (WINAPI *NtDeviceIoControlFile)( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc,
void *apc_context, IO_STATUS_BLOCK *io, ULONG code,
@@ -184,8 +183,6 @@ struct unix_funcs
NTSTATUS (WINAPI *NtSetSystemTime)( const LARGE_INTEGER *new, LARGE_INTEGER *old );
NTSTATUS (WINAPI *NtSetVolumeInformationFile)( HANDLE handle, IO_STATUS_BLOCK *io, void *info,
ULONG length, FS_INFORMATION_CLASS class );
- NTSTATUS (WINAPI *NtSignalAndWaitForSingleObject)( HANDLE signal, HANDLE wait,
- BOOLEAN alertable, const LARGE_INTEGER *timeout );
NTSTATUS (WINAPI *NtSuspendProcess)( HANDLE handle );
NTSTATUS (WINAPI *NtSuspendThread)( HANDLE handle, ULONG *count );
NTSTATUS (WINAPI *NtTerminateProcess)( HANDLE handle, LONG exit_code );
@@ -195,11 +192,6 @@ struct unix_funcs
NTSTATUS (WINAPI *NtUnmapViewOfSection)( HANDLE process, PVOID addr );
NTSTATUS (WINAPI *NtWaitForKeyedEvent)( HANDLE handle, const void *key, BOOLEAN alertable,
const LARGE_INTEGER *timeout );
- NTSTATUS (WINAPI *NtWaitForMultipleObjects)( DWORD count, const HANDLE *handles,
- BOOLEAN wait_any, BOOLEAN alertable,
- const LARGE_INTEGER *timeout );
- NTSTATUS (WINAPI *NtWaitForSingleObject)( HANDLE handle, BOOLEAN alertable,
- const LARGE_INTEGER *timeout );
NTSTATUS (WINAPI *NtWriteFile)( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc_user,
IO_STATUS_BLOCK *io, const void *buffer, ULONG length,
LARGE_INTEGER *offset, ULONG *key );
@@ -209,7 +201,6 @@ struct unix_funcs
LARGE_INTEGER *offset, ULONG *key );
NTSTATUS (WINAPI *NtWriteVirtualMemory)( HANDLE process, void *addr, const void *buffer,
SIZE_T size, SIZE_T *bytes_written );
- NTSTATUS (WINAPI *NtYieldExecution)(void);
/* other Win32 API functions */
NTSTATUS (WINAPI *DbgUiIssueRemoteBreakin)( HANDLE process );
More information about the wine-cvs
mailing list