From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (EUR04-HE1-obe.outbound.protection.outlook.com [40.107.7.81]) by mx.groups.io with SMTP id smtpd.web12.8876.1633098883257147041 for ; Fri, 01 Oct 2021 07:34:44 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=5UpW7osA; spf=pass (domain: arm.com, ip: 40.107.7.81, mailfrom: sami.mujawar@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=83TnSNEeLlfaav+aI66DPc7w3dD3qCQK5HfpZ809MQs=; b=5UpW7osAGaco+xa0QwTNFV+qUeeMD6wICVmbG0fRQdWbju4icGog26FlhgfAFRtUwktBkgbmojkhaA0K3lutydyy9p7bokMeyHJOhNv0qUZ2rJwpqveBMWJvX8YqiVtH2XCA1+Xdt41E25eAXfNXFO2GX5Veu1rc++deFSicrI4= Received: from AS8PR04CA0056.eurprd04.prod.outlook.com (2603:10a6:20b:312::31) by PA4PR08MB5920.eurprd08.prod.outlook.com (2603:10a6:102:ea::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14; Fri, 1 Oct 2021 14:34:40 +0000 Received: from VE1EUR03FT041.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:312:cafe::7e) by AS8PR04CA0056.outlook.office365.com (2603:10a6:20b:312::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14 via Frontend Transport; Fri, 1 Oct 2021 14:34:40 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT041.mail.protection.outlook.com (10.152.19.163) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14 via Frontend Transport; Fri, 1 Oct 2021 14:34:39 +0000 Received: ("Tessian outbound a492f2284909:v103"); Fri, 01 Oct 2021 14:34:28 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: bd87a98c0600a1a9 X-CR-MTA-TID: 64aa7808 Received: from c449f4d862ac.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 1FA943EA-59C1-4897-86DE-3761D961540F.1; Fri, 01 Oct 2021 14:34:13 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c449f4d862ac.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 01 Oct 2021 14:34:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AD2bPXm5KxE221uDaU5bDCnhCXUc1bAw7X9PUjQCFLFlDxQP3G2b7RnUQ+VH3lVbD8CKLC+S1U6Y0oqODfYfP2bKlDGLu3ZzXfm1iTO1IsvcHWP8LvmI9Ykz0aOKir4IFSwcLz9xlrVTwTMm8MVGLVeWFc1HcvNV0tv3IOcqguRXKyyWh4Q8PyCLZll1htwIno29/3m0Xe/SWoQOKBNq6CP36n87X1JhUD1fm5c3j1gipkhfhBSfEPNXFd5TdG2ZkY4Qnso99hkoNJRwTRL1fzwNGo2jINKj4MOH9zldsV1MKsoi56UCz0ndD4EboXe2f4+GUPJsCxvs0AgXekVQkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=83TnSNEeLlfaav+aI66DPc7w3dD3qCQK5HfpZ809MQs=; b=HJ5hROc0RFE18MVx13iG/13HFQXjjrIS5L1vOMggSqkCZu4efdId0g1/3MToI5wqdxfU9+PPOQkxlEb4WPiCMHqcTGH8k0Rf8Wt8Tfa628IloHlNvn8ljqftU1F+QrfR1blH6RQPwGFeoXB9UoLDV8KCpozFrHoJQ8pKdH7zEuhsmcmQvUABwTE7hSfcrFJIN1E0ow59En9izg/L41u7iHyAhTqiMRRUFbuy8b1b+d/+bsGsDE1Obz/pk5rb511VngWQYA0zDJ+xDXIWEdOMJ6JmThM329/TxTSxPCRaejJUmn8LKReF39nSbrdywaEBhsFcxreA9fJo0Z7d6dEmjQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=83TnSNEeLlfaav+aI66DPc7w3dD3qCQK5HfpZ809MQs=; b=5UpW7osAGaco+xa0QwTNFV+qUeeMD6wICVmbG0fRQdWbju4icGog26FlhgfAFRtUwktBkgbmojkhaA0K3lutydyy9p7bokMeyHJOhNv0qUZ2rJwpqveBMWJvX8YqiVtH2XCA1+Xdt41E25eAXfNXFO2GX5Veu1rc++deFSicrI4= Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB6806.eurprd08.prod.outlook.com (2603:10a6:20b:39b::12) by AS8PR08MB6904.eurprd08.prod.outlook.com (2603:10a6:20b:394::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.19; Fri, 1 Oct 2021 14:34:09 +0000 Received: from AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::c8a5:672a:9ff2:e554]) by AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::c8a5:672a:9ff2:e554%6]) with mapi id 15.20.4566.019; Fri, 1 Oct 2021 14:34:09 +0000 Subject: Re: [PATCH v1 06/13] DynamicTablesPkg: AML code generation for a ResourceTemplate To: Pierre.Gondois@arm.com, devel@edk2.groups.io, Alexei Fedorov Cc: Akanksha Jain , Alexandru Elisei , nd References: <20210623114039.24491-1-Pierre.Gondois@arm.com> <20210623114039.24491-7-Pierre.Gondois@arm.com> From: "Sami Mujawar" Message-ID: Date: Fri, 1 Oct 2021 15:34:12 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.0.1 In-Reply-To: <20210623114039.24491-7-Pierre.Gondois@arm.com> X-ClientProxiedBy: LO4P123CA0013.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:150::18) To AS8PR08MB6806.eurprd08.prod.outlook.com (2603:10a6:20b:39b::12) MIME-Version: 1.0 Received: from [10.1.196.43] (217.140.106.52) by LO4P123CA0013.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:150::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.15 via Frontend Transport; Fri, 1 Oct 2021 14:34:09 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4d7735dc-52f9-4362-dc71-08d984e899f3 X-MS-TrafficTypeDiagnostic: AS8PR08MB6904:|PA4PR08MB5920: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:3968;OLM:3968; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: Rudv1gd3whSI5133WIoK7TIPfgRDwn8Tz+isUi36FoZdDcggh2AvjeW3LwJU3BUkcfrjKwUbEVhDkkY8fxjDeRu9KxQHkZUinWboa5HMdqoRPmQeZZAYg3kqHEcfwxUD2w9xzSMKuygAHMcHcYOhwDHltitOPg7+JQPFgskw+xFldSuoKdmP/QW7TFyTuLlySKqzgIs4z2wmCEdS0CAXm89LXDWtE2W6/r4PsZq0gMZ28GceshsWe1E9Ao/BBu8UgSKEzOLTp+sQwHZzuRAaL/aDSR8ajYEGOFz05bvDgH2JbyOMWl/MWxyYsv/pIdFdyErPtRdJ5EjOgwqUjlmNgCwcgMggtvo1M0Qi1UxldoSphl0I7IVqKDqW+lYkQY44x1bhm3+xXckFKZaf8oJPgzbJHPSFPBQXMi/zbqCsxJHBSUL5QzRzeNYBAkxkCDGsNo7msd8rcTUpMhfWaLzL39bQUcg9tltnLGbcTpZ+ccRTZyDv0tNZFuneaBZNGie0lmJPOVGKcFvy11NOLj0z23jyAoc+XCseI7Z7IE+qQUUypVr2fVYhIvmoSg+SjcXbgqoSr98NOh6ITW3h33uEmroOQY8FuH915mp4pFQJoK3gfLF7dkvBSKYXe2lTeFom5UbEm3H/l/hPcuqS+e5FAVVAZZsV376dwNtfKoSJlbP7tW2JrliqSJSf6F0G25mhj0FL+2vkMbMB8w2nh4B+8Z374PNQlVRcglOL+3qDvJrsqaHLblizt9uRglIiPWyfkrBM7OyKlVpXAcdDMNzgDQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6806.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(53546011)(54906003)(52116002)(26005)(16576012)(38350700002)(38100700002)(44832011)(4326008)(5660300002)(316002)(6636002)(2906002)(31686004)(36756003)(37006003)(66946007)(956004)(6666004)(31696002)(83380400001)(8676002)(6862004)(186003)(86362001)(2616005)(66476007)(8936002)(66556008)(6486002)(508600001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6904 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; Return-Path: Sami.Mujawar@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT041.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 6cc9804b-3776-4518-ee05-08d984e887ce X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: B1VRL1eIeen/iEBdMI5RAUgNrSNuHmHCTGDgfSu2TNjtQhYTPP6AMyKRmXlcgncMdBGLDIUIwdmhSDwDJ65gz/x3r8c6S9AScIeUQZaNFUC2AKXPX71AigHU0IgUoKO7ZruA7E3dz4S1uQvzQREnk7NCUyfdB18XQXFFgHnuHjtdGElx5raaXnn1qQvOIEIj17XJ8fIFvVUHQHdUy9irkWmKW5/LH/HgY93lZ9hdYorW2DZesXHyOU6MhY/QFFoQXhT/5aJ2p5xVcySoNbHSKFQyGhcYBgK5uLV/ztfod4U77heLT/TBJRTJ7SW5Ch4siqm41KRea8NF5OIGjBr6CjXrBMxKebyR+5bkLyD/1agKJ1MSQJt3C3Hie7Ox1X2EAHJCykASw8SAoXe8NIDOkr7K+u0+uXRFryG7748iZrz1YDc2F2SGhesPRoraOhq0Vbg9He1SUxmbh3LB+VGmm+131yJ47K9elx5avhyqwdSJOl4Q7jmtm8UQ9HdBr7F19rDUHPso20TMKDfy+Njz41ezE6XKF51jFM9Y5nfjsIhdF3iRRBURKDzIB4C6R7YZeOWnybnEdhR1d4clh5pHgud+BdTlzqV9NkvkpyjZmqAC7TGBsIJGFcedNIuZnPE03V5yErel0/YBKPjig8VH100GCegWvObzmsTXg4z0xtRijLCy6ODk2/3kmCvjQ4hQLbAKzHfkSZvwp9KEj7KrFl0bwzJp4OOm3emxiv43bDU= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(31696002)(83380400001)(70206006)(36860700001)(26005)(6636002)(53546011)(6666004)(82310400003)(336012)(6486002)(956004)(2616005)(6862004)(508600001)(70586007)(36756003)(16576012)(37006003)(316002)(86362001)(44832011)(8676002)(5660300002)(4326008)(186003)(2906002)(54906003)(356005)(8936002)(31686004)(47076005)(81166007)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Oct 2021 14:34:39.8041 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4d7735dc-52f9-4362-dc71-08d984e899f3 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT041.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB5920 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB Hi Pierre, Thank you for this patch. Reviewed-by: Sami Mujawar Regards, Sami Mujawar On 23/06/2021 12:40 PM, Pierre.Gondois@arm.com wrote: > From: Pierre Gondois > > ASL provides a ResourceTemplate macro that creates a Buffer in which > resource descriptor macros can be listed. The ResourceTemplate macro > automatically generates an End descriptor and calculates the checksum > for the resource template. > > Therefore, add AmlCodeGenResourceTemplate() to generate AML code for > the ResourceTemplate() macro. This function generates a Buffer node > with an EndTag resource data descriptor, which is similar to the ASL > ResourceTemplate() macro. > > Signed-off-by: Pierre Gondois > --- > .../Common/AmlLib/CodeGen/AmlCodeGen.c | 192 ++++++++++++++++++ > 1 file changed, 192 insertions(+) > > diff --git a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > index ea9b73b464a4..faf7902c1f21 100644 > --- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > +++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > @@ -12,6 +12,7 @@ > > #include > #include > +#include > #include > #include > #include > @@ -315,6 +316,197 @@ error_handler: > return Status; > } > > +/** AML code generation for a Buffer object node. > + > + To create a Buffer object node with an empty buffer, > + call the function with (Buffer=NULL, BufferSize=0). > + > + @param [in] Buffer Buffer to set for the created Buffer > + object node. The Buffer's content is copied. > + NULL if there is no buffer to set for > + the Buffer node. > + @param [in] BufferSize Size of the Buffer. > + 0 if there is no buffer to set for > + the Buffer node. > + @param [out] NewObjectNode If success, contains the created > + Buffer object node. > + > + @retval EFI_SUCCESS Success. > + @retval EFI_INVALID_PARAMETER Invalid parameter. > + @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. > +**/ > +STATIC > +EFI_STATUS > +EFIAPI > +AmlCodeGenBuffer ( > + IN CONST UINT8 * Buffer, OPTIONAL > + IN UINT32 BufferSize, OPTIONAL > + OUT AML_OBJECT_NODE ** NewObjectNode > + ) > +{ > + EFI_STATUS Status; > + AML_OBJECT_NODE * BufferNode; > + AML_OBJECT_NODE * BufferSizeNode; > + UINT32 BufferSizeNodeSize; > + AML_DATA_NODE * DataNode; > + UINT32 PkgLen; > + > + // Buffer and BufferSize must be either both set, or both clear. > + if ((NewObjectNode == NULL) || > + ((Buffer == NULL) != (BufferSize == 0))) { > + ASSERT (0); > + return EFI_INVALID_PARAMETER; > + } > + > + BufferNode = NULL; > + DataNode = NULL; > + > + // Cf ACPI 6.3 specification, s20.2.5.4 "Type 2 Opcodes Encoding" > + // DefBuffer := BufferOp PkgLength BufferSize ByteList > + // BufferOp := 0x11 > + // BufferSize := TermArg => Integer > + > + Status = AmlCodeGenInteger (BufferSize, &BufferSizeNode); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + return Status; > + } > + > + // Get the number of bytes required to encode the BufferSizeNode. > + Status = AmlComputeSize ( > + (AML_NODE_HEADER*)BufferSizeNode, > + &BufferSizeNodeSize > + ); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + goto error_handler; > + } > + > + // Compute the size to write in the PkgLen. > + Status = AmlComputePkgLength (BufferSizeNodeSize + BufferSize, &PkgLen); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + goto error_handler; > + } > + > + // Create an object node for the buffer. > + Status = AmlCreateObjectNode ( > + AmlGetByteEncodingByOpCode (AML_BUFFER_OP, 0), > + PkgLen, > + &BufferNode > + ); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + goto error_handler; > + } > + > + // Set the BufferSizeNode as a fixed argument of the BufferNode. > + Status = AmlSetFixedArgument ( > + BufferNode, > + EAmlParseIndexTerm0, > + (AML_NODE_HEADER*)BufferSizeNode > + ); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + goto error_handler; > + } > + > + // BufferSizeNode is now attached. > + BufferSizeNode = NULL; > + > + // If there is a buffer, create a DataNode and attach it to the BufferNode. > + if (Buffer != NULL) { > + Status = AmlCreateDataNode ( > + EAmlNodeDataTypeRaw, > + Buffer, > + BufferSize, > + &DataNode > + ); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + goto error_handler; > + } > + > + Status = AmlVarListAddTail ( > + (AML_NODE_HEADER*)BufferNode, > + (AML_NODE_HEADER*)DataNode > + ); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + goto error_handler; > + } > + } > + > + *NewObjectNode = BufferNode; > + return Status; > + > +error_handler: > + if (BufferSizeNode != NULL) { > + AmlDeleteTree ((AML_NODE_HEADER*)BufferSizeNode); > + } > + if (BufferNode != NULL) { > + AmlDeleteTree ((AML_NODE_HEADER*)BufferNode); > + } > + if (DataNode != NULL) { > + AmlDeleteTree ((AML_NODE_HEADER*)DataNode); > + } > + return Status; > +} > + > +/** AML code generation for a ResourceTemplate. > + > + "ResourceTemplate" is a macro defined in ACPI 6.3, s19.3.3 > + "ASL Resource Templates". It allows to store resource data elements. > + > + In AML, a ResourceTemplate is implemented as a Buffer storing resource > + data elements. An EndTag resource data descriptor must be at the end > + of the list of resource data elements. > + This function generates a Buffer node with an EndTag resource data > + descriptor. It can be seen as an empty list of resource data elements. > + > + @param [out] NewObjectNode If success, contains the created > + ResourceTemplate object node. > + > + @retval EFI_SUCCESS Success. > + @retval EFI_INVALID_PARAMETER Invalid parameter. > + @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. > +**/ > +STATIC > +EFI_STATUS > +EFIAPI > +AmlCodeGenResourceTemplate ( > + OUT AML_OBJECT_NODE ** NewObjectNode > + ) > +{ > + EFI_STATUS Status; > + AML_OBJECT_NODE * BufferNode; > + > + if (NewObjectNode == NULL) { > + ASSERT (0); > + return EFI_INVALID_PARAMETER; > + } > + > + BufferNode = NULL; > + > + // Create a BufferNode with an empty buffer. > + Status = AmlCodeGenBuffer (NULL, 0, &BufferNode); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + return Status; > + } > + > + // Create an EndTag resource data element and attach it to the Buffer. > + Status = AmlCodeGenEndTag (0, BufferNode, NULL); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + AmlDeleteTree ((AML_NODE_HEADER*)BufferNode); > + return Status; > + } > + > + *NewObjectNode = BufferNode; > + return Status; > +} > + > /** AML code generation for a Name object node. > > @param [in] NameString The new variable name.