diff --git a/RedfishPkg/Include/Protocol/EdkIIRedfishConfigHandler.h b/RedfishPkg/Include/Protocol/EdkIIRedfishConfigHandler.h new file mode 100644 index 0000000000..bbd60ed6bd --- /dev/null +++ b/RedfishPkg/Include/Protocol/EdkIIRedfishConfigHandler.h @@ -0,0 +1,78 @@ +/** @file + This file defines the EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL interface. + + Copyright (c) 2019, Intel Corporation. All rights reserved.
+ (C) Copyright 2021 Hewlett Packard Enterprise Development LP
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef EDKII_REDFISH_CONFIG_HANDLER_H_ +#define EDKII_REDFISH_CONFIG_HANDLER_H_ + +typedef struct _EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL; + +#define EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL_GUID \ + { \ + 0xbc0fe6bb, 0x2cc9, 0x463e, { 0x90, 0x82, 0xfa, 0x11, 0x76, 0xfc, 0x67, 0xde } \ + } + +typedef struct { + EFI_HANDLE RedfishServiceRestExHandle; ///< REST EX EFI handle associated with this Redfish service. + UINTN RedfishServiceVersion; ///< Redfish service version. + CHAR16 *RedfishServiceLocation; ///< Redfish service location. + CHAR16 *RedfishServiceUuid; ///< Redfish service UUID. + CHAR16 *RedfishServiceOs; ///< Redfish service OS. + CHAR16 *RedfishServiceOsVersion; ///< Redfish service OS version. + CHAR16 *RedfishServiceProduct; ///< Redfish service product name. + CHAR16 *RedfishServiceProductVer; ///< Redfish service product version. + BOOLEAN RedfishServiceUseHttps; ///< Redfish service uses HTTPS. +} REDFISH_CONFIG_SERVICE_INFORMATION; + +/** + Initialize a configure handler of EDKII Redfish feature driver. + + This function will be called by the EDKII Redfish config handler driver to + initialize the configure handler of each EDKII Redfish feature driver. + + @param[in] This Pointer to EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL instance. + @param[in] RedfishServiceinfo Redfish service information. + + @retval EFI_SUCCESS The handler has been initialized successfully. + @retval EFI_DEVICE_ERROR Failed to create or configure the REST EX protocol instance. + @retval EFI_ALREADY_STARTED This handler has already been initialized. + @retval Other Error happens during the initialization. + +**/ +typedef +EFI_STATUS +(EFIAPI *EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL_INIT) ( + IN EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL *This, + IN REDFISH_CONFIG_SERVICE_INFORMATION *RedfishServiceinfo + ); + +/** + Stop a Redfish configure handler of EDKII Redfish feature driver. + + @param[in] This Pointer to EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL instance. + + @retval EFI_SUCCESS This handler has been stoped successfully. + @retval Others Some error happened. + +**/ +typedef +EFI_STATUS +(EFIAPI *EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL_STOP) ( + IN EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL *This + ); + +struct _EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL { + EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL_INIT Init; + EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL_STOP Stop; +}; + + +extern EFI_GUID gdkIIRedfishConfigHandlerProtocolGuid; + +#endif diff --git a/RedfishPkg/RedfishPkg.dec b/RedfishPkg/RedfishPkg.dec index 2985676b60..b8ff98eb13 100644 --- a/RedfishPkg/RedfishPkg.dec +++ b/RedfishPkg/RedfishPkg.dec @@ -64,6 +64,9 @@ ## Include/Protocol/EdkIIRedfishCredential.h gEdkIIRedfishCredentialProtocolGuid = { 0x8804377, 0xaf7a, 0x4496, { 0x8a, 0x7b, 0x17, 0x59, 0x0, 0xe9, 0xab, 0x46 } } + ## Include/Protocol/Edk2RedfishConfigHandler.h + gEdkIIRedfishConfigHandlerProtocolGuid = { 0xbc0fe6bb, 0x2cc9, 0x463e, { 0x90, 0x82, 0xfa, 0x11, 0x76, 0xfc, 0x67, 0xde } } + [Guids] gEfiRedfishPkgTokenSpaceGuid = { 0x4fdbccb7, 0xe829, 0x4b4c, { 0x88, 0x87, 0xb2, 0x3f, 0xd7, 0x25, 0x4b, 0x85 }}