From nobody Thu May 2 02:19:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+84646+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+84646+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one); dmarc=fail(p=none dis=none) header.from=intel.com Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1639155252830816.425507673512; Fri, 10 Dec 2021 08:54:12 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id g4DAYY1788612xgSA4bzAJbR; Fri, 10 Dec 2021 08:54:12 -0800 X-Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web09.6065.1639137263515587410 for ; Fri, 10 Dec 2021 03:54:24 -0800 X-IronPort-AV: E=McAfee;i="6200,9189,10193"; a="219021207" X-IronPort-AV: E=Sophos;i="5.88,195,1635231600"; d="scan'208";a="219021207" X-Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Dec 2021 03:54:19 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,195,1635231600"; d="scan'208";a="463643694" X-Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by orsmga006.jf.intel.com with ESMTP; 10 Dec 2021 03:54:19 -0800 X-Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Fri, 10 Dec 2021 03:54:18 -0800 X-Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Fri, 10 Dec 2021 03:54:18 -0800 X-Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Fri, 10 Dec 2021 03:54:18 -0800 X-Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.48) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Fri, 10 Dec 2021 03:54:18 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jAr1ydl7C9Y6TBXkk8WN8p5Ggh9/UqTLpn25rwTELvXEisdFsXcs8Rgkp0khK98FlCTLBZE9AqAbh78NM6Y8CfwIK/C1Ly2NGH9YavF22FSpqdMK0idZ3RiYXQQrhAgyPXR0x++6kB/TyTxC9xR7otQfSi9ysLACWptYEzkKUJQapdo0P+BQCKYUY526Cjffi0nBlQTzacbIFz/7zsuaJOY9CotnENmXIg6eMPSQJCYfRoSh/lUduEONL6MI0TQdVb1NDezevmR2goKXXmCRV3G5ilUugOaYkMZDde5PQx3zM0WrEx68mAiNg9MR9npUwQJOoVrLexixd6Z7oL6bCQ== 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=NZklFsVqQs66L0qmLb2mBlsUmFKoSuhNqcvO8lZokts=; b=mZrzuENY+OnrB3D/BMi5vupFpx2/NgCKqAuZIoUiI1Yn9/dqTgFYQ3VbQz9crreaD3maJlZueAMSvfcz5cvAx2AwmM72xiaBsoWe+9zp336i/P0IAUgnQ2J81wmsqcFqA3uDsWMIrLIG56oiEaV4fT46jknFy0IMbDsK3lkzGOwTqYryqHk9M3rGLPzE28aARH3dCHR3mb7Rf2O+G8gMvShhtcJBlTSy25QBPuLmzd2cZO8nNfCHUb9xVK5ob8zW+OPLPNsEgKz73dFzR628vqMQozYc3wHZprdAs6xVCaZlBFxWB2zklz1tyiwatMav7t/YgFFsU/tI4viD7Vq5VQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none X-Received: from BYAPR11MB2709.namprd11.prod.outlook.com (2603:10b6:a02:be::10) by BYAPR11MB2936.namprd11.prod.outlook.com (2603:10b6:a03:8c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.21; Fri, 10 Dec 2021 11:54:15 +0000 X-Received: from BYAPR11MB2709.namprd11.prod.outlook.com ([fe80::462:cb85:89b7:f700]) by BYAPR11MB2709.namprd11.prod.outlook.com ([fe80::462:cb85:89b7:f700%7]) with mapi id 15.20.4755.026; Fri, 10 Dec 2021 11:54:15 +0000 From: "Fedorowicz, Jakub" To: "devel@edk2.groups.io" CC: "Ni, Ray" , "Chaganty, Rangasai V" Subject: [edk2-devel] [PATCH v1] IntelSiliconPkg/BaseConfigBlockLib: Add function to iterate over Config Blocks Thread-Topic: [PATCH v1] IntelSiliconPkg/BaseConfigBlockLib: Add function to iterate over Config Blocks Thread-Index: AdftvCTQsx+G371qSgy3QN4Uwp33Eg== Date: Fri, 10 Dec 2021 11:54:14 +0000 Message-ID: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.200.16 dlp-reaction: no-action x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4bb9ece9-61e6-485e-c481-08d9bbd3ca24 x-ms-traffictypediagnostic: BYAPR11MB2936:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: iwVeUdl6GlLO5jX+wg4GqHkcz2DXsttkvMQU+FYrXiFahh4kb1tQKB+0AXynCWtvNDZZ7G/zLWCQndvDYPrzyid/0PZlAhn3soJjBarVW7jlK0p3oPA52N2tdentLE00aYFXPUXWqnJclPbpnsCuR9/SVLwVlaA43XQcJd3MZj5nVFuhxHNxa3QwZhLQBoPLH5hbyifQ7HK3Lb8nC4hCeTbpafRtWkaj6zdCORHko7xB0jA5CxaVVeJ8XD6ixjfW9Svo7LdXC6WXEwqujp7Unqit9cu36N4wVzlWdQDsJ4d9SwSDaeHoUiMaZqKiu9b7LE16Em6ZYeI13GvdEt4HCP/VdugVnm80EHT6jHMo3KxppFjiD1CPy38P6ZqEEKQvIaIyb8oP8kenCs6vW/7SGqnnXdp2huCTmv1drnAFZFxr2v26FwkTg2sypJMsQiVXr/F+Hk1qbk5CrnCqb+PJv76iQFchaL5aKgbKkBBio24nVF53vh9FmT6Q3E3Zm7sljAbx2rX9bt/aHMVvO4J1DTy6X/L2RvGO2WIwZrMmJzy9sIgWJ/gMtlQMESo6WvHChNv94ipRoGMWa17jfOZbr0lFtNovtnMNxXua1X+0oG6XhGYGpmoMIfj/sxW6wVQWj2UX/qQRaCcGWnzIMAyhB2VzHhTpuAKKDjppqfzGja2RY74QDHrtimhaK/cLy68yc41Gqy6vOILx5YfjPGRDlTOmCMIa4KJm8hWQ3JzPduKBLKBmddKnft9lP3mNRkpJw9MmdAXRYenRNMWSB5yus4C1K1GXdkA4g5BKF2dd55E= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?xdTcKBWh5ClQy2Hq+HaxVgHzoUYMpjNE2MdnOtUzY13i3DBWdMUKQVO1R+HS?= =?us-ascii?Q?XLsPT8R3rHWwl9O1QrKqJ/9SR0mzNIK6QzQal9EU0s/GYtURBAN+XtEjaWqZ?= =?us-ascii?Q?gN4/iBpFofMCqeawXbJ6AoeOurtMfYVLhJL7VsRzfWnl1NGOBISQJdQb8fPM?= =?us-ascii?Q?HElQkHRqnSaKrXySXsJ3sRiU77NlET+KgmGz9VUGK7bH2BX9AylWJ6NnNxaC?= =?us-ascii?Q?2PEv8nHa2lHDzPSiLKekIxt+Lre3J4sSWsr6vTaToc2Jx6wZkG9HNSPst4pW?= =?us-ascii?Q?MVDQvh3+LXf35E3hde6l1f0vqwsWoVSdjtzHdvOm7/j/LZy/Dohg39pODDrh?= =?us-ascii?Q?Y/TuSI4BmTKSt7b7IyL1ryaHATLm8cXIS/N6AFOd5H8V8blevJGVgfYyi8ZD?= =?us-ascii?Q?FIh4kAZzovgM8UKLEtj3Ws2n8Y9Jr6EP8wfwmmYH2DoZeb/uu6kigjuIWSX4?= =?us-ascii?Q?h6sHkid5nnJ0vXRdpBHx7HGNyaO4sW6dZPG8A9L0mAPttMa6ntKgUcThpmK6?= =?us-ascii?Q?N1pEXxxFfNJIFP8i+ifzHP8N/O5dN3CAkTFtNIe7FonKkowPt1dWkb1t5Yz9?= =?us-ascii?Q?7WmXpJXLWJF/HsBHn6H+1Ys3koJEX7lGWWsk6Nccb4S4YjTYPaAsmBSq79sx?= =?us-ascii?Q?7jNttuIpmgaBCNDL8F6TCny1+/9VtSN5NeFxbDqOu/+2cKIyq65Vcvk3lVl3?= =?us-ascii?Q?rQ1FE+G80oA2WZo/mBFxYD0y5kNCR8DiOYFNBrtkI67CYolF1HrZx7lSiC+T?= =?us-ascii?Q?I6AZoHuNMUbQpYf/Ec6C7/ZS727pkZzGJ5Fr2sAvA+UfQWQJnWVUWRLa+MPp?= =?us-ascii?Q?ugqmrCzhfOz8oJAkvsJ8cULiwR4sj+5ZY5rQgWNSUlS8wXJhi39gwpMaerRz?= =?us-ascii?Q?ZEx88ntCOGLQWVRecmHoOVPmpglQ7ndvtWsfgPWOeHOb/8ZGrc6B2r08vxLV?= =?us-ascii?Q?YvHIpdvpXLRy2+/Z6E2Nqnvp02SsPeb4vUjPcmCm5JlgwZKt1Zgy3Gg0JMk/?= =?us-ascii?Q?RNkzdKqH3L1NVnjAF0ZgA7qOb/Ahiv5brZoBek/lWf1N96MbcSY+4IMkf65W?= =?us-ascii?Q?azBZOm3uZzi0IwaqshxqZMazT/u1K5myclt+4wH3TJ+RtUlhBMGTwkpAtKtZ?= =?us-ascii?Q?ii7iuumcY03mo0XsnpLcHFvYPQgr1WbmSxiyg41z7l6Q73R+9TVSp/QafDLZ?= =?us-ascii?Q?87HBJhZbPMcgXx0anyaopxTY5CyPWkFaGgKxNUWi1sEQFVNoTuh3e0JmuSyr?= =?us-ascii?Q?YNW60rAwMUx3bKq96VQwYd8SZ/G5UuLCO+iBoXw7kv/Nz6nFX5OFTFChwoiS?= =?us-ascii?Q?OCpJVgVQKCgTbvWmSBHUqp4wLAI0NtiOEmS28ndHoFZVER712IHG5mVcqzmA?= =?us-ascii?Q?Byt98tSOvkzLgYY8KAHmhxL8gpCoSAlmMNzl6h4Blf7wPhRycV5scM1o6WEv?= =?us-ascii?Q?SwT/W3wPnUNiahP655u8pCUDP/alHPYsEXgrvqra2KZ3mCvPO9laMbsbDp1X?= =?us-ascii?Q?xcwx0cxShPye8EbUYakdqFfLBIbWvsiQmjc2kP7kquzX/OZDnIamHz31WsRi?= =?us-ascii?Q?2giis5xOZm609cUKM2xdCkWKG2lm/REdfcP5pRuKjPjYSLI2c6IAl94DGjxq?= =?us-ascii?Q?/ZkXrmh7wId8lGuJWJ8Lg0N//UzLJCt1fMaJR1TmjKRVtJsnXjK6k1bc4jwE?= =?us-ascii?Q?fM1SdA=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR11MB2709.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4bb9ece9-61e6-485e-c481-08d9bbd3ca24 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Dec 2021 11:54:14.9718 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: hq1s+UVecSsxFax48f4ztT9OUpBhMYK9e3vhz0jxUaVGQY75R3fCHIMyHOvgMVg4G12TJ6f6DygqGVEcmtXXVQFYCEI4RDAb3r7tN2XkdDo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2936 X-OriginatorOrg: intel.com Precedence: Bulk List-Unsubscribe: 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,jakub.fedorowicz@intel.com X-Gm-Message-State: 0G897nQ98IzFIZtyxZO90Zw5x1787277AA= Content-Language: en-US Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1639155252; bh=FXbkE5OGNd8kieOlXSYu64VemkVF3rhvPIfw/IQ8sik=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=BLyiqpeU0r4G02RWAJPr1/wvW9zOVSrIo/7Txz7F6KS0hUKtG+K9lj9n2vLOVL/zFm7 RiSzgkzm0rik/TjvSbiTASV1NhNJT+RiSr0KM1b8kZwXoFRvSiQsG3B0ScgmB3KVRi7Oo xbF1qHPUEKapiTL5mxT1EunPN4NpnDVN2Js= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1639155254137100003 Content-Type: text/plain; charset="utf-8" In BaseConfigBlockLib add function to get next config block from config blo= cks table in order to iterate over blocks of the same type. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3700 Cc: Ray Ni mailto:ray.ni@intel.com Cc: Rangasai V Chaganty mailto:rangasai.v.chaganty@intel.com Signed-off-by: Jakub Fedorowicz mailto:jakub.fedorowicz@intel.com --- .../Include/Library/ConfigBlockLib.h | 19 ++++++++ .../BaseConfigBlockLib/BaseConfigBlockLib.c | 43 +++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/Silicon/Intel/IntelSiliconPkg/Include/Library/ConfigBlockLib.h= b/Silicon/Intel/IntelSiliconPkg/Include/Library/ConfigBlockLib.h index 37a39681..7f2e8d58 100644 --- a/Silicon/Intel/IntelSiliconPkg/Include/Library/ConfigBlockLib.h +++ b/Silicon/Intel/IntelSiliconPkg/Include/Library/ConfigBlockLib.h @@ -61,4 +61,23 @@ GetConfigBlock ( OUT VOID **ConfigBlockAddress ); =20 +/** + Search through ConfigBlockTable blocks to find following Config Block of= given GUID. + If there is no such following Config Block found until the end of the ta= ble, return EFI_NOT_FOUND. + + @param[in] ConfigBlockTable - A pointer to the beginning of Config B= lock Table + @param[in] ConfigBlock - A pointer to the Config Block, against= which the search begins + @param[in] TargetGuid - A pointer to the Guid of Config Block = to find + + @retval CONFIG_BLOCK* - Found Config Block + @retval NULL - Config Block of given guid not found +**/ +CONFIG_BLOCK* +EFIAPI +GetNextConfigBlock ( + IN CONFIG_BLOCK *ConfigBlockTable, + IN CONFIG_BLOCK *ConfigBlock, + IN EFI_GUID *TargetGuid + ); + #endif // _CONFIG_BLOCK_LIB_H_ diff --git a/Silicon/Intel/IntelSiliconPkg/Library/BaseConfigBlockLib/BaseC= onfigBlockLib.c b/Silicon/Intel/IntelSiliconPkg/Library/BaseConfigBlockLib/= BaseConfigBlockLib.c index c89699ea..552caa57 100644 --- a/Silicon/Intel/IntelSiliconPkg/Library/BaseConfigBlockLib/BaseConfigBl= ockLib.c +++ b/Silicon/Intel/IntelSiliconPkg/Library/BaseConfigBlockLib/BaseConfigBl= ockLib.c @@ -137,3 +137,46 @@ GetConfigBlock ( =20 return EFI_NOT_FOUND; } + +/** + Search through ConfigBlockTable blocks to find following Config Block of= given GUID. + If there is no such following Config Block found until the end of the ta= ble, return EFI_NOT_FOUND. + + @param[in] ConfigBlockTable - A pointer to the beginning of Config B= lock Table + @param[in] ConfigBlock - A pointer to the Config Block, against= which the search begins + @param[in] TargetGuid - A pointer to the Guid of Config Block = to find + + @retval CONFIG_BLOCK* - Found Config Block + @retval NULL - Config Block of given guid not found +**/ +CONFIG_BLOCK* +EFIAPI +GetNextConfigBlock ( + IN CONFIG_BLOCK *ConfigBlockTable, + IN CONFIG_BLOCK *ConfigBlock, + IN EFI_GUID *TargetGuid + ) +{ + CONFIG_BLOCK_TABLE_HEADER *ConfigBlkTblHdrPtr; + UINTN ConfigBlkTblEndAddr; + UINTN ConfigBlkOffset; + CONFIG_BLOCK *TempConfigBlk; + + ConfigBlkTblHdrPtr =3D (CONFIG_BLOCK_TABLE_HEADER *) ConfigBlockTable; + ConfigBlkTblEndAddr =3D (UINTN) ConfigBlockTable + (UINTN) ConfigBlkTblH= drPtr->Header.GuidHob.Header.HobLength; + TempConfigBlk =3D (CONFIG_BLOCK *) ConfigBlock; + ConfigBlkOffset =3D (UINTN) ConfigBlock + (UINTN) TempConfigBlk->Header.= GuidHob.Header.HobLength; + + // + // Loop until exceeding ConfigBlockTable range + // + while (ConfigBlkOffset < ConfigBlkTblEndAddr) { + TempConfigBlk =3D (CONFIG_BLOCK *) ConfigBlkOffset; + if (CompareGuid (TargetGuid, &(TempConfigBlk->Header.GuidHob.Name))) { + return TempConfigBlk; + } + ConfigBlkOffset +=3D (UINTN) TempConfigBlk->Header.GuidHob.Header.HobL= ength; + } + + return NULL; +} --=20 2.30.0.windows.2 --------------------------------------------------------------------- Intel Technology Poland sp. z o.o. ul. Slowackiego 173 | 80-298 Gdansk | Sad Rejonowy Gdansk Polnoc | VII Wydz= ial Gospodarczy Krajowego Rejestru Sadowego - KRS 101882 | NIP 957-07-52-31= 6 | Kapital zakladowy 200.000 PLN. Ta wiadomosc wraz z zalacznikami jest przeznaczona dla okreslonego adresata= i moze zawierac informacje poufne. W razie przypadkowego otrzymania tej wi= adomosci, prosimy o powiadomienie nadawcy oraz trwale jej usuniecie; jakiek= olwiek przegladanie lub rozpowszechnianie jest zabronione. This e-mail and any attachments may contain confidential material for the s= ole use of the intended recipient(s). If you are not the intended recipient= , please contact the sender and delete all copies; any review or distributi= on by others is strictly prohibited. -=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 (#84646): https://edk2.groups.io/g/devel/message/84646 Mute This Topic: https://groups.io/mt/87640147/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-