Zebediah Figura : ntoskrnl.exe: Implement plain queued spinlock functions on top of DPC-level ones.
Alexandre Julliard
julliard at winehq.org
Tue Jan 29 15:18:16 CST 2019
Module: wine
Branch: master
Commit: 10dcc10a5527ec6f143ba9618c8712b09601f255
URL: https://source.winehq.org/git/wine.git/?a=commit;h=10dcc10a5527ec6f143ba9618c8712b09601f255
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Mon Jan 28 19:21:13 2019 -0600
ntoskrnl.exe: Implement plain queued spinlock functions on top of DPC-level ones.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntoskrnl.exe/ntoskrnl.c | 27 ---------------------------
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 4 ++--
dlls/ntoskrnl.exe/sync.c | 18 ++++++++++++++++++
3 files changed, 20 insertions(+), 29 deletions(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index ec78f4b..9ee7543 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -3765,33 +3765,6 @@ NTSTATUS WINAPI IoCreateFile(HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBUT
}
/***********************************************************************
- * KeAcquireInStackQueuedSpinLock (NTOSKRNL.EXE.@)
- */
-#ifdef DEFINE_FASTCALL2_ENTRYPOINT
-DEFINE_FASTCALL2_ENTRYPOINT( KeAcquireInStackQueuedSpinLock )
-void WINAPI DECLSPEC_HIDDEN __regs_KeAcquireInStackQueuedSpinLock( KSPIN_LOCK *spinlock,
- KLOCK_QUEUE_HANDLE *handle )
-#else
-void WINAPI KeAcquireInStackQueuedSpinLock( KSPIN_LOCK *spinlock, KLOCK_QUEUE_HANDLE *handle )
-#endif
-{
- FIXME( "stub: %p %p\n", spinlock, handle );
-}
-
-/***********************************************************************
- * KeReleaseInStackQueuedSpinLock (NTOSKRNL.EXE.@)
- */
-#ifdef DEFINE_FASTCALL1_ENTRYPOINT
-DEFINE_FASTCALL1_ENTRYPOINT( KeReleaseInStackQueuedSpinLock )
-void WINAPI DECLSPEC_HIDDEN __regs_KeReleaseInStackQueuedSpinLock( KLOCK_QUEUE_HANDLE *handle )
-#else
-void WINAPI KeReleaseInStackQueuedSpinLock( KLOCK_QUEUE_HANDLE *handle )
-#endif
-{
- FIXME( "stub: %p\n", handle );
-}
-
-/***********************************************************************
* IoCreateNotificationEvent (NTOSKRNL.EXE.@)
*/
PKEVENT WINAPI IoCreateNotificationEvent(UNICODE_STRING *name, HANDLE *handle)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 7bda160..3f57f7d 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -41,9 +41,9 @@
@ stub IoWritePartitionTable
@ stdcall -norelay IofCallDriver(ptr ptr)
@ stdcall -norelay IofCompleteRequest(ptr long)
-@ stdcall -norelay KeAcquireInStackQueuedSpinLock(ptr ptr)
+@ stdcall -arch=arm,arm64,x86_64 KeAcquireInStackQueuedSpinLock(ptr ptr)
@ stdcall -norelay KeAcquireInStackQueuedSpinLockAtDpcLevel(ptr ptr)
-@ stdcall -norelay KeReleaseInStackQueuedSpinLock(ptr)
+@ stdcall -arch=arm,arm64,x86_64 KeReleaseInStackQueuedSpinLock(ptr)
@ stdcall -norelay KeReleaseInStackQueuedSpinLockFromDpcLevel(ptr)
@ stub KeSetTimeUpdateNotifyRoutine
@ stub KefAcquireSpinLockAtDpcLevel
diff --git a/dlls/ntoskrnl.exe/sync.c b/dlls/ntoskrnl.exe/sync.c
index 4dc1fc3..46ffc581 100644
--- a/dlls/ntoskrnl.exe/sync.c
+++ b/dlls/ntoskrnl.exe/sync.c
@@ -498,6 +498,24 @@ KIRQL WINAPI KeAcquireSpinLockRaiseToDpc( KSPIN_LOCK *lock )
KeAcquireSpinLockAtDpcLevel( lock );
return 0;
}
+
+/***********************************************************************
+ * KeAcquireInStackQueuedSpinLock (NTOSKRNL.EXE.@)
+ */
+void WINAPI KeAcquireInStackQueuedSpinLock( KSPIN_LOCK *lock, KLOCK_QUEUE_HANDLE *queue )
+{
+ TRACE("lock %p, queue %p.\n", lock, queue);
+ KeAcquireInStackQueuedSpinLockAtDpcLevel( lock, queue );
+}
+
+/***********************************************************************
+ * KeReleaseInStackQueuedSpinLock (NTOSKRNL.EXE.@)
+ */
+void WINAPI KeReleaseInStackQueuedSpinLock( KLOCK_QUEUE_HANDLE *queue )
+{
+ TRACE("queue %p.\n", queue);
+ KeReleaseInStackQueuedSpinLockFromDpcLevel( queue );
+}
#endif
static KSPIN_LOCK cancel_lock;
More information about the wine-cvs
mailing list