/* INCLUDES *******************************************************************/
-#if defined(_ARM_) || defined(_PPC_) || defined(_M_AMD64) || defined(NTOS_USE_GENERICS)
+#if defined(_ARM_) || defined(_PPC_) || defined(NTOS_USE_GENERICS)
#include <ntoskrnl.h>
#define NDEBUG
#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
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)
return Result;
}
-#ifndef _M_AMD64
VOID
NTAPI
READ_REGISTER_BUFFER_UCHAR(IN PUCHAR Register,
*(volatile USHORT * const)Register = Value;
KeFlushWriteBuffer();
}
-#endif // !_M_AMD64
#endif