From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.23597.1688377373740492192 for ; Mon, 03 Jul 2023 02:42:53 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: pierre.gondois@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 09D371FB; Mon, 3 Jul 2023 02:43:36 -0700 (PDT) Received: from [10.34.100.101] (e126645.nice.arm.com [10.34.100.101]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 77B783F762; Mon, 3 Jul 2023 02:42:52 -0700 (PDT) Message-ID: <512d97dc-a2a1-9271-5afb-cb5f087e0be5@arm.com> Date: Mon, 3 Jul 2023 11:42:48 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 From: "PierreGondois" Subject: Re: [PATCH 3/4] DynamicTablesPkg: Add support to add Strings to package To: Jeff Brasen , devel@edk2.groups.io Cc: Sami.Mujawar@arm.com, Alexei.Fedorov@arm.com, Swatisri Kantamsetti , Ashish Singhal References: <407dc3cb79752a0a49fc06d8b85abd91733cb360.1688079404.git.jbrasen@nvidia.com> In-Reply-To: <407dc3cb79752a0a49fc06d8b85abd91733cb360.1688079404.git.jbrasen@nvidia.com> Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello Jeff, On 6/30/23 01:01, Jeff Brasen wrote: > Add API to add a String to a package created with NamedPackage API. > > Signed-off-by: Jeff Brasen > Reviewed-by: Swatisri Kantamsetti > Reviewed-by: Ashish Singhal > --- > .../Include/Library/AmlLib/AmlLib.h | 17 ++++ > .../Common/AmlLib/CodeGen/AmlCodeGen.c | 82 +++++++++++++++++++ > 2 files changed, 99 insertions(+) > > diff --git a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > index b82c7a3ce8..043e7ee901 100644 > --- a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > +++ b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > @@ -1472,4 +1472,21 @@ AmlCreateCpcNode ( > OUT AML_OBJECT_NODE_HANDLE *NewCpcNode OPTIONAL > ); > > +/** AML code generation to add a string to the package in a named node. > + > + > + @param [in] String String to add > + @param [in] NamedNode Node to add the string to the included package. > + > + @retval EFI_SUCCESS Success. > + @retval EFI_INVALID_PARAMETER Invalid parameter. > + @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. > +**/ > +EFI_STATUS > +EFIAPI > +AmlAddStringToNamedPackage ( > + IN CHAR8 *String, > + IN AML_OBJECT_NODE_HANDLE NamedNode > + ); > + > #endif // AML_LIB_H_ > diff --git a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > index 2b95839e4c..a0d01032d5 100644 > --- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > +++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > @@ -3665,3 +3665,85 @@ error_handler: > AmlDeleteTree ((AML_NODE_HANDLE)CpcNode); > return Status; > } > + > +/** AML code generation to add a string to the package in a named node. > + > + > + @param [in] Name String to add > + @param [in] NamedNode Node to add the string to the included package. > + > + @retval EFI_SUCCESS Success. > + @retval EFI_INVALID_PARAMETER Invalid parameter. > + @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. > +**/ > +EFI_STATUS > +EFIAPI > +AmlAddStringToNamedPackage ( > + IN CHAR8 *String, > + IN AML_OBJECT_NODE_HANDLE NamedNode > + ) > +{ > + EFI_STATUS Status; > + AML_DATA_NODE *DataNode; > + CHAR8 *AmlNameString; > + UINT32 AmlNameStringSize; > + AML_OBJECT_NODE_HANDLE PackageNode; > + > + DataNode = NULL; > + > + if ((NamedNode == NULL) || > + (AmlGetNodeType ((AML_NODE_HANDLE)NamedNode) != EAmlNodeObject) || > + (!AmlNodeHasOpCode (NamedNode, AML_NAME_OP, 0))) > + { > + ASSERT (0); > + return EFI_INVALID_PARAMETER; > + } > + > + PackageNode = (AML_OBJECT_NODE_HANDLE)AmlGetFixedArgument ( > + NamedNode, > + EAmlParseIndexTerm1 > + ); > + if ((PackageNode == NULL) || > + (AmlGetNodeType ((AML_NODE_HANDLE)PackageNode) != EAmlNodeObject) || > + (!AmlNodeHasOpCode (PackageNode, AML_PACKAGE_OP, 0))) > + { > + ASSERT (0); > + return EFI_INVALID_PARAMETER; > + } > + > + Status = ConvertAslNameToAmlName (String, &AmlNameString); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + return Status; > + } IIUC, the function adds a NameString to the package, is it possible to rename the funciton to: AmlAddNameStringToNamedPackage ()