]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
ShellPkg: acpiview: Remove duplicate ACPI structure size definitions
[mirror_edk2.git] / ShellPkg / Library / UefiShellAcpiViewCommandLib / AcpiView.c
index 4199e82ab1e61d6791feef06958e7b903f1c2f6f..de0851dd5fbae51308def95bd4964f792fb9e680 100644 (file)
@@ -1,13 +1,7 @@
 /** @file\r
 \r
-  Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.\r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  Copyright (c) 2016 - 2019, ARM Limited. All rights reserved.\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 **/\r
 \r
 #include <Library/PrintLib.h>\r
@@ -31,7 +25,6 @@ STATIC BOOLEAN            mSelectedAcpiTableFound;
 STATIC EREPORT_OPTION     mReportType;\r
 STATIC UINT32             mTableCount;\r
 STATIC UINT32             mBinTableCount;\r
-STATIC BOOLEAN            mVerbose;\r
 STATIC BOOLEAN            mConsistencyCheck;\r
 STATIC BOOLEAN            mColourHighlighting;\r
 \r
@@ -39,13 +32,11 @@ STATIC BOOLEAN            mColourHighlighting;
   An array of acpiview command line parameters.\r
 **/\r
 STATIC CONST SHELL_PARAM_ITEM ParamList[] = {\r
-  {L"/?", TypeFlag},\r
-  {L"-c", TypeFlag},\r
+  {L"-q", TypeFlag},\r
   {L"-d", TypeFlag},\r
-  {L"-h", TypeValue},\r
+  {L"-h", TypeFlag},\r
   {L"-l", TypeFlag},\r
   {L"-s", TypeValue},\r
-  {L"-v", TypeFlag},\r
   {NULL, TypeMax}\r
 };\r
 \r
@@ -76,6 +67,33 @@ SetColourHighlighting (
   mColourHighlighting = Highlight;\r
 }\r
 \r
+/**\r
+  This function returns the consistency checking status.\r
+\r
+  @retval TRUE if consistency checking is enabled.\r
+**/\r
+BOOLEAN\r
+GetConsistencyChecking (\r
+  VOID\r
+  )\r
+{\r
+  return mConsistencyCheck;\r
+}\r
+\r
+/**\r
+  This function sets the consistency checking status.\r
+\r
+  @param  ConsistencyChecking   The consistency checking status.\r
+\r
+**/\r
+VOID\r
+SetConsistencyChecking (\r
+  BOOLEAN ConsistencyChecking\r
+  )\r
+{\r
+  mConsistencyCheck = ConsistencyChecking;\r
+}\r
+\r
 /**\r
   This function returns the report options.\r
 \r
@@ -193,6 +211,10 @@ ProcessTableReportOptions (
   BOOLEAN Log;\r
   BOOLEAN HighLight;\r
 \r
+  //\r
+  // set local variables to suppress incorrect compiler/analyzer warnings\r
+  //\r
+  OriginalAttribute = 0;\r
   SignaturePtr = (UINT8*)(UINTN)&Signature;\r
   Log = FALSE;\r
   HighLight = GetColourHighlighting ();\r
@@ -329,6 +351,12 @@ AcpiView (
   PARSE_ACPI_TABLE_PROC    RsdpParserProc;\r
   BOOLEAN                  Trace;\r
 \r
+  //\r
+  // set local variables to suppress incorrect compiler/analyzer warnings\r
+  //\r
+  EfiConfigurationTable = NULL;\r
+  OriginalAttribute = 0;\r
+\r
   // Search the table for an entry that matches the ACPI Table Guid\r
   FoundAcpiTable = FALSE;\r
   for (Index = 0; Index < SystemTable->NumberOfTableEntries; Index++) {\r
@@ -387,7 +415,8 @@ AcpiView (
          (ReportDumpBinFile == ReportOption)) &&\r
         (!mSelectedAcpiTableFound)) {\r
       Print (L"\nRequested ACPI Table not found.\n");\r
-    } else if (ReportDumpBinFile != ReportOption) {\r
+    } else if (GetConsistencyChecking () &&\r
+               (ReportDumpBinFile != ReportOption)) {\r
       OriginalAttribute = gST->ConOut->Mode->Attribute;\r
 \r
       Print (L"\nTable Statistics:\n");\r
@@ -440,8 +469,6 @@ ShellCommandRunAcpiView (
   SHELL_STATUS       ShellStatus;\r
   LIST_ENTRY*        Package;\r
   CHAR16*            ProblemParam;\r
-  CONST CHAR16*      Temp;\r
-  CHAR8              ColourOption[8];\r
   SHELL_FILE_HANDLE  TmpDumpFileHandle;\r
 \r
   // Set Defaults\r
@@ -451,7 +478,6 @@ ShellCommandRunAcpiView (
   mSelectedAcpiTable = 0;\r
   mSelectedAcpiTableName = NULL;\r
   mSelectedAcpiTableFound = FALSE;\r
-  mVerbose = TRUE;\r
   mConsistencyCheck = TRUE;\r
 \r
   ShellStatus = SHELL_SUCCESS;\r
@@ -522,18 +548,6 @@ ShellCommandRunAcpiView (
         L"acpiview"\r
         );\r
       ShellStatus = SHELL_INVALID_PARAMETER;\r
-    } else if (ShellCommandLineGetFlag (Package, L"-h") &&\r
-               ShellCommandLineGetValue (Package, L"-h") == NULL) {\r
-        ShellPrintHiiEx (\r
-          -1,\r
-          -1,\r
-          NULL,\r
-          STRING_TOKEN (STR_GEN_NO_VALUE),\r
-          gShellAcpiViewHiiHandle,\r
-          L"acpiview",\r
-          L"-h"\r
-          );\r
-        ShellStatus = SHELL_INVALID_PARAMETER;\r
     } else if (ShellCommandLineGetFlag (Package, L"-d") &&\r
                !ShellCommandLineGetFlag (Package, L"-s")) {\r
         ShellPrintHiiEx (\r
@@ -548,18 +562,11 @@ ShellCommandRunAcpiView (
           );\r
         ShellStatus = SHELL_INVALID_PARAMETER;\r
     } else {\r
-      // Check if the colour option is set\r
-      Temp = ShellCommandLineGetValue (Package, L"-h");\r
-      if (Temp != NULL) {\r
-        UnicodeStrToAsciiStrS (Temp, ColourOption, sizeof (ColourOption));\r
-        if ((AsciiStriCmp (ColourOption, "ON") == 0) ||\r
-            (AsciiStriCmp (ColourOption, "TRUE") == 0)) {\r
-          SetColourHighlighting (TRUE);\r
-        } else if ((AsciiStriCmp (ColourOption, "OFF") == 0) ||\r
-                   (AsciiStriCmp (ColourOption, "FALSE") == 0)) {\r
-          SetColourHighlighting (FALSE);\r
-        }\r
-      }\r
+      // Turn on colour highlighting if requested\r
+      SetColourHighlighting (ShellCommandLineGetFlag (Package, L"-h"));\r
+\r
+      // Surpress consistency checking if requested\r
+      SetConsistencyChecking (!ShellCommandLineGetFlag (Package, L"-q"));\r
 \r
       if (ShellCommandLineGetFlag (Package, L"-l")) {\r
         mReportType = ReportTableList;\r