Files
system76-edk2/RedfishPkg/RedfishPkg.dec
Abner Chang 4751a48aeb RedfishPkg/Library: RedfishLib
EDK2 port of DMTF libredfish project. We clone the necessary files
from open source project libredfish (https://github.com/DMTF/
libredfish) tag v1.0.0 and revise it to incorporate with edk2
firmware code base.

The reason of cloning the necessary files instead of using extern
submodule of libredfish project:
libredfish as a C library which is executed under Windows and
Linux. It could be binded with other programming languages such as
java and python. The library uses curl library as the communication service with Redfish, which is not easy to be abstracted and
replaced with EFI specific protocols (e.g. EFI_REST_EX_PROTOCOL or
payload encode/decode library) and EFI data types. We had the
conversation with DMTF community and they think edk2 is a firmware
solution but not the programming language,
therefore they rejected to have edk2 as a binding to libredfish.
According to above, we decide to clone the necessary files from
libredfish modify it to incorporate with edk2.

Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Signed-off-by: Ting Ye <ting.ye@intel.com>
Signed-off-by: Siyuan Fu <siyuan.fu@intel.com>
Signed-off-by: Fan Wang <fan.wang@intel.com>
Signed-off-by: Abner Chang <abner.chang@hpe.com>
Cc: Nickle Wang <nickle.wang@hpe.com>
Reviewed-by: Nickle Wang <nickle.wang@hpe.com>
2021-03-11 08:44:51 +00:00

104 lines
4.0 KiB
Plaintext

## @file
# Redfish Package
#
# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
##
[Defines]
DEC_SPECIFICATION = 0x0001001b
PACKAGE_NAME = RedfishPkg
PACKAGE_GUID = c432b76e-5232-11e7-9010-005056c00008
PACKAGE_VERSION = 1.0
[Includes]
Include
[Includes.Common.Private]
PrivateInclude # Private header files for C RTL.
PrivateInclude/Crt # Private header files for C RTL.
Library/JsonLib # Private header files for jansson
# configuration files.
# - jansson_config.h
# - jansson_private_config.h
# jansson.h refers to above two configuration
# files for building platform jansson library.
Library/JsonLib/jansson/src # For referring to jannson.h
[LibraryClasses]
## @libraryclass Platform Redfish Host Interface Library
# Platform implementation-specific Redfish Host Interface.
RedfishPlatformHostInterfaceLib|Include/Library/RedfishHostInterfaceLib.h
## @libraryclass This library provides UCS2 to UTF8 manipulation
# functions.
#
Ucs2Utf8Lib|Include/Library/BaseUcs2Utf8Lib.h
## @libraryclass Platform Redfish Credential Library
# Platform implementation-specific Redfish Credential Interface.
RedfishPlatformCredentialLib|Include/Library/RedfishCredentialLib.h
## @libraryclass The helper routines to access REST EX service.
# This library is only intended to be used by UEFI network stack modules.
RestExLib|Include/Library/RestExLib.h
## @libraryclass Provides the library functions based on third party
# jansson library to manipulate JSON data structure.
#
JsonLib|Include/Library/JsonLib.h
## @libraryclass Provides the library functions to encode/decode
# Redfish packet.
#
RedfishContentCodingLib|Include/Library/RedfishContentCodingLib.h
[LibraryClasses.Common.Private]
## @libraryclass Provides the private C runtime library functions.
# CRT library is currently used by edk2 JsonLib (open source
# jansson project) and edk2 RedfishLib (libredfish open source
# project).
RedfishCrtLib|PrivateInclude/Library/RedfishCrtLib.h
## @libraryclass Redfish Helper Library
# Library provides Redfish helper functions.
RedfishLib|PrivateInclude/Library/RedfishLib.h
[Protocols]
## Include/Protocol/RedfishDiscover.h
gEfiRedfishDiscoverProtocolGuid = { 0x5db12509, 0x4550, 0x4347, { 0x96, 0xb3, 0x73, 0xc0, 0xff, 0x6e, 0x86, 0x9f }}
## 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 }}
[PcdsFixedAtBuild, PcdsPatchableInModule]
#
# This PCD is the UEFI device path which is used as the Redfish host interface.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceDevicePath|{0x0}|REST_EX_SERVICE_DEVICE_PATH_DATA|0x00001000 {
<HeaderFiles>
Pcd/RestExServiceDevicePath.h
<Packages>
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
RedfishPkg/RedfishPkg.dec
}
#
# This PCD indicates the EFI REST EX access mode to Redfish service.
# Default is set to out of band access.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceAccessModeInBand|FALSE|BOOLEAN|0x00001001
#
# This PCD indicates the access mode EFI Discover protocol uses to look for the proper EFI REST EX
# protocol instance.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDiscoverAccessModeInBand|FALSE|BOOLEAN|0x00001002