From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (EUR01-HE1-obe.outbound.protection.outlook.com [40.107.13.50]) by mx.groups.io with SMTP id smtpd.web10.9970.1633703089563353365 for ; Fri, 08 Oct 2021 07:24:50 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=85GnM5K3; spf=pass (domain: arm.com, ip: 40.107.13.50, 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=Cnx9/hiXbgstzkt5biMysZFWFiGeLTRkFxvBw8Nsvq0=; b=85GnM5K33cAgMn7nR+WEBoVqUdOnHVbqrW/ipE8C+Pb7q5ZdJCZ7Hv/fKwin9v3IycQxEBDzaJCtGgpkJb2PK8qifPX3KdO8J8CoeVrPnUYq2Xsj22OkCswAWUCsWSIKNnbkEkfU0I1ZqYyJraW8QJUnHGLzbyKATGLxgTkk/S8= Received: from AS8PR04CA0160.eurprd04.prod.outlook.com (2603:10a6:20b:331::15) by AM6PR08MB3239.eurprd08.prod.outlook.com (2603:10a6:209:47::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18; Fri, 8 Oct 2021 14:24:46 +0000 Received: from AM5EUR03FT027.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:331:cafe::7a) by AS8PR04CA0160.outlook.office365.com (2603:10a6:20b:331::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.19 via Frontend Transport; Fri, 8 Oct 2021 14:24:46 +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 AM5EUR03FT027.mail.protection.outlook.com (10.152.16.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Fri, 8 Oct 2021 14:24:45 +0000 Received: ("Tessian outbound 16951d3c485e:v103"); Fri, 08 Oct 2021 14:24:45 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 3568ed8d9816a5be X-CR-MTA-TID: 64aa7808 Received: from d12b1e2a0d6f.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 12C1B5F2-4984-40E0-A8F3-D01CB8A0682D.1; Fri, 08 Oct 2021 14:24:38 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d12b1e2a0d6f.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 08 Oct 2021 14:24:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W/zTIATajssh4/2vogl39LwY0pwTrX3eWRj/aHS7+VMX+oCIRgzIy2lChArH7LC5R4Mb1mH0xD7bp2u9DIW5Ng6nOoET+IFyAweApG++7VoOzOkau4BTf7/BBHlW48ZnguhO3MdId5+eXW70rHghNw/K+djAfJS3RxRq8m2vuhiVUhn978dLwxofMsjzcqDDukimvhy2lZY2k7Ihmx2lN0YT3vnl3e6OFZSaQIYPwDsVXT0Lz76YFLNC38BEIZGyv+lvFcI73nR/Om8w7buHnukCcUtBYmYxrBDFcLjlpMG8DJ094p2mioeR3194zmUOwj3RzujrTcpfZOgoXOstkQ== 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=Cnx9/hiXbgstzkt5biMysZFWFiGeLTRkFxvBw8Nsvq0=; b=mbjsuMohP3R6uDbmeI9WFT35Dou0+ZvEAR27ZvpxTWHrGaF0rg8tIp5c4mo/tLtHRa36cl9n4LAhmDRe73WGXNJuK8otSGTq9FsvqcMfJBGYWAg009PwfK5C4mCHJ+Ko5iuTceVE7B+NvKc4BI7p1kd0HrtuMTwPivjX0k3+jqGY/Exmtk60buPX7a1W+Ni5s8yadVlLU8vGTgxusxZSo/7ANW3+vxFghv9ehYDgJZCjB3jrkHXBJZeDreAbiggf1Fdez5Zh/UdA3swd3qdH0FFeFwSRbtQKW1zrs4PnBizqUCLeTgJbd4YgMpqPqBEbxKjULiizIwmLjCol5OM4PQ== 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=Cnx9/hiXbgstzkt5biMysZFWFiGeLTRkFxvBw8Nsvq0=; b=85GnM5K33cAgMn7nR+WEBoVqUdOnHVbqrW/ipE8C+Pb7q5ZdJCZ7Hv/fKwin9v3IycQxEBDzaJCtGgpkJb2PK8qifPX3KdO8J8CoeVrPnUYq2Xsj22OkCswAWUCsWSIKNnbkEkfU0I1ZqYyJraW8QJUnHGLzbyKATGLxgTkk/S8= 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 AS8PR08MB6069.eurprd08.prod.outlook.com (2603:10a6:20b:29c::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.20; Fri, 8 Oct 2021 14:24:36 +0000 Received: from AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::54b5:239d:9896:ee65]) by AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::54b5:239d:9896:ee65%4]) with mapi id 15.20.4587.022; Fri, 8 Oct 2021 14:24:36 +0000 Subject: Re: [PATCH v2 18/21] DynamicTablesPkg: AML code generation for a _LPI object To: Pierre.Gondois@arm.com, devel@edk2.groups.io, Alexei.Fedorov@arm.com, nd References: <20211007153210.26608-1-Pierre.Gondois@arm.com> <20211007153210.26608-19-Pierre.Gondois@arm.com> From: "Sami Mujawar" Message-ID: <40da6ea6-b7c8-4297-430e-9093a120538f@arm.com> Date: Fri, 8 Oct 2021 15:24:42 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.0.1 In-Reply-To: <20211007153210.26608-19-Pierre.Gondois@arm.com> X-ClientProxiedBy: LO4P123CA0471.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1a8::8) 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 LO4P123CA0471.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1a8::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.16 via Frontend Transport; Fri, 8 Oct 2021 14:24:36 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2ff9123e-cb71-4376-03d9-08d98a6760ab X-MS-TrafficTypeDiagnostic: AS8PR08MB6069:|AM6PR08MB3239: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:8273;OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: jxaYQ6hbxAIVWEa0tn7NaSv65lSbDRRZejJVLytdOMnK0accVhbRY5Du2ADmg1JiiN4iLjumFgBbWLnkZUBdcgyM/FlpiRmmnbYtOL0Jpz9wPCktb+NmGtzHCiLBPBRDV2Eor5tbGxo/MjHbxjBwFUhiuO04jSvOvuegD1DZvxPcpZr1uDgUQvJdrOtmTBHqE2LfzebuU08eAq9W9awYvMDmJcyCvQ18MPcECnAah5h13DmWmwhfsEPzOyNVEPWza+8jI21TWvscMYQeQ4zVvVz0zyD+lRdwHzJlT0qvFxOsCHrwTJP91FwEY0azFfsocMKuVb3bVtxhkCAqRCS6FgcJKeb4/0q8lkVYS6eFsgEuMssybrHz/xJ0p+W4kjJl22vqiKEnH6bHSsHvMYYB+X2CdQX99A+5X7PCgAzA+um6kQ2PqNv9ZB3WwuErxG+6QHpt+XoqtjoZPvo43D+G26p3U17unQDfU4LvuERg5P9iI2cY95sfMbr9Z+cCjjV4bw3t9xQf/y5f4kQB4ZEy3Y5l+q1RSMsIcDsaIdDn3VV5l00iQ515VupyzuFUjUTCjR603Vk1jg4ITNl6Ugjms5kfulfvTbYHjjICqi8rtwOVyBtBjbzRkpLtYu6UbduJaYK71TYEIVwvATy3Wmbi6cug5GAzM5sDtNT3svTwlWHe46PkSGXJhdo8cDzMPrhgxwapnRM7xLOfIwf9NukM8Kru74PrazsQENayZvzggDlz6L7j71LPPrl5EvWK9rmalAMaWDuEw4fS+CtFBnYUxw== 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)(6636002)(956004)(6862004)(2616005)(52116002)(36756003)(31686004)(38350700002)(38100700002)(31696002)(44832011)(83380400001)(8676002)(26005)(8936002)(86362001)(186003)(53546011)(37006003)(6486002)(6666004)(5660300002)(16576012)(66476007)(66556008)(66946007)(316002)(508600001)(2906002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6069 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: AM5EUR03FT027.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 0cffb77c-fd1b-4d00-fd24-08d98a675b29 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sDavXQa2zzD0ihipdw6UlwjdqjynWRKQdMMhCStPCr5DjWS1dGsBOxJjfzmOsucgBYNWkPaKZ2a1mIZGcdaqvRgdnEL/hCchll2L4Et0NMU5Ivgq4ZYzaJpRACUsGg0ARF+oJFVjorXFhXkUBe3xvGJgI/Duc0UKsGZqTixJVL/8huqWgBivDLB4lgxZNSitxBmiub2V6RbLp0NDY6x+9JOIb8BhQAueRXZgyghPyfYHeboqnUV07Gg+W1tWZgX3X7jkDiOmkiGohCUFe4J0NYX7ZrywzaqXj9ng2xMIMvi6MmJiehCzWpGot07xA9kR1J0ppqMtq1Y2fPyGYsBinBidIMnYmXUTxahN3YOoN8XlF1YdcUDDpWTXV3g45jQsOCN+6W+lLwkSFmVtBBg75253TMXvaS1XZRKPkvkOjrTHf6gy5OALGPH/0X8yprN+P5Jf6GGvpmYV6fmKoNa2cKRRa1HkM21Owo/9veR3nLa9XlHpBR2sIk0UAreJl77fLwCWGY8SL9nVyvS0eAYcwNsXXgvn0KXuQBZMNt2szdVq+F6HeeqLhm097btxdGSgVbpoDk/ptT0E5NwSzVjfpep5LCc4oCLM9ivKqq8xSGagouZLhUmpzejw/NMltDDgrhe/+7Z0tAC6g/2wjGt0ZukDAc7Ivdq8WhopH4veV3JqSTyuK+oc6XnIpDHiG1KL4zRHFfVA0TWD18ZT46SwreAQHZkMHnRpx9PIGU0MjJ4= 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)(16576012)(8936002)(53546011)(83380400001)(81166007)(86362001)(316002)(37006003)(5660300002)(36756003)(31686004)(8676002)(70206006)(70586007)(47076005)(44832011)(82310400003)(6862004)(956004)(508600001)(6666004)(2906002)(186003)(36860700001)(6486002)(31696002)(336012)(356005)(26005)(2616005)(6636002)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2021 14:24:45.6951 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2ff9123e-cb71-4376-03d9-08d98a6760ab 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: AM5EUR03FT027.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3239 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Content-Language: en-GB Hi Pierre, Thank you for this patch. Reviewed-by: Sami Mujawar Regards, Sami Mujawar On 07/10/2021 04:32 PM, Pierre.Gondois@arm.com wrote: > From: Pierre Gondois > > _LPI object provides a method to describe Low Power Idle > states that define the local power states for each node > in a hierarchical processor topology. > > Therefore, add AmlCreateLpiNode() to generate code for a > _LPI object. > > AmlCreateLpiNode ("_LPI", 0, 1, ParentNode, &LpiNode) is > equivalent of the following ASL code: > Name (_LPI, Package ( > 0, // Revision > 1, // LevelId > 0 // Count > )) > > Signed-off-by: Pierre Gondois > --- > .../Include/Library/AmlLib/AmlLib.h | 44 ++++++ > .../Common/AmlLib/CodeGen/AmlCodeGen.c | 133 ++++++++++++++++++ > 2 files changed, 177 insertions(+) > > diff --git a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h b/DynamicTa= blesPkg/Include/Library/AmlLib/AmlLib.h > index 7740aac24470..40c45073d303 100644 > --- a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > +++ b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > @@ -672,6 +672,50 @@ AmlCodeGenMethodRetNameString ( > OUT AML_OBJECT_NODE_HANDLE * NewObjectNode OPTIONAL > ); > > +/** Create a _LPI name. > + > + AmlCreateLpiNode ("_LPI", 0, 1, ParentNode, &LpiNode) is > + equivalent of the following ASL code: > + Name (_LPI, Package ( > + 0, // Revision > + 1, // LevelId > + 0 // Count > + )) > + > + This function doesn't define any LPI state. As shown above, the count > + of _LPI state is set to 0. > + The AmlAddLpiState () function must be used to add LPI states. > + > + Cf ACPI 6.3 specification, s8.4.4 "Lower Power Idle States". > + > + @ingroup CodeGenApis > + > + @param [in] LpiNameString The new LPI 's object name. > + Must be a NULL-terminated ASL NameString > + e.g.: "_LPI", "DEV0.PLPI", etc. > + The input string is copied. > + @param [in] Revision Revision number of the _LPI states. > + @param [in] LevelId A platform defined number that identifies = the > + level of hierarchy of the processor node t= o > + which the LPI states apply. > + @param [in] ParentNode If provided, set ParentNode as the parent > + of the node created. > + @param [out] NewLpiNode If success, contains the created node. > + > + @retval EFI_SUCCESS The function completed successfully. > + @retval EFI_INVALID_PARAMETER Invalid parameter. > + @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. > +**/ > +EFI_STATUS > +EFIAPI > +AmlCreateLpiNode ( > + IN CONST CHAR8 * LpiNameString, > + IN UINT16 Revision, > + IN UINT64 LevelId, > + IN AML_NODE_HANDLE ParentNode, OPTIONAL > + OUT AML_OBJECT_NODE_HANDLE * NewLpiNode OPTIONAL > + ); > + > // DEPRECATED APIS > #ifndef DISABLE_NEW_DEPRECATED_INTERFACES > > diff --git a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c = b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > index 67474094b975..2223e4bcfef9 100644 > --- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > +++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > @@ -1442,3 +1442,136 @@ error_handler: > } > return Status; > } > + > +/** Create a _LPI name. > + > + AmlCreateLpiNode ("_LPI", 0, 1, ParentNode, &LpiNode) is > + equivalent of the following ASL code: > + Name (_LPI, Package ( > + 0, // Revision > + 1, // LevelId > + 0 // Count > + )) > + > + This function doesn't define any LPI state. As shown above, the count > + of _LPI state is set to 0. > + The AmlAddLpiState () function allows to add LPI states. > + > + Cf ACPI 6.3 specification, s8.4.4 "Lower Power Idle States". > + > + @param [in] LpiNameString The new LPI 's object name. > + Must be a NULL-terminated ASL NameString > + e.g.: "_LPI", "DEV0.PLPI", etc. > + The input string is copied. > + @param [in] Revision Revision number of the _LPI states. > + @param [in] LevelId A platform defined number that identifies = the > + level of hierarchy of the processor node t= o > + which the LPI states apply. > + @param [in] ParentNode If provided, set ParentNode as the parent > + of the node created. > + @param [out] NewLpiNode If success, contains the created node. > + > + @retval EFI_SUCCESS The function completed successfully. > + @retval EFI_INVALID_PARAMETER Invalid parameter. > + @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. > +**/ > +EFI_STATUS > +EFIAPI > +AmlCreateLpiNode ( > + IN CONST CHAR8 * LpiNameString, > + IN UINT16 Revision, > + IN UINT64 LevelId, > + IN AML_NODE_HANDLE ParentNode, OPTIONAL > + OUT AML_OBJECT_NODE_HANDLE * NewLpiNode OPTIONAL > + ) > +{ > + EFI_STATUS Status; > + AML_OBJECT_NODE_HANDLE PackageNode; > + AML_OBJECT_NODE_HANDLE IntegerNode; > + > + if ((LpiNameString =3D=3D NULL) || > + ((ParentNode =3D=3D NULL) && (NewLpiNode =3D=3D NULL))) { > + ASSERT (0); > + return EFI_INVALID_PARAMETER; > + } > + > + IntegerNode =3D NULL; > + > + Status =3D AmlCodeGenPackage (&PackageNode); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + return Status; > + } > + > + // Create and attach Revision > + Status =3D AmlCodeGenInteger (Revision, &IntegerNode); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + IntegerNode =3D NULL; > + goto error_handler; > + } > + > + Status =3D AmlVarListAddTail ( > + (AML_NODE_HANDLE)PackageNode, > + (AML_NODE_HANDLE)IntegerNode > + ); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + goto error_handler; > + } > + > + IntegerNode =3D NULL; > + > + // Create and attach LevelId > + Status =3D AmlCodeGenInteger (LevelId, &IntegerNode); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + IntegerNode =3D NULL; > + goto error_handler; > + } > + > + Status =3D AmlVarListAddTail ( > + (AML_NODE_HANDLE)PackageNode, > + (AML_NODE_HANDLE)IntegerNode > + ); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + goto error_handler; > + } > + > + IntegerNode =3D NULL; > + > + // Create and attach Count. No LPI state is added, so 0. > + Status =3D AmlCodeGenInteger (0, &IntegerNode); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + IntegerNode =3D NULL; > + goto error_handler; > + } > + > + Status =3D AmlVarListAddTail ( > + (AML_NODE_HANDLE)PackageNode, > + (AML_NODE_HANDLE)IntegerNode > + ); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + goto error_handler; > + } > + > + IntegerNode =3D NULL; > + > + Status =3D AmlCodeGenName (LpiNameString, PackageNode, ParentNode, New= LpiNode); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + goto error_handler; > + } > + > + return Status; > + > +error_handler: > + AmlDeleteTree ((AML_NODE_HANDLE)PackageNode); > + if (IntegerNode !=3D NULL) { > + AmlDeleteTree ((AML_NODE_HANDLE)IntegerNode); > + } > + return Status; > +} IMPORTANT NOTICE: The contents of this email and any attachments are confid= ential and may also be privileged. If you are not the intended recipient, p= lease notify the sender immediately and do not disclose the contents to any= other person, use it for any purpose, or store or copy the information in = any medium. Thank you.