public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH] EmbeddedPkg/PrePiLib: remove dead status code reporting code
@ 2019-05-17 16:18 Ard Biesheuvel
  2019-05-17 17:05 ` Leif Lindholm
  0 siblings, 1 reply; 3+ messages in thread
From: Ard Biesheuvel @ 2019-05-17 16:18 UTC (permalink / raw)
  To: devel; +Cc: leif.lindholm, Ard Biesheuvel

The status code reporting functionality in PrePiLib is never invoked
so let's just remove it.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 EmbeddedPkg/Include/Library/PrePiLib.h          |   7 -
 EmbeddedPkg/Library/PrePiLib/PrePiLib.inf       |   4 -
 EmbeddedPkg/Library/PrePiLib/ReportStatusCode.c | 318 --------------------
 3 files changed, 329 deletions(-)

diff --git a/EmbeddedPkg/Include/Library/PrePiLib.h b/EmbeddedPkg/Include/Library/PrePiLib.h
index 787678844093..ee8d4ef4d98a 100644
--- a/EmbeddedPkg/Include/Library/PrePiLib.h
+++ b/EmbeddedPkg/Include/Library/PrePiLib.h
@@ -755,11 +755,4 @@ DecompressFirstFv (
   VOID
   );
 
-VOID
-EFIAPI
-AddDxeCoreReportStatusCodeCallback (
-  VOID
-  );
-
-
 #endif
diff --git a/EmbeddedPkg/Library/PrePiLib/PrePiLib.inf b/EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
index bdedb8d666df..83a0edcb8d94 100644
--- a/EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
+++ b/EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
@@ -29,7 +29,6 @@
 [Sources.common]
   FwVol.c
   PrePiLib.c
-  ReportStatusCode.c
 
 [Packages]
   MdePkg/MdePkg.dec
@@ -51,12 +50,9 @@
   HobLib
 
 [Guids]
-  gEfiStatusCodeSpecificDataGuid
   gEfiMemoryTypeInformationGuid
-  gEfiStatusCodeDataTypeDebugGuid
 
 [Protocols]
-  gEfiStatusCodeRuntimeProtocolGuid
   gPeCoffLoaderProtocolGuid
 
 
diff --git a/EmbeddedPkg/Library/PrePiLib/ReportStatusCode.c b/EmbeddedPkg/Library/PrePiLib/ReportStatusCode.c
deleted file mode 100644
index 043cf5e9cd23..000000000000
--- a/EmbeddedPkg/Library/PrePiLib/ReportStatusCode.c
+++ /dev/null
@@ -1,318 +0,0 @@
-/** @file
-  Library that helps implement monolithic PEI
-
-  Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
-
-  SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include <PrePi.h>
-#include <Library/ReportStatusCodeLib.h>
-#include <Library/SerialPortLib.h>
-#include <Library/PrintLib.h>
-
-#include <Protocol/StatusCode.h>
-#include <Guid/StatusCodeDataTypeId.h>
-#include <Guid/StatusCodeDataTypeDebug.h>
-
-EFI_STATUS
-EFIAPI
-SerialReportStatusCode (
-  IN EFI_STATUS_CODE_TYPE             CodeType,
-  IN EFI_STATUS_CODE_VALUE            Value,
-  IN UINT32                           Instance,
-  IN CONST EFI_GUID                   *CallerId,
-  IN CONST EFI_STATUS_CODE_DATA       *Data OPTIONAL
-  );
-
-
-EFI_STATUS_CODE_PROTOCOL gStatusCode = {
-  (EFI_REPORT_STATUS_CODE)SerialReportStatusCode
-};
-
-/**
-  Extracts ASSERT() information from a status code structure.
-
-  Converts the status code specified by CodeType, Value, and Data to the ASSERT()
-  arguments specified by Filename, Description, and LineNumber.  If CodeType is
-  an EFI_ERROR_CODE, and CodeType has a severity of EFI_ERROR_UNRECOVERED, and
-  Value has an operation mask of EFI_SW_EC_ILLEGAL_SOFTWARE_STATE, extract
-  Filename, Description, and LineNumber from the optional data area of the
-  status code buffer specified by Data.  The optional data area of Data contains
-  a Null-terminated ASCII string for the FileName, followed by a Null-terminated
-  ASCII string for the Description, followed by a 32-bit LineNumber.  If the
-  ASSERT() information could be extracted from Data, then return TRUE.
-  Otherwise, FALSE is returned.
-
-  If Data is NULL, then ASSERT().
-  If Filename is NULL, then ASSERT().
-  If Description is NULL, then ASSERT().
-  If LineNumber is NULL, then ASSERT().
-
-  @param  CodeType     The type of status code being converted.
-  @param  Value        The status code value being converted.
-  @param  Data         Pointer to status code data buffer.
-  @param  Filename     Pointer to the source file name that generated the ASSERT().
-  @param  Description  Pointer to the description of the ASSERT().
-  @param  LineNumber   Pointer to source line number that generated the ASSERT().
-
-  @retval  TRUE   The status code specified by CodeType, Value, and Data was
-                  converted ASSERT() arguments specified by Filename, Description,
-                  and LineNumber.
-  @retval  FALSE  The status code specified by CodeType, Value, and Data could
-                  not be converted to ASSERT() arguments.
-
-**/
-BOOLEAN
-EFIAPI
-ReportStatusCodeExtractAssertInfo (
-  IN EFI_STATUS_CODE_TYPE        CodeType,
-  IN EFI_STATUS_CODE_VALUE       Value,
-  IN CONST EFI_STATUS_CODE_DATA  *Data,
-  OUT CHAR8                      **Filename,
-  OUT CHAR8                      **Description,
-  OUT UINT32                     *LineNumber
-  )
-{
-  EFI_DEBUG_ASSERT_DATA  *AssertData;
-
-  ASSERT (Data        != NULL);
-  ASSERT (Filename    != NULL);
-  ASSERT (Description != NULL);
-  ASSERT (LineNumber  != NULL);
-
-  if (((CodeType & EFI_STATUS_CODE_TYPE_MASK)      == EFI_ERROR_CODE) &&
-      ((CodeType & EFI_STATUS_CODE_SEVERITY_MASK)  == EFI_ERROR_UNRECOVERED) &&
-      ((Value    & EFI_STATUS_CODE_OPERATION_MASK) == EFI_SW_EC_ILLEGAL_SOFTWARE_STATE)) {
-    AssertData   = (EFI_DEBUG_ASSERT_DATA *)(Data + 1);
-    *Filename    = (CHAR8 *)(AssertData + 1);
-    *Description = *Filename + AsciiStrLen (*Filename) + 1;
-    *LineNumber  = AssertData->LineNumber;
-    return TRUE;
-  }
-  return FALSE;
-}
-
-
-/**
-  Extracts DEBUG() information from a status code structure.
-
-  Converts the status code specified by Data to the DEBUG() arguments specified
-  by ErrorLevel, Marker, and Format.  If type GUID in Data is
-  EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID, then extract ErrorLevel, Marker, and
-  Format from the optional data area of the status code buffer specified by Data.
-  The optional data area of Data contains a 32-bit ErrorLevel followed by Marker
-  which is 12 UINTN parameters, followed by a Null-terminated ASCII string for
-  the Format.  If the DEBUG() information could be extracted from Data, then
-  return TRUE.  Otherwise, FALSE is returned.
-
-  If Data is NULL, then ASSERT().
-  If ErrorLevel is NULL, then ASSERT().
-  If Marker is NULL, then ASSERT().
-  If Format is NULL, then ASSERT().
-
-  @param  Data        Pointer to status code data buffer.
-  @param  ErrorLevel  Pointer to error level mask for a debug message.
-  @param  Marker      Pointer to the variable argument list associated with Format.
-  @param  Format      Pointer to a Null-terminated ASCII format string of a
-                      debug message.
-
-  @retval  TRUE   The status code specified by Data was converted DEBUG() arguments
-                  specified by ErrorLevel, Marker, and Format.
-  @retval  FALSE  The status code specified by Data could not be converted to
-                  DEBUG() arguments.
-
-**/
-BOOLEAN
-EFIAPI
-ReportStatusCodeExtractDebugInfo (
-  IN CONST EFI_STATUS_CODE_DATA  *Data,
-  OUT UINT32                     *ErrorLevel,
-  OUT BASE_LIST                  *Marker,
-  OUT CHAR8                      **Format
-  )
-{
-  EFI_DEBUG_INFO  *DebugInfo;
-
-  ASSERT (Data          != NULL);
-  ASSERT (ErrorLevel    != NULL);
-  ASSERT (Marker     != NULL);
-  ASSERT (Format     != NULL);
-
-  //
-  // If the GUID type is not EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID then return FALSE
-  //
-  if (!CompareGuid (&Data->Type, &gEfiStatusCodeDataTypeDebugGuid)) {
-    return FALSE;
-  }
-
-  //
-  // Retrieve the debug information from the status code record
-  //
-  DebugInfo = (EFI_DEBUG_INFO *)(Data + 1);
-
-  *ErrorLevel = DebugInfo->ErrorLevel;
-
-  //
-  // The first 12 * UINTN bytes of the string are really an
-  // argument stack to support varargs on the Format string.
-  //
-  *Marker = (BASE_LIST) (DebugInfo + 1);
-  *Format = (CHAR8 *)(((UINT64 *)*Marker) + 12);
-
-  return TRUE;
-}
-
-
-
-
-EFI_STATUS
-EFIAPI
-SerialReportStatusCode (
-  IN EFI_STATUS_CODE_TYPE             CodeType,
-  IN EFI_STATUS_CODE_VALUE            Value,
-  IN UINT32                           Instance,
-  IN CONST EFI_GUID                   *CallerId,
-  IN CONST EFI_STATUS_CODE_DATA       *Data OPTIONAL
-  )
-{
-  CHAR8           *Filename;
-  CHAR8           *Description;
-  CHAR8           *Format;
-  CHAR8           Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE];
-  UINT32          ErrorLevel;
-  UINT32          LineNumber;
-  UINTN           CharCount;
-  BASE_LIST       Marker;
-  EFI_DEBUG_INFO  *DebugInfo;
-
-  Buffer[0] = '\0';
-
-
-  if (Data != NULL &&
-    ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber)) {
-
-    //
-    // Print ASSERT() information into output buffer.
-    //
-    CharCount = AsciiSPrint (
-                  Buffer,
-                  EFI_STATUS_CODE_DATA_MAX_SIZE,
-                  "\n\rASSERT!: %a (%d): %a\n\r",
-                  Filename,
-                  LineNumber,
-                  Description
-                  );
-
-
-    //
-    // Callout to standard output.
-    //
-    SerialPortWrite ((UINT8 *)Buffer, CharCount);
-    return EFI_SUCCESS;
-
-  } else if (Data != NULL &&
-    ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format)) {
-
-    //
-    // Print DEBUG() information into output buffer.
-    //
-    CharCount = AsciiBSPrint (
-                  Buffer,
-                  EFI_STATUS_CODE_DATA_MAX_SIZE,
-                  Format,
-                  Marker
-                  );
-
-  } else if (Data != NULL &&
-             CompareGuid (&Data->Type, &gEfiStatusCodeSpecificDataGuid) &&
-             (CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE) {
-
-    //
-    // Print specific data into output buffer.
-    //
-    DebugInfo = (EFI_DEBUG_INFO *) (Data + 1);
-    Marker    = (BASE_LIST) (DebugInfo + 1);
-    Format    = (CHAR8 *) (((UINT64 *) (DebugInfo + 1)) + 12);
-
-    CharCount = AsciiBSPrint (Buffer, EFI_STATUS_CODE_DATA_MAX_SIZE, Format, Marker);
-
-  } else if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) {
-    //
-    // Print ERROR information into output buffer.
-    //
-
-    CharCount = AsciiSPrint (
-                  Buffer,
-                  EFI_STATUS_CODE_DATA_MAX_SIZE,
-                  "ERROR: C%x:V%x I%x",
-                  CodeType,
-                  Value,
-                  Instance
-                  );
-
-    //
-    // Make sure we don't try to print values that weren't intended to be printed, especially NULL GUID pointers.
-    //
-    if (CallerId != NULL) {
-      CharCount += AsciiSPrint (
-                     &Buffer[CharCount - 1],
-                     (EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),
-                     " %g",
-                     CallerId
-                     );
-    }
-
-    if (Data != NULL) {
-      CharCount += AsciiSPrint (
-                     &Buffer[CharCount - 1],
-                     (EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),
-                     " %x",
-                     Data
-                     );
-
-    }
-
-
-    CharCount += AsciiSPrint (
-                   &Buffer[CharCount - 1],
-                   (EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),
-                   "\n\r"
-                   );
-
-  } else if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) {
-    CharCount = AsciiSPrint (
-                  Buffer,
-                  EFI_STATUS_CODE_DATA_MAX_SIZE,
-                  "PROGRESS CODE: V%x I%x\n\r",
-                  Value,
-                  Instance
-                  );
-  } else {
-    CharCount = AsciiSPrint (
-                  Buffer,
-                  EFI_STATUS_CODE_DATA_MAX_SIZE,
-                  "Undefined: C%x:V%x I%x\n\r",
-                  CodeType,
-                  Value,
-                  Instance
-                  );
-
-  }
-
-  SerialPortWrite ((UINT8 *)Buffer, CharCount);
-  return EFI_SUCCESS;
-
-}
-
-
-VOID
-EFIAPI
-AddDxeCoreReportStatusCodeCallback (
-  VOID
-  )
-{
-  BuildGuidDataHob (&gEfiStatusCodeRuntimeProtocolGuid, &gStatusCode, sizeof(VOID *));
-}
-
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] EmbeddedPkg/PrePiLib: remove dead status code reporting code
  2019-05-17 16:18 [PATCH] EmbeddedPkg/PrePiLib: remove dead status code reporting code Ard Biesheuvel
@ 2019-05-17 17:05 ` Leif Lindholm
  2019-06-06 10:38   ` Ard Biesheuvel
  0 siblings, 1 reply; 3+ messages in thread
From: Leif Lindholm @ 2019-05-17 17:05 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: devel

On Fri, May 17, 2019 at 06:18:55PM +0200, Ard Biesheuvel wrote:
> The status code reporting functionality in PrePiLib is never invoked
> so let's just remove it.
> 
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

*however* - I don't think this constitutes a bugfix, so probably needs
to hold back until stable tag is made.

/
    Leif

> ---
>  EmbeddedPkg/Include/Library/PrePiLib.h          |   7 -
>  EmbeddedPkg/Library/PrePiLib/PrePiLib.inf       |   4 -
>  EmbeddedPkg/Library/PrePiLib/ReportStatusCode.c | 318 --------------------
>  3 files changed, 329 deletions(-)
> 
> diff --git a/EmbeddedPkg/Include/Library/PrePiLib.h b/EmbeddedPkg/Include/Library/PrePiLib.h
> index 787678844093..ee8d4ef4d98a 100644
> --- a/EmbeddedPkg/Include/Library/PrePiLib.h
> +++ b/EmbeddedPkg/Include/Library/PrePiLib.h
> @@ -755,11 +755,4 @@ DecompressFirstFv (
>    VOID
>    );
>  
> -VOID
> -EFIAPI
> -AddDxeCoreReportStatusCodeCallback (
> -  VOID
> -  );
> -
> -
>  #endif
> diff --git a/EmbeddedPkg/Library/PrePiLib/PrePiLib.inf b/EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
> index bdedb8d666df..83a0edcb8d94 100644
> --- a/EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
> +++ b/EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
> @@ -29,7 +29,6 @@
>  [Sources.common]
>    FwVol.c
>    PrePiLib.c
> -  ReportStatusCode.c
>  
>  [Packages]
>    MdePkg/MdePkg.dec
> @@ -51,12 +50,9 @@
>    HobLib
>  
>  [Guids]
> -  gEfiStatusCodeSpecificDataGuid
>    gEfiMemoryTypeInformationGuid
> -  gEfiStatusCodeDataTypeDebugGuid
>  
>  [Protocols]
> -  gEfiStatusCodeRuntimeProtocolGuid
>    gPeCoffLoaderProtocolGuid
>  
>  
> diff --git a/EmbeddedPkg/Library/PrePiLib/ReportStatusCode.c b/EmbeddedPkg/Library/PrePiLib/ReportStatusCode.c
> deleted file mode 100644
> index 043cf5e9cd23..000000000000
> --- a/EmbeddedPkg/Library/PrePiLib/ReportStatusCode.c
> +++ /dev/null
> @@ -1,318 +0,0 @@
> -/** @file
> -  Library that helps implement monolithic PEI
> -
> -  Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
> -
> -  SPDX-License-Identifier: BSD-2-Clause-Patent
> -
> -**/
> -
> -#include <PrePi.h>
> -#include <Library/ReportStatusCodeLib.h>
> -#include <Library/SerialPortLib.h>
> -#include <Library/PrintLib.h>
> -
> -#include <Protocol/StatusCode.h>
> -#include <Guid/StatusCodeDataTypeId.h>
> -#include <Guid/StatusCodeDataTypeDebug.h>
> -
> -EFI_STATUS
> -EFIAPI
> -SerialReportStatusCode (
> -  IN EFI_STATUS_CODE_TYPE             CodeType,
> -  IN EFI_STATUS_CODE_VALUE            Value,
> -  IN UINT32                           Instance,
> -  IN CONST EFI_GUID                   *CallerId,
> -  IN CONST EFI_STATUS_CODE_DATA       *Data OPTIONAL
> -  );
> -
> -
> -EFI_STATUS_CODE_PROTOCOL gStatusCode = {
> -  (EFI_REPORT_STATUS_CODE)SerialReportStatusCode
> -};
> -
> -/**
> -  Extracts ASSERT() information from a status code structure.
> -
> -  Converts the status code specified by CodeType, Value, and Data to the ASSERT()
> -  arguments specified by Filename, Description, and LineNumber.  If CodeType is
> -  an EFI_ERROR_CODE, and CodeType has a severity of EFI_ERROR_UNRECOVERED, and
> -  Value has an operation mask of EFI_SW_EC_ILLEGAL_SOFTWARE_STATE, extract
> -  Filename, Description, and LineNumber from the optional data area of the
> -  status code buffer specified by Data.  The optional data area of Data contains
> -  a Null-terminated ASCII string for the FileName, followed by a Null-terminated
> -  ASCII string for the Description, followed by a 32-bit LineNumber.  If the
> -  ASSERT() information could be extracted from Data, then return TRUE.
> -  Otherwise, FALSE is returned.
> -
> -  If Data is NULL, then ASSERT().
> -  If Filename is NULL, then ASSERT().
> -  If Description is NULL, then ASSERT().
> -  If LineNumber is NULL, then ASSERT().
> -
> -  @param  CodeType     The type of status code being converted.
> -  @param  Value        The status code value being converted.
> -  @param  Data         Pointer to status code data buffer.
> -  @param  Filename     Pointer to the source file name that generated the ASSERT().
> -  @param  Description  Pointer to the description of the ASSERT().
> -  @param  LineNumber   Pointer to source line number that generated the ASSERT().
> -
> -  @retval  TRUE   The status code specified by CodeType, Value, and Data was
> -                  converted ASSERT() arguments specified by Filename, Description,
> -                  and LineNumber.
> -  @retval  FALSE  The status code specified by CodeType, Value, and Data could
> -                  not be converted to ASSERT() arguments.
> -
> -**/
> -BOOLEAN
> -EFIAPI
> -ReportStatusCodeExtractAssertInfo (
> -  IN EFI_STATUS_CODE_TYPE        CodeType,
> -  IN EFI_STATUS_CODE_VALUE       Value,
> -  IN CONST EFI_STATUS_CODE_DATA  *Data,
> -  OUT CHAR8                      **Filename,
> -  OUT CHAR8                      **Description,
> -  OUT UINT32                     *LineNumber
> -  )
> -{
> -  EFI_DEBUG_ASSERT_DATA  *AssertData;
> -
> -  ASSERT (Data        != NULL);
> -  ASSERT (Filename    != NULL);
> -  ASSERT (Description != NULL);
> -  ASSERT (LineNumber  != NULL);
> -
> -  if (((CodeType & EFI_STATUS_CODE_TYPE_MASK)      == EFI_ERROR_CODE) &&
> -      ((CodeType & EFI_STATUS_CODE_SEVERITY_MASK)  == EFI_ERROR_UNRECOVERED) &&
> -      ((Value    & EFI_STATUS_CODE_OPERATION_MASK) == EFI_SW_EC_ILLEGAL_SOFTWARE_STATE)) {
> -    AssertData   = (EFI_DEBUG_ASSERT_DATA *)(Data + 1);
> -    *Filename    = (CHAR8 *)(AssertData + 1);
> -    *Description = *Filename + AsciiStrLen (*Filename) + 1;
> -    *LineNumber  = AssertData->LineNumber;
> -    return TRUE;
> -  }
> -  return FALSE;
> -}
> -
> -
> -/**
> -  Extracts DEBUG() information from a status code structure.
> -
> -  Converts the status code specified by Data to the DEBUG() arguments specified
> -  by ErrorLevel, Marker, and Format.  If type GUID in Data is
> -  EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID, then extract ErrorLevel, Marker, and
> -  Format from the optional data area of the status code buffer specified by Data.
> -  The optional data area of Data contains a 32-bit ErrorLevel followed by Marker
> -  which is 12 UINTN parameters, followed by a Null-terminated ASCII string for
> -  the Format.  If the DEBUG() information could be extracted from Data, then
> -  return TRUE.  Otherwise, FALSE is returned.
> -
> -  If Data is NULL, then ASSERT().
> -  If ErrorLevel is NULL, then ASSERT().
> -  If Marker is NULL, then ASSERT().
> -  If Format is NULL, then ASSERT().
> -
> -  @param  Data        Pointer to status code data buffer.
> -  @param  ErrorLevel  Pointer to error level mask for a debug message.
> -  @param  Marker      Pointer to the variable argument list associated with Format.
> -  @param  Format      Pointer to a Null-terminated ASCII format string of a
> -                      debug message.
> -
> -  @retval  TRUE   The status code specified by Data was converted DEBUG() arguments
> -                  specified by ErrorLevel, Marker, and Format.
> -  @retval  FALSE  The status code specified by Data could not be converted to
> -                  DEBUG() arguments.
> -
> -**/
> -BOOLEAN
> -EFIAPI
> -ReportStatusCodeExtractDebugInfo (
> -  IN CONST EFI_STATUS_CODE_DATA  *Data,
> -  OUT UINT32                     *ErrorLevel,
> -  OUT BASE_LIST                  *Marker,
> -  OUT CHAR8                      **Format
> -  )
> -{
> -  EFI_DEBUG_INFO  *DebugInfo;
> -
> -  ASSERT (Data          != NULL);
> -  ASSERT (ErrorLevel    != NULL);
> -  ASSERT (Marker     != NULL);
> -  ASSERT (Format     != NULL);
> -
> -  //
> -  // If the GUID type is not EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID then return FALSE
> -  //
> -  if (!CompareGuid (&Data->Type, &gEfiStatusCodeDataTypeDebugGuid)) {
> -    return FALSE;
> -  }
> -
> -  //
> -  // Retrieve the debug information from the status code record
> -  //
> -  DebugInfo = (EFI_DEBUG_INFO *)(Data + 1);
> -
> -  *ErrorLevel = DebugInfo->ErrorLevel;
> -
> -  //
> -  // The first 12 * UINTN bytes of the string are really an
> -  // argument stack to support varargs on the Format string.
> -  //
> -  *Marker = (BASE_LIST) (DebugInfo + 1);
> -  *Format = (CHAR8 *)(((UINT64 *)*Marker) + 12);
> -
> -  return TRUE;
> -}
> -
> -
> -
> -
> -EFI_STATUS
> -EFIAPI
> -SerialReportStatusCode (
> -  IN EFI_STATUS_CODE_TYPE             CodeType,
> -  IN EFI_STATUS_CODE_VALUE            Value,
> -  IN UINT32                           Instance,
> -  IN CONST EFI_GUID                   *CallerId,
> -  IN CONST EFI_STATUS_CODE_DATA       *Data OPTIONAL
> -  )
> -{
> -  CHAR8           *Filename;
> -  CHAR8           *Description;
> -  CHAR8           *Format;
> -  CHAR8           Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE];
> -  UINT32          ErrorLevel;
> -  UINT32          LineNumber;
> -  UINTN           CharCount;
> -  BASE_LIST       Marker;
> -  EFI_DEBUG_INFO  *DebugInfo;
> -
> -  Buffer[0] = '\0';
> -
> -
> -  if (Data != NULL &&
> -    ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber)) {
> -
> -    //
> -    // Print ASSERT() information into output buffer.
> -    //
> -    CharCount = AsciiSPrint (
> -                  Buffer,
> -                  EFI_STATUS_CODE_DATA_MAX_SIZE,
> -                  "\n\rASSERT!: %a (%d): %a\n\r",
> -                  Filename,
> -                  LineNumber,
> -                  Description
> -                  );
> -
> -
> -    //
> -    // Callout to standard output.
> -    //
> -    SerialPortWrite ((UINT8 *)Buffer, CharCount);
> -    return EFI_SUCCESS;
> -
> -  } else if (Data != NULL &&
> -    ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format)) {
> -
> -    //
> -    // Print DEBUG() information into output buffer.
> -    //
> -    CharCount = AsciiBSPrint (
> -                  Buffer,
> -                  EFI_STATUS_CODE_DATA_MAX_SIZE,
> -                  Format,
> -                  Marker
> -                  );
> -
> -  } else if (Data != NULL &&
> -             CompareGuid (&Data->Type, &gEfiStatusCodeSpecificDataGuid) &&
> -             (CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE) {
> -
> -    //
> -    // Print specific data into output buffer.
> -    //
> -    DebugInfo = (EFI_DEBUG_INFO *) (Data + 1);
> -    Marker    = (BASE_LIST) (DebugInfo + 1);
> -    Format    = (CHAR8 *) (((UINT64 *) (DebugInfo + 1)) + 12);
> -
> -    CharCount = AsciiBSPrint (Buffer, EFI_STATUS_CODE_DATA_MAX_SIZE, Format, Marker);
> -
> -  } else if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) {
> -    //
> -    // Print ERROR information into output buffer.
> -    //
> -
> -    CharCount = AsciiSPrint (
> -                  Buffer,
> -                  EFI_STATUS_CODE_DATA_MAX_SIZE,
> -                  "ERROR: C%x:V%x I%x",
> -                  CodeType,
> -                  Value,
> -                  Instance
> -                  );
> -
> -    //
> -    // Make sure we don't try to print values that weren't intended to be printed, especially NULL GUID pointers.
> -    //
> -    if (CallerId != NULL) {
> -      CharCount += AsciiSPrint (
> -                     &Buffer[CharCount - 1],
> -                     (EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),
> -                     " %g",
> -                     CallerId
> -                     );
> -    }
> -
> -    if (Data != NULL) {
> -      CharCount += AsciiSPrint (
> -                     &Buffer[CharCount - 1],
> -                     (EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),
> -                     " %x",
> -                     Data
> -                     );
> -
> -    }
> -
> -
> -    CharCount += AsciiSPrint (
> -                   &Buffer[CharCount - 1],
> -                   (EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),
> -                   "\n\r"
> -                   );
> -
> -  } else if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) {
> -    CharCount = AsciiSPrint (
> -                  Buffer,
> -                  EFI_STATUS_CODE_DATA_MAX_SIZE,
> -                  "PROGRESS CODE: V%x I%x\n\r",
> -                  Value,
> -                  Instance
> -                  );
> -  } else {
> -    CharCount = AsciiSPrint (
> -                  Buffer,
> -                  EFI_STATUS_CODE_DATA_MAX_SIZE,
> -                  "Undefined: C%x:V%x I%x\n\r",
> -                  CodeType,
> -                  Value,
> -                  Instance
> -                  );
> -
> -  }
> -
> -  SerialPortWrite ((UINT8 *)Buffer, CharCount);
> -  return EFI_SUCCESS;
> -
> -}
> -
> -
> -VOID
> -EFIAPI
> -AddDxeCoreReportStatusCodeCallback (
> -  VOID
> -  )
> -{
> -  BuildGuidDataHob (&gEfiStatusCodeRuntimeProtocolGuid, &gStatusCode, sizeof(VOID *));
> -}
> -
> -- 
> 2.20.1
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] EmbeddedPkg/PrePiLib: remove dead status code reporting code
  2019-05-17 17:05 ` Leif Lindholm
@ 2019-06-06 10:38   ` Ard Biesheuvel
  0 siblings, 0 replies; 3+ messages in thread
From: Ard Biesheuvel @ 2019-06-06 10:38 UTC (permalink / raw)
  To: Leif Lindholm; +Cc: edk2-devel-groups-io

On Fri, 17 May 2019 at 19:05, Leif Lindholm <leif.lindholm@linaro.org> wrote:
>
> On Fri, May 17, 2019 at 06:18:55PM +0200, Ard Biesheuvel wrote:
> > The status code reporting functionality in PrePiLib is never invoked
> > so let's just remove it.
> >
> > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>
> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
>
> *however* - I don't think this constitutes a bugfix, so probably needs
> to hold back until stable tag is made.
>

Pushed as 662bd0da7fd7..3147da26350f

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-06-06 10:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-17 16:18 [PATCH] EmbeddedPkg/PrePiLib: remove dead status code reporting code Ard Biesheuvel
2019-05-17 17:05 ` Leif Lindholm
2019-06-06 10:38   ` Ard Biesheuvel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox