#undef ExInterlockedAddULong
#undef ExInterlockedIncrementLong
#undef ExInterlockedDecrementLong
+#undef ExInterlockedAddLargeStatistic
/* FUNCTIONS ******************************************************************/
{
Entry->Next = FirstEntry;
NextEntry = FirstEntry;
- FirstEntry = (PVOID)_InterlockedCompareExchange((PLONG)Head,
- (LONG)Entry,
- (LONG)FirstEntry);
+ FirstEntry = InterlockedCompareExchangePointer((PVOID*)Head,
+ (PVOID)Entry,
+ (PVOID)FirstEntry);
} while (FirstEntry != NextEntry);
return FirstEntry;
if (!FirstEntry) return NULL;
NextEntry = FirstEntry;
- FirstEntry = (PVOID)_InterlockedCompareExchange((PLONG)Head,
- (LONG)FirstEntry->Next,
- (LONG)FirstEntry);
+ FirstEntry = InterlockedCompareExchangePointer((PVOID*)Head,
+ (PVOID)FirstEntry->Next,
+ (PVOID)FirstEntry);
} while (FirstEntry != NextEntry);
return FirstEntry;
FASTCALL
ExInterlockedFlushSList(IN PSLIST_HEADER ListHead)
{
- return (PVOID)_InterlockedExchange((PLONG)&ListHead->Next.Next, (LONG)NULL);
+ return InterlockedExchangePointer((PVOID*)&ListHead->Next.Next, NULL);
}
PSLIST_ENTRY
FASTCALL
ExInterlockedPushEntrySList(IN PSLIST_HEADER ListHead,
- IN PSLIST_ENTRY ListEntry)
+ IN PSLIST_ENTRY ListEntry,
+ IN PKSPIN_LOCK Lock)
{
return InterlockedPushEntrySList(ListHead, ListEntry);
}
}
ULONG
-NTAPI
+FASTCALL
ExfInterlockedAddUlong(IN PULONG Addend,
IN ULONG Increment,
PKSPIN_LOCK Lock)
FASTCALL
ExfInterlockedCompareExchange64(IN OUT LONGLONG volatile *Destination,
IN PLONGLONG Exchange,
- IN PLONGLONG Comperand)
+ IN PLONGLONG Comparand)
{
LONGLONG Result;
Result = *Destination;
- if (*Destination == Result) *Destination = *Exchange;
+ if (*Destination == *Comparand) *Destination = *Exchange;
return Result;
}
VOID
FASTCALL
-ExInterlockedAddLargeStatistic(IN PLARGE_INTEGER Addend,
+ExInterlockedAddLargeStatistic(IN PLONGLONG Addend,
IN ULONG Increment)
{
UNIMPLEMENTED;
LONGLONG
FASTCALL
-ExInterlockedCompareExchange64(IN OUT PLONGLONG Destination,
+ExInterlockedCompareExchange64(IN OUT LONGLONG volatile *Destination,
IN PLONGLONG Exchange,
IN PLONGLONG Comparand,
IN PKSPIN_LOCK Lock)
KeAcquireSpinLock(Lock, &OldIrql);
Result = *Destination;
- if (*Destination == Result) *Destination = *Exchange;
+ if (*Destination == *Comparand) *Destination = *Exchange;
KeReleaseSpinLock(Lock, OldIrql);
return Result;
}