From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (NAM04-MW2-obe.outbound.protection.outlook.com [40.107.101.71]) by mx.groups.io with SMTP id smtpd.web10.33458.1681897483481932844 for ; Wed, 19 Apr 2023 02:44:43 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=kuCqCwkl; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.101.71, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mkhWEpsEDRxm1ysBVSp8REE7DzQBiC5XLXmEZeDCKlBhM/xNas9KRe2SVYUWrEqRZ7KuQK/OZiGZscvuxXw75y3aKUqLFT44uKkacDPj3ZCTyyBGqxj8Q1b1cSEyoWNZxvw9mhKota2AOlbq3GCSiQ2xFFIi0UWJa4IzrpvHpgKiR6vfn9lPYwYsNuRCVOEugUk9lbJqw5xYHRsBPcmiXhEt3/djcAdj2mIgPcLOU5CJ1qZ/Imsr7ASN4UDCjcZNDod+jFiaUlOdRgQe9OvlHdMN7lZeovbG4iMQS8NmIVhUOk4Kak+RC70VRQknnlso/5S/0H9l21DARgz1csJ/Ew== 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=CID+WSyb1wbNAM4afDuijt0/u/HwPWhEYDjkGAQ0N3k=; b=S1MxqsMLp4IY2D7vinknxDUwGGpA8KqZVvLnXyUda2RhJhlTaW0rsaWEPCzEGTSfHRQhCk7Lm2ABunQwcWJOe4VDi+LQxB3iPG1k/ZXFHzU29WyVZ/d7GJrqYRWHixOg0rtJ1XxsIFT90xVj4KqCV+ytyxXYWXqDfLZE7yX/HoCsJ+LKghi9xSpEZRAh6KJe4gI3Vmf7KJBmRVORoRWjLEm/OhE1/navh3oLdQ9ID8ut1XEBIP1mIxnmDCngjGHNDKOkwoCGlhpWAidRrvUx06GTd7aPreumrp5j8jdfy91f82yenQoBsjWY1cXFJnsj5bQOnYTEP2W8kIeWpX/wTQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CID+WSyb1wbNAM4afDuijt0/u/HwPWhEYDjkGAQ0N3k=; b=kuCqCwkl7lapHZ7Fs4sLkoh0DXAAjW01/NEUeMp1RX2rC6FgaDxkwlj5jbA/76wJlH+WseFDufxYaLYgsfibZL8KUiW9aJU0Ixde0rvodom9trA+eub1pd2aCuHK9ukyC1lJ5AQnJ+Nmnirl2GilQM7eFtKM8UA9hItg9gRxS9w= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by PH0PR12MB5632.namprd12.prod.outlook.com (2603:10b6:510:14c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.20; Wed, 19 Apr 2023 09:44:40 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::46f1:bdce:a4bc:29e3]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::46f1:bdce:a4bc:29e3%3]) with mapi id 15.20.6319.020; Wed, 19 Apr 2023 09:44:40 +0000 From: "Chang, Abner" To: Nickle Wang , "devel@edk2.groups.io" CC: Igor Kulchytskyy , Nick Ramirez Subject: Re: [PATCH v3 1/5] RedfishPkg: introduce EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL Thread-Topic: [PATCH v3 1/5] RedfishPkg: introduce EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL Thread-Index: AQHZcp6iZD+RW2vEOkSYwWw4QV8+F68yYcnA Date: Wed, 19 Apr 2023 09:44:40 +0000 Message-ID: References: <20230419090915.97-1-nicklew@nvidia.com> In-Reply-To: <20230419090915.97-1-nicklew@nvidia.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-04-19T09:44:39Z; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=05bff5d9-4c2c-4769-84c2-c0c7d0ebffc8; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|PH0PR12MB5632:EE_ x-ms-office365-filtering-correlation-id: 95427403-9e01-48e0-648d-08db40bab2a6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wXhycVsb3fRFlYB/otsn5HtFP64KZn/3HqzgVPtl8nwTPlhZ5F3nf3MYddqj/Ce2PZcbjW1oK3ugGWqhaX7DmXRav1uLb2sCDV+km3pdgREWdH81CBsNIkPWqjoDdIH7RFGAn1ymWQ7oCCDr6xeqwSbpTIAWsMwa3+8mCH9nrU9KIqd9vos4v89XwjRwR9W4nCY7SPFL9flBgA4rcbhLrjY2881bxB5j/yjPNTNFFiQdo5H7tkKekjUoZJqOhTbqoYllv9dNOvOP0ZDVH0IldNX7gps0me3nc3Kx/YmyHeDEprVIkwoAIfnKXFuzWRRDVURClJnCNNtks/7uHqp87FrtdCrYOPCf3JZGPBtjEugvPnuXlzljx2AiDFhYl38XSFwp9BDHAxfCf+JBIRdIk8ZehqnT1DiPNf+HHTvslS7Ef+bhxYCmKTe5e2vFh2MtnrVVqp6l5ba9PlvTUFBRtaaXkDpQzaYhJ20y+InbH2cfBXgeFEaryueapAXkdzikIu6p6zBGy+DYmzYRR7K1Ql5H4wqq/G6kOEsayCGslQwsgGoBIBHR9V9KQORbLWpFpWAnL1fTq81ZHHbOp8vh3JbH08x4g5D2Aq+yPH0oQ3jFpjZyDVmzLuqwHOmMdicy x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3966.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(346002)(136003)(396003)(376002)(366004)(39860400002)(451199021)(186003)(76116006)(4326008)(19627235002)(110136005)(54906003)(316002)(66946007)(64756008)(66476007)(66446008)(66556008)(71200400001)(7696005)(478600001)(8676002)(8936002)(41300700001)(5660300002)(55016003)(52536014)(30864003)(2906002)(122000001)(33656002)(86362001)(38070700005)(38100700002)(26005)(9686003)(6506007)(53546011)(83380400001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?vM0r+UH5prdcy6OPLNFfstCxYpSsLaU0Us08s8Nu/VBhU/LRd2fMbthZtXPA?= =?us-ascii?Q?lD73azPkpSr7FLB6xlYK7tssjwQnrKy4AUU7MC02Ww55ZrnrWvcB2k+eJh+G?= =?us-ascii?Q?hJ3hpse1yWg4efH4CeYptQUZjVV5x+ZdU/fTJqICs6o2OlJPc7PjLVUustBB?= =?us-ascii?Q?EB1yGgQXJEd4ReA0lAQM73BEpAVUix8h5Ev+YZ7jraTkF9xU/DqVjhwRjPOS?= =?us-ascii?Q?nmvgjRRNIbALwVnG1jj36WKDXwOCt5LXJn1leYNvT/vmJKBpt/kN8mrQoS/E?= =?us-ascii?Q?0lbmbH4MOh9BiofsZrHD0oj0NPORFF3cXJSN+Sk2B6yYubpLDmEg3KiYd08F?= =?us-ascii?Q?9WnVsGNHFwLRUzThnYTJdgQbvnQbMVeUpHJKgfMpdY1PrJgjGRwQ+cOG04LE?= =?us-ascii?Q?lWzk4wWENvC2WXr1bufogs+vqtsOxwy5wCuAfLrRwoT3RElK+HCXkEJhH4WN?= =?us-ascii?Q?0Hzn467FvV/n1eeZhsuRcJy/EhxfEAZwDpAze8DV0vksTgtyTzGRxxw10/2Z?= =?us-ascii?Q?zEXtgmBg6GnYSvnTAIf3H+Ma5h4uKUcsYDijW7kn6wOdr2ItOkAT5UxuGAR0?= =?us-ascii?Q?ahaM8MTOvZrBjTzt/pJFmGNzGTItjIRJ+xkLcY4SoYgdERVYu0Bth5ejk7i+?= =?us-ascii?Q?fHklLtezYWLGUuoKEGT0Q0my03aQnlxWfvZqWY+nOk61/JUzedIuZLtqnuBb?= =?us-ascii?Q?9pl0ZEx1/ia7QmQNhpT0XV+4RCUmK2ZmLMXAbEkRNptZ6rIGOQyPkNIW0VtD?= =?us-ascii?Q?FQ5BwGaqwyGKwjp16bg0dP79mW5fRp7pmSGeIALfppSOlnSwBGn3gDP397Y3?= =?us-ascii?Q?g9oE+CoSSDN0xVNli/q62l0KugapckyYp6jn6VcChVgMcTj49RlL/4guJuU7?= =?us-ascii?Q?avqh4IrqGhNQlCZzs/j4BbzOVTry2HQPOZWFr+O2ECjQrbx9F/qpiaQzfX4X?= =?us-ascii?Q?neHT6EemA8rOL16UQHlxoBKAeKEwxicT5RPTwa7gMhZc7eyj6JI/oN/MyNPM?= =?us-ascii?Q?z1nSjkTqXTn81zL3sVmPlsVsxaSQqL3og2u8cu/lAgmI7ahcRHGCYNnZE+Ju?= =?us-ascii?Q?liIG5LHdWUedD/4xW4xTQjohW0VJBcK/Ej3rJkbyHfB+zYVMRen5wdiR65e6?= =?us-ascii?Q?744RCApIDViqrV67dtQWedjG1GbtrWQNTlcK/PNhDzA5VNmnBcGA3VL5Y4B0?= =?us-ascii?Q?mlpZse+tGLCO4TIYpEfKQu734j2CH/IXrNzqbAmojFMfF7cspajkn8zxrll3?= =?us-ascii?Q?BzySZD54pZhS0pa9kL/Kj106o3Gk9FiGvTBJqpmb8qdZ7pWThG1hPOnCxSi6?= =?us-ascii?Q?UHcncLm/ixFSps9D/e/tY4ETA4EPZ+pmHZ9xVmKPUtzUKlnmwuseC+IOxOUf?= =?us-ascii?Q?yrj5SJckoIlr2uh7Ko/qBnRw7fJGXfwv9y0p+TRKfHVFHdUHeZyL6KDChwuu?= =?us-ascii?Q?jxRh/aNYgjRqaKfoeOswvIqcWfoIlb1Hh7y2autuj8kKrxc1UPQHEDBexBRp?= =?us-ascii?Q?l73CIul2MueCiZFOD+GFNWBxf+sdbBbooGeV1QkZmQxDn87rjWmlZ861fzVn?= =?us-ascii?Q?lWTkxAWmMgeWC278f3Y=3D?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 95427403-9e01-48e0-648d-08db40bab2a6 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2023 09:44:40.8124 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: i/J+rvrzCYyVdrtsiM2KaUz/+f8TkkIiAklxcaNzbvE0CQviDQ7Il9/DQqML9wg3A7N2euvIw2FTZXQlLfJxPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5632 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Reviewed-by: Abner Chang > -----Original Message----- > From: Nickle Wang > Sent: Wednesday, April 19, 2023 5:09 PM > To: devel@edk2.groups.io > Cc: Chang, Abner ; Igor Kulchytskyy > ; Nick Ramirez > Subject: [PATCH v3 1/5] RedfishPkg: introduce > EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL >=20 > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. >=20 >=20 > EDKII Redfish Platform Config Protocol defines the protocol interfaces th= at > abstracts the platform configuration format and storage from EDK2 Redfish > Feature driver. This protocol provides the interfaces to get and set plat= form > configuration with the format and configuration storage agnostic to the > Redfish feature driver. >=20 > Signed-off-by: Nickle Wang > Cc: Abner Chang > Cc: Igor Kulchytskyy > Cc: Nick Ramirez > --- > RedfishPkg/RedfishPkg.dec | 3 + > .../Protocol/EdkIIRedfishPlatformConfig.h | 257 ++++++++++++++++++ > 2 files changed, 260 insertions(+) > create mode 100644 > RedfishPkg/Include/Protocol/EdkIIRedfishPlatformConfig.h >=20 > diff --git a/RedfishPkg/RedfishPkg.dec b/RedfishPkg/RedfishPkg.dec index > f171053aec10..904630ae4be6 100644 > --- a/RedfishPkg/RedfishPkg.dec > +++ b/RedfishPkg/RedfishPkg.dec > @@ -78,6 +78,9 @@ > ## Include/Protocol/Edk2RedfishConfigHandler.h > gEdkIIRedfishConfigHandlerProtocolGuid =3D { 0xbc0fe6bb, 0x2cc9, 0x463= e, > { 0x90, 0x82, 0xfa, 0x11, 0x76, 0xfc, 0x67, 0xde } } >=20 > + ## Include/Protocol/EdkIIRedfishPlatformConfig.h > + gEdkIIRedfishPlatformConfigProtocolGuid =3D { 0X4D94A7C7, 0X4CE4, > + 0X4A84, { 0X88, 0XC1, 0X33, 0X0C, 0XD4, 0XA3, 0X47, 0X67 } } > + > [Guids] > gEfiRedfishPkgTokenSpaceGuid =3D { 0x4fdbccb7, 0xe829, 0x4b4c, { = 0x88, > 0x87, 0xb2, 0x3f, 0xd7, 0x25, 0x4b, 0x85 }} >=20 > diff --git a/RedfishPkg/Include/Protocol/EdkIIRedfishPlatformConfig.h > b/RedfishPkg/Include/Protocol/EdkIIRedfishPlatformConfig.h > new file mode 100644 > index 000000000000..d20b2c980e5a > --- /dev/null > +++ b/RedfishPkg/Include/Protocol/EdkIIRedfishPlatformConfig.h > @@ -0,0 +1,257 @@ > +/** @file > + This file defines the EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL > interface. > + > + (C) Copyright 2021-2022 Hewlett Packard Enterprise Development LP
> + Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights > reserved. > + > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#ifndef EDKII_REDFISH_PLATFORM_CONFIG_H_ #define > +EDKII_REDFISH_PLATFORM_CONFIG_H_ > + > +typedef struct _EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL > +EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL; > + > +/// > +/// Definition of EDKII_REDFISH_TYPE_VALUE /// typedef union { > + INT64 Integer; > + BOOLEAN Boolean; > + CHAR8 *Buffer; > + CHAR8 **StringArray; > + INT64 *IntegerArray; > + BOOLEAN *BooleanArray; > +} EDKII_REDFISH_TYPE_VALUE; > + > +/// > +/// Definition of EDKII_REDFISH_VALUE_TYPES /// typedef enum { > + RedfishValueTypeUnknown =3D 0, > + RedfishValueTypeInteger, > + RedfishValueTypeBoolean, > + RedfishValueTypeString, > + RedfishValueTypeStringArray, > + RedfishValueTypeIntegerArray, > + RedfishValueTypeBooleanArray, > + RedfishValueTypeMax > +} EDKII_REDFISH_VALUE_TYPES; > + > +/// > +/// Definition of EDKII_REDFISH_ATTRIBUTE_TYPES /// typedef enum { > + RedfishAttributeTypeUnknown =3D 0, > + RedfishAttributeTypeEnumeration, > + RedfishAttributeTypeString, > + RedfishAttributeTypeInteger, > + RedfishAttributeTypeBoolean, > + RedfishAttributeTypePassword > +} EDKII_REDFISH_ATTRIBUTE_TYPES; > + > +/// > +/// Definition of EDKII_REDFISH_VALUE > +/// > +typedef struct { > + EDKII_REDFISH_VALUE_TYPES Type; > + EDKII_REDFISH_TYPE_VALUE Value; > + UINTN ArrayCount; > +} EDKII_REDFISH_VALUE; > + > +/// > +/// Definition of EDKII_REDFISH_ATTRIBUTE_VALUE /// typedef struct { > + CHAR8 *ValueName; > + CHAR8 *ValueDisplayName; > +} EDKII_REDFISH_ATTRIBUTE_VALUE; > + > +/// > +/// Definition of EDKII_REDFISH_POSSIBLE_VALUES /// typedef struct { > + UINTN ValueCount; > + EDKII_REDFISH_ATTRIBUTE_VALUE *ValueArray; > +} EDKII_REDFISH_POSSIBLE_VALUES; > + > +/// > +/// Definition of EDKII_REDFISH_ATTRIBUTE /// typedef struct { > + CHAR8 *AttributeName; > + CHAR8 *DisplayName; > + CHAR8 *HelpText; > + CHAR8 *MenuPath; > + EDKII_REDFISH_ATTRIBUTE_TYPES Type; > + BOOLEAN ResetRequired; > + BOOLEAN ReadOnly; > + BOOLEAN GrayedOut; > + BOOLEAN Suppress; > + UINT64 NumMaximum; > + UINT64 NumMinimum; > + UINT64 NumStep; > + UINT8 StrMaxSize; > + UINT8 StrMinSize; > + EDKII_REDFISH_POSSIBLE_VALUES Values; > +} EDKII_REDFISH_ATTRIBUTE; > + > +/** > + Get Redfish value with the given Schema and Configure Language. > + > + @param[in] This Pointer to > EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL instance. > + @param[in] Schema The Redfish schema to query. > + @param[in] Version The Redfish version to query. > + @param[in] ConfigureLang The target value which match this con= figure > Language. > + @param[out] Value The returned value. > + > + @retval EFI_SUCCESS Value is returned successfully. > + @retval Others Some error happened. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EDKII_REDFISH_PLATFORM_CONFIG_GET_VALUE)( > + IN EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL *This, > + IN CHAR8 *Schema, > + IN CHAR8 *Version, > + IN EFI_STRING ConfigureLang, > + OUT EDKII_REDFISH_VALUE *Value > + ); > + > +// > +// Default class standard > +// > +#define EDKII_REDFISH_DEFAULT_CLASS_STANDARD > +EFI_HII_DEFAULT_CLASS_STANDARD > + > +/** > + Get Redfish default value with the given Schema and Configure Language= . > + > + @param[in] This Pointer to > EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL instance. > + @param[in] Schema The Redfish schema to query. > + @param[in] Version The Redfish version to query. > + @param[in] ConfigureLang The target value which match this con= figure > Language. > + @param[in] DefaultClass The UEFI defined default class. > + Please refer to UEFI spec. 33.2.5.8 "= defaults" for details. > + @param[out] Value The returned value. > + > + @retval EFI_SUCCESS Value is returned successfully. > + @retval Others Some error happened. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EDKII_REDFISH_PLATFORM_CONFIG_GET_DEFAULT_VALUE)( > + IN EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL *This, > + IN CHAR8 *Schema, > + IN CHAR8 *Version, > + IN EFI_STRING ConfigureLang, > + IN UINT16 DefaultClass, > + OUT EDKII_REDFISH_VALUE *Value > + ); > + > +/** > + Set Redfish value with the given Schema and Configure Language. > + > + @param[in] This Pointer to > EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL instance. > + @param[in] Schema The Redfish schema to query. > + @param[in] Version The Redfish version to query. > + @param[in] ConfigureLang The target value which match this con= figure > Language. > + @param[in] Value The value to set. > + > + @retval EFI_SUCCESS Value is returned successfully. > + @retval Others Some error happened. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EDKII_REDFISH_PLATFORM_CONFIG_SET_VALUE)( > + IN EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL *This, > + IN CHAR8 *Schema, > + IN CHAR8 *Version, > + IN EFI_STRING ConfigureLang, > + IN EDKII_REDFISH_VALUE Value > + ); > + > +/** > + Get Redfish attribute value with the given Schema and Configure Langua= ge. > + > + @param[in] This Pointer to > EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL instance. > + @param[in] Schema The Redfish schema to query. > + @param[in] Version The Redfish version to query. > + @param[in] ConfigureLang The target value which match this con= figure > Language. > + @param[out] AttributeValue The attribute value. > + > + @retval EFI_SUCCESS Value is returned successfully. > + @retval Others Some error happened. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EDKII_REDFISH_PLATFORM_CONFIG_GET_ATTRIBUTE)( > + IN EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL *This, > + IN CHAR8 *Schema, > + IN CHAR8 *Version, > + IN EFI_STRING ConfigureLang, > + OUT EDKII_REDFISH_ATTRIBUTE *AttributeValue > + ); > + > +/** > + Get the list of Configure Language from platform configuration by the > given Schema and RegexPattern. > + > + @param[in] This Pointer to > EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL instance. > + @param[in] Schema The Redfish schema to query. > + @param[in] Version The Redfish version to query. > + @param[in] RegexPattern The target Configure Language pattern= . > This is used for regular expression matching. > + @param[out] ConfigureLangList The list of Configure Language. > + @param[out] Count The number of Configure Language in > ConfigureLangList. > + > + @retval EFI_SUCCESS ConfigureLangList is returned success= fully. > + @retval Others Some error happened. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EDKII_REDFISH_PLATFORM_CONFIG_GET_CONFIG_LANG)( > + IN EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL *This, > + IN CHAR8 *Schema, > + IN CHAR8 *Version, > + IN EFI_STRING RegexPattern, > + OUT EFI_STRING **ConfigureLangList, > + OUT UINTN *Count > + ); > + > +/** > + Get the list of supported Redfish schema from platform configuration. > + > + @param[in] This Pointer to > EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL instance. > + @param[out] SupportedSchema The supported schema list which is > separated by ';'. > + For example: "x-uefi-redfish-Memory.v= 1_7_1;x-uefi- > redfish-Boot.v1_0_1" > + The SupportedSchema is allocated by t= he callee. It's > caller's > + responsibility to free this buffer us= ing FreePool(). > + > + @retval EFI_SUCCESS Schema is returned successfully. > + @retval Others Some error happened. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI > *EDKII_REDFISH_PLATFORM_CONFIG_GET_SUPPORTED_SCHEMA)( > + IN EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL *This, > + OUT CHAR8 **SupportedSchema > + ); > + > +struct _EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL { > + UINT64 Revision; > + EDKII_REDFISH_PLATFORM_CONFIG_GET_VALUE GetValue; > + EDKII_REDFISH_PLATFORM_CONFIG_SET_VALUE SetValue; > + EDKII_REDFISH_PLATFORM_CONFIG_GET_DEFAULT_VALUE > GetDefaultValue; > + EDKII_REDFISH_PLATFORM_CONFIG_GET_ATTRIBUTE GetAttribute; > + EDKII_REDFISH_PLATFORM_CONFIG_GET_CONFIG_LANG > GetConfigureLang; > + EDKII_REDFISH_PLATFORM_CONFIG_GET_SUPPORTED_SCHEMA > GetSupportedSchema; > +}; > + > +extern EFI_GUID gEdkIIRedfishPlatformConfigProtocolGuid; > + > +#endif > -- > 2.17.1