From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (NAM12-MW2-obe.outbound.protection.outlook.com [40.107.244.78]) by mx.groups.io with SMTP id smtpd.web11.17077.1683249271614861680 for ; Thu, 04 May 2023 18:14:31 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=puqrzyo1; 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.244.78, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WaV3bNkHlC/uiv3VxMOq1N7/rdFaRwHgbBm1KfMgZ2mXuhvDzUv6WSxVLn2QB+6PZFV2SldlMZIVnyRFwF6rzSOWyBb3PL0lIdAAVV5AcQTC24UREb75FzXPYPCmtW3M5is90ScavJBm8mzYIhQCuaUykDme7rxHlrsRBaLdj9EC7wZP9nhqWQYrrzEhljuXMxhSQc2pkm1G2ngbohK4rRROFs+52DK0uCQCX56mZdZsOlFdi6FVmjp5KqmyenHO+utXI/6nsDzavNgG4zaqnBE1ft5rDTSOdeJ+gbEoO/iyuobHCXttmg54YRAxGeEYErJwcdQJ9JxIG9EX1cq7YQ== 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=eCMIZMw6YsDinLZmShxzHbpEGoKvgRyqHanlDpKbhgI=; b=M9qKXuLCCYrIeo4713LaPkEZ3Sf8gKEEIR002DqZuSi5vGnKPgI2Nd0/xpYHJoZdWRkpo9OvNbEl2O/epcLk2okLfDNufhuiFKfkuAlL1Pttb2r2I6N4O/o/7KeT7SxxntJNkv7AoEiPeth5c5tA55rHBHVUiuT4DOt7NPpxvOua4oozogv84kGqe4r8geRUB77lxsSMP21reKXFF8iQ7M7ZqvsXMj8NW0yalUxk2fP+5m+lKRxPcjmpLVP/XJQMOjQk0P+uX/XCfWOyF1/Z2pNhmV28cBH+C9QVffYNBfIbvtg5OBCRjOV6OUnbKA3GyGic7ByCD1kYOXvVXb+t4A== 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=eCMIZMw6YsDinLZmShxzHbpEGoKvgRyqHanlDpKbhgI=; b=puqrzyo1WvNyy+WfeH1p29AE6K1E408aK3oiORAyauyXgY2FXvnNfjJAd810guIyjeyj5KXdk6IV5wwhoFscccUO9nUua1FRSh4QBIX7qSZzC6Al+0YIIdYOdiMU7+k5Sqpk2scqjoajqq1yLMw3JQ5k4pw0KyvkcpY6Vlgl0Po= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by CY8PR12MB7338.namprd12.prod.outlook.com (2603:10b6:930:52::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.26; Fri, 5 May 2023 01:14:29 +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.6363.027; Fri, 5 May 2023 01:14:29 +0000 From: "Chang, Abner" To: "devel@edk2.groups.io" , "Chang, Abner" , Nickle Wang CC: Igor Kulchytskyy Subject: Re: [edk2-devel] [edk2-redfish-client][PATCH 1/8] RedfishClientPkg: Facilities of EDK2 Redfish Feature driver Env. Thread-Topic: [edk2-devel] [edk2-redfish-client][PATCH 1/8] RedfishClientPkg: Facilities of EDK2 Redfish Feature driver Env. Thread-Index: AQHZfpPNEt02sTzTcUWc1vCt6amhJ69K21wwgAAFOnA= Date: Fri, 5 May 2023 01:14:29 +0000 Message-ID: References: <20230504142144.16012-1-nicklew@nvidia.com> <175C1941955D1A73.22266@groups.io> In-Reply-To: <175C1941955D1A73.22266@groups.io> 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-05-05T01:14:26Z; 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=bc0c9998-030b-49c3-812b-e0259eb0e3ef; 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_|CY8PR12MB7338:EE_ x-ms-office365-filtering-correlation-id: af0f2224-757d-49c9-6922-08db4d061342 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: R0x3iURjjdUr8E+UEdAW0Un1FEBssofbbDipONogLoWFCAdirCHXt+IBsKGPxYxWdWL302z3g3djI/s7DhG4Y7DM0L1joq9gbuTTadUBZ/wNe/18hb7VDeu19786BiTnhTw1VlB6bMT3/GfuVC+nQc6rekkr1ALrqQzNf4aylhtaCG6R1RNq5AJfYuEsK87fQ8sMvMBFScaGjH2FiLc/KlRl/LY8uKOUj/AdPQ1TFt98MFU6cwmkLxaPm8UKdlLKjgCpoBdL/u2pwR6VKJS8pHd2YRTAg5c2vRzrJyCinY+xwMiEToQ5MHmdshvY1hkKepNhWL/89HXkBBowsiNzWeMDWeerU8lPO5DNRg/W9ci2ceXavYpkDdOnAJjTetnTrc68JdN19QvIr3IBa/AWyseImlBOPkA32npuP6Pk+G1YjejqPkqHJnr+ydUV2tXtDBSzA++amprwVzlSqfd0re5H7Px56GfoXLIspl7ngsTO/XNr1wHNhq3VMbRR7L0x5M76AlRLBBOCvFWJU601ARK57Ow03fP6ty2OgNaUXDJUFiTVpw7dbL/wyNVLMXBGTO6Cs9X3eOw1OT2ksmXxQwiqFzW/ctDxLZI1nE7HMqU= 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)(396003)(366004)(376002)(346002)(39860400002)(136003)(451199021)(52536014)(966005)(7696005)(33656002)(122000001)(41300700001)(8936002)(8676002)(86362001)(83380400001)(5660300002)(53546011)(9686003)(4326008)(26005)(6506007)(478600001)(71200400001)(316002)(76116006)(38100700002)(66556008)(66446008)(66476007)(64756008)(66946007)(2906002)(30864003)(38070700005)(66899021)(186003)(55016003)(110136005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?zkWgVOnbPpqjXWo/5pXMS88BCeAaJsjtXeHeShdIVvupJJcahoJqtoVZnXt0?= =?us-ascii?Q?3jKGfkCUXVaiou7pkppf0urgxGlmwhg89I9BPIyg0DggxPSCfVAgbjvFUag6?= =?us-ascii?Q?NyfJ051QNDudFLz8/mPvey1U6hqjeiY0Jjrk7KIe2NDp1j/64qydlTlZrptH?= =?us-ascii?Q?/wc5HxKbGZAzJff00EpmReHcaZJxuUGmPczJCFWndimFIkRE/m133TnQxaQW?= =?us-ascii?Q?f8sLggtfiuLJDCDKd3lLnuNzWb/BMk1vszUzaG643Hqy2LwpXvTR4N4/LWE4?= =?us-ascii?Q?Ecp7QOFXb7IQMtDaQNoearVHjbaW+fTg0qzbPYW2L84ZSqxsJST/CcprGmVH?= =?us-ascii?Q?XPf4hOhGet8lalwgVBXu1m9RX1bWUu4fRv9Gcm101IcGe+tygSmgC8lHm4gA?= =?us-ascii?Q?CCs0YEvIxOHUWfBBJLK6BUWHVCjSgYh+y9TaQqbBbDbXupTSa3NOY196Ol1r?= =?us-ascii?Q?m4S52dRPP30u9723bccmbsVoO494pytenjPEmIZJtJYKndv9W6RDab1aPmp8?= =?us-ascii?Q?Gn7Hpch3K5Oum57iLR6sXa0Y2tHlvtshtyzBQjx0iOdS8athD3qzQb5j6Twp?= =?us-ascii?Q?uE0sLV6Taf15Ph+s3F8iIwQ+dtUgO3jzHZocq+oCAijJ/nT3oJmEUpC59J8u?= =?us-ascii?Q?EU8kp9DNtkduCedy3lE0co9W//DynhPPPlU/8LTllyikpRzL/96WUL0hlvxy?= =?us-ascii?Q?F3PIyFpar27QSgEp4aonBlkeAREZw+8POgOrnBU5FvO42qbr7gAHfOBxvdVQ?= =?us-ascii?Q?8p5nHdBR5ye/jJVn+e3KTk8q1biZ5prECwgMNPuXXqENr1nMuxG6Nh3WQgAo?= =?us-ascii?Q?GSCe0A9cbsWniv9GX2UDjQeJ7cF9pYj5U0opIBznTDYKThDOrJSvXUE4eIxu?= =?us-ascii?Q?OgpUnx5iSC2dg3Tzb4UFf4EU8EZM1bQLY3iU+bYW51A0lXtD0ND0//lX1fEp?= =?us-ascii?Q?TAsZGvJXtI7pyQWQm7J9Ei4CannF5O6h5XB5VxXR+Pz7DhVaKekMhuoKLpB6?= =?us-ascii?Q?8ofi4kurZ7ylpE3z8DYabh2+GFvJ1Amu8qNbILpOpQIbpQVbJpkLNLZtB4fN?= =?us-ascii?Q?neGHcU41Xc6Q/gLITuzey6EAH3iGKvCgRMX8yopxkYh/3Evdwsf5Ah+dkjSc?= =?us-ascii?Q?J047aB4MWa9rv7RH9ATbgFS+LAzhesunKesI1Y0wyt+B/9zDG4RtgiKi6yKa?= =?us-ascii?Q?UxA5D7jjPkBd4hhD9JnyGaaB9YSrzrGyBeZuNH82eNUDSLcksbtz1waMa6VE?= =?us-ascii?Q?HhixW+Ee7zkC3xHRWRmCpNCB1JogmwmA7ZDdj5W3vbxkgPLyzHAdRkxjTkOE?= =?us-ascii?Q?JAxNXb/TWXXb2ThZpn1D/wv7/V0DFiMBOrT5I8ydPJ554dddem4w7liKsV72?= =?us-ascii?Q?wNnbQVGmvgJLnVZVHmdxXa84UMZgRoeyRlc77+PRN0j2HoqqHbORMpMysAQR?= =?us-ascii?Q?Pfrgrq4OpBkQqm/HINV/ZLFP97gEl/M8/IgHPFFytvT3fRGFtvYZQUuaBswJ?= =?us-ascii?Q?ENNUTjDD+eU0UqgLU7m+mnnYHEa2ByFhZGym6XcxDtxEDB8qbsu3MUi5/xh5?= =?us-ascii?Q?tfniWHlhIFL3diu9ZgJbMAfRKnsrVjUjinXKGBQd?= 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: af0f2224-757d-49c9-6922-08db4d061342 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 May 2023 01:14:29.1233 (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: 1mmZjabvrJHQwt9rdIMh8LJ9L3kbtS+jk5GlDOdqdNTMnCW/tpjOf8yyaIGmUBooKtNwstNBil1z0F64G2QY1g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7338 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Correct email address Reviewed-by: Abner Chang > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Chang, > Abner via groups.io > Sent: Friday, May 5, 2023 8:55 AM > To: Nickle Wang ; devel@edk2.groups.io > Cc: Igor Kulchytskyy > Subject: Re: [edk2-devel] [edk2-redfish-client][PATCH 1/8] RedfishClientP= kg: > Facilities of EDK2 Redfish Feature driver Env. >=20 > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. >=20 >=20 > [AMD Official Use Only - General] >=20 > Reviewed-by: Abner Chang >=20 > > -----Original Message----- > > From: Nickle Wang > > Sent: Thursday, May 4, 2023 10:22 PM > > To: devel@edk2.groups.io > > Cc: Chang, Abner ; Igor Kulchytskyy > > > > Subject: [edk2-redfish-client][PATCH 1/8] RedfishClientPkg: Facilities > > of EDK2 Redfish Feature driver Env. > > > > Caution: This message originated from an External Source. Use proper > > caution when opening attachments, clicking links, or responding. > > > > > > Initial common header file and meta files for feature drivers. > > > > Signed-off-by: Nickle Wang > > Cc: Abner Chang > > Cc: Igor Kulchytskyy > > --- > > RedfishClientPkg/RedfishClientPkg.dec | 5 +- > > .../Include/Guid/RedfishClientPkgTokenSpace.h | 20 +++ > > .../EdkIIRedfishResourceConfigProtocol.h | 127 ++++++++++++++++++ > > .../Include/RedfishCollectionCommon.h | 53 ++++++++ > > .../Include/RedfishResourceCommon.h | 121 +++++++++++++++++ > > 5 files changed, 325 insertions(+), 1 deletion(-) create mode 100644 > > RedfishClientPkg/Include/Guid/RedfishClientPkgTokenSpace.h > > create mode 100644 > > RedfishClientPkg/Include/Protocol/EdkIIRedfishResourceConfigProtocol.h > > create mode 100644 > RedfishClientPkg/Include/RedfishCollectionCommon.h > > create mode 100644 > RedfishClientPkg/Include/RedfishResourceCommon.h > > > > diff --git a/RedfishClientPkg/RedfishClientPkg.dec > > b/RedfishClientPkg/RedfishClientPkg.dec > > index 8fa92d5b..11eab386 100644 > > --- a/RedfishClientPkg/RedfishClientPkg.dec > > +++ b/RedfishClientPkg/RedfishClientPkg.dec > > @@ -21,9 +21,12 @@ > > > > [Protocols] > > ## Include/Protocol/EdkIIRedfishFeature.h > > - gEdkIIRedfishFeatureProtocolGuid =3D { 0x785CC694, 0x4930, 0xEFBF, { > > 0x2A, 0xCB, 0xA4, 0xB6, 0xA1, 0xCC, 0xAA, 0x34 } } > > + gEdkIIRedfishFeatureProtocolGuid =3D { 0x785CC694, 0x4930, 0x= EFBF, > > { 0x2A, 0xCB, 0xA4, 0xB6, 0xA1, 0xCC, 0xAA, 0x34 } } > > + ## Include/Protocol/EdkIIRedfishResourceConfigProtocol.h > > + gEdkIIRedfishResourceConfigProtocolGuid =3D { 0x6f164c68, 0xfb09, > > + 0x4646, { 0xa8, 0xd3, 0x24, 0x11, 0x5d, 0xab, 0x3e, 0xe7 } } > > > > [Guids] > > + ## Include/Guid/RedfishClientPkgTokenSpace.h > > gEfiRedfishClientPkgTokenSpaceGuid =3D { 0x8c444dae, 0x728b, 0x48= ee, > > { 0x9e, 0x19, 0x8f, 0x0a, 0x3d, 0x4e, 0x9c, 0xc8 } } > > > > [PcdsFixedAtBuild] > > diff --git > > a/RedfishClientPkg/Include/Guid/RedfishClientPkgTokenSpace.h > > b/RedfishClientPkg/Include/Guid/RedfishClientPkgTokenSpace.h > > new file mode 100644 > > index 00000000..7928e1a2 > > --- /dev/null > > +++ b/RedfishClientPkg/Include/Guid/RedfishClientPkgTokenSpace.h > > @@ -0,0 +1,20 @@ > > +/** @file > > + GUID for RedfishClientPkg PCD Token Space > > + > > + (C) Copyright 2021 Hewlett Packard Enterprise Development LP
> > + > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > + > > +**/ > > + > > +#ifndef REDFISHCLIENTPKG_TOKEN_SPACE_GUID_H_ > > +#define REDFISHCLIENTPKG_TOKEN_SPACE_GUID_H_ > > + > > +#define REDFISHCLIENTPKG_TOKEN_SPACE_GUID \ > > + { \ > > + 0x8c444dae, 0x728b, 0x48ee, { 0x9e, 0x19, 0x8f, 0x0a, 0x3d, 0x4e, > > +0x9c, 0xc8 } \ > > + } > > + > > +extern EFI_GUID gEfiRedfishClientPkgTokenSpaceGuid; > > + > > +#endif > > diff --git > > a/RedfishClientPkg/Include/Protocol/EdkIIRedfishResourceConfigProtocol > > .h > > b/RedfishClientPkg/Include/Protocol/EdkIIRedfishResourceConfigProtocol > > .h > > new file mode 100644 > > index 00000000..814fa9f9 > > --- /dev/null > > +++ b/RedfishClientPkg/Include/Protocol/EdkIIRedfishResourceConfigProt > > +++ oc > > +++ ol.h > > @@ -0,0 +1,127 @@ > > +/** @file > > + This file defines the EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL > > interface. > > + > > + (C) Copyright 2021 Hewlett Packard Enterprise Development LP
> > + > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > + > > +**/ > > + > > +#ifndef EDKII_REDFISH_RESOURCE_CONFIG_H_ #define > > +EDKII_REDFISH_RESOURCE_CONFIG_H_ > > + > > +typedef struct _EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL > > +EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL; > > + > > +/** > > + Provising redfish resource by given URI. > > + > > + @param[in] This Pointer to > > EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL instance. > > + @param[in] Uri Target URI to create resource. > > + @param[in] HttpPostMode TRUE if resource does not exist, HT= TP > > POST method is used. > > + FALSE if the resource exist but > > + some of properties are > > missing, > > + HTTP PUT method is used. > > + > > + @retval EFI_SUCCESS Value is returned successfully. > > + @retval Others Some error happened. > > + > > +**/ > > +typedef > > +EFI_STATUS > > +(EFIAPI > > *EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_PROVISIONING)( > > + IN EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL *This, > > + IN CHAR8 *Uri, > > + IN BOOLEAN HttpPostMode > > + ); > > + > > +/** > > + Consume resource from given URI. > > + > > + @param[in] This Pointer to > > EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL instance. > > + @param[in] Uri The target URI to consume. > > + > > + @retval EFI_SUCCESS Value is returned successfully. > > + @retval Others Some error happened. > > + > > +**/ > > +typedef > > +EFI_STATUS > > +(EFIAPI *EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_CONSUME)( > > + IN EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL *This, > > + IN CHAR8 *Uri > > + ); > > + > > +/** > > + Update resource to given URI. > > + > > + @param[in] This Pointer to > > EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL instance. > > + @param[in] Uri The target URI to consume. > > + > > + @retval EFI_SUCCESS Value is returned successfully. > > + @retval Others Some error happened. > > + > > +**/ > > +typedef > > +EFI_STATUS > > +(EFIAPI *EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_UPDATE)( > > + IN EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL *This, > > + IN CHAR8 *Uri > > + ); > > + > > +/** > > + Check resource on given URI. > > + > > + @param[in] This Pointer to > > EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL instance. > > + @param[in] Uri The target URI to consume. > > + > > + @retval EFI_SUCCESS Value is returned successfully. > > + @retval Others Some error happened. > > + > > +**/ > > +typedef > > +EFI_STATUS > > +(EFIAPI *EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_CHECK)( > > + IN EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL *This, > > + IN CHAR8 *Uri > > + ); > > + > > +// > > +// definition of REDFISH_SCHEMA_INFO > > +// > > +#define REDFISH_SCHEMA_STRING_SIZE (FixedPcdGet32 > > (PcdMaxRedfishSchemaStringSize)) > > +#define REDFISH_SCHEMA_VERSION_SIZE (FixedPcdGet32 > > +(PcdMaxRedfishSchemaVersionSize)) > > + > > +typedef struct _SCHEMA_INFO { > > + CHAR8 Schema[REDFISH_SCHEMA_STRING_SIZE]; > > + CHAR8 Major[REDFISH_SCHEMA_VERSION_SIZE]; > > + CHAR8 Minor[REDFISH_SCHEMA_VERSION_SIZE]; > > + CHAR8 Errata[REDFISH_SCHEMA_VERSION_SIZE]; > > +} REDFISH_SCHEMA_INFO; > > + > > +/** > > + Get information about this protocol. > > + > > + @param[in] This Pointer to > > EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL instance. > > + @param[out] Info The schema information. > > + > > + @retval EFI_SUCCESS Value is returned successfully. > > + @retval Others Some error happened. > > + > > +**/ > > +typedef > > +EFI_STATUS > > +(EFIAPI *EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_GET_INFO)( > > + IN EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL *This, > > + OUT REDFISH_SCHEMA_INFO *Info > > + ); > > + > > +struct _EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL { > > + EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_PROVISIONING > > Provisioning; > > + EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_CONSUME > Consume; > > + EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_UPDATE Update; > > + EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_CHECK Check; > > + EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_GET_INFO GetInfo; > > +}; > > + > > +extern EFI_GUID gEdkIIRedfishResourceConfigProtocolGuid; > > + > > +#endif > > diff --git a/RedfishClientPkg/Include/RedfishCollectionCommon.h > > b/RedfishClientPkg/Include/RedfishCollectionCommon.h > > new file mode 100644 > > index 00000000..b5735741 > > --- /dev/null > > +++ b/RedfishClientPkg/Include/RedfishCollectionCommon.h > > @@ -0,0 +1,53 @@ > > +/** @file > > + Redfish feature driver collection common header file. > > + > > + (C) Copyright 2020-2021 Hewlett Packard Enterprise Development > > + LP
> > + > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > + > > +**/ > > + > > +#ifndef EFI_REDFISH_COLLECTION_COMMON_H_ #define > > +EFI_REDFISH_COLLECTION_COMMON_H_ > > + > > +// > > +// Libraries > > +// > > +#include > > +#include > > +#include #include > > + #include #include > > + #include > > +#include > > +#include > > + > > +// > > +// Protocols > > +// > > +#include > > +#include > > +#include #include > > + #include > > + > > +#define IS_EMPTY_STRING(a) ((a) =3D=3D NULL || (a)[0] =3D=3D '\0') #d= efine > > +REDFISH_DEBUG_TRACE DEBUG_INFO > > + > > +typedef struct _REDFISH_COLLECTION_PRIVATE { > > + EFI_REST_JSON_STRUCTURE_PROTOCOL *JsonStructProtocol; > > + EDKII_REDFISH_FEATURE_PROTOCOL *FeatureProtocol; > > + REDFISH_SERVICE RedfishService; > > + EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL ConfigHandler; > > + EFI_EVENT Event; > > + CHAR8 *CollectionPath; > > + CHAR8 *CollectionJson; > > + REDFISH_PAYLOAD CollectionPayload; > > + REDFISH_RESPONSE RedResponse; > > +} REDFISH_COLLECTION_PRIVATE; > > + > > +#define REDFISH_COLLECTION_PRIVATE_DATA_FROM_PROTOCOL(This) > \ > > + BASE_CR ((This), REDFISH_COLLECTION_PRIVATE, ConfigHandler) > > + > > +#endif > > diff --git a/RedfishClientPkg/Include/RedfishResourceCommon.h > > b/RedfishClientPkg/Include/RedfishResourceCommon.h > > new file mode 100644 > > index 00000000..95e8004d > > --- /dev/null > > +++ b/RedfishClientPkg/Include/RedfishResourceCommon.h > > @@ -0,0 +1,121 @@ > > +/** @file > > + Redfish feature driver common header file. > > + > > + (C) Copyright 2020-2021 Hewlett Packard Enterprise Development > > + LP
> > + > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > + > > +**/ > > + > > +#ifndef EFI_REDFISH_RESOURCE_COMMON_H_ #define > > +EFI_REDFISH_RESOURCE_COMMON_H_ > > + > > +#define MAX_RED_PATH_LEN 128 > > +#define IS_EMPTY_STRING(a) ((a) =3D=3D NULL || (a)[0] =3D=3D '\0') #d= efine > > +REDFISH_DEBUG_TRACE DEBUG_INFO > > + > > +// > > +// Libraries > > +// > > +#include > > +#include > > +#include #include > > + #include #include > > + #include > > +#include > > +#include > > +#include > > + > > +// > > +// Protocols > > +// > > +#include > > +#include > > +#include #include > > + > > +typedef struct _REDFISH_RESOURCE_COMMON_PRIVATE { > > + REDFISH_SERVICE RedfishService; > > + EFI_REST_JSON_STRUCTURE_PROTOCOL *JsonStructProtocol; > > + EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL > RedfishResourceConfig; > > + EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL ConfigHandler; > > + EFI_EVENT Event; > > + CHAR8 *Uri; > > + CHAR8 *Json; > > + REDFISH_PAYLOAD Payload; > > +} REDFISH_RESOURCE_COMMON_PRIVATE; > > + > > +#define > > > REDFISH_RESOURCE_COMMON_PRIVATE_DATA_FROM_CONFIG_PROTOCO > > L(This) \ > > + BASE_CR ((This), REDFISH_RESOURCE_COMMON_PRIVATE, > > +ConfigHandler) > > + > > +#define > > > REDFISH_RESOURCE_COMMON_PRIVATE_DATA_FROM_RESOURCE_PROTO > > COL(This) \ > > + BASE_CR ((This), REDFISH_RESOURCE_COMMON_PRIVATE, > > +RedfishResourceConfig) > > + > > +/** > > + Consume resource from given URI. > > + > > + @param[in] This Pointer to > > REDFISH_RESOURCE_COMMON_PRIVATE instance. > > + @param[in] Json The JSON to consume. > > + > > + @retval EFI_SUCCESS Value is returned successfully. > > + @retval Others Some error happened. > > + > > +**/ > > +EFI_STATUS > > +RedfishConsumeResourceCommon ( > > + IN REDFISH_RESOURCE_COMMON_PRIVATE *Private, > > + IN CHAR8 *Json > > + ); > > + > > +/** > > + Provisioning redfish resource by given URI. > > + > > + @param[in] This Pointer to EFI_HP_REDFISH_HII_PROTO= COL > > instance. > > + @param[in] ResourceExist TRUE if resource exists, PUT method= will > be > > used. > > + FALSE if resource does not exist PO= ST method is used. > > + > > + @retval EFI_SUCCESS Value is returned successfully. > > + @retval Others Some error happened. > > + > > +**/ > > +EFI_STATUS > > +RedfishProvisioningResourceCommon ( > > + IN REDFISH_RESOURCE_COMMON_PRIVATE *Private, > > + IN BOOLEAN ResourceExist > > + ); > > + > > +/** > > + Check resource from given URI. > > + > > + @param[in] This Pointer to > > REDFISH_RESOURCE_COMMON_PRIVATE instance. > > + @param[in] Json The JSON to consume. > > + > > + @retval EFI_SUCCESS Value is returned successfully. > > + @retval Others Some error happened. > > + > > +**/ > > +EFI_STATUS > > +RedfishCheckResourceCommon ( > > + IN REDFISH_RESOURCE_COMMON_PRIVATE *Private, > > + IN CHAR8 *Json > > + ); > > + > > +/** > > + Update resource to given URI. > > + > > + @param[in] This Pointer to > > REDFISH_RESOURCE_COMMON_PRIVATE instance. > > + @param[in] Json The JSON to consume. > > + > > + @retval EFI_SUCCESS Value is returned successfully. > > + @retval Others Some error happened. > > + > > +**/ > > +EFI_STATUS > > +RedfishUpdateResourceCommon ( > > + IN REDFISH_RESOURCE_COMMON_PRIVATE *Private, > > + IN CHAR8 *Json > > + ); > > + > > +#endif > > -- > > 2.17.1 >=20 >=20 >=20 >=20