From: "Gao, Zhichao" <zhichao.gao@intel.com>
To: Joey Gouly <joey.gouly@arm.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "sami.mujawar@arm.com" <sami.mujawar@arm.com>,
"Ni, Ray" <ray.ni@intel.com>, "nd@arm.com" <nd@arm.com>
Subject: Re: [PATCH v2 1/5] ShellPkg: Replace 'Trace' parameter with 'ParseFlags'
Date: Tue, 9 Nov 2021 05:46:06 +0000 [thread overview]
Message-ID: <DM4PR11MB5277D2E5D9DD237D0CA6DCCFF6929@DM4PR11MB5277.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20210916144605.42071-2-joey.gouly@arm.com>
See below
> -----Original Message-----
> From: Joey Gouly <joey.gouly@arm.com>
> Sent: Thursday, September 16, 2021 10:46 PM
> To: devel@edk2.groups.io
> Cc: joey.gouly@arm.com; sami.mujawar@arm.com; Ni, Ray
> <ray.ni@intel.com>; Gao, Zhichao <zhichao.gao@intel.com>; nd@arm.com
> Subject: [PATCH v2 1/5] ShellPkg: Replace 'Trace' parameter with 'ParseFlags'
>
> From: Marc Moisson-Franckhauser <marc.moisson-franckhauser@arm.com>
>
> Bugzilla: 3378 (https://bugzilla.tianocore.org/show_bug.cgi?id=3378)
>
> This is preparation for adding a second flag to the parsers.
>
> Signed-off-by: Joey Gouly <joey.gouly@arm.com>
> ---
> ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h | 77
> +++++++++++---------
> ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.h | 6
> +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.c | 20
> ++---
> ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c | 28
> ++++---
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Bgrt/BgrtParser.c
> | 10 +--
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parser.c
> | 8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser.c
> | 8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Facs/FacsParser.c |
> 10 +--
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.c
> | 27 ++++---
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser.c
> | 8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c |
> 8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.
> c | 8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Mcfg/McfgParser.c
> | 8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.c |
> 47 +++++++-----
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParser.c
> | 10 +--
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitParser.c | 8
> +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.c |
> 8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c |
> 8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Ssdt/SsdtParser.c |
> 8 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Xsdt/XsdtParser.c
> | 10 +--
> 20 files changed, 179 insertions(+), 146 deletions(-)
>
> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h
> index
> 0b7726b9d5807ad2f5c5447408c4c5451718938b..b078c0b99335ba28f7589cac6b
> 0a4190d9a6c3b5 100644
> --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h
> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h
> @@ -1,7 +1,7 @@
> /** @file
> Header file for ACPI parser
>
> - Copyright (c) 2016 - 2020, Arm Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent **/
>
> @@ -16,6 +16,16 @@
> /// that allows us to process the log options.
> #define RSDP_TABLE_INFO SIGNATURE_32('R', 'S', 'D', 'P')
>
> +/**
> + Flags for the parser.
> +*/
> +#define PARSE_FLAGS_TRACE BIT0
> +
> +/**
> + Helper macros to test parser flags.
> +*/
> +#define IS_TRACE_FLAG_SET(Flags) (((Flags) & PARSE_FLAGS_TRACE) != 0)
> +
> /**
> This function increments the ACPI table error counter.
> **/
> @@ -489,7 +499,7 @@ ParseAcpiAest (
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -497,7 +507,7 @@ ParseAcpiAest (
> VOID
> EFIAPI
> ParseAcpiBgrt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -510,7 +520,7 @@ ParseAcpiBgrt (
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -518,7 +528,7 @@ ParseAcpiBgrt (
> VOID
> EFIAPI
> ParseAcpiDbg2 (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -531,7 +541,7 @@ ParseAcpiDbg2 (
> For the DSDT table only the ACPI header fields are parsed and
> traced.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -539,7 +549,7 @@ ParseAcpiDbg2 (
> VOID
> EFIAPI
> ParseAcpiDsdt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -552,7 +562,7 @@ ParseAcpiDsdt (
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -560,7 +570,7 @@ ParseAcpiDsdt (
> VOID
> EFIAPI
> ParseAcpiFacs (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -573,7 +583,7 @@ ParseAcpiFacs (
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -581,7 +591,7 @@ ParseAcpiFacs (
> VOID
> EFIAPI
> ParseAcpiFadt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -598,7 +608,7 @@ ParseAcpiFadt (
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -606,7 +616,7 @@ ParseAcpiFadt (
> VOID
> EFIAPI
> ParseAcpiGtdt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -653,7 +663,7 @@ ParseAcpiHmat (
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -661,7 +671,7 @@ ParseAcpiHmat (
> VOID
> EFIAPI
> ParseAcpiIort (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -682,7 +692,7 @@ ParseAcpiIort (
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -690,7 +700,7 @@ ParseAcpiIort (
> VOID
> EFIAPI
> ParseAcpiMadt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -703,7 +713,7 @@ ParseAcpiMadt (
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -711,7 +721,7 @@ ParseAcpiMadt (
> VOID
> EFIAPI
> ParseAcpiMcfg (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -746,7 +756,7 @@ ParseAcpiPcct (
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -754,7 +764,7 @@ ParseAcpiPcct (
> VOID
> EFIAPI
> ParseAcpiPptt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -769,7 +779,7 @@ ParseAcpiPptt (
> This function also performs a RAW dump of the ACPI table and
> validates the checksum.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -777,7 +787,7 @@ ParseAcpiPptt (
> VOID
> EFIAPI
> ParseAcpiRsdp (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -793,7 +803,8 @@ ParseAcpiRsdp (
> - Relative distance from System Locality at i*N+j is same as
> j*N+i
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to
> + do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -801,7 +812,7 @@ ParseAcpiRsdp (
> VOID
> EFIAPI
> ParseAcpiSlit (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -814,7 +825,7 @@ ParseAcpiSlit (
>
> This function also performs validations of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -822,7 +833,7 @@ ParseAcpiSlit (
> VOID
> EFIAPI
> ParseAcpiSpcr (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -841,7 +852,7 @@ ParseAcpiSpcr (
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -849,7 +860,7 @@ ParseAcpiSpcr (
> VOID
> EFIAPI
> ParseAcpiSrat (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -862,7 +873,7 @@ ParseAcpiSrat (
> For the SSDT table only the ACPI header fields are
> parsed and traced.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -870,7 +881,7 @@ ParseAcpiSrat (
> VOID
> EFIAPI
> ParseAcpiSsdt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -882,7 +893,7 @@ ParseAcpiSsdt (
>
> This function also performs validation of the XSDT table.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -890,7 +901,7 @@ ParseAcpiSsdt (
> VOID
> EFIAPI
> ParseAcpiXsdt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.h
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.h
> index
> 0ebf79fb653ae3a8190273aee452723c6213eb58..94ce0a4860e5296d99d398480
> 655a8013ab0f240 100644
> --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.h
> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.h
> @@ -1,7 +1,7 @@
> /** @file
> Header file for ACPI table parser
>
> - Copyright (c) 2016 - 2020, Arm Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent **/
>
> @@ -20,7 +20,7 @@
> /**
> A function that parses the ACPI table.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -28,7 +28,7 @@
> typedef
> VOID
> (EFIAPI * PARSE_ACPI_TABLE_PROC) (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.c
> index
> 4b618f131eac3957f4070a95e06c8cd157c3223c..ecb5d6339af37397c6ba1ba4c8f
> 0d42a95811bf6 100644
> --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.c
> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.c
> @@ -1,7 +1,7 @@
> /** @file
> ACPI table parser
>
> - Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Glossary:
> @@ -183,7 +183,7 @@ ProcessAcpiTable (
> )
> {
> EFI_STATUS Status;
> - BOOLEAN Trace;
> + UINT8 ParseFlags;
> CONST UINT32* AcpiTableSignature;
> CONST UINT32* AcpiTableLength;
> CONST UINT8* AcpiTableRevision;
> @@ -197,13 +197,13 @@ ProcessAcpiTable (
> &AcpiTableRevision
> );
>
> - Trace = ProcessTableReportOptions (
> - *AcpiTableSignature,
> - Ptr,
> - *AcpiTableLength
> - );
> + ParseFlags = ProcessTableReportOptions (
> + *AcpiTableSignature,
> + Ptr,
> + *AcpiTableLength
> + );
>
> - if (Trace) {
> + if (IS_TRACE_FLAG_SET (ParseFlags)) {
> DumpRaw (Ptr, *AcpiTableLength);
>
> // Do not process the ACPI table any further if the table length read @@ -
> 236,14 +236,14 @@ ProcessAcpiTable (
> Status = GetParser (*AcpiTableSignature, &ParserProc);
> if (EFI_ERROR (Status)) {
> // No registered parser found, do default handling.
> - if (Trace) {
> + if (IS_TRACE_FLAG_SET (ParseFlags)) {
> DumpAcpiHeader (Ptr);
> }
> return;
> }
>
> ParserProc (
> - Trace,
> + ParseFlags,
> Ptr,
> *AcpiTableLength,
> *AcpiTableRevision
> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
> index
> 9a5b013fb234e2a09a12a690607b5b871dffde72..a4242ba9d99b05d07c829520c
> 4011439445aadb0 100644
> --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
> @@ -1,6 +1,6 @@
> /** @file
>
> - Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Glossary:
> @@ -73,9 +73,9 @@ DumpAcpiTableToFile (
> @param [in] TablePtr Pointer to the ACPI table data.
> @param [in] Length The length fo the ACPI table.
>
> - @retval Returns TRUE if the ACPI table should be traced.
> + @retval Returns the ParseFlags for the ACPI table.
> **/
> -BOOLEAN
> +UINT8
> ProcessTableReportOptions (
> IN CONST UINT32 Signature,
> IN CONST UINT8* TablePtr,
> @@ -84,7 +84,7 @@ ProcessTableReportOptions ( {
> UINTN OriginalAttribute;
> UINT8 *SignaturePtr;
> - BOOLEAN Log;
> + UINT8 ParseFlags;
> BOOLEAN HighLight;
> SELECTED_ACPI_TABLE *SelectedTable;
>
> @@ -93,17 +93,17 @@ ProcessTableReportOptions (
> //
> OriginalAttribute = 0;
> SignaturePtr = (UINT8*)(UINTN)&Signature;
> - Log = FALSE;
> + ParseFlags = 0;
> HighLight = GetColourHighlighting ();
> GetSelectedAcpiTable (&SelectedTable);
>
> switch (GetReportOption ()) {
> case ReportAll:
> - Log = TRUE;
> + ParseFlags |= PARSE_FLAGS_TRACE;
> break;
> case ReportSelected:
> if (Signature == SelectedTable->Type) {
> - Log = TRUE;
> + ParseFlags |= PARSE_FLAGS_TRACE;
> SelectedTable->Found = TRUE;
> }
> break;
> @@ -143,7 +143,7 @@ ProcessTableReportOptions (
> break;
> } // switch
>
> - if (Log) {
> + if (IS_TRACE_FLAG_SET (ParseFlags)) {
> if (HighLight) {
> OriginalAttribute = gST->ConOut->Mode->Attribute;
> gST->ConOut->SetAttribute (
> @@ -164,7 +164,7 @@ ProcessTableReportOptions (
> }
> }
>
> - return Log;
> + return ParseFlags;
> }
>
>
> @@ -196,7 +196,7 @@ AcpiView (
> UINT32 RsdpLength;
> UINT8 RsdpRevision;
> PARSE_ACPI_TABLE_PROC RsdpParserProc;
> - BOOLEAN Trace;
> + UINT8 ParseFlags;
> SELECTED_ACPI_TABLE *SelectedTable;
>
> //
> @@ -249,7 +249,11 @@ AcpiView (
> // The RSDP length is 4 bytes starting at offset 20
> RsdpLength = *(UINT32*)(RsdpPtr + RSDP_LENGTH_OFFSET);
>
> - Trace = ProcessTableReportOptions (RSDP_TABLE_INFO, RsdpPtr,
> RsdpLength);
> + ParseFlags = ProcessTableReportOptions (
> + RSDP_TABLE_INFO,
> + RsdpPtr,
> + RsdpLength
> + );
>
> Status = GetParser (RSDP_TABLE_INFO, &RsdpParserProc);
> if (EFI_ERROR (Status)) {
> @@ -260,7 +264,7 @@ AcpiView (
> }
>
> RsdpParserProc (
> - Trace,
> + ParseFlags,
> RsdpPtr,
> RsdpLength,
> RsdpRevision
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Bgrt/BgrtParser.
> c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Bgrt/BgrtParser.
> c
> index
> 1a180271a4ebe47948b7f0b56d1cb6f81b5fdf13..6bd4c35bec85e038875ce3d95
> 48c9139b1de2755 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Bgrt/BgrtParser.
> c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Bgrt/BgrtPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> BGRT table parser
>
> - Copyright (c) 2017 - 2018, ARM Limited. All rights reserved.
> + Copyright (c) 2017 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -36,7 +36,7 @@ STATIC CONST ACPI_PARSER BgrtParser[] = {
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -44,18 +44,18 @@ STATIC CONST ACPI_PARSER BgrtParser[] = { VOID
> EFIAPI ParseAcpiBgrt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> )
> {
> - if (!Trace) {
> + if (!IS_TRACE_FLAG_SET (ParseFlags)) {
> return;
> }
>
> ParseAcpi (
> - Trace,
> + TRUE,
> 0,
> "BGRT",
> Ptr,
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parse
> r.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parse
> r.c
> index
> 9df111ecaa7d7a703a13a39c243ed78b9f12ee97..a22f8ab76b84432b2073bea6c
> a6d8245ea9df7fb 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parse
> r.c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Pars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> DBG2 table parser
>
> - Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -212,7 +212,7 @@ DumpDbgDeviceInfo (
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -220,7 +220,7 @@ DumpDbgDeviceInfo (
> VOID
> EFIAPI
> ParseAcpiDbg2 (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -229,7 +229,7 @@ ParseAcpiDbg2 (
> UINT32 Offset;
> UINT32 Index;
>
> - if (!Trace) {
> + if (!IS_TRACE_FLAG_SET (ParseFlags)) {
> return;
> }
>
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser
> .c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser
> .c
> index
> 6d43974f54d23fd9990fa7af721c96518bb96a36..609c17ef02d460be66f0c39020
> 3cae55ece653e3 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser
> .c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> DSDT table parser
>
> - Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -20,7 +20,7 @@
> For the DSDT table only the ACPI header fields are parsed and
> traced.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -28,13 +28,13 @@
> VOID
> EFIAPI
> ParseAcpiDsdt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> )
> {
> - if (!Trace) {
> + if (!IS_TRACE_FLAG_SET (ParseFlags)) {
> return;
> }
>
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Facs/FacsParser.
> c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Facs/FacsParser.
> c
> index
> d6bea86bdbaa79aa35b86840c809394b3c7a3bf6..d7545b6161eadd24e986a782
> 8910662f2f52b2ec 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Facs/FacsParser.
> c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Facs/FacsPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> FACS table parser
>
> - Copyright (c) 2019, ARM Limited. All rights reserved.
> + Copyright (c) 2019 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -42,7 +42,7 @@ STATIC CONST ACPI_PARSER FacsParser[] = {
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -50,18 +50,18 @@ STATIC CONST ACPI_PARSER FacsParser[] = { VOID
> EFIAPI ParseAcpiFacs (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> )
> {
> - if (!Trace) {
> + if (!IS_TRACE_FLAG_SET (ParseFlags)) {
> return;
> }
>
> ParseAcpi (
> - Trace,
> + TRUE,
> 0,
> "FACS",
> Ptr,
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.
> c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.
> c
> index
> d86718bab67d45fd612bb7ac725b5eb3eeb7dfdc..8d0eb42ec3b361c1727184c5
> 42a757e39ef3da5c 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.
> c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> FADT table parser
>
> - Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -198,7 +198,7 @@ STATIC CONST ACPI_PARSER FadtParser[] = {
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -206,7 +206,7 @@ STATIC CONST ACPI_PARSER FadtParser[] = { VOID
> EFIAPI ParseAcpiFadt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -219,6 +219,9 @@ ParseAcpiFadt (
> UINT32 FacsLength;
> UINT8 FacsRevision;
> PARSE_ACPI_TABLE_PROC FacsParserProc;
> + BOOLEAN Trace;
> +
> + Trace = IS_TRACE_FLAG_SET (ParseFlags);
>
> ParseAcpi (
> Trace,
> @@ -253,7 +256,7 @@ ParseAcpiFadt (
> // if HW_REDUCED_ACPI flag is not set, both FIRMWARE_CTRL and
> // X_FIRMWARE_CTRL cannot be zero, and the FACS Table must be
> // present.
> - if ((Trace) &&
> + if (Trace &&
> (Flags != NULL) &&
> ((*Flags & EFI_ACPI_6_3_HW_REDUCED_ACPI) !=
> EFI_ACPI_6_3_HW_REDUCED_ACPI)) {
> IncrementErrorCount ();
> @@ -274,11 +277,15 @@ ParseAcpiFadt (
> // The FACS version is 1 byte starting at offset 32.
> FacsRevision = *(UINT8*)(FirmwareCtrlPtr + FACS_VERSION_OFFSET);
>
> - Trace = ProcessTableReportOptions (
> - FacsSignature,
> - FirmwareCtrlPtr,
> - FacsLength
> - );
> + if (ProcessTableReportOptions (
> + FacsSignature,
> + FirmwareCtrlPtr,
> + FacsLength
> + )) {
> + ParseFlags |= PARSE_FLAGS_TRACE;
> + } else {
> + ParseFlags &= ~PARSE_FLAGS_TRACE;
> + }
Why use such format instead of assign ParseFlags with the return value of ProcessTableReportOptions?
Thanks,
Zhichao
>
> Status = GetParser (FacsSignature, &FacsParserProc);
> if (EFI_ERROR (Status)) {
> @@ -289,7 +296,7 @@ ParseAcpiFadt (
> }
>
> FacsParserProc (
> - Trace,
> + ParseFlags,
> FirmwareCtrlPtr,
> FacsLength,
> FacsRevision
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser
> .c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser
> .c
> index
> d02fc4929d6fa5e04672276810b19d3f4c62efd2..da93938771bfcf0da146fd46a0
> 25addeb05e71cc 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser
> .c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> GTDT table parser
>
> - Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -254,7 +254,7 @@ DumpWatchdogTimer (
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -262,7 +262,7 @@ DumpWatchdogTimer (
> VOID
> EFIAPI
> ParseAcpiGtdt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -272,7 +272,7 @@ ParseAcpiGtdt (
> UINT32 Offset;
> UINT8* TimerPtr;
>
> - if (!Trace) {
> + if (!IS_TRACE_FLAG_SET (ParseFlags)) {
> return;
> }
>
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c
> index
> f7447947b2308d35d4d2890373778f0fd2f97f9e..2f659349499a02175820ee4faf3
> a84034c8ced76 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c
> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> IORT table parser
>
> - Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -612,7 +612,7 @@ DumpIortNodePmcg (
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -620,7 +620,7 @@ DumpIortNodePmcg (
> VOID
> EFIAPI
> ParseAcpiIort (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -630,7 +630,7 @@ ParseAcpiIort (
> UINT32 Index;
> UINT8* NodePtr;
>
> - if (!Trace) {
> + if (!IS_TRACE_FLAG_SET (ParseFlags)) {
> return;
> }
>
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars
> er.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars
> er.c
> index
> 15aa2392b60cee9e3843c7c560b0ab84e0be4174..a29bf97a3985a74ff888f225e
> b0e5cfbcbea72b0 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars
> er.c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> MADT table parser
>
> - Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -216,7 +216,7 @@ STATIC CONST ACPI_PARSER
> MadtInterruptControllerHeaderParser[] = {
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -224,7 +224,7 @@ STATIC CONST ACPI_PARSER
> MadtInterruptControllerHeaderParser[] = { VOID EFIAPI ParseAcpiMadt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -236,7 +236,7 @@ ParseAcpiMadt (
>
> GICDCount = 0;
>
> - if (!Trace) {
> + if (!IS_TRACE_FLAG_SET (ParseFlags)) {
> return;
> }
>
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Mcfg/McfgParse
> r.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Mcfg/McfgParse
> r.c
> index
> 9da4d60e849721ed3b635bfff8a3bd76728c0ade..febf8a2bd92d8e38bdc59a3f9
> 7a8c4485cdba5a5 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Mcfg/McfgParse
> r.c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Mcfg/McfgPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> MCFG table parser
>
> - Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -42,7 +42,7 @@ STATIC CONST ACPI_PARSER
> PciCfgSpaceBaseAddrParser[] = {
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -50,7 +50,7 @@ STATIC CONST ACPI_PARSER
> PciCfgSpaceBaseAddrParser[] = { VOID EFIAPI ParseAcpiMcfg (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -60,7 +60,7 @@ ParseAcpiMcfg (
> UINT32 PciCfgOffset;
> UINT8* PciCfgSpacePtr;
>
> - if (!Trace) {
> + if (!IS_TRACE_FLAG_SET (ParseFlags)) {
> return;
> }
>
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.
> c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.
> c
> index
> acd2b81bb3258c7322aa10d2c0e0d842d89e358b..538b6a69350d75ccbf36b86ff
> f115255e77437c7 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.
> c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> PPTT table parser
>
> - Copyright (c) 2019 - 2020, ARM Limited. All rights reserved.
> + Copyright (c) 2019 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -241,13 +241,15 @@ STATIC CONST ACPI_PARSER IdStructureParser[] = {
> /**
> This function parses the Processor Hierarchy Node Structure (Type 0).
>
> - @param [in] Ptr Pointer to the start of the Processor Hierarchy Node
> - Structure data.
> - @param [in] Length Length of the Processor Hierarchy Node Structure.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> + @param [in] Ptr Pointer to the start of the Processor Hierarchy Node
> + Structure data.
> + @param [in] Length Length of the Processor Hierarchy Node Structure.
> **/
> STATIC
> VOID
> DumpProcessorHierarchyNodeStructure (
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT8 Length
> )
> @@ -257,7 +259,7 @@ DumpProcessorHierarchyNodeStructure (
> CHAR16 Buffer[OUTPUT_FIELD_COLUMN_WIDTH];
>
> Offset = ParseAcpi (
> - TRUE,
> + IS_TRACE_FLAG_SET (ParseFlags),
> 2,
> "Processor Hierarchy Node Structure",
> Ptr,
> @@ -315,18 +317,20 @@ DumpProcessorHierarchyNodeStructure (
> /**
> This function parses the Cache Type Structure (Type 1).
>
> - @param [in] Ptr Pointer to the start of the Cache Type Structure data.
> - @param [in] Length Length of the Cache Type Structure.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> + @param [in] Ptr Pointer to the start of the Cache Type Structure data.
> + @param [in] Length Length of the Cache Type Structure.
> **/
> STATIC
> VOID
> DumpCacheTypeStructure (
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT8 Length
> )
> {
> ParseAcpi (
> - TRUE,
> + IS_TRACE_FLAG_SET (ParseFlags),
> 2,
> "Cache Type Structure",
> Ptr,
> @@ -338,18 +342,20 @@ DumpCacheTypeStructure (
> /**
> This function parses the ID Structure (Type 2).
>
> - @param [in] Ptr Pointer to the start of the ID Structure data.
> - @param [in] Length Length of the ID Structure.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> + @param [in] Ptr Pointer to the start of the ID Structure data.
> + @param [in] Length Length of the ID Structure.
> **/
> STATIC
> VOID
> DumpIDStructure (
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> - IN UINT8 Length
> + IN UINT8 Length
> )
> {
> ParseAcpi (
> - TRUE,
> + IS_TRACE_FLAG_SET (ParseFlags),
> 2,
> "ID Structure",
> Ptr,
> @@ -370,7 +376,7 @@ DumpIDStructure (
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -378,7 +384,7 @@ DumpIDStructure (
> VOID
> EFIAPI
> ParseAcpiPptt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -387,12 +393,12 @@ ParseAcpiPptt (
> UINT32 Offset;
> UINT8* ProcessorTopologyStructurePtr;
>
> - if (!Trace) {
> + if (!IS_TRACE_FLAG_SET (ParseFlags)) {
> return;
> }
>
> Offset = ParseAcpi (
> - TRUE,
> + IS_TRACE_FLAG_SET (ParseFlags),
> 0,
> "PPTT",
> Ptr,
> @@ -440,24 +446,29 @@ ParseAcpiPptt (
> return;
> }
>
> - PrintFieldName (2, L"* Structure Offset *");
> - Print (L"0x%x\n", Offset);
> + if (IS_TRACE_FLAG_SET (ParseFlags)) {
> + PrintFieldName (2, L"* Structure Offset *");
> + Print (L"0x%x\n", Offset);
> + }
>
> switch (*ProcessorTopologyStructureType) {
> case EFI_ACPI_6_2_PPTT_TYPE_PROCESSOR:
> DumpProcessorHierarchyNodeStructure (
> + ParseFlags,
> ProcessorTopologyStructurePtr,
> *ProcessorTopologyStructureLength
> );
> break;
> case EFI_ACPI_6_2_PPTT_TYPE_CACHE:
> DumpCacheTypeStructure (
> + ParseFlags,
> ProcessorTopologyStructurePtr,
> *ProcessorTopologyStructureLength
> );
> break;
> case EFI_ACPI_6_2_PPTT_TYPE_ID:
> DumpIDStructure (
> + ParseFlags,
> ProcessorTopologyStructurePtr,
> *ProcessorTopologyStructureLength
> );
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParse
> r.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParse
> r.c
> index
> f4a8732a7db7c437031f2a3d2f266b80eff17b4b..c98bc62719c3aef3381152ff243
> 6cb1a29f98362 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParse
> r.c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> RSDP table parser
>
> - Copyright (c) 2016 - 2019, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -110,7 +110,7 @@ STATIC CONST ACPI_PARSER RsdpParser[] = {
> This function also performs a RAW dump of the ACPI table and
> validates the checksum.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -118,19 +118,19 @@ STATIC CONST ACPI_PARSER RsdpParser[] = { VOID
> EFIAPI ParseAcpiRsdp (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> )
> {
> - if (Trace) {
> + if (IS_TRACE_FLAG_SET (ParseFlags)) {
> DumpRaw (Ptr, AcpiTableLength);
> VerifyChecksum (TRUE, Ptr, AcpiTableLength);
> }
>
> ParseAcpi (
> - Trace,
> + IS_TRACE_FLAG_SET (ParseFlags),
> 0,
> "RSDP",
> Ptr,
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitParser.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitParser.c
> index
> e4625ee8b13907893a9b6990ecb956baf91cc3b9..20d2fb79a8ea6251b0e31b53
> 70cc400be9e1478f 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitParser.c
> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> SLIT table parser
>
> - Copyright (c) 2016 - 2019, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -42,7 +42,7 @@ STATIC CONST ACPI_PARSER SlitParser[] = {
> - Relative distance from System Locality at i*N+j is same as
> j*N+i
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -50,7 +50,7 @@ STATIC CONST ACPI_PARSER SlitParser[] = { VOID
> EFIAPI ParseAcpiSlit (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -63,7 +63,7 @@ ParseAcpiSlit (
> UINT8* LocalityPtr;
> CHAR16 Buffer[80]; // Used for AsciiName param of ParseAcpi
>
> - if (!Trace) {
> + if (!IS_TRACE_FLAG_SET (ParseFlags)) {
> return;
> }
>
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.
> c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.
> c
> index
> 3b06b05dee8c056c6e009b9e485ccd35d4194e95..99cffafa946979b79a06cd28f1
> 4257beaa6cafec 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.
> c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> SPCR table parser
>
> - Copyright (c) 2016 - 2019, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -114,7 +114,7 @@ STATIC CONST ACPI_PARSER SpcrParser[] = {
>
> This function also performs validations of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -122,13 +122,13 @@ STATIC CONST ACPI_PARSER SpcrParser[] = { VOID
> EFIAPI ParseAcpiSpcr (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> )
> {
> - if (!Trace) {
> + if (!IS_TRACE_FLAG_SET (ParseFlags)) {
> return;
> }
>
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c
> index
> b9b67820b89f7fc5560a1022e976663db7d9df2d..907856368fbe0ad9f140d8f27
> e51bd9460f35b1a 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> SRAT table parser
>
> - Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -344,7 +344,7 @@ STATIC CONST ACPI_PARSER
> SratX2ApciAffinityParser[] = {
>
> This function also performs validation of the ACPI table fields.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -352,7 +352,7 @@ STATIC CONST ACPI_PARSER
> SratX2ApciAffinityParser[] = { VOID EFIAPI ParseAcpiSrat (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -375,7 +375,7 @@ ParseAcpiSrat (
> ApicSapicAffinityIndex = 0;
> X2ApicAffinityIndex = 0;
>
> - if (!Trace) {
> + if (!IS_TRACE_FLAG_SET (ParseFlags)) {
> return;
> }
>
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Ssdt/SsdtParser.
> c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Ssdt/SsdtParser.
> c
> index
> f18664b8a6879b82dc9c55d9979ca21e01c4fc99..138a3159fb1a6121387f832621
> d23960c688ce30 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Ssdt/SsdtParser.
> c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Ssdt/SsdtPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> SSDT table parser
>
> - Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -20,7 +20,7 @@
> For the SSDT table only the ACPI header fields are
> parsed and traced.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -28,13 +28,13 @@
> VOID
> EFIAPI
> ParseAcpiSsdt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> )
> {
> - if (!Trace) {
> + if (!IS_TRACE_FLAG_SET (ParseFlags)) {
> return;
> }
>
> diff --git
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Xsdt/XsdtParser.
> c
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Xsdt/XsdtParser.
> c
> index
> e39061f8e2612f2cce4aebf51a511b63b703662b..bbd58d72ad9c676b4843d3b4f
> 1d7c554a5abbd3f 100644
> ---
> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Xsdt/XsdtParser.
> c
> +++
> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Xsdt/XsdtPars
> +++ er.c
> @@ -1,7 +1,7 @@
> /** @file
> XSDT table parser
>
> - Copyright (c) 2016 - 2019, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -40,7 +40,7 @@ GetAcpiXsdtHeaderInfo (
>
> This function also performs validation of the XSDT table.
>
> - @param [in] Trace If TRUE, trace the ACPI fields.
> + @param [in] ParseFlags Flags describing what the parser needs to do.
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] AcpiTableLength Length of the ACPI table.
> @param [in] AcpiTableRevision Revision of the ACPI table.
> @@ -48,7 +48,7 @@ GetAcpiXsdtHeaderInfo ( VOID EFIAPI ParseAcpiXsdt (
> - IN BOOLEAN Trace,
> + IN UINT8 ParseFlags,
> IN UINT8* Ptr,
> IN UINT32 AcpiTableLength,
> IN UINT8 AcpiTableRevision
> @@ -61,7 +61,7 @@ ParseAcpiXsdt (
> CHAR16 Buffer[32];
>
> Offset = ParseAcpi (
> - Trace,
> + IS_TRACE_FLAG_SET (ParseFlags),
> 0,
> "XSDT",
> Ptr,
> @@ -71,7 +71,7 @@ ParseAcpiXsdt (
>
> TableOffset = Offset;
>
> - if (Trace) {
> + if (IS_TRACE_FLAG_SET (ParseFlags)) {
> EntryIndex = 0;
> TablePointer = (UINT64*)(Ptr + TableOffset);
> while (Offset < AcpiTableLength) {
> --
> Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")
next prev parent reply other threads:[~2021-11-09 5:46 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-16 14:46 [PATCH v2 0/5] Dot graph generator for PPTT Joey Gouly
2021-09-16 14:46 ` [PATCH v2 1/5] ShellPkg: Replace 'Trace' parameter with 'ParseFlags' Joey Gouly
2021-11-09 5:46 ` Gao, Zhichao [this message]
2021-09-16 14:46 ` [PATCH v2 2/5] ShellPkg: add a helper function for getting a new file name Joey Gouly
2021-09-16 14:46 ` [PATCH v2 3/5] ShellPkg: add a Graph option to the Parser Flags Joey Gouly
2021-09-16 14:46 ` [PATCH v2 4/5] ShellPkg: add dot file generator functions Joey Gouly
2021-09-16 14:46 ` [PATCH v2 5/5] ShellPkg: add PPTT dot file genration Joey Gouly
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DM4PR11MB5277D2E5D9DD237D0CA6DCCFF6929@DM4PR11MB5277.namprd11.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox