Hi Pierre,
Thank you for this patch.
Reviewed-by: Sami Mujawar <sami.muja...@arm.com>
Regards,
Sami Mujawar
On 23/06/2021 12:58 PM, pierre.gond...@arm.com wrote:
From: Pierre Gondois <pierre.gond...@arm.com>
This function allows to add a node as the last node of a parent node
in an AML tree. For instance,
ASL code corresponding to NewNode:
Name (_UID, 0)
ASL code corresponding to ParentNode:
Device (PCI0) {
Name(_HID, EISAID("PNP0A08"))
}
"AmlAttachNode (ParentNode, NewNode)" will result in:
ASL code:
Device (PCI0) {
Name(_HID, EISAID("PNP0A08"))
Name (_UID, 0)
}
Signed-off-by: Pierre Gondois <pierre.gond...@arm.com>
---
.../Include/Library/AmlLib/AmlLib.h | 33 +++++++++++++++++
.../Library/Common/AmlLib/Api/AmlApi.c | 36 +++++++++++++++++++
2 files changed, 69 insertions(+)
diff --git a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h
b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h
index 4a10da8cd7bb..b4766726e84d 100644
--- a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h
+++ b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h
@@ -166,6 +166,39 @@ AmlDetachNode (
IN AML_NODE_HANDLE Node
);
+/** Attach a node in an AML tree.
+
+ The node will be added as the last statement of the ParentNode.
+ E.g.:
+ ASL code corresponding to NewNode:
+ Name (_UID, 0)
+
+ ASL code corresponding to ParentNode:
+ Device (PCI0) {
+ Name(_HID, EISAID("PNP0A08"))
+ }
+
+ "AmlAttachNode (ParentNode, NewNode)" will result in:
+ ASL code:
+ Device (PCI0) {
+ Name(_HID, EISAID("PNP0A08"))
+ Name (_UID, 0)
+ }
+
+ @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
+AmlAttachNode (
+ IN AML_NODE_HANDLE ParentNode,
+ IN AML_NODE_HANDLE NewNode
+ );
+
/** Find a node in the AML namespace, given an ASL path and a reference Node.
- The AslPath can be an absolute path, or a relative path from the
diff --git a/DynamicTablesPkg/Library/Common/AmlLib/Api/AmlApi.c
b/DynamicTablesPkg/Library/Common/AmlLib/Api/AmlApi.c
index 6f9e3f6f2805..def581299f5c 100644
--- a/DynamicTablesPkg/Library/Common/AmlLib/Api/AmlApi.c
+++ b/DynamicTablesPkg/Library/Common/AmlLib/Api/AmlApi.c
@@ -379,6 +379,42 @@ AmlNameOpGetNextRdNode (
return EFI_SUCCESS;
}
+/** Attach a node in an AML tree.
+
+ The node will be added as the last statement of the ParentNode.
+ E.g.:
+ ASL code corresponding to NewNode:
+ Name (_UID, 0)
+
+ ASL code corresponding to ParentNode:
+ Device (PCI0) {
+ Name(_HID, EISAID("PNP0A08"))
+ }
+
+ "AmlAttachNode (ParentNode, NewNode)" will result in:
+ ASL code:
+ Device (PCI0) {
+ Name(_HID, EISAID("PNP0A08"))
+ Name (_UID, 0)
+ }
+
+ @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
+AmlAttachNode (
+ IN AML_NODE_HANDLE ParentNode,
+ IN AML_NODE_HANDLE NewNode
+ )
+{
+ return AmlVarListAddTail (ParentNode, NewNode);
+}
+
// DEPRECATED APIS
#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#81560): https://edk2.groups.io/g/devel/message/81560
Mute This Topic: https://groups.io/mt/83735876/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-