3 Copyright (c) Scott Gasch
11 Random doubly linked list helper routines.
24 InitializeListHead(IN DLIST_ENTRY *pListHead)
26 pListHead->pFlink = pListHead->pBlink = pListHead;
30 IsListEmpty(IN DLIST_ENTRY *pListHead)
32 return (FLAG)(pListHead->pFlink == pListHead);
36 RemoveEntryList(IN DLIST_ENTRY *pEntry)
41 pFlink = pEntry->pFlink;
42 pBlink = pEntry->pBlink;
43 pBlink->pFlink = pFlink;
44 pFlink->pBlink = pBlink;
45 return (FLAG)(pFlink == pBlink);
49 RemoveHeadList(IN DLIST_ENTRY *pListHead)
54 pEntry = pListHead->pFlink;
55 pFlink = pEntry->pFlink;
56 pListHead->pFlink = pFlink;
57 pFlink->pBlink = pListHead;
63 RemoveTailList(IN DLIST_ENTRY *pListHead)
68 pEntry = pListHead->pBlink;
69 pBlink = pEntry->pBlink;
70 pListHead->pBlink = pBlink;
71 pBlink->pFlink = pListHead;
77 InsertTailList(IN DLIST_ENTRY *pListHead,
78 IN DLIST_ENTRY *pEntry)
82 pBlink = pListHead->pBlink;
83 pEntry->pFlink = pListHead;
84 pEntry->pBlink = pBlink;
85 pBlink->pFlink = pEntry;
86 pListHead->pBlink = pEntry;
90 InsertHeadList(IN DLIST_ENTRY *pListHead,
91 IN DLIST_ENTRY *pEntry)
95 pFlink = pListHead->pFlink;
96 pEntry->pFlink = pFlink;
97 pEntry->pBlink = pListHead;
98 pFlink->pBlink = pEntry;
99 pListHead->pFlink = pEntry;