REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the DynamicTablesPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
		
			
				
	
	
		
			127 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   AML Tree.
 | |
| 
 | |
|   Copyright (c) 2019 - 2020, Arm Limited. All rights reserved.<BR>
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| **/
 | |
| 
 | |
| #ifndef AML_TREE_H_
 | |
| #define AML_TREE_H_
 | |
| 
 | |
| #include <AmlNodeDefines.h>
 | |
| 
 | |
| /** Get the root node from any node of the tree.
 | |
|     This is done by climbing up the tree until the root node is reached.
 | |
| 
 | |
|   @param  [in]  Node    Pointer to a node.
 | |
| 
 | |
|   @return The root node of the tree.
 | |
|           NULL if error.
 | |
| */
 | |
| AML_ROOT_NODE *
 | |
| EFIAPI
 | |
| AmlGetRootNode (
 | |
|   IN  CONST AML_NODE_HEADER  *Node
 | |
|   );
 | |
| 
 | |
| /** Check whether the input Node is in the fixed argument list of its parent
 | |
|     node.
 | |
| 
 | |
|   If so, IndexPtr contains this Index.
 | |
| 
 | |
|   @param  [in]  Node          Pointer to a Node.
 | |
|   @param  [out] IndexPtr      Pointer holding the Index of the Node in
 | |
|                               its parent's fixed argument list.
 | |
| 
 | |
|   @retval TRUE   The node is a fixed argument and the index
 | |
|                  in IndexPtr is valid.
 | |
|   @retval FALSE  The node is not a fixed argument.
 | |
| **/
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| AmlIsNodeFixedArgument (
 | |
|   IN  CONST  AML_NODE_HEADER   *Node,
 | |
|   OUT        EAML_PARSE_INDEX  *IndexPtr
 | |
|   );
 | |
| 
 | |
| /** Set the fixed argument of the ObjectNode at the Index to the NewNode.
 | |
| 
 | |
|   It is the caller's responsibility to save the old node, if desired,
 | |
|   otherwise the reference to the old node will be lost.
 | |
|   If NewNode is not NULL, set its parent to ObjectNode.
 | |
| 
 | |
|   @param  [in]  ObjectNode    Pointer to an object node.
 | |
|   @param  [in]  Index         Index in the fixed argument list of
 | |
|                               the ObjectNode to set.
 | |
|   @param  [in]  NewNode       Pointer to the NewNode.
 | |
|                               Can be NULL, a data node or an object node.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The function completed successfully.
 | |
|   @retval EFI_INVALID_PARAMETER   Invalid parameter.
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| AmlSetFixedArgument (
 | |
|   IN  AML_OBJECT_NODE   *ObjectNode,
 | |
|   IN  EAML_PARSE_INDEX  Index,
 | |
|   IN  AML_NODE_HEADER   *NewNode
 | |
|   );
 | |
| 
 | |
| /** If the given AML_NODE_HEADER has a variable list of arguments,
 | |
|     return a pointer to this list.
 | |
|     Return NULL otherwise.
 | |
| 
 | |
|   @param  [in]  Node  Pointer to the AML_NODE_HEADER to check.
 | |
| 
 | |
|   @return The list of variable arguments if there is one.
 | |
|           NULL otherwise.
 | |
| **/
 | |
| LIST_ENTRY *
 | |
| EFIAPI
 | |
| AmlNodeGetVariableArgList (
 | |
|   IN  CONST AML_NODE_HEADER  *Node
 | |
|   );
 | |
| 
 | |
| /** Add the NewNode to the tail of the variable list of arguments
 | |
|     of the ParentNode.
 | |
| 
 | |
|   NOTE: This is an internal function which does not propagate the size
 | |
|         when a new node is added.
 | |
| 
 | |
|   @param  [in]  ParentNode  Pointer to the parent node.
 | |
|                             Must be a root or an object node.
 | |
|   @param  [in]  NewNode     Pointer to the node to add.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The function completed successfully.
 | |
|   @retval EFI_INVALID_PARAMETER   Invalid parameter.
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| AmlVarListAddTailInternal (
 | |
|   IN  AML_NODE_HEADER  *ParentNode,
 | |
|   IN  AML_NODE_HEADER  *NewNode
 | |
|   );
 | |
| 
 | |
| /** Replace the OldNode by the NewNode.
 | |
| 
 | |
|   Note: This function unlinks the OldNode from the tree. It is the callers
 | |
|         responsibility to delete the OldNode if needed.
 | |
| 
 | |
|   @param  [in]  OldNode   Pointer to the node to replace.
 | |
|                           Must be a data node or an object node.
 | |
|   @param  [in]  NewNode   The new node to insert.
 | |
|                           Must be a data node or an object node.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The function completed successfully.
 | |
|   @retval EFI_INVALID_PARAMETER   Invalid parameter.
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| AmlReplaceArgument (
 | |
|   IN  AML_NODE_HEADER  *OldNode,
 | |
|   IN  AML_NODE_HEADER  *NewNode
 | |
|   );
 | |
| 
 | |
| #endif // AML_TREE_H_
 |