2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Runtime Library
4 * PURPOSE: Slist Routines
5 * FILE: lib/rtl/slist.c
6 * PROGRAMERS: Stefan Ginsberg (stefan__100__@hotmail.com)
9 /* INCLUDES *****************************************************************/
16 /* FUNCTIONS ***************************************************************/
20 RtlInitializeSListHead(IN PSLIST_HEADER ListHead
)
23 ListHead
->Alignment
= 0;
25 ListHead
->Header8
.Init
= 1;
26 // ListHead->Header8.HeaderType = 1; // FIXME: depending on cmpxchg16b support?
28 ListHead
->Alignment
= 0;
34 RtlFirstEntrySList(IN
const SLIST_HEADER
*ListHead
)
37 if (ListHead
->Header8
.HeaderType
)
39 return (PVOID
)(ListHead
->Region
& ~0xF);
52 Pointer
.P
= (PVOID
)ListHead
;
53 Pointer
.Bits
.NextEntry
= ListHead
->Header8
.NextEntry
;
57 return ListHead
->Next
.Next
;
63 RtlQueryDepthSList(IN PSLIST_HEADER ListHead
)
66 return ListHead
->Header8
.HeaderType
?
67 (WORD
)ListHead
->Header16
.Sequence
: (WORD
)ListHead
->Header8
.Sequence
;
69 return ListHead
->Depth
;