summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c10
-rw-r--r--DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c10
-rw-r--r--DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNode.c18
-rw-r--r--DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNode.h12
4 files changed, 40 insertions, 10 deletions
diff --git a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c
index 5d310f2013..4775b68cd9 100644
--- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c
+++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c
@@ -22,7 +22,9 @@
@param [in] Node Newly created node.
@param [in] ParentNode If provided, set ParentNode as the parent
of the node created.
- @param [out] NewObjectNode If success, contains the created object node.
+ @param [out] NewObjectNode If not NULL:
+ - and Success, contains the created Node.
+ - and Error, reset to NULL.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INVALID_PARAMETER Invalid parameter.
@@ -39,7 +41,7 @@ LinkNode (
EFI_STATUS Status;
if (NewObjectNode != NULL) {
- *NewObjectNode = Node;
+ *NewObjectNode = NULL;
}
// Add RdNode as the last element.
@@ -51,6 +53,10 @@ LinkNode (
}
}
+ if (NewObjectNode != NULL) {
+ *NewObjectNode = Node;
+ }
+
return EFI_SUCCESS;
}
diff --git a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c
index 089597a6c9..cba942c0fd 100644
--- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c
+++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c
@@ -33,7 +33,9 @@
RdNode is then added at the end of the variable
list of resource data elements, but before the
"End Tag" Resource Data.
- @param [out] NewRdNode If not NULL, update the its value to RdNode.
+ @param [out] NewRdNode If not NULL:
+ - and Success, contains RdNode.
+ - and Error, reset to NULL.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INVALID_PARAMETER Invalid parameter.
@@ -52,7 +54,7 @@ LinkRdNode (
AML_OBJECT_NODE *BufferOpNode;
if (NewRdNode != NULL) {
- *NewRdNode = RdNode;
+ *NewRdNode = NULL;
}
if (ParentNode != NULL) {
@@ -85,6 +87,10 @@ LinkRdNode (
}
}
+ if (NewRdNode != NULL) {
+ *NewRdNode = RdNode;
+ }
+
return Status;
error_handler:
diff --git a/DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNode.c b/DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNode.c
index 3740c0ac7b..300b07a2ef 100644
--- a/DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNode.c
+++ b/DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNode.c
@@ -79,7 +79,9 @@ AmlDeleteRootNode (
@param [in] SdtHeader Pointer to an ACPI DSDT/SSDT header to copy
the data from.
- @param [out] NewRootNodePtr The created AML_ROOT_NODE.
+ @param [out] NewRootNodePtr If success, contains the created
+ AML_ROOT_NODE.
+ Otherwise reset to NULL.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INVALID_PARAMETER Invalid parameter.
@@ -101,6 +103,8 @@ AmlCreateRootNode (
return EFI_INVALID_PARAMETER;
}
+ *NewRootNodePtr = NULL;
+
RootNode = AllocateZeroPool (sizeof (AML_ROOT_NODE));
if (RootNode == NULL) {
ASSERT (0);
@@ -163,7 +167,9 @@ AmlDeleteObjectNode (
@param [in] PkgLength PkgLength of the node if the AmlByteEncoding
has the PkgLen attribute.
0 otherwise.
- @param [out] NewObjectNodePtr The created AML_OBJECT_NODE.
+ @param [out] NewObjectNodePtr If success, contains the created
+ AML_OBJECT_NODE.
+ Otherwise reset to NULL.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INVALID_PARAMETER Invalid parameter.
@@ -186,6 +192,8 @@ AmlCreateObjectNode (
return EFI_INVALID_PARAMETER;
}
+ *NewObjectNodePtr = NULL;
+
ObjectNode = AllocateZeroPool (sizeof (AML_OBJECT_NODE));
if (ObjectNode == NULL) {
ASSERT (0);
@@ -252,7 +260,9 @@ AmlDeleteDataNode (
this node. Data is copied from there.
@param [in] DataSize Number of bytes to consider at the address
pointed by Data.
- @param [out] NewDataNodePtr The created AML_DATA_NODE.
+ @param [out] NewDataNodePtr If success, contains the created
+ AML_DATA_NODE.
+ Otherwise reset to NULL.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INVALID_PARAMETER Invalid parameter.
@@ -284,6 +294,8 @@ AmlCreateDataNode (
return EFI_INVALID_PARAMETER;
}
+ *NewDataNodePtr = NULL;
+
DataNode = AllocateZeroPool (sizeof (AML_DATA_NODE));
if (DataNode == NULL) {
ASSERT (0);
diff --git a/DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNode.h b/DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNode.h
index 3584b572ba..465a0e2b4b 100644
--- a/DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNode.h
+++ b/DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNode.h
@@ -17,7 +17,9 @@
@param [in] SdtHeader Pointer to an ACPI DSDT/SSDT header to copy
the data from.
- @param [out] NewRootNodePtr The created AML_ROOT_NODE.
+ @param [out] NewRootNodePtr If success, contains the created
+ AML_ROOT_NODE.
+ Otherwise reset to NULL.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INVALID_PARAMETER Invalid parameter.
@@ -36,7 +38,9 @@ AmlCreateRootNode (
@param [in] PkgLength PkgLength of the node if the AmlByteEncoding
has the PkgLen attribute.
0 otherwise.
- @param [out] NewObjectNodePtr The created AML_OBJECT_NODE.
+ @param [out] NewObjectNodePtr If success, contains the created
+ AML_OBJECT_NODE.
+ Otherwise reset to NULL.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INVALID_PARAMETER Invalid parameter.
@@ -57,7 +61,9 @@ AmlCreateObjectNode (
this node. Data is copied from there.
@param [in] DataSize Number of bytes to consider at the address
pointed by Data.
- @param [out] NewDataNodePtr The created AML_DATA_NODE.
+ @param [out] NewDataNodePtr If success, contains the created
+ AML_DATA_NODE.
+ Otherwise reset to NULL.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INVALID_PARAMETER Invalid parameter.