From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (NAM12-BN8-obe.outbound.protection.outlook.com [40.107.237.88]) by mx.groups.io with SMTP id smtpd.web10.30709.1681881037541611709 for ; Tue, 18 Apr 2023 22:10:37 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=JazYPxs/; 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.237.88, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cpMKJqRF04FiPfxnw0b+csw4OFoYFTwT+fdiJmHmghNRZ9PdMNvSKgctE1bp077yeZjqQxcyK9iQwj9Oj10iV+H245IctHoCzxbgu7VHpqmqmoXTSL9UWJtDAcmJk+dPdOQAyfij+KJ4rS6Oi7Heb2XeuwZQtLp5W7pAHJUOK9k5lSyXoxsYNaf1kFW8JtE09nf/456o79qTNYphhDmwDGbEEn7N3zXA5c9jP0FjCVXBvFLpth/JeFMcmtOqowpDpYEEocNadZTEAFpZERbQXeWXHbN/88BnsKYcp1tPBlPuGcjQWXi1wZY+8N63Dgk1EeZhWuNy+HWybhi3eWzsDg== 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=kxeycYNXsGj+Sh5bgTcFk6FwPZv4qn5wLme2RGChlj8=; b=E1Sy0AvgWX84V4yXWkwB73dHx2h3mEkUbq6Iff4JWbiCbw/5fZOiXyC3Fwi+e8p6NmpUhHEdfddWXJm/9HlTLO7qnHEKZ6+ABVweXsgsr5/mlW1B2IHHc0OXlJCNCBKOIn9LfB2DCy3ZTxsqR+D/eDHQ5mZ60FkfNd9L4Z9xSlbLRd0ZCEp4DoqZT3hoMqlxl42NVSTpiUGxaQHd88vnCqyeN+VuHOtqg1eZZYYaQDtjLJqyXg4kJX40xFzyjmUuqHZ26QNrQLprutEeYsFYItqe35978yofVo+U1dkpaPIVCeu6ap6ehqP5P5mWpQAaIWZQvltrgO76jMqEYVu5Kg== 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=kxeycYNXsGj+Sh5bgTcFk6FwPZv4qn5wLme2RGChlj8=; b=JazYPxs/XrMCLPJrNf+PF+FT/2H0JZyCoHmTdBkjqXBWpffjW13all6tSRhrP+Q9Q2w3mWgJTiLsj5WoMCu0zZNiJCabBwNPYkQf0ENO+BvkLriQ4pThLRhC9Z2JeNydnX8BdcowQP4NV5QAWF0zPoPJkp67qptW2/1W4SbnelM= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by IA1PR12MB7518.namprd12.prod.outlook.com (2603:10b6:208:419::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6298.45; Wed, 19 Apr 2023 05:10:34 +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 05:10:34 +0000 From: "Chang, Abner" To: Nickle Wang , "devel@edk2.groups.io" CC: Igor Kulchytskyy , Nick Ramirez Subject: Re: [PATCH v2 1/5] RedfishPkg: introduce EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL Thread-Topic: [PATCH v2 1/5] RedfishPkg: introduce EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL Thread-Index: AQHZcmRXzr/RDZfKvUOSSs2oLEqah68yFWnQ Date: Wed, 19 Apr 2023 05:10:33 +0000 Message-ID: References: <20230419021148.5874-1-nicklew@nvidia.com> In-Reply-To: <20230419021148.5874-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-19T05:10:31Z; 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=f5d0c97a-c7f9-4750-8c33-4279426ea757; 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_|IA1PR12MB7518:EE_ x-ms-office365-filtering-correlation-id: 61aab9eb-43f4-45fb-31fb-08db40946737 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2cJaGRMoprw2/8OHZwrR/x6pOubT0o7XTqYEUYc4KlEYuMrFcQge7R/12ItJJDZQrMPWT4NdAqLPtTaRwiQvgoheDq5tKGious+G9tkAZYVNaVAZ9Q64qMpQ9OB3XgPjdrPCbg3UxBk6o/y1Q8UKkpjvkiBMO/cJxtXmNPIL1Iv8TSK4GEfXqXAeIKsVavMuFFg2079nMbrQ677YIU4/e9pM7eP9WQ8sqyViZjkvSNp1+lGalNBhBKfNdc5iQ+H4+jPdIcCrCNgzbh+OWd4ISgYvTpbwhyB7blO7RJsD2EOljx1Un1pw/69X23NAtzRtVcnH3ehR5wC/Z+Qbv+4dr4QMvt0nr97bEtcXMQ1FVwj56mkP5LxgJH7zi0bBDlOgaSgI4yg6BG06lmZeneNRsxQ2a2Ox7MGDmGE1Qh4tqRHJDJwtgaA77ero1s4poqWhsFzbBrDvaqaZWSs8WLnndRLeBIlaGZKPeP41jDLEGn2atoi1PdnZwd0UaYj6rp407PY1ODKL8j0yvleKp7G7ZdyDRYIIu2hceVhqDHR7fD2Y5XNWEa05/CeGUIBwmcbkLB6VaznCfdaJ2/pgHsV5V1t5Bp5FtcuZUuZvOQ/vDot1kRT/v3wm1vjxNc9vVVpx 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)(376002)(396003)(136003)(346002)(39860400002)(366004)(451199021)(6506007)(54906003)(9686003)(53546011)(186003)(26005)(7696005)(110136005)(19627235002)(83380400001)(71200400001)(55016003)(52536014)(41300700001)(5660300002)(30864003)(2906002)(33656002)(316002)(4326008)(38100700002)(86362001)(38070700005)(8936002)(8676002)(478600001)(64756008)(66446008)(122000001)(66946007)(66556008)(66476007)(76116006);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?XFmwB8kSPh7WHH/W+0O/+0XSBexEZ7fls+SzCb9TVDF0o1SlS4qGWvNUCIEK?= =?us-ascii?Q?y4eQ14EhK4gF+G0r7E7ZTi2P8mHYvcb1UeTzakVnj1zPxuLWyaWts3ven5Lc?= =?us-ascii?Q?CzKhCyh86mcQsQrskOVNE4kQvNwNmgsNO+bPUCSaSVtUF7AtDv/u3dIX+fKr?= =?us-ascii?Q?NTlNL45KXnn7mJQVyWlrnwAh2pt0Unkwi6ToZpZSuJWzuuKg8jyB17JxHoUI?= =?us-ascii?Q?Ld97syourq04wwJOrxm8LghLe42X4QeIV3k7od+78pWRLz+Fs6fZF4q1akod?= =?us-ascii?Q?HVFmgkwG36/IEkWd0BD8gz9Jnx4/fwvL6v1CPfHs6cDQ4rPVD7lsNi+eRQzx?= =?us-ascii?Q?e8oR8GHpNlWkR6Uq/wIpx9xGnofR9tcFVAdmJOI2qQjkuxq1gxOxwZ3lfiRt?= =?us-ascii?Q?B51X21X7HhpAC9PJQWsNq3h8uU+EQtLmhp8OTqK1uw6wsKrtsZ+1xFUfhZfu?= =?us-ascii?Q?opwTOjWfHjIw8V6Cx7pCsaWxzCQNNnzxSEFjg4ObeEnqYYufNLzMiXPiz7Ci?= =?us-ascii?Q?9VgdPPLlQRQzQnBIG2cd/ibUzLfMCUKZG8NP1e/NT/2ZMGoWP7poq3JyOAcx?= =?us-ascii?Q?AY4NKEqEVLN9NOLuK78P7CYJxLqo61pxJlu4W1o5rnimQpHcTjbuQsFuazKN?= =?us-ascii?Q?FsYzQc+p7urHdEtdT5P52urJFIu1RC1GF6RFPoyiAYq3Uu1vAB+PGWW7qb+x?= =?us-ascii?Q?BJ7LOVlde5+3CmKXAmKixuWtIVN8EnXQ92Sd8g+oWs2PoTZHGPQ2DuN6zLq3?= =?us-ascii?Q?s2imrXM3BzcQxXPHZPfkK9mQSs4QPK8M5dp8XunV+cHlU1k3tgmkZV+e5F2q?= =?us-ascii?Q?QUX04w/glFR6Bw949KtXB8MhxA9fwl8CU5fsYZ6Qj9hjMRLi13fWEN5UIVla?= =?us-ascii?Q?fc8AoflsCqrvTcJQ1ERD5ZYCl375SFkPJgXAJecvJqV2BfgvR4eD64QT/82n?= =?us-ascii?Q?0R1qeybv9p6u1uTJRT3GJX7xWL5cguUFaxIpcE6kuP+QY5bx7nlmwnU9Wt3H?= =?us-ascii?Q?hhoOcvVrTnN9aQs427lb7Vy9dFW3p6DQWnCe5gRuh7QqvvI9CnzuromOOb5f?= =?us-ascii?Q?k4dvH5g0D9MvmMF9ZQFOrM0NvktoXH5LzitTI5hQK+8yYXhM4oa9wA8w5MvZ?= =?us-ascii?Q?4GOTZFZhR8kRB2xlmiS0HoNxcPlkB1z3pXr9+64IAYhTVnqctfNrwlU9seWY?= =?us-ascii?Q?kcTqARuGckLILOq93HHVrEt/eZ07JBEKxkI4KAfDSo3XoOE+UA5YWhycCLK1?= =?us-ascii?Q?DS3j/pvg7DM4aqwT9VwbEsiGmPWs5zDgaDNs8C3k0i+nsfglqmbzchjOaY4d?= =?us-ascii?Q?2SmteTLw2zfWP62jXQk0M25JjHIlPRQf0EuKcS5etgA0wIt0vUxJSLtLTPPx?= =?us-ascii?Q?fYfNL9lvQRc5hNkA340s7/Q9BEdUxZ/VQo0pPW8fBpGFFIgCPM9PjyUarQPA?= =?us-ascii?Q?0hbwuzyD4lx/5oyQGP2Ats1cmHcxWsFnfKfnbFLcogzSF9iRHWO+BYGNCMzo?= =?us-ascii?Q?qcqtA0bO+eg0TOfrtWZn/JYOgtf08poMFN0OJpUVCyBVf75SoEnn7dhQStc7?= =?us-ascii?Q?W7yx+vfo5l2RD0QWdtE=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: 61aab9eb-43f4-45fb-31fb-08db40946737 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2023 05:10:33.3701 (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: wSazUzadc4dfPjd4UOFKnYck54GDURIXXRQljL/wDqyG9Eu64vqkB52x7r7B7+qybZp6EaDaQfZUup53Lingwg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7518 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] > -----Original Message----- > From: Nickle Wang > Sent: Wednesday, April 19, 2023 10:12 AM > To: devel@edk2.groups.io > Cc: Chang, Abner ; Igor Kulchytskyy > ; Nick Ramirez > Subject: [PATCH v2 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..e27256bd68df > --- /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 Please fix the leading whitespaces for this and following function prototyp= es. Abner > +(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