mirror of https://github.com/acidanthera/audk.git
181 lines
5.0 KiB
C
181 lines
5.0 KiB
C
/** @file
|
|
This file defines the Redfish debug library interface.
|
|
|
|
Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved.<BR>
|
|
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef REDFISH_DEBUG_LIB_H_
|
|
#define REDFISH_DEBUG_LIB_H_
|
|
|
|
#include <Uefi.h>
|
|
#include <Library/DebugLib.h>
|
|
#include <RedfishServiceData.h>
|
|
#include <Library/HiiUtilityLib.h>
|
|
#include <Library/JsonLib.h>
|
|
|
|
#include <Protocol/EdkIIRedfishPlatformConfig.h>
|
|
|
|
// Used with MdePKg DEBUG macro.
|
|
#define DEBUG_REDFISH_NETWORK DEBUG_MANAGEABILITY ///< Debug error level for Redfish networking function
|
|
#define DEBUG_REDFISH_HOST_INTERFACE DEBUG_MANAGEABILITY ///< Debug error level for Redfish Host INterface
|
|
#define DEBUG_REDFISH_PLATFORM_CONFIG DEBUG_MANAGEABILITY ///< Debug error level for Redfish Platform Configure Driver
|
|
|
|
//
|
|
// Definitions of Redfish debug capability in Redfish component scope, used with DEBUG_REDFISH macro
|
|
// For example, Redfish Platform Config Driver
|
|
// DEBUG_REDFISH(DEBUG_REDFISH_PLATFORM_CONFIG_DXE, ...)
|
|
//
|
|
#define DEBUG_REDFISH_COMPONENT_PLATFORM_CONFIG_DXE 0x00000001
|
|
|
|
#define DEBUG_REDFISH(DebugCategory, ...) \
|
|
do { \
|
|
if (!DebugPrintEnabled()) { \
|
|
break; \
|
|
} \
|
|
if (!DebugRedfishComponentEnabled (DebugCategory)) { \
|
|
break; \
|
|
} \
|
|
DEBUG ((DEBUG_MANAGEABILITY, ##__VA_ARGS__)); \
|
|
} while (FALSE)
|
|
|
|
/**
|
|
Determine whether the Redfish debug category is enabled in
|
|
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDebugCategory.
|
|
|
|
@param[in] DebugCategory Redfish debug category.
|
|
|
|
@retval TRUE This debug category is enabled.
|
|
@retval FALSE This debug category is disabled..
|
|
**/
|
|
BOOLEAN
|
|
DebugRedfishComponentEnabled (
|
|
IN UINT64 DebugCategory
|
|
);
|
|
|
|
/**
|
|
Debug print the value of RedfishValue.
|
|
|
|
@param[in] ErrorLevel DEBUG macro error level.
|
|
@param[in] RedfishValue The statement value to print.
|
|
|
|
@retval EFI_SUCCESS RedfishValue is printed.
|
|
@retval EFI_INVALID_PARAMETER RedfishValue is NULL.
|
|
**/
|
|
EFI_STATUS
|
|
DumpRedfishValue (
|
|
IN UINTN ErrorLevel,
|
|
IN EDKII_REDFISH_VALUE *RedfishValue
|
|
);
|
|
|
|
/**
|
|
|
|
This function dump the Json string in given error level.
|
|
|
|
@param[in] ErrorLevel DEBUG macro error level
|
|
@param[in] JsonValue Json value to dump.
|
|
|
|
@retval EFI_SUCCESS Json string is printed.
|
|
@retval Others Errors occur.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
DumpJsonValue (
|
|
IN UINTN ErrorLevel,
|
|
IN EDKII_JSON_VALUE JsonValue
|
|
);
|
|
|
|
/**
|
|
|
|
This function dump the status code, header and body in given
|
|
Redfish payload.
|
|
|
|
@param[in] ErrorLevel DEBUG macro error level
|
|
@param[in] Payload Redfish payload to dump
|
|
|
|
@retval EFI_SUCCESS Redfish payload is printed.
|
|
@retval Others Errors occur.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
DumpRedfishPayload (
|
|
IN UINTN ErrorLevel,
|
|
IN REDFISH_PAYLOAD Payload
|
|
);
|
|
|
|
/**
|
|
|
|
This function dump the status code, header and body in given
|
|
Redfish response.
|
|
|
|
@param[in] Message Message string
|
|
@param[in] ErrorLevel DEBUG macro error level
|
|
@param[in] Response Redfish response to dump
|
|
|
|
@retval EFI_SUCCESS Redfish response is printed.
|
|
@retval Others Errors occur.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
DumpRedfishResponse (
|
|
IN CONST CHAR8 *Message,
|
|
IN UINTN ErrorLevel,
|
|
IN REDFISH_RESPONSE *Response
|
|
);
|
|
|
|
/**
|
|
|
|
This function dump the HTTP status code.
|
|
|
|
@param[in] ErrorLevel DEBUG macro error level
|
|
@param[in] HttpStatusCode HTTP status code
|
|
|
|
@retval EFI_SUCCESS HTTP status code is printed
|
|
|
|
**/
|
|
EFI_STATUS
|
|
DumpHttpStatusCode (
|
|
IN UINTN ErrorLevel,
|
|
IN EFI_HTTP_STATUS_CODE HttpStatusCode
|
|
);
|
|
|
|
/**
|
|
|
|
This function dump the IPv4 address in given error level.
|
|
|
|
@param[in] ErrorLevel DEBUG macro error level
|
|
@param[in] Ipv4Address IPv4 address to dump
|
|
|
|
@retval EFI_SUCCESS IPv4 address string is printed.
|
|
@retval Others Errors occur.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
DumpIpv4Address (
|
|
IN UINTN ErrorLevel,
|
|
IN EFI_IPv4_ADDRESS *Ipv4Address
|
|
);
|
|
|
|
/**
|
|
Debug output raw data buffer.
|
|
|
|
@param[in] ErrorLevel DEBUG macro error level
|
|
@param[in] Buffer Debug output data buffer.
|
|
@param[in] BufferSize The size of Buffer in byte.
|
|
|
|
@retval EFI_SUCCESS Debug dump finished.
|
|
@retval EFI_INVALID_PARAMETER Buffer is NULL.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
DumpBuffer (
|
|
IN UINTN ErrorLevel,
|
|
IN UINT8 *Buffer,
|
|
IN UINTN BufferSize
|
|
);
|
|
|
|
#endif
|