1#ifndef X86_MATANEL_SYNCHRONIZATION_H
2#define X86_MATANEL_SYNCHRONIZATION_H
189 Entry->
Blink = Blink;
190 Blink->
Flink = Entry;
206 Entry->
Flink = First;
209 First->
Blink = Entry;
229 Flink = Entry->
Flink;
247 Flink = Entry->
Flink;
248 Blink = Entry->
Blink;
251 Blink->
Flink = Flink;
252 Flink->
Blink = Blink;
273 oldHead = __atomic_load_n(ListHeadPtr, __ATOMIC_RELAXED);
274 Entry->
Next = oldHead;
276 }
while (!__atomic_compare_exchange_n(
299 oldHead = __atomic_load_n(ListHeadPtr, __ATOMIC_ACQUIRE);
302 next = oldHead->
Next;
304 }
while (!__atomic_compare_exchange_n(
struct _DOUBLY_LINKED_LIST * PDOUBLY_LINKED_LIST
struct _SINGLE_LINKED_LIST * PSINGLE_LINKED_LIST
void MsAcquireSpinlock(IN PSPINLOCK lock, IN PIRQL OldIrql)
struct _RUNDOWN_REF * PRUNDOWN_REF
MTSTATUS MsWaitForEvent(IN PEVENT event)
FORCEINLINE PDOUBLY_LINKED_LIST RemoveHeadList(PDOUBLY_LINKED_LIST Head)
struct _RUNDOWN_REF RUNDOWN_REF
FORCEINLINE void InitializeListHead(PDOUBLY_LINKED_LIST Head)
MTSTATUS MsReleaseMutexObject(IN PMUTEX mut)
bool MsAcquireRundownProtection(IN PRUNDOWN_REF rundown)
FORCEINLINE PSINGLE_LINKED_LIST InterlockedPopEntry(PSINGLE_LINKED_LIST *ListHeadPtr)
FORCEINLINE void InterlockedPushEntry(PSINGLE_LINKED_LIST *ListHeadPtr, PSINGLE_LINKED_LIST Entry)
void MsReleaseRundownProtection(IN PRUNDOWN_REF rundown)
MTSTATUS MsInitializeMutexObject(IN PMUTEX mut)
enum _EVENT_TYPE EVENT_TYPE
MTSTATUS MsSetEvent(IN PEVENT event)
void MsWaitForRundownProtectionRelease(IN PRUNDOWN_REF rundown)
FORCEINLINE void InsertTailList(PDOUBLY_LINKED_LIST Head, PDOUBLY_LINKED_LIST Entry)
MTSTATUS MsAcquireMutexObject(IN PMUTEX mut)
void MsReleaseSpinlockFromDpcLevel(IN PSPINLOCK Lock)
void MsReleaseSpinlock(IN PSPINLOCK lock, IN IRQL OldIrql)
struct _SPINLOCK * PSPINLOCK
void MsAcquireSpinlockAtDpcLevel(IN PSPINLOCK Lock)
FORCEINLINE void InsertHeadList(PDOUBLY_LINKED_LIST Head, PDOUBLY_LINKED_LIST Entry)
struct _SPINLOCK SPINLOCK
FORCEINLINE void RemoveEntryList(PDOUBLY_LINKED_LIST Entry)
struct _DOUBLY_LINKED_LIST * Blink
struct _DOUBLY_LINKED_LIST * Flink
struct _Queue waitingQueue
struct _ETHREAD * ownerThread
struct _SINGLE_LINKED_LIST * Next