More routines for performing atomic bitwise AND/OR/XOR operations

This commit is contained in:
2023-02-12 23:11:23 +01:00
parent 5a86d61b78
commit 9e5fb84412
2 changed files with 312 additions and 0 deletions

View File

@@ -14,6 +14,26 @@
#include <xttypes.h>
XTFASTCALL
CHAR
RtlAtomicAnd8(IN VOLATILE PCHAR Address,
IN CHAR Mask);
XTFASTCALL
SHORT
RtlAtomicAnd16(IN VOLATILE PSHORT Address,
IN SHORT Mask);
XTFASTCALL
LONG
RtlAtomicAnd32(IN VOLATILE PLONG Address,
IN LONG Mask);
XTFASTCALL
LONGLONG
RtlAtomicAnd64(IN VOLATILE PLONGLONG Address,
IN LONGLONG Mask);
XTFASTCALL
CHAR
RtlAtomicCompareExchange8(IN VOLATILE PCHAR Address,
@@ -121,6 +141,46 @@ XTFASTCALL
LONGLONG
RtlAtomicIncrement64(IN VOLATILE PLONGLONG Address);
XTFASTCALL
CHAR
RtlAtomicOr8(IN VOLATILE PCHAR Address,
IN CHAR Mask);
XTFASTCALL
SHORT
RtlAtomicOr16(IN VOLATILE PSHORT Address,
IN SHORT Mask);
XTFASTCALL
LONG
RtlAtomicOr32(IN VOLATILE PLONG Address,
IN LONG Mask);
XTFASTCALL
LONGLONG
RtlAtomicOr64(IN VOLATILE PLONGLONG Address,
IN LONGLONG Mask);
XTFASTCALL
CHAR
RtlAtomicXor8(IN VOLATILE PCHAR Address,
IN CHAR Mask);
XTFASTCALL
SHORT
RtlAtomicXor16(IN VOLATILE PSHORT Address,
IN SHORT Mask);
XTFASTCALL
LONG
RtlAtomicXor32(IN VOLATILE PLONG Address,
IN LONG Mask);
XTFASTCALL
LONGLONG
RtlAtomicXor64(IN VOLATILE PLONGLONG Address,
IN LONGLONG Mask);
XTAPI
SIZE_T
RtlCompareMemory(IN PCVOID LeftBuffer,