Thanks for your review,
@Chang, Abner! Version 2 patch is sent for review here:
https://edk2.groups.io/g/devel/message/113439
Regards,
Nickle
> -----Original Message-----
> From: Chang, Abner <Abner.Chang@amd.com>
> Sent: Tuesday, January 9, 2024 4:00 PM
> To: Nickle Wang <nicklew@nvidia.com>; devel@edk2.groups.io
> Cc: Igor Kulchytskyy <igork@ami.com>; Nick Ramirez <nramirez@nvidia.com>
> Subject: RE: [PATCH] RedfishPkg/RedfishDebugLib: add function to print buffer.
>
> External email: Use caution opening links or attachments
>
>
> [AMD Official Use Only - General]
>
> > -----Original Message-----
> > From: Nickle Wang <nicklew@nvidia.com>
> > Sent: Tuesday, January 9, 2024 3:15 PM
> > To: devel@edk2.groups.io
> > Cc: Chang, Abner <Abner.Chang@amd.com>; Igor Kulchytskyy
> > <igork@ami.com>; Nick Ramirez <nramirez@nvidia.com>
> > Subject: [PATCH] RedfishPkg/RedfishDebugLib: add function to print buffer.
> >
> > Caution: This message originated from an External Source. Use proper
> > caution when opening attachments, clicking links, or responding.
> >
> >
> > 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>
> > ---
> > RedfishPkg/Include/Library/RedfishDebugLib.h | 20 ++++++++-
> > .../Library/RedfishDebugLib/RedfishDebugLib.c | 41 ++++++++++++++++++-
> > 2 files changed, 59 insertions(+), 2 deletions(-)
> >
> > diff --git a/RedfishPkg/Include/Library/RedfishDebugLib.h
> > b/RedfishPkg/Include/Library/RedfishDebugLib.h
> > index 5f75bad12a..3430cf1d14 100644
> > --- a/RedfishPkg/Include/Library/RedfishDebugLib.h
> > +++ b/RedfishPkg/Include/Library/RedfishDebugLib.h
> > @@ -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
> > diff --git a/RedfishPkg/Library/RedfishDebugLib/RedfishDebugLib.c
> > b/RedfishPkg/Library/RedfishDebugLib/RedfishDebugLib.c
> > index efa9a5ca13..5fd40ad955 100644
> > --- a/RedfishPkg/Library/RedfishDebugLib/RedfishDebugLib.c
> > +++ b/RedfishPkg/Library/RedfishDebugLib/RedfishDebugLib.c
> > @@ -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
> >
> > @@ -21,6 +21,7 @@
> >
> > #define REDFISH_JSON_STRING_LENGTH 200 #define
> > REDFISH_JSON_OUTPUT_FORMAT (EDKII_JSON_COMPACT |
> > EDKII_JSON_INDENT(2))
> > +#define REDFISH_SIZE_PER_ROW 16
>
> How about name this as REDFISH_PRINT_BUFFER_BYTES_PER_ROW, looks more
> clear.
>
> Abner
>
> >
> > /**
> > 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_SIZE_PER_ROW == 0) {
> > + DEBUG ((ErrorLevel, "\n%04X: ", Index));
> > + }
> > +
> > + DEBUG ((ErrorLevel, "%02X ", Buffer[Index])); }
> > +
> > + DEBUG ((ErrorLevel, "\n"));
> > +
> > + return EFI_SUCCESS;
> > +}
> > --
> > 2.34.1