[edk2-devel] [PATCH v1 1/5] ShellPkg: Replace 'Trace' parameter with 'ParseFlags'

Joey Gouly joey.gouly at arm.com
Fri May 7 10:38:00 UTC 2021


From: Marc Moisson-Franckhauser <marc.moisson-franckhauser at 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: Marc Moisson-Franckhauser <marc.moisson-franckhauser at arm.com>
Signed-off-by: Joey Gouly <joey.gouly at 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..b078c0b99335ba28f7589cac6b0a4190d9a6c3b5 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..94ce0a4860e5296d99d398480655a8013ab0f240 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..ecb5d6339af37397c6ba1ba4c8f0d42a95811bf6 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..a4242ba9d99b05d07c829520c4011439445aadb0 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..6bd4c35bec85e038875ce3d9548c9139b1de2755 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Bgrt/BgrtParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Bgrt/BgrtParser.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/Dbg2Parser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parser.c
index 9df111ecaa7d7a703a13a39c243ed78b9f12ee97..a22f8ab76b84432b2073bea6ca6d8245ea9df7fb 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parser.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..609c17ef02d460be66f0c390203cae55ece653e3 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser.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..d7545b6161eadd24e986a7828910662f2f52b2ec 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Facs/FacsParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Facs/FacsParser.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..8d0eb42ec3b361c1727184c542a757e39ef3da5c 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.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;
+    }
 
     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..da93938771bfcf0da146fd46a025addeb05e71cc 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser.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..2f659349499a02175820ee4faf3a84034c8ced76 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.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/MadtParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c
index 15aa2392b60cee9e3843c7c560b0ab84e0be4174..a29bf97a3985a74ff888f225eb0e5cfbcbea72b0 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.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/McfgParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Mcfg/McfgParser.c
index 9da4d60e849721ed3b635bfff8a3bd76728c0ade..febf8a2bd92d8e38bdc59a3f97a8c4485cdba5a5 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Mcfg/McfgParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Mcfg/McfgParser.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..538b6a69350d75ccbf36b86fff115255e77437c7 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.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/RsdpParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParser.c
index f4a8732a7db7c437031f2a3d2f266b80eff17b4b..c98bc62719c3aef3381152ff2436cb1a29f98362 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParser.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..20d2fb79a8ea6251b0e31b5370cc400be9e1478f 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitParser.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..99cffafa946979b79a06cd28f14257beaa6cafec 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.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..907856368fbe0ad9f140d8f27e51bd9460f35b1a 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.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..138a3159fb1a6121387f832621d23960c688ce30 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Ssdt/SsdtParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Ssdt/SsdtParser.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..bbd58d72ad9c676b4843d3b4f1d7c554a5abbd3f 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Xsdt/XsdtParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Xsdt/XsdtParser.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")



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#74811): https://edk2.groups.io/g/devel/message/74811
Mute This Topic: https://groups.io/mt/82651826/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list