forked from xt-sys/exectos
Implement routines for atomically work with linked lists
This commit is contained in:
@@ -125,6 +125,10 @@ PVOID
|
||||
RtlAtomicExchangePointer(IN VOLATILE PVOID *Address,
|
||||
IN PVOID Exchange);
|
||||
|
||||
XTFASTCALL
|
||||
PSINGLE_LIST_ENTRY
|
||||
RtlAtomicFlushSingleList(IN PSINGLE_LIST_HEADER Header);
|
||||
|
||||
XTFASTCALL
|
||||
CHAR
|
||||
RtlAtomicIncrement8(IN VOLATILE PCHAR Address);
|
||||
@@ -161,6 +165,15 @@ LONGLONG
|
||||
RtlAtomicOr64(IN VOLATILE PLONGLONG Address,
|
||||
IN LONGLONG Mask);
|
||||
|
||||
XTFASTCALL
|
||||
PSINGLE_LIST_ENTRY
|
||||
RtlAtomicPopEntrySingleList(IN PSINGLE_LIST_HEADER Header);
|
||||
|
||||
XTFASTCALL
|
||||
PSINGLE_LIST_ENTRY
|
||||
RtlAtomicPushEntrySingleList(IN PSINGLE_LIST_HEADER Header,
|
||||
IN PSINGLE_LIST_ENTRY Entry);
|
||||
|
||||
XTFASTCALL
|
||||
CHAR
|
||||
RtlAtomicXor8(IN VOLATILE PCHAR Address,
|
||||
|
@@ -57,11 +57,15 @@ typedef struct _SINGLE_LIST_ENTRY
|
||||
} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
|
||||
|
||||
/* Header for a sequenced single linked list union definition */
|
||||
typedef struct _SINGLE_LIST_HEADER
|
||||
typedef union _SINGLE_LIST_HEADER
|
||||
{
|
||||
SINGLE_LIST_ENTRY Next;
|
||||
USHORT Depth;
|
||||
USHORT Sequence;
|
||||
ULONGLONG Alignment;
|
||||
struct
|
||||
{
|
||||
SINGLE_LIST_ENTRY Next;
|
||||
USHORT Depth;
|
||||
USHORT Sequence;
|
||||
};
|
||||
} SINGLE_LIST_HEADER, *PSINGLE_LIST_HEADER;
|
||||
|
||||
/* 128-bit 16-byte aligned XMM register */
|
||||
|
@@ -226,7 +226,6 @@ typedef struct _PECOFF_IMAGE_ROM_OPTIONAL_HEADER PECOFF_IMAGE_ROM_OPTIONAL_HEADE
|
||||
typedef struct _PECOFF_IMAGE_SECTION_HEADER PECOFF_IMAGE_SECTION_HEADER, *PPECOFF_IMAGE_SECTION_HEADER;
|
||||
typedef struct _PECOFF_IMAGE_VXD_HEADER PECOFF_IMAGE_VXD_HEADER, *PPECOFF_IMAGE_VXD_HEADER;
|
||||
typedef struct _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
|
||||
typedef struct _SINGLE_LIST_HEADER SINGLE_LIST_HEADER, *PSINGLE_LIST_HEADER;
|
||||
typedef struct _STRING STRING, *PSTRING;
|
||||
typedef struct _STRING32 STRING32, *PSTRING32;
|
||||
typedef struct _STRING64 STRING64, *PSTRING64;
|
||||
@@ -243,6 +242,7 @@ typedef union _EFI_HASH_OUTPUT EFI_HASH_OUTPUT, *PEFI_HASH_OUTPUT;
|
||||
typedef union _EFI_IP_ADDRESS EFI_IP_ADDRESS, *PEFI_IP_ADDRESS;
|
||||
typedef union _EFI_PXE_BASE_CODE_PACKET EFI_PXE_BASE_CODE_PACKET, *PEFI_PXE_BASE_CODE_PACKET;
|
||||
typedef union _LARGE_INTEGER LARGE_INTEGER, *PLARGE_INTEGER;
|
||||
typedef union _SINGLE_LIST_HEADER SINGLE_LIST_HEADER, *PSINGLE_LIST_HEADER;
|
||||
typedef union _ULARGE_INTEGER ULARGE_INTEGER, *PULARGE_INTEGER;
|
||||
|
||||
#endif /* __XTDK_XTSTRUCT_H */
|
||||
|
Reference in New Issue
Block a user