TianoCore EDK2 master
Loading...
Searching...
No Matches
AmlCoreInterface.h File Reference

Go to the source code of this file.

Typedefs

typedef BOOLEAN(EFIAPI * EDKII_AML_TREE_ENUM_CALLBACK) (IN AML_NODE_HANDLE Node, IN OUT VOID *Context OPTIONAL, IN OUT EFI_STATUS *Status OPTIONAL)
 

Functions

EFI_STATUS EFIAPI AmlSerializeTree (IN AML_ROOT_NODE_HANDLE RootNode, IN UINT8 *Buffer OPTIONAL, IN OUT UINT32 *BufferSize)
 
EFI_STATUS EFIAPI AmlCloneNode (IN AML_NODE_HANDLE Node, OUT AML_NODE_HANDLE *ClonedNode)
 
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 AmlAppendRdNode (IN AML_OBJECT_NODE_HANDLE BufferOpNode, IN AML_DATA_NODE_HANDLE NewRdNode)
 
EFI_STATUS EFIAPI AmlReplaceVariableArgument (IN AML_NODE_HANDLE OldNode, IN AML_NODE_HANDLE NewNode)
 
EAML_NODE_TYPE EFIAPI AmlGetNodeType (IN AML_NODE_HANDLE Node)
 
EFI_STATUS EFIAPI AmlGetRootNodeInfo (IN AML_ROOT_NODE_HANDLE RootNode, OUT EFI_ACPI_DESCRIPTION_HEADER *SdtHeaderBuffer)
 
EFI_STATUS EFIAPI AmlGetObjectNodeInfo (IN AML_OBJECT_NODE_HANDLE ObjectNode, OUT UINT8 *OpCode OPTIONAL, OUT UINT8 *SubOpCode OPTIONAL, OUT UINT32 *PkgLen OPTIONAL, OUT BOOLEAN *IsNameSpaceNode OPTIONAL)
 
UINT8 AmlGetFixedArgumentCount (IN AML_OBJECT_NODE_HANDLE Node)
 
EFI_STATUS EFIAPI AmlGetNodeDataType (IN AML_DATA_NODE_HANDLE DataNode, OUT EAML_NODE_DATA_TYPE *DataType)
 
EFI_STATUS EFIAPI AmlGetResourceDataType (IN AML_DATA_NODE_HANDLE DataNode, OUT AML_RD_HEADER *ResourceDataType)
 
EFI_STATUS EFIAPI AmlGetDataNodeBuffer (IN AML_DATA_NODE_HANDLE DataNode, OUT UINT8 *Buffer OPTIONAL, IN OUT UINT32 *BufferSize)
 
EFI_STATUS EFIAPI AmlUpdateRootNode (IN AML_ROOT_NODE_HANDLE RootNode, IN CONST EFI_ACPI_DESCRIPTION_HEADER *SdtHeader)
 
EFI_STATUS EFIAPI AmlUpdateInteger (IN AML_OBJECT_NODE_HANDLE IntegerOpNode, IN UINT64 NewInteger)
 
EFI_STATUS EFIAPI AmlUpdateDataNode (IN AML_DATA_NODE_HANDLE DataNode, IN EAML_NODE_DATA_TYPE DataType, IN UINT8 *Buffer, IN UINT32 Size)
 
AML_NODE_HANDLE EFIAPI AmlGetParent (IN AML_NODE_HANDLE Node)
 
AML_NODE_HANDLE EFIAPI AmlGetFixedArgument (IN AML_OBJECT_NODE_HANDLE ObjectNode, IN EAML_PARSE_INDEX Index)
 
AML_NODE_HANDLE EFIAPI AmlGetSiblingVariableArgument (IN AML_NODE_HANDLE VarArgNode)
 
AML_NODE_HANDLE EFIAPI AmlGetNextVariableArgument (IN AML_NODE_HANDLE Node, IN AML_NODE_HANDLE CurrVarArg)
 
AML_NODE_HANDLE EFIAPI AmlGetPreviousVariableArgument (IN AML_NODE_HANDLE Node, IN AML_NODE_HANDLE CurrVarArg)
 
BOOLEAN EFIAPI AmlEnumTree (IN AML_NODE_HANDLE Node, IN EDKII_AML_TREE_ENUM_CALLBACK CallBack, IN OUT VOID *Context OPTIONAL, OUT EFI_STATUS *Status OPTIONAL)
 
EFI_STATUS EFIAPI AmlGetAslPathName (IN AML_NODE_HANDLE Node, OUT CHAR8 *Buffer, IN OUT UINT32 *BufferSize)
 

Detailed Description

AML Core Interface.

Copyright (c) 2019 - 2020, Arm Limited. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file AmlCoreInterface.h.

Function Documentation

◆ AmlAppendRdNode()

EFI_STATUS EFIAPI AmlAppendRdNode ( IN AML_OBJECT_NODE_HANDLE  BufferOpNode,
IN AML_DATA_NODE_HANDLE  NewRdNode 
)

Append a Resource Data node to the BufferOpNode.

The Resource Data node is added at the end of the variable list of arguments of the BufferOpNode, but before the End Tag. If no End Tag is found, the function returns an error.

Parameters
[in]BufferOpNodeBuffer node containing resource data elements.
[in]NewRdNodeThe new Resource Data node to add.
Return values
EFI_SUCCESSThe function completed successfully.
EFI_INVALID_PARAMETERInvalid parameter.

◆ AmlUpdateInteger()

EFI_STATUS EFIAPI AmlUpdateInteger ( IN AML_OBJECT_NODE_HANDLE  IntegerOpNode,
IN UINT64  NewInteger 
)

Update an object node representing an integer with a new value.

The object node must have one of the following OpCodes:

  • AML_BYTE_PREFIX
  • AML_WORD_PREFIX
  • AML_DWORD_PREFIX
  • AML_QWORD_PREFIX
  • AML_ZERO_OP
  • AML_ONE_OP

The following OpCode is not supported:

  • AML_ONES_OP
Parameters
[in]IntegerOpNodePointer an object node containing an integer. Must not be an object node with an AML_ONES_OP OpCode.
[in]NewIntegerNew integer value to set.
Return values
EFI_SUCCESSThe function completed successfully.
EFI_INVALID_PARAMETERInvalid parameter.