ntoskrnl.exe: Implement plain queued spinlock functions on top of DPC-level ones.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2019-01-28 19:21:13 -06:00 committed by Alexandre Julliard
parent c3c2a4f697
commit 10dcc10a55
3 changed files with 20 additions and 29 deletions

View File

@ -3764,33 +3764,6 @@ NTSTATUS WINAPI IoCreateFile(HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBUT
return STATUS_NOT_IMPLEMENTED;
}
/***********************************************************************
* 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.@)
*/

View File

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

View File

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