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.42]) by mx.groups.io with SMTP id smtpd.web08.13465.1633533349089218913 for ; Wed, 06 Oct 2021 08:15:50 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=lpMirO2P; spf=pass (domain: arm.com, ip: 40.107.7.42, 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=CzfhSMQRt/dihbkcc/KlwCHuNhTfe7Gaoscjs2cfyMs=; b=lpMirO2PjZcOPDvQRSy0c07hJ53QXrwpagzClyWtpnGpFTycfye2I0340Pig1Igd+Oisgub015OB938zCJKnJ9A3bCSbnc7hhPVTrWwGOYgfI2zazpmuRuEEtuw5WdKowWEIokJd3lP6RMUY2GAFYmd3pQYLAyZBTtfwk7S4X3Y= Received: from AM6P195CA0035.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:81::48) by AM9PR08MB6291.eurprd08.prod.outlook.com (2603:10a6:20b:284::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.17; Wed, 6 Oct 2021 15:15:46 +0000 Received: from AM5EUR03FT008.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:81:cafe::77) by AM6P195CA0035.outlook.office365.com (2603:10a6:209:81::48) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14 via Frontend Transport; Wed, 6 Oct 2021 15:15: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 AM5EUR03FT008.mail.protection.outlook.com (10.152.16.123) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14 via Frontend Transport; Wed, 6 Oct 2021 15:15:45 +0000 Received: ("Tessian outbound a8bfe25d7364:v103"); Wed, 06 Oct 2021 15:15:45 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: b2cb68d8aae03205 X-CR-MTA-TID: 64aa7808 Received: from e2d42f47c0b8.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 46CA48A1-67DF-4CD4-B66B-B32C4E15E58A.1; Wed, 06 Oct 2021 15:15:39 +0000 Received: from EUR03-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e2d42f47c0b8.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 06 Oct 2021 15:15:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HB0VZv8SDNzCUaIHUQeGHy+u1dKqJbp2y4bcMkxHBdow6woI3b9bdB+U2Y0gmDgf6+rKJ1v9FxZs+vjRdPX73OVK4nywgNvCX0Nyh/md5ADtcwPM8127LQ/sFoY1cBsijG1HT0JiJ+/xC6ODDBOHVqAwRgsRT6kqE6Yah05MKHiuM2x8h23ErRvdtRapeHyT/T0dJGgP0+CGt6gd7ENCkDanS+A+zat0+8MB3T2EIthEBNQyMwxQ+S76+J9yICTUopMHkq9qtj79prGCHmAJRj5ZmwDVxVDMiru8tGQekEB+2pKvQ430WQpRQD+v2nROVRHjNuVp62+GDSrAy985PQ== 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=CzfhSMQRt/dihbkcc/KlwCHuNhTfe7Gaoscjs2cfyMs=; b=dAtbhDNqQsJIVS0FUfGv7sTA9WmtoM+DR8Tp1Nsylqi9a7Ws+Ow0l9ccQq59KUzLqj2JHb4ABtuIL+4WUck4kkZBuzlzFpM2ewuAtin0C5i1xOq7thK9T1F86XR9IrVlLshQPrmGQ4IwZ9WWoGvV/5hbrczE2kcVAHofwAtYAFve8fVnX68/r6uTKgKmrseXwu4O2eDzv5U0/6xlMqQfqSndJEGqzAvnOXU83Y7+KgJF148gT9N6c0lK5uWXCpacMFTkaWf3z9EbTEJITd4QFeaBlGO3rShXapaZWTA6ZjB0btdGYS4zP3azzR6LB1vZhkLmpMkC07JauLD6kE33ZA== 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=CzfhSMQRt/dihbkcc/KlwCHuNhTfe7Gaoscjs2cfyMs=; b=lpMirO2PjZcOPDvQRSy0c07hJ53QXrwpagzClyWtpnGpFTycfye2I0340Pig1Igd+Oisgub015OB938zCJKnJ9A3bCSbnc7hhPVTrWwGOYgfI2zazpmuRuEEtuw5WdKowWEIokJd3lP6RMUY2GAFYmd3pQYLAyZBTtfwk7S4X3Y= 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 AS8PR08MB5877.eurprd08.prod.outlook.com (2603:10a6:20b:291::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.22; Wed, 6 Oct 2021 15:15:38 +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.4566.022; Wed, 6 Oct 2021 15:15:38 +0000 Subject: Re: [PATCH v1 2/7] DynamicTablesPkg: AML Code generation to create a named Package() To: Pierre.Gondois@arm.com, devel@edk2.groups.io, Alexei Fedorov Cc: Akanksha Jain , Alexandru Elisei , nd References: <20210623115834.907-1-Pierre.Gondois@arm.com> <20210623115834.907-3-Pierre.Gondois@arm.com> From: "Sami Mujawar" Message-ID: Date: Wed, 6 Oct 2021 16:15:43 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.0.1 In-Reply-To: <20210623115834.907-3-Pierre.Gondois@arm.com> X-ClientProxiedBy: LO2P265CA0076.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:8::16) 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 LO2P265CA0076.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:8::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14 via Frontend Transport; Wed, 6 Oct 2021 15:15:38 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6e8f2f0b-6e5c-4f9f-6295-08d988dc2bbf X-MS-TrafficTypeDiagnostic: AS8PR08MB5877:|AM9PR08MB6291: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:7219;OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: tJ2ko8d4Pp1qE44ROasTGg4SOL4/NtfAESHUolrenr8DDEP7u2wXwatwbmZ4cLZWumZzd4x8v5ltO0shJMNPn7vPdDYQK8vRqbFpZ3arAMFZ0z+NtZeRyC0AAbWJ3VODPkkbZlS3yfPCZBotSEE3E05UtWaJOlS/DO/fawbyryqECyGOIYbKKPRxg5LxG9wzgqNqM4M0zjtG+ZBvdHCqovXS8c/XKk9DPHDQ6/ObzUJ2vg7fa2yXggavzKCM1zxmHVkroZrqJr5oyzjflgQzk9d5+Tsh7odZYmCvM8oSnttlLxLmJhdp69z/5O8DGMZ3XKRijTojfTfdL/SuP0bGeSyumvccXSQhVFOioCg0aZq4TekEoGnmjZpxOpf2C74M6gXI/2lAh3dEExUj5M5ukZ5BGWZbiQzUKJOU9GDnpNqaompRKH3k7MXBLycu7T7yiB6qrA5CITMrzIZy1LZyb82+DbHGvwzkzrumkn1T2WJIjyglaNF1A7OLN6CbiQ+mLWx8bkaUUFs09rxhXQ4i1nk3KhJMLAh4U/6OxPqcQ6UV6M9F3MCSkGFeboikemCC0wvse1hucXiQlUvcOydItUoVDD8w8M5M47OK0lX42F0Tu569fZo7+MdBXdK7xa0yC3ySm9s7XOeUKSkFesLxDRX96Px5N6fBzeXE+h7Msbj3/RIP6ykuDN0AWIHDLAcfiBc+Aj7921t8Kul3cgd6jhjZ7ZmYqaqnOgs0FLVtxFU0vic/gTHFLmRelPAHQBAPqE7n5LzJwvb2xeadf9LaNw== 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)(16576012)(956004)(8936002)(6486002)(6862004)(38350700002)(5660300002)(31686004)(6666004)(38100700002)(86362001)(316002)(4326008)(2616005)(31696002)(186003)(66556008)(26005)(6636002)(53546011)(2906002)(54906003)(8676002)(36756003)(66476007)(66946007)(508600001)(83380400001)(44832011)(52116002)(37006003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB5877 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: AM5EUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 203edb47-5834-48fd-c5da-08d988dc2740 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EdKvjp72G/WfbVprAhTYzFKvUoER6qUmQX7zldFe2eh5HTOkKhE+jc0PKuphjHjpqTag1vBBkLBz8rSAe5s79L3FdrRiuhDHfPKaNmwCi9u3o83G15/wFzaei3mUPqKir2bBCTlsCfAB8dcrIrf504BM1QgFN5By39r6nLLHQX4VV4C58wPKgDQ6BSt2qjcV2xj1zbTF3xt+ul+2xA/l5wkjTvJAZfTp0Ju77xE38O8ZL0wXwtipCtivIYzNcOU4UPbVu22PpUj/DALFbU4wUPLo4fcz0+wv3OcZuOc2aRy4Wqp17wr/bk4m2s4pe0nyjcOeS8Ojp3mDY+XM30+1zuFcUHw6bd6SDSkMqkplcPtyw7HI2iDIQT7i6NLogxTs/HH7ac4iuYMfvvXq8jbElQoBROg42/r9yM6574YzhtKq79UEm+ylIPxTQSTkRngvRUZ5FFPwO8axz7K6SEZlM6BNyrf7aIB0jSwAYnnVyiY8JPRMdUNN1DIYadugn/UEWuD7xR3MBGTmXRnkXsQNvICASmf7xaoX0DKZaDxwiaNYinBYXigm9NLTucJX64twxTQkREWFq1q2RvVAX5/MUlRIMAqsSLvcTPPHQJmRVO+obfiMjmGnJEAyu2dHVam/C0+/mGES4ZKMPkVGrr8x3H9BMrva4gaotCNJg/y4UQwslnMsSBz4ySjiR8Uzw+rNZ7ODXSBLCOW1najhsBOtc5ZEbtuniVfRQDPi48doDls= 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)(46966006)(36840700001)(956004)(8936002)(53546011)(83380400001)(26005)(186003)(2906002)(356005)(6666004)(336012)(508600001)(81166007)(8676002)(70586007)(70206006)(36756003)(47076005)(6486002)(31686004)(16576012)(5660300002)(36860700001)(4326008)(6862004)(6636002)(2616005)(54906003)(44832011)(86362001)(316002)(37006003)(82310400003)(31696002)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2021 15:15:45.7167 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6e8f2f0b-6e5c-4f9f-6295-08d988dc2bbf 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: AM5EUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6291 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB Hi Pierre, Thank you for this patch. These changes look good to me. Reviewed-by: Sami Mujawar Regards, Sami Mujawar On 23/06/2021 12:58 PM, Pierre.Gondois@arm.com wrote: > From: Pierre Gondois > > Add AmlCodeGenNamePackage() to generate code for a Package(). > > AmlCodeGenNamePackage ("PACK", ParentNode, NewObjectNode) is > equivalent of the following ASL code: > Name(PACK, Package () {}) > > Signed-off-by: Pierre Gondois > --- > .../Include/Library/AmlLib/AmlLib.h | 28 ++++++++++ > .../Common/AmlLib/CodeGen/AmlCodeGen.c | 55 +++++++++++++++++++ > 2 files changed, 83 insertions(+) > > diff --git a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > index cbbbb7a478f7..412db886e1f2 100644 > --- a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > +++ b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > @@ -852,6 +852,34 @@ AmlCodeGenNameInteger ( > OUT AML_OBJECT_NODE_HANDLE * NewObjectNode OPTIONAL > ); > > +/** AML code generation for a Name object node, containing a Package. > + > + AmlCodeGenNamePackage ("PKG0", ParentNode, NewObjectNode) is > + equivalent of the following ASL code: > + Name(PKG0, Package () {}) > + > + @ingroup CodeGenApis > + > + @param [in] NameString The new variable name. > + Must be a NULL-terminated ASL NameString > + e.g.: "DEV0", "DV15.DEV0", etc. > + The input string is copied. > + @param [in] ParentNode If provided, set ParentNode as the parent > + of the node created. > + @param [out] NewObjectNode If success, contains the created node. > + > + @retval EFI_SUCCESS Success. > + @retval EFI_INVALID_PARAMETER Invalid parameter. > + @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. > +**/ > +EFI_STATUS > +EFIAPI > +AmlCodeGenNamePackage ( > + IN CONST CHAR8 * NameString, > + IN AML_NODE_HANDLE ParentNode, OPTIONAL > + OUT AML_OBJECT_NODE_HANDLE * NewObjectNode OPTIONAL > + ); > + > /** AML code generation for a Device object node. > > AmlCodeGenDevice ("COM0", ParentNode, NewObjectNode) is > diff --git a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > index f0861040191f..f9175c623622 100644 > --- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > +++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > @@ -747,6 +747,61 @@ AmlCodeGenNameInteger ( > return Status; > } > > +/** AML code generation for a Name object node, containing a Package. > + > + AmlCodeGenNamePackage ("PKG0", ParentNode, NewObjectNode) is > + equivalent of the following ASL code: > + Name(PKG0, Package () {}) > + > + @param [in] NameString The new variable name. > + Must be a NULL-terminated ASL NameString > + e.g.: "DEV0", "DV15.DEV0", etc. > + The input string is copied. > + @param [in] ParentNode If provided, set ParentNode as the parent > + of the node created. > + @param [out] NewObjectNode If success, contains the created node. > + > + @retval EFI_SUCCESS Success. > + @retval EFI_INVALID_PARAMETER Invalid parameter. > + @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. > +**/ > +EFI_STATUS > +EFIAPI > +AmlCodeGenNamePackage ( > + IN CONST CHAR8 * NameString, > + IN AML_NODE_HEADER * ParentNode, OPTIONAL > + OUT AML_OBJECT_NODE ** NewObjectNode OPTIONAL > + ) > +{ > + EFI_STATUS Status; > + AML_OBJECT_NODE * PackageNode; > + > + if ((NameString == NULL) || > + ((ParentNode == NULL) && (NewObjectNode == NULL))) { > + ASSERT (0); > + return EFI_INVALID_PARAMETER; > + } > + > + Status = AmlCodeGenPackage (&PackageNode); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + return Status; > + } > + > + Status = AmlCodeGenName ( > + NameString, > + PackageNode, > + ParentNode, > + NewObjectNode > + ); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + AmlDeleteTree ((AML_NODE_HEADER*)PackageNode); > + } > + > + return Status; > +} > + > /** AML code generation for a Device object node. > > AmlCodeGenDevice ("COM0", ParentNode, NewObjectNode) is