[AMD Official Use Only - General] Reviewed-by: Abner Chang <abner.ch...@amd.com>
> -----Original Message----- > From: Nickle Wang <nick...@nvidia.com> > Sent: Wednesday, December 7, 2022 10:41 PM > To: devel@edk2.groups.io > Cc: Chang, Abner <abner.ch...@amd.com>; Igor Kulchytskyy > <ig...@ami.com>; Nick Ramirez <nrami...@nvidia.com> > Subject: [edk2-staging][PATCH 1/3] edk2-staging/RedfishClientPkg: Add > Redfish Resource Addendum Protocol > > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. > > > Introduce Redfish Resource Addendum Protocol to Redfish feature driver. > Feature driver uses this protocol to query OEM resource from platform in > order to support Redfish OEM property. This protocol is also used to get > addendum data that is required by BMC to manage Redfish BIOS service. > > Signed-off-by: Nickle Wang <nick...@nvidia.com> > Cc: Abner Chang <abner.ch...@amd.com> > Cc: Igor Kulchytskyy <ig...@ami.com> > Cc: Nick Ramirez <nrami...@nvidia.com> > --- > .../EdkIIRedfishResourceAddendumProtocol.h | 77 > +++++++++++++++++++ > RedfishClientPkg/RedfishClientPkg.dec | 2 + > 2 files changed, 79 insertions(+) > create mode 100644 > RedfishClientPkg/Include/Protocol/EdkIIRedfishResourceAddendumProtocol > .h > > diff --git > a/RedfishClientPkg/Include/Protocol/EdkIIRedfishResourceAddendumProto > col.h > b/RedfishClientPkg/Include/Protocol/EdkIIRedfishResourceAddendumProto > col.h > new file mode 100644 > index 0000000000..462d94fdc1 > --- /dev/null > +++ > b/RedfishClientPkg/Include/Protocol/EdkIIRedfishResourceAddendumProt > +++ ocol.h > @@ -0,0 +1,77 @@ > +/** @file > + This file defines the EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL > interface. > + > + Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved. > + > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#ifndef EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL_H_ > +#define EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL_H_ > + > +#include <Uefi.h> > + > +typedef struct _EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL > +EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL; > + > +// > +// The definition of REDFISH_SCHEMA_INFO // typedef struct { > + CHAR8 *Uri; > + CHAR8 *Schema; > + CHAR8 *Version; > +} REDFISH_RESOURCE_SCHEMA_INFO; > + > +/** > + Provising redfish resource with with addendum data in given schema. > + > + @param[in] This Pointer to > EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL instance. > + @param[in] SchemaInfo Redfish schema information. > + @param[in,out] Json On input, this is the Redfish data in > given Uri in > JSON object. > + On output, This is the Redfish data with > addendum > information > + which platform would like to add to > Redfish service. > + > + @retval EFI_SUCCESS Addendum data is attached. > + @retval EFI_UNSUPPORTED No addendum data is required in given > schema. > + @retval Others Some error happened. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EDKII_REDFISH_RESOURCE_ADDENDUM_PROVISIONING)( > + IN EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL *This, > + IN REDFISH_RESOURCE_SCHEMA_INFO *SchemaInfo, > + IN OUT EDKII_JSON_VALUE Json > + ); > + > +/** > + Provising redfish OEM resource in given schema information. > + > + @param[in] This Pointer to > EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL instance. > + @param[in] SchemaInfo Redfish schema information. > + @param[out] Json This is the Redfish data which is attached > to OEM > object in given > + schema. > + > + @retval EFI_SUCCESS OEM data is attached. > + @retval EFI_UNSUPPORTED No OEM data is required in given schema. > + @retval Others Some error happened. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EDKII_REDFISH_RESOURCE_ADDENDUM_OEM)( > + IN EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL *This, > + IN REDFISH_RESOURCE_SCHEMA_INFO *SchemaInfo, > + OUT EDKII_JSON_VALUE Json > + ); > + > +struct _EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL { > + UINT64 Revision; > + EDKII_REDFISH_RESOURCE_ADDENDUM_OEM OemCallback; > + EDKII_REDFISH_RESOURCE_ADDENDUM_PROVISIONING > ProvisioningCallback; > +}; > + > +extern EFI_GUID gEdkIIRedfishResourceAddendumProtocolGuid; > + > +#endif > diff --git a/RedfishClientPkg/RedfishClientPkg.dec > b/RedfishClientPkg/RedfishClientPkg.dec > index d3c97ecf68..9d88680415 100644 > --- a/RedfishClientPkg/RedfishClientPkg.dec > +++ b/RedfishClientPkg/RedfishClientPkg.dec > @@ -43,6 +43,8 @@ > gEdkIIRedfishConfigLangMapProtocolGuid = { 0x1d9ba9fe, 0x5d5a, 0x4b66, > {0x83, 0x5b, 0xe2, 0x5d, 0x13, 0x93, 0x4a, 0x9c } } > ## Include/Protocol/EdkIIRedfishInterchangeData.h > gEdkIIRedfishFeatureInterchangeDataProtocolGuid = { 0x4B8FF71C, 0x4A7B, > 0x9478, { 0xB7, 0x81, 0x35, 0x9B, 0x0A, 0xF2, 0x00, 0x91 } } > + ## Include/Protocol/EdkIIRedfishResourceAddendumProtocol.h > + gEdkIIRedfishResourceAddendumProtocolGuid = { 0xda36b12b, 0xaad4, > + 0x4e90, { 0xba, 0xcb, 0xe3, 0xb5, 0x3b, 0x08, 0xbc, 0x54 } } > > [Guids] > ## Include/Guid/RedfishClientPkgTokenSpace.h > -- > 2.38.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#97238): https://edk2.groups.io/g/devel/message/97238 Mute This Topic: https://groups.io/mt/95516359/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-