TianoCore EDK2 master
Loading...
Searching...
No Matches
Tree modification APIs

Functions

EFI_STATUS EFIAPI AmlRemoveNodeFromVarArgList (IN AML_NODE_HANDLE Node)
 
EFI_STATUS EFIAPI AmlVarListAddHead (IN AML_NODE_HANDLE ParentNode, IN AML_NODE_HANDLE NewNode)
 
EFI_STATUS EFIAPI AmlVarListAddTail (IN AML_NODE_HANDLE ParentNode, IN AML_NODE_HANDLE NewNode)
 
EFI_STATUS EFIAPI AmlVarListAddBefore (IN AML_NODE_HANDLE Node, IN AML_NODE_HANDLE NewNode)
 
EFI_STATUS EFIAPI AmlVarListAddAfter (IN AML_NODE_HANDLE Node, IN AML_NODE_HANDLE NewNode)
 
EFI_STATUS EFIAPI AmlReplaceVariableArgument (IN AML_NODE_HANDLE OldNode, IN AML_NODE_HANDLE NewNode)
 

Detailed Description

Tree modification APIs allow to add/remove/replace nodes that are in a variable list of arguments.

No interface is provided to add/remove/replace nodes that are in a fixed list of arguments. Indeed, these nodes are the spine of the tree and a mismanipulation would make the tree inconsistent.

It is however possible to modify the content of fixed argument nodes via Node Interface APIs APIs.

Function Documentation

◆ AmlRemoveNodeFromVarArgList()

EFI_STATUS EFIAPI AmlRemoveNodeFromVarArgList ( IN AML_NODE_HANDLE  Node)

Remove the Node from its parent's variable list of arguments.

The function will fail if the Node is in its parent's fixed argument list. The Node is not deleted. The deletion is done separately from the removal.

Parameters
[in]NodePointer to a Node. Must be a data node or an object node.
Return values
EFI_SUCCESSThe function completed successfully.
EFI_INVALID_PARAMETERInvalid parameter.

◆ AmlReplaceVariableArgument()

EFI_STATUS EFIAPI AmlReplaceVariableArgument ( IN AML_NODE_HANDLE  OldNode,
IN AML_NODE_HANDLE  NewNode 
)

Replace the OldNode, which is in a variable list of arguments, with the NewNode.

Note: This function unlinks the OldNode from the tree. It is the callers responsibility to delete the OldNode if needed.

Parameters
[in]OldNodePointer to the node to replace. Must be a data node or an object node.
[in]NewNodeThe new node to insert. Must be a data node or an object node.
Return values
EFI_SUCCESSThe function completed successfully.
EFI_INVALID_PARAMETERInvalid parameter.

◆ AmlVarListAddAfter()

EFI_STATUS EFIAPI AmlVarListAddAfter ( IN AML_NODE_HANDLE  Node,
IN AML_NODE_HANDLE  NewNode 
)

Add the NewNode after the Node in the variable list of arguments of the Node's parent.

Parameters
[in]NodePointer to a node. Must be a root or an object node.
[in]NewNodePointer to the node to add.
Return values
EFI_SUCCESSThe function completed successfully.
EFI_INVALID_PARAMETERInvalid parameter.

◆ AmlVarListAddBefore()

EFI_STATUS EFIAPI AmlVarListAddBefore ( IN AML_NODE_HANDLE  Node,
IN AML_NODE_HANDLE  NewNode 
)

Add the NewNode before the Node in the list of variable arguments of the Node's parent.

Parameters
[in]NodePointer to a node. Must be a root or an object node.
[in]NewNodePointer to the node to add.
Return values
EFI_SUCCESSThe function completed successfully.
EFI_INVALID_PARAMETERInvalid parameter.

◆ AmlVarListAddHead()

EFI_STATUS EFIAPI AmlVarListAddHead ( IN AML_NODE_HANDLE  ParentNode,
IN AML_NODE_HANDLE  NewNode 
)

Add the NewNode to the head of the variable list of arguments of the ParentNode.

Parameters
[in]ParentNodePointer to the parent node. Must be a root or an object node.
[in]NewNodePointer to the node to add.
Return values
EFI_SUCCESSThe function completed successfully.
EFI_INVALID_PARAMETERInvalid parameter.

◆ AmlVarListAddTail()

EFI_STATUS EFIAPI AmlVarListAddTail ( IN AML_NODE_HANDLE  ParentNode,
IN AML_NODE_HANDLE  NewNode 
)

Add the NewNode to the tail of the variable list of arguments of the ParentNode.

Parameters
[in]ParentNodePointer to the parent node. Must be a root or an object node.
[in]NewNodePointer to the node to add.
Return values
EFI_SUCCESSThe function completed successfully.
EFI_INVALID_PARAMETERInvalid parameter.