public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gao, Zhichao" <zhichao.gao@intel.com>
To: Joey Gouly <joey.gouly@arm.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "sami.mujawar@arm.com" <sami.mujawar@arm.com>,
	"Ni, Ray" <ray.ni@intel.com>, "nd@arm.com" <nd@arm.com>
Subject: Re: [PATCH v2 1/5] ShellPkg: Replace 'Trace' parameter with 'ParseFlags'
Date: Tue, 9 Nov 2021 05:46:06 +0000	[thread overview]
Message-ID: <DM4PR11MB5277D2E5D9DD237D0CA6DCCFF6929@DM4PR11MB5277.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20210916144605.42071-2-joey.gouly@arm.com>

See below

> -----Original Message-----
> From: Joey Gouly <joey.gouly@arm.com>
> Sent: Thursday, September 16, 2021 10:46 PM
> To: devel@edk2.groups.io
> Cc: joey.gouly@arm.com; sami.mujawar@arm.com; Ni, Ray
> <ray.ni@intel.com>; Gao, Zhichao <zhichao.gao@intel.com>; nd@arm.com
> Subject: [PATCH v2 1/5] ShellPkg: Replace 'Trace' parameter with 'ParseFlags'
> 
> From: Marc Moisson-Franckhauser <marc.moisson-franckhauser@arm.com>
> 
> Bugzilla: 3378 (https://bugzilla.tianocore.org/show_bug.cgi?id=3378)
> 
> This is preparation for adding a second flag to the parsers.
> 
> Signed-off-by: Joey Gouly <joey.gouly@arm.com>
> ---
>  ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h              | 77
> +++++++++++---------
>  ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.h         |  6
> +-
>  ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.c         | 20
> ++---
>  ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c                | 28
> ++++---
>  ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Bgrt/BgrtParser.c
> | 10 +--
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parser.c
> |  8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser.c
> |  8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Facs/FacsParser.c |
> 10 +--
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.c
> | 27 ++++---
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser.c
> |  8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c |
> 8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.
> c |  8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Mcfg/McfgParser.c
> |  8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.c |
> 47 +++++++-----
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParser.c
> | 10 +--
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitParser.c |  8
> +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.c |
> 8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c |
> 8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Ssdt/SsdtParser.c |
> 8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Xsdt/XsdtParser.c
> | 10 +--
>  20 files changed, 179 insertions(+), 146 deletions(-)
> 
> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h
> index
> 0b7726b9d5807ad2f5c5447408c4c5451718938b..b078c0b99335ba28f7589cac6b
> 0a4190d9a6c3b5 100644
> --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h
> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h
> @@ -1,7 +1,7 @@
>  /** @file
>    Header file for ACPI parser
> 
> -  Copyright (c) 2016 - 2020, Arm Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent  **/
> 
> @@ -16,6 +16,16 @@
>  /// that allows us to process the log options.
>  #define RSDP_TABLE_INFO  SIGNATURE_32('R', 'S', 'D', 'P')
> 
> +/**
> +  Flags for the parser.
> +*/
> +#define PARSE_FLAGS_TRACE               BIT0
> +
> +/**
> +  Helper macros to test parser flags.
> +*/
> +#define IS_TRACE_FLAG_SET(Flags) (((Flags) & PARSE_FLAGS_TRACE) != 0)
> +
>  /**
>    This function increments the ACPI table error counter.
>  **/
> @@ -489,7 +499,7 @@ ParseAcpiAest (
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -497,7 +507,7 @@ ParseAcpiAest (
>  VOID
>  EFIAPI
>  ParseAcpiBgrt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -510,7 +520,7 @@ ParseAcpiBgrt (
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -518,7 +528,7 @@ ParseAcpiBgrt (
>  VOID
>  EFIAPI
>  ParseAcpiDbg2 (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -531,7 +541,7 @@ ParseAcpiDbg2 (
>    For the DSDT table only the ACPI header fields are parsed and
>    traced.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -539,7 +549,7 @@ ParseAcpiDbg2 (
>  VOID
>  EFIAPI
>  ParseAcpiDsdt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -552,7 +562,7 @@ ParseAcpiDsdt (
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -560,7 +570,7 @@ ParseAcpiDsdt (
>  VOID
>  EFIAPI
>  ParseAcpiFacs (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -573,7 +583,7 @@ ParseAcpiFacs (
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -581,7 +591,7 @@ ParseAcpiFacs (
>  VOID
>  EFIAPI
>  ParseAcpiFadt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -598,7 +608,7 @@ ParseAcpiFadt (
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -606,7 +616,7 @@ ParseAcpiFadt (
>  VOID
>  EFIAPI
>  ParseAcpiGtdt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -653,7 +663,7 @@ ParseAcpiHmat (
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -661,7 +671,7 @@ ParseAcpiHmat (
>  VOID
>  EFIAPI
>  ParseAcpiIort (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -682,7 +692,7 @@ ParseAcpiIort (
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -690,7 +700,7 @@ ParseAcpiIort (
>  VOID
>  EFIAPI
>  ParseAcpiMadt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -703,7 +713,7 @@ ParseAcpiMadt (
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -711,7 +721,7 @@ ParseAcpiMadt (
>  VOID
>  EFIAPI
>  ParseAcpiMcfg (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -746,7 +756,7 @@ ParseAcpiPcct (
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -754,7 +764,7 @@ ParseAcpiPcct (
>  VOID
>  EFIAPI
>  ParseAcpiPptt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -769,7 +779,7 @@ ParseAcpiPptt (
>    This function also performs a RAW dump of the ACPI table and
>    validates the checksum.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -777,7 +787,7 @@ ParseAcpiPptt (
>  VOID
>  EFIAPI
>  ParseAcpiRsdp (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -793,7 +803,8 @@ ParseAcpiRsdp (
>      - Relative distance from System Locality at i*N+j is same as
>        j*N+i
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +      @param [in] ParseFlags         Flags describing what the parser needs to
> +      do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -801,7 +812,7 @@ ParseAcpiRsdp (
>  VOID
>  EFIAPI
>  ParseAcpiSlit (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -814,7 +825,7 @@ ParseAcpiSlit (
> 
>    This function also performs validations of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -822,7 +833,7 @@ ParseAcpiSlit (
>  VOID
>  EFIAPI
>  ParseAcpiSpcr (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -841,7 +852,7 @@ ParseAcpiSpcr (
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -849,7 +860,7 @@ ParseAcpiSpcr (
>  VOID
>  EFIAPI
>  ParseAcpiSrat (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -862,7 +873,7 @@ ParseAcpiSrat (
>    For the SSDT table only the ACPI header fields are
>    parsed and traced.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -870,7 +881,7 @@ ParseAcpiSrat (
>  VOID
>  EFIAPI
>  ParseAcpiSsdt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -882,7 +893,7 @@ ParseAcpiSsdt (
> 
>    This function also performs validation of the XSDT table.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -890,7 +901,7 @@ ParseAcpiSsdt (
>  VOID
>  EFIAPI
>  ParseAcpiXsdt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.h
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.h
> index
> 0ebf79fb653ae3a8190273aee452723c6213eb58..94ce0a4860e5296d99d398480
> 655a8013ab0f240 100644
> --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.h
> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.h
> @@ -1,7 +1,7 @@
>  /** @file
>    Header file for ACPI table parser
> 
> -  Copyright (c) 2016 - 2020, Arm Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent  **/
> 
> @@ -20,7 +20,7 @@
>  /**
>    A function that parses the ACPI table.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -28,7 +28,7 @@
>  typedef
>  VOID
>  (EFIAPI * PARSE_ACPI_TABLE_PROC) (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.c
> index
> 4b618f131eac3957f4070a95e06c8cd157c3223c..ecb5d6339af37397c6ba1ba4c8f
> 0d42a95811bf6 100644
> --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.c
> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.c
> @@ -1,7 +1,7 @@
>  /** @file
>    ACPI table parser
> 
> -  Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Glossary:
> @@ -183,7 +183,7 @@ ProcessAcpiTable (
>    )
>  {
>    EFI_STATUS    Status;
> -  BOOLEAN       Trace;
> +  UINT8         ParseFlags;
>    CONST UINT32* AcpiTableSignature;
>    CONST UINT32* AcpiTableLength;
>    CONST UINT8*  AcpiTableRevision;
> @@ -197,13 +197,13 @@ ProcessAcpiTable (
>      &AcpiTableRevision
>      );
> 
> -  Trace = ProcessTableReportOptions (
> -            *AcpiTableSignature,
> -            Ptr,
> -            *AcpiTableLength
> -            );
> +  ParseFlags = ProcessTableReportOptions (
> +                 *AcpiTableSignature,
> +                 Ptr,
> +                 *AcpiTableLength
> +                 );
> 
> -  if (Trace) {
> +  if (IS_TRACE_FLAG_SET (ParseFlags)) {
>      DumpRaw (Ptr, *AcpiTableLength);
> 
>      // Do not process the ACPI table any further if the table length read @@ -
> 236,14 +236,14 @@ ProcessAcpiTable (
>    Status = GetParser (*AcpiTableSignature, &ParserProc);
>    if (EFI_ERROR (Status)) {
>      // No registered parser found, do default handling.
> -    if (Trace) {
> +    if (IS_TRACE_FLAG_SET (ParseFlags)) {
>        DumpAcpiHeader (Ptr);
>      }
>      return;
>    }
> 
>    ParserProc (
> -    Trace,
> +    ParseFlags,
>      Ptr,
>      *AcpiTableLength,
>      *AcpiTableRevision
> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
> index
> 9a5b013fb234e2a09a12a690607b5b871dffde72..a4242ba9d99b05d07c829520c
> 4011439445aadb0 100644
> --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
> @@ -1,6 +1,6 @@
>  /** @file
> 
> -  Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Glossary:
> @@ -73,9 +73,9 @@ DumpAcpiTableToFile (
>    @param [in] TablePtr  Pointer to the ACPI table data.
>    @param [in] Length    The length fo the ACPI table.
> 
> -  @retval Returns TRUE if the ACPI table should be traced.
> +  @retval Returns the ParseFlags for the ACPI table.
>  **/
> -BOOLEAN
> +UINT8
>  ProcessTableReportOptions (
>    IN CONST UINT32  Signature,
>    IN CONST UINT8*  TablePtr,
> @@ -84,7 +84,7 @@ ProcessTableReportOptions (  {
>    UINTN                OriginalAttribute;
>    UINT8                *SignaturePtr;
> -  BOOLEAN              Log;
> +  UINT8                ParseFlags;
>    BOOLEAN              HighLight;
>    SELECTED_ACPI_TABLE  *SelectedTable;
> 
> @@ -93,17 +93,17 @@ ProcessTableReportOptions (
>    //
>    OriginalAttribute = 0;
>    SignaturePtr = (UINT8*)(UINTN)&Signature;
> -  Log = FALSE;
> +  ParseFlags = 0;
>    HighLight = GetColourHighlighting ();
>    GetSelectedAcpiTable (&SelectedTable);
> 
>    switch (GetReportOption ()) {
>      case ReportAll:
> -      Log = TRUE;
> +      ParseFlags |= PARSE_FLAGS_TRACE;
>        break;
>      case ReportSelected:
>        if (Signature == SelectedTable->Type) {
> -        Log = TRUE;
> +        ParseFlags |= PARSE_FLAGS_TRACE;
>          SelectedTable->Found = TRUE;
>        }
>        break;
> @@ -143,7 +143,7 @@ ProcessTableReportOptions (
>        break;
>    } // switch
> 
> -  if (Log) {
> +  if (IS_TRACE_FLAG_SET (ParseFlags)) {
>      if (HighLight) {
>        OriginalAttribute = gST->ConOut->Mode->Attribute;
>        gST->ConOut->SetAttribute (
> @@ -164,7 +164,7 @@ ProcessTableReportOptions (
>      }
>    }
> 
> -  return Log;
> +  return ParseFlags;
>  }
> 
> 
> @@ -196,7 +196,7 @@ AcpiView (
>    UINT32                   RsdpLength;
>    UINT8                    RsdpRevision;
>    PARSE_ACPI_TABLE_PROC    RsdpParserProc;
> -  BOOLEAN                  Trace;
> +  UINT8                    ParseFlags;
>    SELECTED_ACPI_TABLE      *SelectedTable;
> 
>    //
> @@ -249,7 +249,11 @@ AcpiView (
>      // The RSDP length is 4 bytes starting at offset 20
>      RsdpLength = *(UINT32*)(RsdpPtr + RSDP_LENGTH_OFFSET);
> 
> -    Trace = ProcessTableReportOptions (RSDP_TABLE_INFO, RsdpPtr,
> RsdpLength);
> +    ParseFlags = ProcessTableReportOptions (
> +                   RSDP_TABLE_INFO,
> +                   RsdpPtr,
> +                   RsdpLength
> +                   );
> 
>      Status = GetParser (RSDP_TABLE_INFO, &RsdpParserProc);
>      if (EFI_ERROR (Status)) {
> @@ -260,7 +264,7 @@ AcpiView (
>      }
> 
>      RsdpParserProc (
> -      Trace,
> +      ParseFlags,
>        RsdpPtr,
>        RsdpLength,
>        RsdpRevision
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Bgrt/BgrtParser.
> c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Bgrt/BgrtParser.
> c
> index
> 1a180271a4ebe47948b7f0b56d1cb6f81b5fdf13..6bd4c35bec85e038875ce3d95
> 48c9139b1de2755 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Bgrt/BgrtParser.
> c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Bgrt/BgrtPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    BGRT table parser
> 
> -  Copyright (c) 2017 - 2018, ARM Limited. All rights reserved.
> +  Copyright (c) 2017 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -36,7 +36,7 @@ STATIC CONST ACPI_PARSER BgrtParser[] = {
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -44,18 +44,18 @@ STATIC CONST ACPI_PARSER BgrtParser[] = {  VOID
> EFIAPI  ParseAcpiBgrt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
>    )
>  {
> -  if (!Trace) {
> +  if (!IS_TRACE_FLAG_SET (ParseFlags)) {
>      return;
>    }
> 
>    ParseAcpi (
> -    Trace,
> +    TRUE,
>      0,
>      "BGRT",
>      Ptr,
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parse
> r.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parse
> r.c
> index
> 9df111ecaa7d7a703a13a39c243ed78b9f12ee97..a22f8ab76b84432b2073bea6c
> a6d8245ea9df7fb 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parse
> r.c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Pars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    DBG2 table parser
> 
> -  Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -212,7 +212,7 @@ DumpDbgDeviceInfo (
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -220,7 +220,7 @@ DumpDbgDeviceInfo (
>  VOID
>  EFIAPI
>  ParseAcpiDbg2 (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -229,7 +229,7 @@ ParseAcpiDbg2 (
>    UINT32 Offset;
>    UINT32 Index;
> 
> -  if (!Trace) {
> +  if (!IS_TRACE_FLAG_SET (ParseFlags)) {
>      return;
>    }
> 
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser
> .c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser
> .c
> index
> 6d43974f54d23fd9990fa7af721c96518bb96a36..609c17ef02d460be66f0c39020
> 3cae55ece653e3 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser
> .c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    DSDT table parser
> 
> -  Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -20,7 +20,7 @@
>    For the DSDT table only the ACPI header fields are parsed and
>    traced.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -28,13 +28,13 @@
>  VOID
>  EFIAPI
>  ParseAcpiDsdt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
>    )
>  {
> -  if (!Trace) {
> +  if (!IS_TRACE_FLAG_SET (ParseFlags)) {
>      return;
>    }
> 
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Facs/FacsParser.
> c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Facs/FacsParser.
> c
> index
> d6bea86bdbaa79aa35b86840c809394b3c7a3bf6..d7545b6161eadd24e986a782
> 8910662f2f52b2ec 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Facs/FacsParser.
> c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Facs/FacsPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    FACS table parser
> 
> -  Copyright (c) 2019, ARM Limited. All rights reserved.
> +  Copyright (c) 2019 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -42,7 +42,7 @@ STATIC CONST ACPI_PARSER FacsParser[] = {
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -50,18 +50,18 @@ STATIC CONST ACPI_PARSER FacsParser[] = {  VOID
> EFIAPI  ParseAcpiFacs (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
>    )
>  {
> -  if (!Trace) {
> +  if (!IS_TRACE_FLAG_SET (ParseFlags)) {
>      return;
>    }
> 
>    ParseAcpi (
> -    Trace,
> +    TRUE,
>      0,
>      "FACS",
>      Ptr,
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.
> c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.
> c
> index
> d86718bab67d45fd612bb7ac725b5eb3eeb7dfdc..8d0eb42ec3b361c1727184c5
> 42a757e39ef3da5c 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.
> c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    FADT table parser
> 
> -  Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -198,7 +198,7 @@ STATIC CONST ACPI_PARSER FadtParser[] = {
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -206,7 +206,7 @@ STATIC CONST ACPI_PARSER FadtParser[] = {  VOID
> EFIAPI  ParseAcpiFadt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -219,6 +219,9 @@ ParseAcpiFadt (
>    UINT32                  FacsLength;
>    UINT8                   FacsRevision;
>    PARSE_ACPI_TABLE_PROC   FacsParserProc;
> +  BOOLEAN                 Trace;
> +
> +  Trace = IS_TRACE_FLAG_SET (ParseFlags);
> 
>    ParseAcpi (
>      Trace,
> @@ -253,7 +256,7 @@ ParseAcpiFadt (
>      // if HW_REDUCED_ACPI flag is not set, both FIRMWARE_CTRL and
>      // X_FIRMWARE_CTRL cannot be zero, and the FACS Table must be
>      // present.
> -    if ((Trace) &&
> +    if (Trace &&
>          (Flags != NULL) &&
>          ((*Flags & EFI_ACPI_6_3_HW_REDUCED_ACPI) !=
> EFI_ACPI_6_3_HW_REDUCED_ACPI)) {
>        IncrementErrorCount ();
> @@ -274,11 +277,15 @@ ParseAcpiFadt (
>      // The FACS version is 1 byte starting at offset 32.
>      FacsRevision = *(UINT8*)(FirmwareCtrlPtr + FACS_VERSION_OFFSET);
> 
> -    Trace = ProcessTableReportOptions (
> -              FacsSignature,
> -              FirmwareCtrlPtr,
> -              FacsLength
> -              );
> +    if (ProcessTableReportOptions (
> +          FacsSignature,
> +          FirmwareCtrlPtr,
> +          FacsLength
> +          )) {
> +      ParseFlags |= PARSE_FLAGS_TRACE;
> +    } else {
> +      ParseFlags &= ~PARSE_FLAGS_TRACE;
> +    }

Why use such format instead of assign ParseFlags with the return value of ProcessTableReportOptions?

Thanks,
Zhichao

> 
>      Status = GetParser (FacsSignature, &FacsParserProc);
>      if (EFI_ERROR (Status)) {
> @@ -289,7 +296,7 @@ ParseAcpiFadt (
>      }
> 
>      FacsParserProc (
> -      Trace,
> +      ParseFlags,
>        FirmwareCtrlPtr,
>        FacsLength,
>        FacsRevision
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser
> .c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser
> .c
> index
> d02fc4929d6fa5e04672276810b19d3f4c62efd2..da93938771bfcf0da146fd46a0
> 25addeb05e71cc 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser
> .c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    GTDT table parser
> 
> -  Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -254,7 +254,7 @@ DumpWatchdogTimer (
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -262,7 +262,7 @@ DumpWatchdogTimer (
>  VOID
>  EFIAPI
>  ParseAcpiGtdt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -272,7 +272,7 @@ ParseAcpiGtdt (
>    UINT32 Offset;
>    UINT8* TimerPtr;
> 
> -  if (!Trace) {
> +  if (!IS_TRACE_FLAG_SET (ParseFlags)) {
>      return;
>    }
> 
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c
> index
> f7447947b2308d35d4d2890373778f0fd2f97f9e..2f659349499a02175820ee4faf3
> a84034c8ced76 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c
> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    IORT table parser
> 
> -  Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -612,7 +612,7 @@ DumpIortNodePmcg (
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -620,7 +620,7 @@ DumpIortNodePmcg (
>  VOID
>  EFIAPI
>  ParseAcpiIort (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -630,7 +630,7 @@ ParseAcpiIort (
>    UINT32 Index;
>    UINT8* NodePtr;
> 
> -  if (!Trace) {
> +  if (!IS_TRACE_FLAG_SET (ParseFlags)) {
>      return;
>    }
> 
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars
> er.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars
> er.c
> index
> 15aa2392b60cee9e3843c7c560b0ab84e0be4174..a29bf97a3985a74ff888f225e
> b0e5cfbcbea72b0 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars
> er.c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    MADT table parser
> 
> -  Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -216,7 +216,7 @@ STATIC CONST ACPI_PARSER
> MadtInterruptControllerHeaderParser[] = {
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -224,7 +224,7 @@ STATIC CONST ACPI_PARSER
> MadtInterruptControllerHeaderParser[] = {  VOID  EFIAPI  ParseAcpiMadt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -236,7 +236,7 @@ ParseAcpiMadt (
> 
>    GICDCount = 0;
> 
> -  if (!Trace) {
> +  if (!IS_TRACE_FLAG_SET (ParseFlags)) {
>      return;
>    }
> 
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Mcfg/McfgParse
> r.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Mcfg/McfgParse
> r.c
> index
> 9da4d60e849721ed3b635bfff8a3bd76728c0ade..febf8a2bd92d8e38bdc59a3f9
> 7a8c4485cdba5a5 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Mcfg/McfgParse
> r.c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Mcfg/McfgPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    MCFG table parser
> 
> -  Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -42,7 +42,7 @@ STATIC CONST ACPI_PARSER
> PciCfgSpaceBaseAddrParser[] = {
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -50,7 +50,7 @@ STATIC CONST ACPI_PARSER
> PciCfgSpaceBaseAddrParser[] = {  VOID  EFIAPI  ParseAcpiMcfg (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -60,7 +60,7 @@ ParseAcpiMcfg (
>    UINT32 PciCfgOffset;
>    UINT8* PciCfgSpacePtr;
> 
> -  if (!Trace) {
> +  if (!IS_TRACE_FLAG_SET (ParseFlags)) {
>      return;
>    }
> 
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.
> c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.
> c
> index
> acd2b81bb3258c7322aa10d2c0e0d842d89e358b..538b6a69350d75ccbf36b86ff
> f115255e77437c7 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.
> c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    PPTT table parser
> 
> -  Copyright (c) 2019 - 2020, ARM Limited. All rights reserved.
> +  Copyright (c) 2019 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -241,13 +241,15 @@ STATIC CONST ACPI_PARSER IdStructureParser[] = {
>  /**
>    This function parses the Processor Hierarchy Node Structure (Type 0).
> 
> -  @param [in] Ptr     Pointer to the start of the Processor Hierarchy Node
> -                      Structure data.
> -  @param [in] Length  Length of the Processor Hierarchy Node Structure.
> +  @param [in] ParseFlags   Flags describing what the parser needs to do.
> +  @param [in] Ptr          Pointer to the start of the Processor Hierarchy Node
> +                           Structure data.
> +  @param [in] Length       Length of the Processor Hierarchy Node Structure.
>  **/
>  STATIC
>  VOID
>  DumpProcessorHierarchyNodeStructure (
> +  IN UINT8  ParseFlags,
>    IN UINT8* Ptr,
>    IN UINT8  Length
>    )
> @@ -257,7 +259,7 @@ DumpProcessorHierarchyNodeStructure (
>    CHAR16 Buffer[OUTPUT_FIELD_COLUMN_WIDTH];
> 
>    Offset = ParseAcpi (
> -             TRUE,
> +             IS_TRACE_FLAG_SET (ParseFlags),
>               2,
>               "Processor Hierarchy Node Structure",
>               Ptr,
> @@ -315,18 +317,20 @@ DumpProcessorHierarchyNodeStructure (
>  /**
>    This function parses the Cache Type Structure (Type 1).
> 
> -  @param [in] Ptr     Pointer to the start of the Cache Type Structure data.
> -  @param [in] Length  Length of the Cache Type Structure.
> +  @param [in] ParseFlags  Flags describing what the parser needs to do.
> +  @param [in] Ptr         Pointer to the start of the Cache Type Structure data.
> +  @param [in] Length      Length of the Cache Type Structure.
>  **/
>  STATIC
>  VOID
>  DumpCacheTypeStructure (
> +  IN UINT8  ParseFlags,
>    IN UINT8* Ptr,
>    IN UINT8  Length
>    )
>  {
>    ParseAcpi (
> -    TRUE,
> +    IS_TRACE_FLAG_SET (ParseFlags),
>      2,
>      "Cache Type Structure",
>      Ptr,
> @@ -338,18 +342,20 @@ DumpCacheTypeStructure (
>  /**
>    This function parses the ID Structure (Type 2).
> 
> -  @param [in] Ptr     Pointer to the start of the ID Structure data.
> -  @param [in] Length  Length of the ID Structure.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
> +  @param [in] Ptr                Pointer to the start of the ID Structure data.
> +  @param [in] Length             Length of the ID Structure.
>  **/
>  STATIC
>  VOID
>  DumpIDStructure (
> +  IN UINT8  ParseFlags,
>    IN UINT8* Ptr,
> -  IN UINT8 Length
> +  IN UINT8  Length
>    )
>  {
>    ParseAcpi (
> -    TRUE,
> +    IS_TRACE_FLAG_SET (ParseFlags),
>      2,
>      "ID Structure",
>      Ptr,
> @@ -370,7 +376,7 @@ DumpIDStructure (
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -378,7 +384,7 @@ DumpIDStructure (
>  VOID
>  EFIAPI
>  ParseAcpiPptt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -387,12 +393,12 @@ ParseAcpiPptt (
>    UINT32 Offset;
>    UINT8* ProcessorTopologyStructurePtr;
> 
> -  if (!Trace) {
> +  if (!IS_TRACE_FLAG_SET (ParseFlags)) {
>      return;
>    }
> 
>    Offset = ParseAcpi (
> -             TRUE,
> +             IS_TRACE_FLAG_SET (ParseFlags),
>               0,
>               "PPTT",
>               Ptr,
> @@ -440,24 +446,29 @@ ParseAcpiPptt (
>        return;
>      }
> 
> -    PrintFieldName (2, L"* Structure Offset *");
> -    Print (L"0x%x\n", Offset);
> +    if (IS_TRACE_FLAG_SET (ParseFlags)) {
> +      PrintFieldName (2, L"* Structure Offset *");
> +      Print (L"0x%x\n", Offset);
> +    }
> 
>      switch (*ProcessorTopologyStructureType) {
>        case EFI_ACPI_6_2_PPTT_TYPE_PROCESSOR:
>          DumpProcessorHierarchyNodeStructure (
> +          ParseFlags,
>            ProcessorTopologyStructurePtr,
>            *ProcessorTopologyStructureLength
>            );
>          break;
>        case EFI_ACPI_6_2_PPTT_TYPE_CACHE:
>          DumpCacheTypeStructure (
> +          ParseFlags,
>            ProcessorTopologyStructurePtr,
>            *ProcessorTopologyStructureLength
>            );
>          break;
>        case EFI_ACPI_6_2_PPTT_TYPE_ID:
>          DumpIDStructure (
> +          ParseFlags,
>            ProcessorTopologyStructurePtr,
>            *ProcessorTopologyStructureLength
>            );
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParse
> r.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParse
> r.c
> index
> f4a8732a7db7c437031f2a3d2f266b80eff17b4b..c98bc62719c3aef3381152ff243
> 6cb1a29f98362 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParse
> r.c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    RSDP table parser
> 
> -  Copyright (c) 2016 - 2019, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -110,7 +110,7 @@ STATIC CONST ACPI_PARSER RsdpParser[] = {
>    This function also performs a RAW dump of the ACPI table and
>    validates the checksum.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -118,19 +118,19 @@ STATIC CONST ACPI_PARSER RsdpParser[] = {  VOID
> EFIAPI  ParseAcpiRsdp (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
>    )
>  {
> -  if (Trace) {
> +  if (IS_TRACE_FLAG_SET (ParseFlags)) {
>      DumpRaw (Ptr, AcpiTableLength);
>      VerifyChecksum (TRUE, Ptr, AcpiTableLength);
>    }
> 
>    ParseAcpi (
> -    Trace,
> +    IS_TRACE_FLAG_SET (ParseFlags),
>      0,
>      "RSDP",
>      Ptr,
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitParser.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitParser.c
> index
> e4625ee8b13907893a9b6990ecb956baf91cc3b9..20d2fb79a8ea6251b0e31b53
> 70cc400be9e1478f 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitParser.c
> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    SLIT table parser
> 
> -  Copyright (c) 2016 - 2019, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -42,7 +42,7 @@ STATIC CONST ACPI_PARSER SlitParser[] = {
>      - Relative distance from System Locality at i*N+j is same as
>        j*N+i
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -50,7 +50,7 @@ STATIC CONST ACPI_PARSER SlitParser[] = {  VOID
> EFIAPI  ParseAcpiSlit (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -63,7 +63,7 @@ ParseAcpiSlit (
>    UINT8* LocalityPtr;
>    CHAR16 Buffer[80];  // Used for AsciiName param of ParseAcpi
> 
> -  if (!Trace) {
> +  if (!IS_TRACE_FLAG_SET (ParseFlags)) {
>      return;
>    }
> 
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.
> c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.
> c
> index
> 3b06b05dee8c056c6e009b9e485ccd35d4194e95..99cffafa946979b79a06cd28f1
> 4257beaa6cafec 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.
> c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    SPCR table parser
> 
> -  Copyright (c) 2016 - 2019, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -114,7 +114,7 @@ STATIC CONST ACPI_PARSER SpcrParser[] = {
> 
>    This function also performs validations of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -122,13 +122,13 @@ STATIC CONST ACPI_PARSER SpcrParser[] = {  VOID
> EFIAPI  ParseAcpiSpcr (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
>    )
>  {
> -  if (!Trace) {
> +  if (!IS_TRACE_FLAG_SET (ParseFlags)) {
>      return;
>    }
> 
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c
> index
> b9b67820b89f7fc5560a1022e976663db7d9df2d..907856368fbe0ad9f140d8f27
> e51bd9460f35b1a 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    SRAT table parser
> 
> -  Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -344,7 +344,7 @@ STATIC CONST ACPI_PARSER
> SratX2ApciAffinityParser[] = {
> 
>    This function also performs validation of the ACPI table fields.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -352,7 +352,7 @@ STATIC CONST ACPI_PARSER
> SratX2ApciAffinityParser[] = {  VOID  EFIAPI  ParseAcpiSrat (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -375,7 +375,7 @@ ParseAcpiSrat (
>    ApicSapicAffinityIndex = 0;
>    X2ApicAffinityIndex = 0;
> 
> -  if (!Trace) {
> +  if (!IS_TRACE_FLAG_SET (ParseFlags)) {
>      return;
>    }
> 
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Ssdt/SsdtParser.
> c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Ssdt/SsdtParser.
> c
> index
> f18664b8a6879b82dc9c55d9979ca21e01c4fc99..138a3159fb1a6121387f832621
> d23960c688ce30 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Ssdt/SsdtParser.
> c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Ssdt/SsdtPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    SSDT table parser
> 
> -  Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -20,7 +20,7 @@
>    For the SSDT table only the ACPI header fields are
>    parsed and traced.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -28,13 +28,13 @@
>  VOID
>  EFIAPI
>  ParseAcpiSsdt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
>    )
>  {
> -  if (!Trace) {
> +  if (!IS_TRACE_FLAG_SET (ParseFlags)) {
>      return;
>    }
> 
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Xsdt/XsdtParser.
> c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Xsdt/XsdtParser.
> c
> index
> e39061f8e2612f2cce4aebf51a511b63b703662b..bbd58d72ad9c676b4843d3b4f
> 1d7c554a5abbd3f 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Xsdt/XsdtParser.
> c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Xsdt/XsdtPars
> +++ er.c
> @@ -1,7 +1,7 @@
>  /** @file
>    XSDT table parser
> 
> -  Copyright (c) 2016 - 2019, ARM Limited. All rights reserved.
> +  Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Reference(s):
> @@ -40,7 +40,7 @@ GetAcpiXsdtHeaderInfo (
> 
>    This function also performs validation of the XSDT table.
> 
> -  @param [in] Trace              If TRUE, trace the ACPI fields.
> +  @param [in] ParseFlags         Flags describing what the parser needs to do.
>    @param [in] Ptr                Pointer to the start of the buffer.
>    @param [in] AcpiTableLength    Length of the ACPI table.
>    @param [in] AcpiTableRevision  Revision of the ACPI table.
> @@ -48,7 +48,7 @@ GetAcpiXsdtHeaderInfo (  VOID  EFIAPI  ParseAcpiXsdt (
> -  IN BOOLEAN Trace,
> +  IN UINT8   ParseFlags,
>    IN UINT8*  Ptr,
>    IN UINT32  AcpiTableLength,
>    IN UINT8   AcpiTableRevision
> @@ -61,7 +61,7 @@ ParseAcpiXsdt (
>    CHAR16        Buffer[32];
> 
>    Offset = ParseAcpi (
> -             Trace,
> +             IS_TRACE_FLAG_SET (ParseFlags),
>               0,
>               "XSDT",
>               Ptr,
> @@ -71,7 +71,7 @@ ParseAcpiXsdt (
> 
>    TableOffset = Offset;
> 
> -  if (Trace) {
> +  if (IS_TRACE_FLAG_SET (ParseFlags)) {
>      EntryIndex = 0;
>      TablePointer = (UINT64*)(Ptr + TableOffset);
>      while (Offset < AcpiTableLength) {
> --
> Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")


  reply	other threads:[~2021-11-09  5:46 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-16 14:46 [PATCH v2 0/5] Dot graph generator for PPTT Joey Gouly
2021-09-16 14:46 ` [PATCH v2 1/5] ShellPkg: Replace 'Trace' parameter with 'ParseFlags' Joey Gouly
2021-11-09  5:46   ` Gao, Zhichao [this message]
2021-09-16 14:46 ` [PATCH v2 2/5] ShellPkg: add a helper function for getting a new file name Joey Gouly
2021-09-16 14:46 ` [PATCH v2 3/5] ShellPkg: add a Graph option to the Parser Flags Joey Gouly
2021-09-16 14:46 ` [PATCH v2 4/5] ShellPkg: add dot file generator functions Joey Gouly
2021-09-16 14:46 ` [PATCH v2 5/5] ShellPkg: add PPTT dot file genration Joey Gouly

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DM4PR11MB5277D2E5D9DD237D0CA6DCCFF6929@DM4PR11MB5277.namprd11.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox