RedfishPkg/RedfishDebugLib: add function to print buffer.

Introduce DumpBuffer function to print the buffer content. This helps
developer to debug Redfish issue.

Signed-off-by: Nickle Wang <nicklew@nvidia.com>
Cc: Abner Chang <abner.chang@amd.com>
Cc: Igor Kulchytskyy <igork@ami.com>
Cc: Nick Ramirez <nramirez@nvidia.com>
Reviewed-by: Igor Kulchytskyy <igork@ami.com>
Reviewed-by: Abner Chang <abner.chang@amd.com>
This commit is contained in:
Nickle Wang 2024-01-09 13:53:15 +08:00 committed by mergify[bot]
parent 265b4ab91b
commit bc34a79cd2
2 changed files with 61 additions and 4 deletions

View File

@ -1,7 +1,7 @@
/** @file
This file defines the Redfish debug library interface.
Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
@ -138,4 +138,22 @@ DumpIpv4Address (
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

View File

@ -1,7 +1,7 @@
/** @file
Redfish debug library to debug Redfish application.
Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
@ -19,8 +19,9 @@
#define IS_EMPTY_STRING(a) ((a) == NULL || (a)[0] == '\0')
#endif
#define REDFISH_JSON_STRING_LENGTH 200
#define REDFISH_JSON_OUTPUT_FORMAT (EDKII_JSON_COMPACT | EDKII_JSON_INDENT(2))
#define REDFISH_JSON_STRING_LENGTH 200
#define REDFISH_JSON_OUTPUT_FORMAT (EDKII_JSON_COMPACT | EDKII_JSON_INDENT(2))
#define REDFISH_PRINT_BUFFER_BYTES_PER_ROW 16
/**
Debug print the value of StatementValue.
@ -366,3 +367,41 @@ DumpIpv4Address (
return EFI_SUCCESS;
}
/**
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
)
{
UINTN Index;
if (Buffer == NULL) {
return EFI_INVALID_PARAMETER;
}
DEBUG ((ErrorLevel, "Address: 0x%p size: %d\n", Buffer, BufferSize));
for (Index = 0; Index < BufferSize; Index++) {
if (Index % REDFISH_PRINT_BUFFER_BYTES_PER_ROW == 0) {
DEBUG ((ErrorLevel, "\n%04X: ", Index));
}
DEBUG ((ErrorLevel, "%02X ", Buffer[Index]));
}
DEBUG ((ErrorLevel, "\n"));
return EFI_SUCCESS;
}