From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (NAM11-DM6-obe.outbound.protection.outlook.com [40.107.223.75]) by mx.groups.io with SMTP id smtpd.web10.677.1681528923627523321 for ; Fri, 14 Apr 2023 20:22:03 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=Xa1ThhVW; 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.223.75, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YWWlM2SEsxg1Gk23wRquufAaREOdX8FRzf++HS69Tj3YH12qPR5XH3ZojiqN1WvwLvS6Bt7S8PpOoNU+WqEX+PkDdttaiizD6gLYlB1CUvA5RgL6FJJ/BRkinmpqSh9iRZMNlOFxe0N7MccnZonrD48lPj1NoTdEc17O2g3EgZORoU9pVBBVIzW+yWWzjvi7ZnSMjZW1sEa/D49bH9GxLQbaNwd+Dp9chB0VSzk3XIGU5pSesAhnTuVERhQ7NyHx4JNh2ljJ9pQb9TXhvGPGduvFV8XnGFimUZw6knHyhNdY73PStN2yW+zduziexm3n9LFCSdsbf2zVnBcffER+1g== 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=INLqEz/r99qULw5Hhk3h0Y/6KblpMPmU1Tyl3Wsjjm4=; b=YgEUW3UgOAhfXCw69rYy47T/0KTZNWFqvDy0brN9GZTMJf/tl9lEsqzA0TUMssGENMXGSe1dNKHOvwjZy/gbJKefZcZiRduGs/CUkvBRbnShKCnHhGxb41ZZL0PxqF1sZmVIwTPm3a9ElAlRGtNXkakD3ZkNhrC8LPdinVoMUDVYkA+3zLw6SwRJ1yIjfD8NUSUahWKsi/otD3zsejQq7+gjgCUR+mFvUdQfaR3TfAOqCDL7+HWZj0ouiAmrVmWDBCspFK0fII7FRqbOFjmINP+eRRZY7s7Cf0mUteoVhVu4eCqXMMPf3klaGsu9zJOD+3pGCCWmF0B5rz3PiJo4YQ== 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=INLqEz/r99qULw5Hhk3h0Y/6KblpMPmU1Tyl3Wsjjm4=; b=Xa1ThhVWAhZgeSNeIms9f9nrTMByrCl936TPDxuC4MV7CJ0BovxZY6YjXlMg7dVzMUwzlg2ove49qey+2i/QcQVm2KY2uDCExNSODbUj+tI8nIadLcEWC+dIlIgMF288YIwWlzLiikFgf7i7j6Fvbz/Dl29x2w7qqMIpveuET+Y= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by DS7PR12MB5885.namprd12.prod.outlook.com (2603:10b6:8:78::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6298.30; Sat, 15 Apr 2023 03:22:01 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::30f:bd83:40dd:8f1]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::30f:bd83:40dd:8f1%3]) with mapi id 15.20.6298.030; Sat, 15 Apr 2023 03:22:01 +0000 From: "Chang, Abner" To: Nickle Wang , "devel@edk2.groups.io" CC: Igor Kulchytskyy , Nick Ramirez Subject: Re: [PATCH 1/5] RedfishPkg: introduce EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL Thread-Topic: [PATCH 1/5] RedfishPkg: introduce EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL Thread-Index: AQHZbdAbNPKDVbqRZ0mMGgqVZrUVNK8rtVcQ Date: Sat, 15 Apr 2023 03:22:00 +0000 Message-ID: References: <20230413062036.1608-1-nicklew@nvidia.com> In-Reply-To: <20230413062036.1608-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-15T03:21:58Z; 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=15b0bde6-3b30-4dce-9aca-6dc213be8688; 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_|DS7PR12MB5885:EE_ x-ms-office365-filtering-correlation-id: 2392dd97-0c63-4dd6-5980-08db3d609396 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0Jf24qOMPcF2FWhGIuLrDyknrBrRy8BpqTHpYxZfxuVAaz41eiy41FIuYCJ4sZqdQUiUVV2kuhkE9/v9sbUPhdHdrEdpODbIsrRCsk2XEgd/QmeHV8Jg9kW3x3XtuzfEp/QuMfAQJjUB+m2Ztv29Ne0mYV5mN8mqjMeHSZoD4iV6PHSzy/4rOjoHv/EaRCFHCeCtsw4uSozqIZTkM3kQARFHu0icOtVuK9xY6wqbz9ZwZhXrYO3ccldp73I87Xi/FHf7HMu4YoLamxYt0k0yLDWL3Mv5FRL5J1dJWRjXYQf1NKxKDzzTPZf5h1XUg7QvFUG1AEIZ1TIi/iCZhR9xKO/pFY850BHN3Kadv4QZ7v+4RGPBiBH1sm9+2Z7BWu/FZxPZnMfGWxDX3Xf7+l0Jem/g85a0QhlN2DNZ31Su6h+M+XSN1U38YOyXpIyAyaWYtR7ewFghiGb1arLL2hKITPi3uNXxEXf/u89mGhe5f1LcdkzIy5kRDgjZj/QCTTwKDV0hixgYHVVU6dRDH7b8TVReDH79Q71+p/DivnXOZqae+MqM5zN9Im3R8X6j9WhpJ4Xck2kBIGzAumkLU+HEACmK4zVKX24UY3qTCB/K+4bRi9poG1YXxQWUUOJDMjlm 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)(366004)(136003)(396003)(39860400002)(376002)(346002)(451199021)(316002)(4326008)(38100700002)(64756008)(66446008)(66556008)(66946007)(76116006)(66476007)(5660300002)(52536014)(7696005)(71200400001)(86362001)(41300700001)(19627235002)(54906003)(186003)(9686003)(53546011)(6506007)(26005)(38070700005)(2906002)(30864003)(8676002)(8936002)(83380400001)(55016003)(478600001)(33656002)(122000001)(110136005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?7noqhDTozA2zWPgT1RAfhYu6BSnkNIXP3uBQdIhlzJkyr8bUdY5ihSrGgw05?= =?us-ascii?Q?J5j+ySxggKok+eFx92N4VKIJwu3aGJDQOKW1V9Jr9QrO2MQAJEy0I1Zk7TPB?= =?us-ascii?Q?TjDEhbtX9MMqelz4x0AAN7eqgNZA2ZoBUUqPl7w2r0Yi+LuLNBinlOgd5Kpy?= =?us-ascii?Q?14WwjOkCVQxJqm4jViWlzKoz+Fii21Fvq+8LDVywXzUTOA9bllBVAFWP1FPD?= =?us-ascii?Q?j7k60TcTjMGJk1svQEhookVHsI7EVmK2PpE1aOfnJMqMYahrV8vqBQd4rep/?= =?us-ascii?Q?zFRs8TuoC33DKE5sJ3DU2T+V6czopaz6sa3bG9gmR21Eh64g4p3WzKEz94Pg?= =?us-ascii?Q?x8N+xLv9tPKF+qPaVQ/UMUjkL+taqSZUzeEIw0kaqAJxkjcY1P7BhbfhEyAn?= =?us-ascii?Q?hjDcP7/SV/gmoiFz0BJqa8GhxVXjXdDrJyUphQxJOxN/Y+najB4GnVM1R9EE?= =?us-ascii?Q?4ke12YVmrNDWQO55XiaUuC6isBXK8ACLIbRpTtwVlY2mT+Vo7JUBNzyWPmkk?= =?us-ascii?Q?mgeY0Hy5tMN7uhsZhu8ClO8XaUKiXb9fT4dEbwelx0cVLFrtqBEDsHz9CNY7?= =?us-ascii?Q?29vXgIn5RWyOLQuwtZGMDzSaAbHUvIqC0N/TVuMWbbLWMhUfrlKM+Cz8xSHj?= =?us-ascii?Q?qy8kiDfsbmzUlUwIBKKD8SoHsk3mpdF/PkR/Zk2vbyRakqZ4iTns4udM+GVq?= =?us-ascii?Q?XojPFx7/GU73zD49rsRzPEtSKTqq8DGlM5XQk1+tB76ifvv3p+Fc2UhcUhvs?= =?us-ascii?Q?Fo/xICNVCFj0By6JeMYhlW0yNFemKYrv0GMp1EeQNcEH614O2PPipOBVlD65?= =?us-ascii?Q?njM/E3SHVcnw0/aVho3v+YmKfCrA06Xj/pm1rqx+lImrjANsQ3QOashJQTBs?= =?us-ascii?Q?7iWwG4UU1miVkMNKrtfUJW+Do1/d6dZTSU/H0leOKkEagBuMJREMtLIP2H5y?= =?us-ascii?Q?/eK6pNSEbXddh9F94NTwnJJlKvXvcRdxYsHIllmsozrIzxR9cLqvbKpXoQnc?= =?us-ascii?Q?yRifrxLgcjqydBHri3WknJN4+19sHn1L/cBaztNxIKIkDIc68UQhh2CDtPDJ?= =?us-ascii?Q?LHZm0f2mP3/bvi2lsvimMk3xMufr+FuoSoQc1hJ/iyKjqwCsplChQJsRnWB8?= =?us-ascii?Q?LwFct5Jesos1AldOREWG7rzlDpw+wT7RfpxnRMX+gmVP5V3W6aROBPDSAFIl?= =?us-ascii?Q?2c7wFkgCMvQR7e3ltNw96QNuSkK9zhItNo/dX0bNgTFyUvaTGtH4W2jvw8cQ?= =?us-ascii?Q?tElDQRWzETY8muKqHCFTO8lhkWR2IKrP9LBATmb43a+X0gVHXM3i13HQtVIt?= =?us-ascii?Q?mTF0hs9flJazTagrJ9UAkuDSJBIRQY5seybso7fpfNmNNOj2ktM90dLB6IRc?= =?us-ascii?Q?Zm5x0GuOzXp8hE9fJhrHm6ihmwqhK3RlLyhG0hLLTZ8D++0wsHBgAkgsLk0j?= =?us-ascii?Q?stH5l6XbQXltJo1RB8Ogg0Aq6dQbzaC+BO9GH0r4Pa4uak6fxDsPeXgzZWEA?= =?us-ascii?Q?D7BXeKgjMlfMlnW4iDBVp0ybpKaJdDSXHnrgtBL8uKtyWwfS1G3NYTF7YaIx?= =?us-ascii?Q?wUkjZR9kuBG2ycigvcY=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: 2392dd97-0c63-4dd6-5980-08db3d609396 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Apr 2023 03:22:00.5056 (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: SXpze8+PJ3+fuKKtHmhU6V8bENRGoNDSGl72DJBkjmy0P/sm9/2HkxP9pUNTxOc7CFVliSfSjj2EIAyv4oS5gQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5885 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: Thursday, April 13, 2023 2:21 PM > To: devel@edk2.groups.io > Cc: Chang, Abner ; Igor Kulchytskyy > ; Nick Ramirez > Subject: [PATCH 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..364960933ac5 > --- /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 **/ I am thinking we should have the consistent comment style for the structure= under RedfishPkg. Could you please update the comments style for structure to use "///". > + 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 There are two redundant leading white spaces at EFI_STATUS. Please fix it f= or all function prototypes. Thanks Abner > +(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