30#if !defined (MDEPKG_NDEBUG)
31#define ASSERT_VERIFY_NODE_IN_VALID_LIST(FirstEntry, SecondEntry, InList) \
33 if (FeaturePcdGet (PcdVerifyNodeInList)) { \
34 ASSERT (InList == IsNodeInList ((FirstEntry), (SecondEntry))); \
36 ASSERT (InternalBaseLibIsListValid (FirstEntry)); \
40#define ASSERT_VERIFY_NODE_IN_VALID_LIST(FirstEntry, SecondEntry, InList)
74 ASSERT (List !=
NULL);
75 ASSERT (List->ForwardLink !=
NULL);
76 ASSERT (List->BackLink !=
NULL);
78 if (
PcdGet32 (PcdMaximumLinkedListLength) > 0) {
87 Ptr = Ptr->ForwardLink;
89 }
while ((Ptr != List) && (Count <
PcdGet32 (PcdMaximumLinkedListLength)));
94 return (BOOLEAN)(Count <
PcdGet32 (PcdMaximumLinkedListLength));
134 ASSERT (SecondEntry !=
NULL);
144 Ptr = Ptr->ForwardLink;
145 if (
PcdGet32 (PcdMaximumLinkedListLength) > 0) {
151 if (Count ==
PcdGet32 (PcdMaximumLinkedListLength)) {
152 return (BOOLEAN)(Ptr == SecondEntry);
156 if (Ptr == SecondEntry) {
159 }
while (Ptr != FirstEntry);
187 ASSERT (ListHead !=
NULL);
189 ListHead->ForwardLink = ListHead;
190 ListHead->BackLink = ListHead;
228 Entry->ForwardLink = ListHead->ForwardLink;
229 Entry->BackLink = ListHead;
230 Entry->ForwardLink->BackLink = Entry;
231 ListHead->ForwardLink = Entry;
269 Entry->ForwardLink = ListHead;
270 Entry->BackLink = ListHead->BackLink;
271 Entry->BackLink->ForwardLink = Entry;
272 ListHead->BackLink = Entry;
307 return List->ForwardLink;
343 return Node->ForwardLink;
379 return Node->BackLink;
412 return (BOOLEAN)(ListHead->ForwardLink == ListHead);
453 return (BOOLEAN)(Node == List);
491 return (BOOLEAN)(!
IsNull (List, Node) && List->BackLink == Node);
529 if (FirstEntry == SecondEntry) {
547 if (Ptr->BackLink == SecondEntry) {
596 Entry->ForwardLink->BackLink = Entry->BackLink;
597 Entry->BackLink->ForwardLink = Entry->ForwardLink;
598 return Entry->ForwardLink;
BOOLEAN EFIAPI IsNull(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
LIST_ENTRY *EFIAPI GetPreviousNode(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
BOOLEAN EFIAPI IsListEmpty(IN CONST LIST_ENTRY *ListHead)
BOOLEAN EFIAPI InternalBaseLibIsListValid(IN CONST LIST_ENTRY *List)
LIST_ENTRY *EFIAPI GetNextNode(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
BOOLEAN EFIAPI IsNodeAtEnd(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
LIST_ENTRY *EFIAPI InsertHeadList(IN OUT LIST_ENTRY *ListHead, IN OUT LIST_ENTRY *Entry)
#define ASSERT_VERIFY_NODE_IN_VALID_LIST(FirstEntry, SecondEntry, InList)
LIST_ENTRY *EFIAPI GetFirstNode(IN CONST LIST_ENTRY *List)
LIST_ENTRY *EFIAPI SwapListEntries(IN OUT LIST_ENTRY *FirstEntry, IN OUT LIST_ENTRY *SecondEntry)
LIST_ENTRY *EFIAPI RemoveEntryList(IN CONST LIST_ENTRY *Entry)
LIST_ENTRY *EFIAPI InitializeListHead(IN OUT LIST_ENTRY *ListHead)
BOOLEAN EFIAPI IsNodeInList(IN CONST LIST_ENTRY *FirstEntry, IN CONST LIST_ENTRY *SecondEntry)
LIST_ENTRY *EFIAPI InsertTailList(IN OUT LIST_ENTRY *ListHead, IN OUT LIST_ENTRY *Entry)
#define PcdGet32(TokenName)