mirror of https://github.com/acidanthera/audk.git
RedfishPkg/RedfishContentCodingLib: EDKII Redfish En/Decode library
BZ#:3174 Platform library to provide the encoding/decoding algorithms for the Redfish packets. The supported value could be one of below or any which is platform-specific. - HTTP_CONTENT_ENCODING_IDENTITY "identity" - HTTP_CONTENT_ENCODING_GZIP "gzip" - HTTP_CONTENT_ENCODING_COMPRESS "compress" - HTTP_CONTENT_ENCODING_DEFLATE "deflate" - HTTP_CONTENT_ENCODING_BROTLI "br" Signed-off-by: Abner Chang <abner.chang@hpe.com> Cc: Nickle Wang <nickle.wang@hpe.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Nickle Wang <nickle.wang@hpe.com>
This commit is contained in:
parent
69637f91c7
commit
35f87da8a2
|
@ -0,0 +1,78 @@
|
||||||
|
/** @file
|
||||||
|
Definitinos of RedfishContentCodingLib.
|
||||||
|
|
||||||
|
(C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
|
**/
|
||||||
|
#ifndef REDFISH_CONTENT_CODING_LIB_H_
|
||||||
|
#define REDFISH_CONTENT_CODING_LIB_H_
|
||||||
|
|
||||||
|
/**
|
||||||
|
This is the function to encode the content use the
|
||||||
|
algorithm indicated in ContentEncodedValue. The naming of
|
||||||
|
ContentEncodedValue is follow HTTP spec or could be a
|
||||||
|
platform-specific value.
|
||||||
|
|
||||||
|
@param[in] ContentEncodedValue HTTP conent encoded value.
|
||||||
|
The value could be one of below
|
||||||
|
or any which is platform-specific.
|
||||||
|
- HTTP_CONTENT_ENCODING_IDENTITY "identity"
|
||||||
|
- HTTP_CONTENT_ENCODING_GZIP "gzip"
|
||||||
|
- HTTP_CONTENT_ENCODING_COMPRESS "compress"
|
||||||
|
- HTTP_CONTENT_ENCODING_DEFLATE "deflate"
|
||||||
|
- HTTP_CONTENT_ENCODING_BROTLI "br"
|
||||||
|
@param[in] OriginalContent Original content.
|
||||||
|
@param[in] OriginalContentLength The length of original content.
|
||||||
|
@param[out] EncodedContentPointer Pointer to receive the encoded content pointer.
|
||||||
|
@param[out] EncodedContentLength Length of encoded content.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Content is encoded successfully.
|
||||||
|
@retval EFI_UNSUPPORTED No supported encoding funciton,
|
||||||
|
@retval EFI_INVALID_PARAMETER One of the given parameter is invalid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
RedfishContentEncode (
|
||||||
|
IN CHAR8 *ContentEncodedValue,
|
||||||
|
IN CHAR8 *OriginalContent,
|
||||||
|
IN UINTN OriginalContentLength,
|
||||||
|
OUT VOID **EncodedContentPointer,
|
||||||
|
OUT UINTN *EncodedLength
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
This is the function to decode the content use the
|
||||||
|
algorithm indicated in ContentEncodedValue. The naming of
|
||||||
|
ContentEncodedValue is follow HTTP spec or could be a
|
||||||
|
platform-specific value.
|
||||||
|
|
||||||
|
@param[in] ContentDecodedValue HTTP conent decoded value.
|
||||||
|
The value could be one of below
|
||||||
|
or any which is platform-specific.
|
||||||
|
- HTTP_CONTENT_ENCODING_IDENTITY "identity"
|
||||||
|
- HTTP_CONTENT_ENCODING_GZIP "gzip"
|
||||||
|
- HTTP_CONTENT_ENCODING_COMPRESS "compress"
|
||||||
|
- HTTP_CONTENT_ENCODING_DEFLATE "deflate"
|
||||||
|
- HTTP_CONTENT_ENCODING_BROTLI "br"
|
||||||
|
@param[in] ContentPointer Original content.
|
||||||
|
@param[in] ContentLength The length of original content.
|
||||||
|
@param[out] DecodedContentPointer Pointer to receive decoded content pointer.
|
||||||
|
@param[out] DecodedContentLength Length of decoded content.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Content is decoded successfully.
|
||||||
|
@retval EFI_UNSUPPORTED No supported decoding funciton,
|
||||||
|
@retval EFI_INVALID_PARAMETER One of the given parameter is invalid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
RedfishContentDecode (
|
||||||
|
IN CHAR8 *ContentEncodedValue,
|
||||||
|
IN VOID *ContentPointer,
|
||||||
|
IN UINTN ContentLength,
|
||||||
|
OUT VOID **DecodedContentPointer,
|
||||||
|
OUT UINTN *DecodedLength
|
||||||
|
);
|
||||||
|
#endif
|
|
@ -0,0 +1,81 @@
|
||||||
|
/** @file
|
||||||
|
NULL instace of RedfishContentCodingLib
|
||||||
|
|
||||||
|
(C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
|
**/
|
||||||
|
#include <Uefi.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
This is the function to encode the content use the
|
||||||
|
algorithm indicated in ContentEncodedValue. The naming of
|
||||||
|
ContentEncodedValue is follow HTTP spec or could be a
|
||||||
|
platform-specific value.
|
||||||
|
|
||||||
|
@param[in] ContentEncodedValue HTTP conent encoded value.
|
||||||
|
The value could be one of below
|
||||||
|
or any which is platform-specific.
|
||||||
|
- HTTP_CONTENT_ENCODING_IDENTITY "identity"
|
||||||
|
- HTTP_CONTENT_ENCODING_GZIP "gzip"
|
||||||
|
- HTTP_CONTENT_ENCODING_COMPRESS "compress"
|
||||||
|
- HTTP_CONTENT_ENCODING_DEFLATE "deflate"
|
||||||
|
- HTTP_CONTENT_ENCODING_BROTLI "br"
|
||||||
|
@param[in] OriginalContent Original content.
|
||||||
|
@param[in] OriginalContentLength The length of original content.
|
||||||
|
@param[out] EncodedContentPointer Pointer to receive the encoded content pointer.
|
||||||
|
@param[out] EncodedContentLength Length of encoded content.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Content is encoded successfully.
|
||||||
|
@retval EFI_UNSUPPORTED No supported encoding funciton,
|
||||||
|
@retval EFI_INVALID_PARAMETER One of the given parameter is invalid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
RedfishContentEncode (
|
||||||
|
IN CHAR8 *ContentEncodedValue,
|
||||||
|
IN CHAR8 *OriginalContent,
|
||||||
|
IN UINTN OriginalContentLength,
|
||||||
|
OUT VOID **EncodedContentPointer,
|
||||||
|
OUT UINTN *EncodedContentLength
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
This is the function to decode the content use the
|
||||||
|
algorithm indicated in ContentEncodedValue. The naming of
|
||||||
|
ContentEncodedValue is follow HTTP spec or could be a
|
||||||
|
platform-specific value.
|
||||||
|
|
||||||
|
@param[in] ContentDecodedValue HTTP conent decoded value.
|
||||||
|
The value could be one of below
|
||||||
|
or any which is platform-specific.
|
||||||
|
- HTTP_CONTENT_ENCODING_IDENTITY "identity"
|
||||||
|
- HTTP_CONTENT_ENCODING_GZIP "gzip"
|
||||||
|
- HTTP_CONTENT_ENCODING_COMPRESS "compress"
|
||||||
|
- HTTP_CONTENT_ENCODING_DEFLATE "deflate"
|
||||||
|
- HTTP_CONTENT_ENCODING_BROTLI "br"
|
||||||
|
@param[in] ContentPointer Original content.
|
||||||
|
@param[in] ContentLength The length of original content.
|
||||||
|
@param[out] DecodedContentPointer Pointer to receive decoded content pointer.
|
||||||
|
@param[out] DecodedContentLength Length of decoded content.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Content is decoded successfully.
|
||||||
|
@retval EFI_UNSUPPORTED No supported decoding funciton,
|
||||||
|
@retval EFI_INVALID_PARAMETER One of the given parameter is invalid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
RedfishContentDecode (
|
||||||
|
IN CHAR8 *ContentDecodedValue,
|
||||||
|
IN VOID *ContentPointer,
|
||||||
|
IN UINTN ContentLength,
|
||||||
|
OUT VOID **DecodedContentPointer,
|
||||||
|
OUT UINTN *DecodedContentLength
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
## @file
|
||||||
|
# NULL instance of RedfishContentCodingLibNull
|
||||||
|
# This library is used to encode/decode Redfish payload.
|
||||||
|
#
|
||||||
|
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
#
|
||||||
|
##
|
||||||
|
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 0x0001000b
|
||||||
|
BASE_NAME = RedfishContentCodingLibNull
|
||||||
|
FILE_GUID = 06B10249-4D38-FF37-0CA5-13AFB6D625CC
|
||||||
|
MODULE_TYPE = DXE_DRIVER
|
||||||
|
VERSION_STRING = 1.0
|
||||||
|
LIBRARY_CLASS = RedfishContentCodingLib
|
||||||
|
|
||||||
|
#
|
||||||
|
# VALID_ARCHITECTURES = IA32 X64 ARM AARCH64 RISCV64
|
||||||
|
#
|
||||||
|
|
||||||
|
[Sources]
|
||||||
|
RedfishContentCodingLibNull.c
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
MdeModulePkg/MdeModulePkg.dec
|
||||||
|
RedfishPkg/RedfishPkg.dec
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Redfish Package
|
# Redfish Package
|
||||||
#
|
#
|
||||||
# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
|
# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
|
||||||
# (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>
|
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
##
|
##
|
||||||
|
@ -50,6 +50,11 @@
|
||||||
#
|
#
|
||||||
JsonLib|Include/Library/JsonLib.h
|
JsonLib|Include/Library/JsonLib.h
|
||||||
|
|
||||||
|
## @libraryclass Provides the library functions to encode/decode
|
||||||
|
# Redfish packet.
|
||||||
|
#
|
||||||
|
RedfishContentCodingLib|Include/Library/RedfishContentCodingLib.h
|
||||||
|
|
||||||
[LibraryClasses.Common.Private]
|
[LibraryClasses.Common.Private]
|
||||||
## @libraryclass Provides the private C runtime library functions.
|
## @libraryclass Provides the private C runtime library functions.
|
||||||
# CRT library is currently used by edk2 JsonLib (open source
|
# CRT library is currently used by edk2 JsonLib (open source
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Redfish Package
|
# Redfish Package
|
||||||
#
|
#
|
||||||
# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
|
# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
|
||||||
# (C) Copyright 2020 Hewlett-Packard Enterprise Development LP.
|
# (C) Copyright 2021 Hewlett-Packard Enterprise Development LP.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
#
|
#
|
||||||
|
@ -37,6 +37,7 @@
|
||||||
NetLib|NetworkPkg/Library/DxeNetLib/DxeNetLib.inf
|
NetLib|NetworkPkg/Library/DxeNetLib/DxeNetLib.inf
|
||||||
DpcLib|NetworkPkg/Library/DxeDpcLib/DxeDpcLib.inf
|
DpcLib|NetworkPkg/Library/DxeDpcLib/DxeDpcLib.inf
|
||||||
RedfishPlatformCredentialLib|RedfishPkg/Library/PlatformCredentialLibNull/PlatformCredentialLibNull.inf
|
RedfishPlatformCredentialLib|RedfishPkg/Library/PlatformCredentialLibNull/PlatformCredentialLibNull.inf
|
||||||
|
RedfishContentCodingLib|RedfishPkg/Library/RedfishContentCodingLibNull/RedfishContentCodingLibNull.inf
|
||||||
|
|
||||||
[LibraryClasses.ARM, LibraryClasses.AARCH64]
|
[LibraryClasses.ARM, LibraryClasses.AARCH64]
|
||||||
#
|
#
|
||||||
|
@ -49,6 +50,7 @@
|
||||||
[Components]
|
[Components]
|
||||||
RedfishPkg/Library/PlatformHostInterfaceLibNull/PlatformHostInterfaceLibNull.inf
|
RedfishPkg/Library/PlatformHostInterfaceLibNull/PlatformHostInterfaceLibNull.inf
|
||||||
RedfishPkg/Library/PlatformCredentialLibNull/PlatformCredentialLibNull.inf
|
RedfishPkg/Library/PlatformCredentialLibNull/PlatformCredentialLibNull.inf
|
||||||
|
RedfishPkg/Library/RedfishContentCodingLibNull/RedfishContentCodingLibNull.inf
|
||||||
RedfishPkg/Library/DxeRestExLib/DxeRestExLib.inf
|
RedfishPkg/Library/DxeRestExLib/DxeRestExLib.inf
|
||||||
RedfishPkg/Library/BaseUcs2Utf8Lib/BaseUcs2Utf8Lib.inf
|
RedfishPkg/Library/BaseUcs2Utf8Lib/BaseUcs2Utf8Lib.inf
|
||||||
RedfishPkg/PrivateLibrary/RedfishCrtLib/RedfishCrtLib.inf
|
RedfishPkg/PrivateLibrary/RedfishCrtLib/RedfishCrtLib.inf
|
||||||
|
|
Loading…
Reference in New Issue