[edk2-devel] [PATCH] RedfishPkg/RedfishDebugLib: add function to print buffer.

Nickle Wang via groups.io posted 1 patch 3 months, 3 weeks ago
Failed in applying to current master (apply log)
There is a newer version of this series
RedfishPkg/Include/Library/RedfishDebugLib.h  | 20 ++++++++-
.../Library/RedfishDebugLib/RedfishDebugLib.c | 41 ++++++++++++++++++-
2 files changed, 59 insertions(+), 2 deletions(-)
[edk2-devel] [PATCH] RedfishPkg/RedfishDebugLib: add function to print buffer.
Posted by Nickle Wang via groups.io 3 months, 3 weeks ago
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
 
 /**
   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



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113424): https://edk2.groups.io/g/devel/message/113424
Mute This Topic: https://groups.io/mt/103616099/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] RedfishPkg/RedfishDebugLib: add function to print buffer.
Posted by Chang, Abner via groups.io 3 months, 3 weeks ago
[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



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113426): https://edk2.groups.io/g/devel/message/113426
Mute This Topic: https://groups.io/mt/103616099/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] RedfishPkg/RedfishDebugLib: add function to print buffer.
Posted by Nickle Wang via groups.io 3 months, 3 weeks ago
Thanks for your review, @Chang, Abner<mailto:Abner.Chang@amd.com>!  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<mailto:nicklew@nvidia.com>>

> > Sent: Tuesday, January 9, 2024 3:15 PM

> > To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>

> > Cc: Chang, Abner <Abner.Chang@amd.com<mailto:Abner.Chang@amd.com>>; Igor Kulchytskyy

> > <igork@ami.com<mailto:igork@ami.com>>; Nick Ramirez <nramirez@nvidia.com<mailto: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<mailto:nicklew@nvidia.com>>

> > Cc: Abner Chang <abner.chang@amd.com<mailto:abner.chang@amd.com>>

> > Cc: Igor Kulchytskyy <igork@ami.com<mailto:igork@ami.com>>

> > Cc: Nick Ramirez <nramirez@nvidia.com<mailto: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




-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113440): https://edk2.groups.io/g/devel/message/113440
Mute This Topic: https://groups.io/mt/103616099/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-