TianoCore EDK2 master
Loading...
Searching...
No Matches
Core APIs

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)
 

Detailed Description

Core APIs are the main APIs of the library. They allow to:

Function Documentation

◆ AmlCloneNode()

EFI_STATUS EFIAPI AmlCloneNode ( IN AML_NODE_HANDLE  Node,
OUT AML_NODE_HANDLE ClonedNode 
)

Clone a node.

This function does not clone the children nodes. The cloned node returned is not attached to any tree.

Parameters
[in]NodePointer to a node.
[out]ClonedNodePointer holding the cloned node.
Return values
EFI_SUCCESSThe function completed successfully.
EFI_INVALID_PARAMETERInvalid parameter.
EFI_OUT_OF_RESOURCESCould not allocate memory.

◆ AmlSerializeTree()

EFI_STATUS EFIAPI AmlSerializeTree ( IN AML_ROOT_NODE_HANDLE  RootNode,
IN UINT8 *Buffer  OPTIONAL,
IN OUT UINT32 *  BufferSize 
)

Serialize a tree to create a DSDT/SSDT table.

If:

  • the content of BufferSize is >= to the size needed to serialize the definition block;
  • Buffer is not NULL; first serialize the ACPI DSDT/SSDT header from the root node, then serialize the AML blob from the rest of the tree.

The content of BufferSize is always updated to the size needed to serialize the definition block.

Parameters
[in]RootNodePointer to a root node.
[in]BufferBuffer to write the DSDT/SSDT table to. If Buffer is NULL, the size needed to serialize the DSDT/SSDT table is returned in BufferSize.
[in,out]BufferSizePointer holding the size of the Buffer. Its content is always updated to the size needed to serialize the DSDT/SSDT table.
Return values
EFI_SUCCESSThe function completed successfully.
EFI_INVALID_PARAMETERInvalid parameter.
EFI_BUFFER_TOO_SMALLNo space left in the buffer.