ntoskrnl.exe: Implement KeReleaseSpinLockFromDpcLevel().

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-27 20:45:31 -06:00 committed by Alexandre Julliard
parent fbe23bdd99
commit a1dfdfaf22
3 changed files with 12 additions and 2 deletions

View file

@ -594,7 +594,7 @@
@ stdcall KeReleaseMutex(ptr long)
@ stdcall KeReleaseSemaphore(ptr long long long)
@ stdcall -arch=arm,arm64,x86_64 KeReleaseSpinLock(ptr long)
@ stub KeReleaseSpinLockFromDpcLevel
@ stdcall KeReleaseSpinLockFromDpcLevel(ptr)
@ stub KeRemoveByKeyDeviceQueue
@ stub KeRemoveByKeyDeviceQueueIfBusy
@ stub KeRemoveDeviceQueue

View file

@ -386,7 +386,6 @@ void WINAPI KeInitializeSpinLock( KSPIN_LOCK *lock )
*lock = 0;
}
#ifndef __i386__
static inline void small_pause(void)
{
#ifdef __x86_64__
@ -396,6 +395,16 @@ static inline void small_pause(void)
#endif
}
/***********************************************************************
* KeReleaseSpinLockFromDpcLevel (NTOSKRNL.EXE.@)
*/
void WINAPI KeReleaseSpinLockFromDpcLevel( KSPIN_LOCK *lock )
{
TRACE("lock %p.\n", lock);
InterlockedExchangePointer( (void **)lock, 0 );
}
#ifndef __i386__
/***********************************************************************
* KeReleaseSpinLock (NTOSKRNL.EXE.@)
*/

View file

@ -1443,6 +1443,7 @@ ULONG WINAPI KeQueryTimeIncrement(void);
LONG WINAPI KeReleaseMutex(PRKMUTEX,BOOLEAN);
LONG WINAPI KeReleaseSemaphore(PRKSEMAPHORE,KPRIORITY,LONG,BOOLEAN);
void WINAPI KeReleaseSpinLock(KSPIN_LOCK*,KIRQL);
void WINAPI KeReleaseSpinLockFromDpcLevel(KSPIN_LOCK*);
LONG WINAPI KeResetEvent(PRKEVENT);
LONG WINAPI KeSetEvent(PRKEVENT,KPRIORITY,BOOLEAN);
KPRIORITY WINAPI KeSetPriorityThread(PKTHREAD,KPRIORITY);