ReactOS 0.4.15-dev-7788-g1ad9096
spinlock.c File Reference
#include <hal.h>
#include <debug.h>
Include dependency graph for spinlock.c:

Go to the source code of this file.

Macros

#define NDEBUG
 

Functions

VOID NTAPI KeRaiseIrql (KIRQL NewIrql, PKIRQL OldIrql)
 
VOID NTAPI KeLowerIrql (KIRQL NewIrql)
 
VOID NTAPI KeAcquireSpinLock (PKSPIN_LOCK SpinLock, PKIRQL OldIrql)
 
KIRQL FASTCALL KeAcquireSpinLockRaiseToSynch (PKSPIN_LOCK SpinLock)
 
VOID NTAPI KeReleaseSpinLock (PKSPIN_LOCK SpinLock, KIRQL NewIrql)
 
KIRQL FASTCALL KfAcquireSpinLock (PKSPIN_LOCK SpinLock)
 
VOID FASTCALL KfReleaseSpinLock (PKSPIN_LOCK SpinLock, KIRQL OldIrql)
 
KIRQL FASTCALL KeAcquireQueuedSpinLock (IN KSPIN_LOCK_QUEUE_NUMBER LockNumber)
 
KIRQL FASTCALL KeAcquireQueuedSpinLockRaiseToSynch (IN KSPIN_LOCK_QUEUE_NUMBER LockNumber)
 
VOID FASTCALL KeAcquireInStackQueuedSpinLock (IN PKSPIN_LOCK SpinLock, IN PKLOCK_QUEUE_HANDLE LockHandle)
 
VOID FASTCALL KeAcquireInStackQueuedSpinLockRaiseToSynch (IN PKSPIN_LOCK SpinLock, IN PKLOCK_QUEUE_HANDLE LockHandle)
 
VOID FASTCALL KeReleaseQueuedSpinLock (IN KSPIN_LOCK_QUEUE_NUMBER LockNumber, IN KIRQL OldIrql)
 
VOID FASTCALL KeReleaseInStackQueuedSpinLock (IN PKLOCK_QUEUE_HANDLE LockHandle)
 
BOOLEAN FASTCALL KeTryToAcquireQueuedSpinLockRaiseToSynch (IN KSPIN_LOCK_QUEUE_NUMBER LockNumber, IN PKIRQL OldIrql)
 
LOGICAL FASTCALL KeTryToAcquireQueuedSpinLock (IN KSPIN_LOCK_QUEUE_NUMBER LockNumber, OUT PKIRQL OldIrql)
 

Macro Definition Documentation

◆ NDEBUG

#define NDEBUG

Definition at line 12 of file spinlock.c.

Function Documentation

◆ KeAcquireInStackQueuedSpinLock()

◆ KeAcquireInStackQueuedSpinLockRaiseToSynch()

VOID FASTCALL KeAcquireInStackQueuedSpinLockRaiseToSynch ( IN PKSPIN_LOCK  SpinLock,
IN PKLOCK_QUEUE_HANDLE  LockHandle 
)

Definition at line 142 of file spinlock.c.

144{
145 /* Simply raise to dispatch */
147}

Referenced by KiAcquireApcLockRaiseToSynch(), and KiAcquireProcessLockRaiseToSynch().

◆ KeAcquireQueuedSpinLock()

◆ KeAcquireQueuedSpinLockRaiseToSynch()

KIRQL FASTCALL KeAcquireQueuedSpinLockRaiseToSynch ( IN KSPIN_LOCK_QUEUE_NUMBER  LockNumber)

Definition at line 119 of file spinlock.c.

120{
121 /* Simply raise to dispatch */
123}

◆ KeAcquireSpinLock()

VOID NTAPI KeAcquireSpinLock ( PKSPIN_LOCK  SpinLock,
PKIRQL  OldIrql 
)

Definition at line 50 of file spinlock.c.

52{
53 /* Call the fastcall function */
55}
KIRQL FASTCALL KfAcquireSpinLock(PKSPIN_LOCK SpinLock)
Definition: spinlock.c:85
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFSPINLOCK * SpinLock
Definition: wdfsync.h:228
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
Definition: kefuncs.h:778

◆ KeAcquireSpinLockRaiseToSynch()

KIRQL FASTCALL KeAcquireSpinLockRaiseToSynch ( PKSPIN_LOCK  SpinLock)

Definition at line 62 of file spinlock.c.

63{
64 /* Simply raise to dispatch */
66}

Referenced by MiProcessLoaderEntry().

◆ KeLowerIrql()

VOID NTAPI KeLowerIrql ( KIRQL  NewIrql)

Definition at line 39 of file spinlock.c.

40{
41 /* Call the fastcall function */
43}
VOID FASTCALL KfLowerIrql(IN KIRQL NewIrql)
Definition: pic.c:232
_Requires_lock_held_ SpinLock _Releases_lock_ SpinLock _In_ _IRQL_restores_ KIRQL NewIrql
Definition: ke.h:114

◆ KeRaiseIrql()

VOID NTAPI KeRaiseIrql ( KIRQL  NewIrql,
PKIRQL  OldIrql 
)

Definition at line 27 of file spinlock.c.

29{
30 /* Call the fastcall function */
32}

◆ KeReleaseInStackQueuedSpinLock()

◆ KeReleaseQueuedSpinLock()

◆ KeReleaseSpinLock()

VOID NTAPI KeReleaseSpinLock ( PKSPIN_LOCK  SpinLock,
KIRQL  NewIrql 
)

Definition at line 73 of file spinlock.c.

75{
76 /* Call the fastcall function */
78}
VOID FASTCALL KfReleaseSpinLock(PKSPIN_LOCK SpinLock, KIRQL OldIrql)
Definition: spinlock.c:96

◆ KeTryToAcquireQueuedSpinLock()

LOGICAL FASTCALL KeTryToAcquireQueuedSpinLock ( IN KSPIN_LOCK_QUEUE_NUMBER  LockNumber,
OUT PKIRQL  OldIrql 
)

Definition at line 192 of file spinlock.c.

194{
195 /* Simply raise to dispatch */
197
198 /* Always return true on UP Machines */
199 return TRUE;
200}
#define TRUE
Definition: types.h:120
#define KeRaiseIrql(irql, oldIrql)
Definition: env_spec_w32.h:597

Referenced by DEFINE_ACQUIRE().

◆ KeTryToAcquireQueuedSpinLockRaiseToSynch()

BOOLEAN FASTCALL KeTryToAcquireQueuedSpinLockRaiseToSynch ( IN KSPIN_LOCK_QUEUE_NUMBER  LockNumber,
IN PKIRQL  OldIrql 
)

Definition at line 177 of file spinlock.c.

179{
180 /* Simply raise to synch */
182
183 /* Always return true on UP Machines */
184 return TRUE;
185}
#define SYNCH_LEVEL
Definition: env_spec_w32.h:704

Referenced by TryQueuedSynch().

◆ KfAcquireSpinLock()

KIRQL FASTCALL KfAcquireSpinLock ( PKSPIN_LOCK  SpinLock)

Definition at line 85 of file spinlock.c.

86{
87 /* Simply raise to dispatch */
89}

Referenced by KeAcquireSpinLock().

◆ KfReleaseSpinLock()

VOID FASTCALL KfReleaseSpinLock ( PKSPIN_LOCK  SpinLock,
KIRQL  OldIrql 
)

Definition at line 96 of file spinlock.c.

98{
99 /* Simply lower IRQL back */
101}
#define KeLowerIrql(oldIrql)
Definition: env_spec_w32.h:602

Referenced by KeReleaseSpinLock().