[PATCH v2 1/5] ShellPkg: Replace 'Trace' parameter with 'ParseFlags'


Joey Gouly
 

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..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")