mirror of https://github.com/acidanthera/audk.git
1) Add new BaseLib API GetPreviousNode()
2) Clarify comment for the value returned from GetNextNode() if the end of list is reached. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9464 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
e1da91ad12
commit
cbca8de588
|
@ -1383,8 +1383,7 @@ GetFirstNode (
|
||||||
@param List A pointer to the head node of a doubly linked list.
|
@param List A pointer to the head node of a doubly linked list.
|
||||||
@param Node A pointer to a node in the doubly linked list.
|
@param Node A pointer to a node in the doubly linked list.
|
||||||
|
|
||||||
@return Pointer to the next node if one exists. Otherwise a null value which
|
@return Pointer to the next node if one exists. Otherwise List is returned.
|
||||||
is actually List is returned.
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
LIST_ENTRY *
|
LIST_ENTRY *
|
||||||
|
@ -1394,7 +1393,36 @@ GetNextNode (
|
||||||
IN CONST LIST_ENTRY *Node
|
IN CONST LIST_ENTRY *Node
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves the previous node of a doubly linked list.
|
||||||
|
|
||||||
|
Returns the node of a doubly linked list that precedes Node.
|
||||||
|
List must have been initialized with INTIALIZE_LIST_HEAD_VARIABLE()
|
||||||
|
or InitializeListHead(). If List is empty, then List is returned.
|
||||||
|
|
||||||
|
If List is NULL, then ASSERT().
|
||||||
|
If Node is NULL, then ASSERT().
|
||||||
|
If List was not initialized with INTIALIZE_LIST_HEAD_VARIABLE() or
|
||||||
|
InitializeListHead(), then ASSERT().
|
||||||
|
If PcdMaximumLinkedListLenth is not zero, and List contains more than
|
||||||
|
PcdMaximumLinkedListLenth nodes, then ASSERT().
|
||||||
|
If PcdVerifyNodeInList is TRUE and Node is not a node in List, then ASSERT().
|
||||||
|
|
||||||
|
@param List A pointer to the head node of a doubly linked list.
|
||||||
|
@param Node A pointer to a node in the doubly linked list.
|
||||||
|
|
||||||
|
@return Pointer to the previous node if one exists. Otherwise List is returned.
|
||||||
|
|
||||||
|
**/
|
||||||
|
LIST_ENTRY *
|
||||||
|
EFIAPI
|
||||||
|
GetPreviousNode (
|
||||||
|
IN CONST LIST_ENTRY *List,
|
||||||
|
IN CONST LIST_ENTRY *Node
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Checks to see if a doubly linked list is empty or not.
|
Checks to see if a doubly linked list is empty or not.
|
||||||
|
|
||||||
|
|
|
@ -276,8 +276,7 @@ GetFirstNode (
|
||||||
@param List A pointer to the head node of a doubly linked list.
|
@param List A pointer to the head node of a doubly linked list.
|
||||||
@param Node A pointer to a node in the doubly linked list.
|
@param Node A pointer to a node in the doubly linked list.
|
||||||
|
|
||||||
@return Pointer to the next node if one exists. Otherwise a null value which
|
@return Pointer to the next node if one exists. Otherwise List is returned.
|
||||||
is actually List is returned.
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
LIST_ENTRY *
|
LIST_ENTRY *
|
||||||
|
@ -295,6 +294,42 @@ GetNextNode (
|
||||||
return Node->ForwardLink;
|
return Node->ForwardLink;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves the previous node of a doubly linked list.
|
||||||
|
|
||||||
|
Returns the node of a doubly linked list that precedes Node.
|
||||||
|
List must have been initialized with INTIALIZE_LIST_HEAD_VARIABLE()
|
||||||
|
or InitializeListHead(). If List is empty, then List is returned.
|
||||||
|
|
||||||
|
If List is NULL, then ASSERT().
|
||||||
|
If Node is NULL, then ASSERT().
|
||||||
|
If List was not initialized with INTIALIZE_LIST_HEAD_VARIABLE() or
|
||||||
|
InitializeListHead(), then ASSERT().
|
||||||
|
If PcdMaximumLinkedListLenth is not zero, and List contains more than
|
||||||
|
PcdMaximumLinkedListLenth nodes, then ASSERT().
|
||||||
|
If PcdVerifyNodeInList is TRUE and Node is not a node in List, then ASSERT().
|
||||||
|
|
||||||
|
@param List A pointer to the head node of a doubly linked list.
|
||||||
|
@param Node A pointer to a node in the doubly linked list.
|
||||||
|
|
||||||
|
@return Pointer to the previous node if one exists. Otherwise List is returned.
|
||||||
|
|
||||||
|
**/
|
||||||
|
LIST_ENTRY *
|
||||||
|
EFIAPI
|
||||||
|
GetPreviousNode (
|
||||||
|
IN CONST LIST_ENTRY *List,
|
||||||
|
IN CONST LIST_ENTRY *Node
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// ASSERT List not too long and Node is one of the nodes of List
|
||||||
|
//
|
||||||
|
ASSERT (InternalBaseLibIsNodeInList (List, Node, TRUE));
|
||||||
|
|
||||||
|
return Node->BackLink;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Checks to see if a doubly linked list is empty or not.
|
Checks to see if a doubly linked list is empty or not.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue