Commit 10dcc10a authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

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

parent c3c2a4f6
...@@ -3765,33 +3765,6 @@ NTSTATUS WINAPI IoCreateFile(HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBUT ...@@ -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.@) * IoCreateNotificationEvent (NTOSKRNL.EXE.@)
*/ */
PKEVENT WINAPI IoCreateNotificationEvent(UNICODE_STRING *name, HANDLE *handle) PKEVENT WINAPI IoCreateNotificationEvent(UNICODE_STRING *name, HANDLE *handle)
......
...@@ -41,9 +41,9 @@ ...@@ -41,9 +41,9 @@
@ stub IoWritePartitionTable @ stub IoWritePartitionTable
@ stdcall -norelay IofCallDriver(ptr ptr) @ stdcall -norelay IofCallDriver(ptr ptr)
@ stdcall -norelay IofCompleteRequest(ptr long) @ 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 KeAcquireInStackQueuedSpinLockAtDpcLevel(ptr ptr)
@ stdcall -norelay KeReleaseInStackQueuedSpinLock(ptr) @ stdcall -arch=arm,arm64,x86_64 KeReleaseInStackQueuedSpinLock(ptr)
@ stdcall -norelay KeReleaseInStackQueuedSpinLockFromDpcLevel(ptr) @ stdcall -norelay KeReleaseInStackQueuedSpinLockFromDpcLevel(ptr)
@ stub KeSetTimeUpdateNotifyRoutine @ stub KeSetTimeUpdateNotifyRoutine
@ stub KefAcquireSpinLockAtDpcLevel @ stub KefAcquireSpinLockAtDpcLevel
......
...@@ -498,6 +498,24 @@ KIRQL WINAPI KeAcquireSpinLockRaiseToDpc( KSPIN_LOCK *lock ) ...@@ -498,6 +498,24 @@ KIRQL WINAPI KeAcquireSpinLockRaiseToDpc( KSPIN_LOCK *lock )
KeAcquireSpinLockAtDpcLevel( lock ); KeAcquireSpinLockAtDpcLevel( lock );
return 0; 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 #endif
static KSPIN_LOCK cancel_lock; static KSPIN_LOCK cancel_lock;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment