From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id EAAAD7803D2 for ; Mon, 18 Sep 2023 15:47:29 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=i9lkIEgdSBkhoR08GjGNJfX3fWoRWjkfqdwf2fEb80Q=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Received-SPF:From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1695052048; v=1; b=I2fePXqtpJEZo6jK253XVleVj03tTReMUj96KmQCE7uYlqr5GH9IrAQq4pMv28qNi+94e5jj xX2M8m9zhV1HunoJ0aL5Eu4E96xWwUqmI027Fg1FtX3vTN6iClzLHUMDQckQOXcDeiYsestMvRB kye4AwsrZi/TY/sC3sTZlV08= X-Received: by 127.0.0.2 with SMTP id 2ZWhYY7687511xPdrQ4Pr6a9; Mon, 18 Sep 2023 08:47:28 -0700 X-Received: from NAM11-BN8-obe.outbound.protection.outlook.com (NAM11-BN8-obe.outbound.protection.outlook.com [40.107.236.40]) by mx.groups.io with SMTP id smtpd.web11.55149.1695052047762025939 for ; Mon, 18 Sep 2023 08:47:28 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=of7hP85gJlf6ZCkkb9PUbh4/FN6V3ZVNpHN4VR8uHgByBi298JRBzEyuhRHqXavWGO+xswpyHci2yDBQ/mPto/1nQ+sCWpmax9VWk4LJc2ANKi7AC3xM//JewDu2Fu+Hkmo8TcBWLy4h2hczKUuOdBSjS8URyD2SaVVqeGFyuCaZHS3bojIxAnH2CrJSt+RPWWKTABVBCtYUnQnP1D2mjdFEjXEQomIpOmLBlraKVwFai+EbhrNo3ACpND4Cww4WhjtzRKaGbMCCrflik7TxU6JubhHeol5jko8W/hDb6V0q5YVT2hgNLno51lZWheENKJqhhR0n6EOf8cMf/5YZsA== 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=10jp/jhAXh0QLHKZ4YwCTfYAOLRCjOU/egCqVhznYF0=; b=RWRJoCqGy1DNbfldZaq4HfpgEPBG2yhs742x048SB3rXlcCmUll3WWUmVihPMdKE8W8SmzbtINkZOXN10Z4aPKHHzMqySL3f/qlQIiimkaO8dGDZiXiYwhBz7Kjtf5XYW5bObSzUU8dgCqcHDEM+Vr9yzRPs2gXV9CkwXPDxekzOmGBdkJPLNdHoqCea1jtmfNuMIQK6qNrrjI7fkI0GlRz1DfleZpVOPvG81R6EDgBD9NGRb6hmt1nbBQOMuzGC+7Ir8081YHoPjgiiLQWGMgib4O6soF/S63NLQ74qEDU9iKfxJeZ4giqF1peyoBVSeVTjAaZFcBo4tRqF+J9hUA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none X-Received: from MN2PR05CA0002.namprd05.prod.outlook.com (2603:10b6:208:c0::15) by MW4PR12MB6974.namprd12.prod.outlook.com (2603:10b6:303:207::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.26; Mon, 18 Sep 2023 15:47:24 +0000 X-Received: from MN1PEPF0000F0E1.namprd04.prod.outlook.com (2603:10b6:208:c0:cafe::ed) by MN2PR05CA0002.outlook.office365.com (2603:10b6:208:c0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.27 via Frontend Transport; Mon, 18 Sep 2023 15:47:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C X-Received: from mail.nvidia.com (216.228.117.161) by MN1PEPF0000F0E1.mail.protection.outlook.com (10.167.242.39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.20 via Frontend Transport; Mon, 18 Sep 2023 15:47:23 +0000 X-Received: from rnnvmail202.nvidia.com (10.129.68.7) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 18 Sep 2023 08:47:05 -0700 X-Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail202.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 18 Sep 2023 08:47:05 -0700 X-Received: from 82ca859bd651.nvidia.com (10.127.8.9) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.986.41 via Frontend Transport; Mon, 18 Sep 2023 08:47:04 -0700 From: "Jeff Brasen via groups.io" To: CC: , , , , , Jeff Brasen Subject: [edk2-devel] [PATCH v4 3/4] DynamicTablesPkg: Add support to add Strings to package Date: Mon, 18 Sep 2023 15:46:59 +0000 Message-ID: <0b3876f84e0044990f18f81f4128de548797ff53.1695049337.git.jbrasen@nvidia.com> In-Reply-To: References: MIME-Version: 1.0 X-NVConfidentiality: public X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E1:EE_|MW4PR12MB6974:EE_ X-MS-Office365-Filtering-Correlation-Id: 6a6e87f7-0140-4be5-90e8-08dbb85e8d36 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: oEvubYqdOGWTk5vZY/WaLTK+Vdzg0SxypS1EmdFdVEwXfUOaOz6qNz4YaSsJyk2s6SFM5JIsR4glt45szlq0RlIGD/5dU4rm8o6NKz+kLe/IiXl9kObVUI5QkR8xmxQTMKHg8FL+qX95+TIalmqXcdBqYEtVZVJedXoBX1lztpX2PKBeVgZIGtfscy1HXsAf99bpNZyzjGh6qC9N3E1DxM5eY6qPsKupDBtm8vElhu1vhzChJdtqyvBuWgh1PbIj8FEHvxT0tyh2DjZdxCmAkkX0d0Rj3WAC2M0Kj4G39mlJ3Oj04RmbJdWNnIA8ORPRFIXESZghO8gVX5kzUa7UfcGDsJIYqJAZ0cKou1wynng78wXLkT+lpgs8DLd4y+AtxR8TnLzLJjIXLXPI2Fy/JqMSN2tMd8CRWdfL3gretUD8zTXGhF9pYZk7EBuyu8sIgzGg69wIK8QR7SjzEZrMyj/uQsAauDU8Eo0Fm0M82Vpf2nDx+t4OoSDwfTnA3OkQd+gfxXN1w5o10LZRJ0su1zMvM4gnkKDJfzM75ztug81vVyhvWUv/wIM/Dm7NjMMDdhajenAQ1KVvtugZ67bzX8e9cLZFraytNN4B6SNLm9mZirczKZOOnRCrodp9zQzdHR7o/yIe3XgZ9BdkYjWCR4LGxE4wqaxXm1cbgwmxSm3cWTPLUMXKmhnxXUOr8irmZLxnlu+cZVHSZ3WoNvNpgJ2vgFt/FLeVK+caSZ3p8bo= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2023 15:47:23.6626 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6a6e87f7-0140-4be5-90e8-08dbb85e8d36 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0E1.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6974 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,jbrasen@nvidia.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: jxpKnMzq7fgxyX0dHPCsCiBHx7686176AA= Content-Transfer-Encoding: quoted-printable Content-Type: text/plain X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=I2fePXqt; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io Add API to add a String to a package created with NamedPackage API. Signed-off-by: Jeff Brasen --- .../Include/Library/AmlLib/AmlLib.h | 17 ++++ .../Common/AmlLib/CodeGen/AmlCodeGen.c | 88 +++++++++++++++++++ 2 files changed, 105 insertions(+) diff --git a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h b/DynamicTabl= esPkg/Include/Library/AmlLib/AmlLib.h index b82c7a3ce8..f4a4908753 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 ); =20 +/** AML code generation to add a NameString to the package in a named node= . + + + @param [in] NameString NameString to add + @param [in] NamedNode Node to add the string to the included packa= ge. + + @retval EFI_SUCCESS Success. + @retval EFI_INVALID_PARAMETER Invalid parameter. + @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. +**/ +EFI_STATUS +EFIAPI +AmlAddNameStringToNamedPackage ( + IN CHAR8 *NameString, + 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 ea519d1aa8..2afd405750 100644 --- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c +++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c @@ -3685,3 +3685,91 @@ error_handler: AmlDeleteTree ((AML_NODE_HANDLE)CpcNode); return Status; } + +/** AML code generation to add a NameString to the package in a named node= . + + + @param [in] NameString NameString to add + @param [in] NamedNode Node to add the string to the included packa= ge. + + @retval EFI_SUCCESS Success. + @retval EFI_INVALID_PARAMETER Invalid parameter. + @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. +**/ +EFI_STATUS +EFIAPI +AmlAddNameStringToNamedPackage ( + IN CHAR8 *NameString, + IN AML_OBJECT_NODE_HANDLE NamedNode + ) +{ + EFI_STATUS Status; + AML_DATA_NODE *DataNode; + CHAR8 *AmlNameString; + UINT32 AmlNameStringSize; + AML_OBJECT_NODE_HANDLE PackageNode; + + DataNode =3D NULL; + + if ((NamedNode =3D=3D NULL) = || + (AmlGetNodeType ((AML_NODE_HANDLE)NamedNode) !=3D EAmlNodeObject) |= | + (!AmlNodeHasOpCode (NamedNode, AML_NAME_OP, 0))) + { + ASSERT (0); + return EFI_INVALID_PARAMETER; + } + + PackageNode =3D (AML_OBJECT_NODE_HANDLE)AmlGetFixedArgument ( + NamedNode, + EAmlParseIndexTerm1 + ); + if ((PackageNode =3D=3D NULL) = || + (AmlGetNodeType ((AML_NODE_HANDLE)PackageNode) !=3D EAmlNodeObject) = || + (!AmlNodeHasOpCode (PackageNode, AML_PACKAGE_OP, 0))) + { + ASSERT (0); + return EFI_INVALID_PARAMETER; + } + + Status =3D ConvertAslNameToAmlName (NameString, &AmlNameString); + if (EFI_ERROR (Status)) { + ASSERT (0); + return Status; + } + + Status =3D AmlGetNameStringSize (AmlNameString, &AmlNameStringSize); + if (EFI_ERROR (Status)) { + ASSERT (0); + goto exit_handler; + } + + Status =3D AmlCreateDataNode ( + EAmlNodeDataTypeNameString, + (UINT8 *)AmlNameString, + AmlNameStringSize, + &DataNode + ); + if (EFI_ERROR (Status)) { + ASSERT (0); + goto exit_handler; + } + + Status =3D AmlVarListAddTail ( + (AML_NODE_HANDLE)PackageNode, + (AML_NODE_HANDLE)DataNode + ); + ASSERT_EFI_ERROR (Status); + +exit_handler: + if (AmlNameString !=3D NULL) { + FreePool (AmlNameString); + } + + if (EFI_ERROR (Status)) { + if (DataNode !=3D NULL) { + AmlDeleteTree ((AML_NODE_HANDLE)DataNode); + } + } + + return Status; +} --=20 2.25.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108802): https://edk2.groups.io/g/devel/message/108802 Mute This Topic: https://groups.io/mt/101436338/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-