]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
ShellPkg: Apply uncrustify changes
[mirror_edk2.git] / ShellPkg / Library / UefiShellAcpiViewCommandLib / AcpiView.c
index f5602e94291c26f91513d753601d09ddff73a4dd..9cdfcb3fae2aa85d3ed3835ae90f5230f685e0fa 100644 (file)
@@ -1,13 +1,13 @@
 /** @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 - 2020, ARM Limited. All rights reserved.\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+  @par Glossary:\r
+    - Sbbr or SBBR   - Server Base Boot Requirements\r
+\r
+  @par Reference(s):\r
+    - Arm Server Base Boot Requirements 1.2, September 2019\r
 **/\r
 \r
 #include <Library/PrintLib.h>\r
 #include <Library/BaseMemoryLib.h>\r
 #include <Library/DebugLib.h>\r
 #include <Library/MemoryAllocationLib.h>\r
+#include <Library/AcpiViewCommandLib.h>\r
 #include "AcpiParser.h"\r
 #include "AcpiTableParser.h"\r
 #include "AcpiView.h"\r
-#include "UefiShellAcpiViewCommandLib.h"\r
-\r
-EFI_HII_HANDLE gShellAcpiViewHiiHandle = NULL;\r
-\r
-// Report variables\r
-STATIC UINT32             mSelectedAcpiTable;\r
-STATIC CONST CHAR16*      mSelectedAcpiTableName;\r
-STATIC BOOLEAN            mSelectedAcpiTableFound;\r
-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
-/**\r
-  An array of acpiview command line parameters.\r
-**/\r
-STATIC CONST SHELL_PARAM_ITEM ParamList[] = {\r
-  {L"/?", TypeFlag},\r
-  {L"-c", TypeFlag},\r
-  {L"-d", TypeFlag},\r
-  {L"-h", TypeValue},\r
-  {L"-l", TypeFlag},\r
-  {L"-s", TypeValue},\r
-  {L"-v", TypeFlag},\r
-  {NULL, TypeMax}\r
-};\r
-\r
-/**\r
-  This function returns the colour highlighting status.\r
-\r
-  @retval TRUE if colour highlighting is enabled.\r
-**/\r
-BOOLEAN\r
-GetColourHighlighting (\r
-  VOID\r
-  )\r
-{\r
-  return mColourHighlighting;\r
-}\r
-\r
-/**\r
-  This function sets the colour highlighting status.\r
-\r
-  @param  Highlight       The Highlight status.\r
-\r
-**/\r
-VOID\r
-SetColourHighlighting (\r
-  BOOLEAN Highlight\r
-  )\r
-{\r
-  mColourHighlighting = Highlight;\r
-}\r
-\r
-/**\r
-  This function returns the report options.\r
-\r
-  @retval Returns the report option.\r
-**/\r
-STATIC\r
-EREPORT_OPTION\r
-GetReportOption (\r
-  VOID\r
-  )\r
-{\r
-  return mReportType;\r
-}\r
+#include "AcpiViewConfig.h"\r
 \r
-/**\r
-  This function returns the selected ACPI table.\r
+#if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)\r
+  #include "Arm/SbbrValidator.h"\r
+#endif\r
 \r
-  @retval Returns signature of the selected ACPI table.\r
-**/\r
-STATIC\r
-UINT32\r
-GetSelectedAcpiTable (\r
-  VOID\r
-  )\r
-{\r
-  return mSelectedAcpiTable;\r
-}\r
+STATIC UINT32  mTableCount;\r
+STATIC UINT32  mBinTableCount;\r
 \r
 /**\r
   This function dumps the ACPI table to a file.\r
@@ -116,56 +42,27 @@ GetSelectedAcpiTable (
 STATIC\r
 BOOLEAN\r
 DumpAcpiTableToFile (\r
-  IN CONST UINT8*  Ptr,\r
-  IN CONST UINTN   Length\r
+  IN CONST UINT8  *Ptr,\r
+  IN CONST UINTN  Length\r
   )\r
 {\r
-  EFI_STATUS         Status;\r
-  CHAR16             FileNameBuffer[MAX_FILE_NAME_LEN];\r
-  SHELL_FILE_HANDLE  DumpFileHandle = NULL;\r
-  UINTN              TransferBytes = Length;\r
+  CHAR16               FileNameBuffer[MAX_FILE_NAME_LEN];\r
+  UINTN                TransferBytes;\r
+  SELECTED_ACPI_TABLE  *SelectedTable;\r
+\r
+  GetSelectedAcpiTable (&SelectedTable);\r
 \r
   UnicodeSPrint (\r
     FileNameBuffer,\r
     sizeof (FileNameBuffer),\r
     L".\\%s%04d.bin",\r
-    mSelectedAcpiTableName,\r
+    SelectedTable->Name,\r
     mBinTableCount++\r
     );\r
 \r
-  Status = ShellOpenFileByName (\r
-             FileNameBuffer,\r
-             &DumpFileHandle,\r
-             EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE | EFI_FILE_MODE_CREATE,\r
-             0\r
-             );\r
-  if (EFI_ERROR (Status)) {\r
-    ShellPrintHiiEx (\r
-      -1,\r
-      -1,\r
-      NULL,\r
-      STRING_TOKEN (STR_GEN_READONLY_MEDIA),\r
-      gShellAcpiViewHiiHandle,\r
-      L"acpiview"\r
-      );\r
-    return FALSE;\r
-  }\r
-\r
   Print (L"Dumping ACPI table to : %s ... ", FileNameBuffer);\r
 \r
-  Status = ShellWriteFile (\r
-             DumpFileHandle,\r
-             &TransferBytes,\r
-             (VOID*)Ptr\r
-             );\r
-  if (EFI_ERROR (Status)) {\r
-    Print (L"ERROR: Failed to dump table to binary file.\n");\r
-    TransferBytes = 0;\r
-  } else {\r
-    Print (L"DONE.\n");\r
-  }\r
-\r
-  ShellCloseFile (&DumpFileHandle);\r
+  TransferBytes = ShellDumpBufferToFile (FileNameBuffer, Ptr, Length);\r
   return (Length == TransferBytes);\r
 }\r
 \r
@@ -181,39 +78,55 @@ DumpAcpiTableToFile (
 BOOLEAN\r
 ProcessTableReportOptions (\r
   IN CONST UINT32  Signature,\r
-  IN CONST UINT8*  TablePtr,\r
+  IN CONST UINT8   *TablePtr,\r
   IN CONST UINT32  Length\r
   )\r
 {\r
-  UINTN   OriginalAttribute;\r
-  UINT8*  SignaturePtr = (UINT8*)(UINTN)&Signature;\r
-  BOOLEAN Log = FALSE;\r
-  BOOLEAN HighLight = GetColourHighlighting ();\r
+  UINTN                OriginalAttribute;\r
+  UINT8                *SignaturePtr;\r
+  BOOLEAN              Log;\r
+  BOOLEAN              HighLight;\r
+  SELECTED_ACPI_TABLE  *SelectedTable;\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
+  GetSelectedAcpiTable (&SelectedTable);\r
+\r
   switch (GetReportOption ()) {\r
-    case EREPORT_ALL:\r
+    case ReportAll:\r
       Log = TRUE;\r
       break;\r
-    case EREPORT_SELECTED:\r
-      if (Signature == GetSelectedAcpiTable ()) {\r
-        Log = TRUE;\r
-        mSelectedAcpiTableFound = TRUE;\r
+    case ReportSelected:\r
+      if (Signature == SelectedTable->Type) {\r
+        Log                  = TRUE;\r
+        SelectedTable->Found = TRUE;\r
       }\r
+\r
       break;\r
-    case EREPORT_TABLE_LIST:\r
+    case ReportTableList:\r
       if (mTableCount == 0) {\r
         if (HighLight) {\r
           OriginalAttribute = gST->ConOut->Mode->Attribute;\r
           gST->ConOut->SetAttribute (\r
                          gST->ConOut,\r
-                         EFI_TEXT_ATTR(EFI_CYAN,\r
-                           ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4))\r
+                         EFI_TEXT_ATTR (\r
+                           EFI_CYAN,\r
+                           ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4)\r
+                           )\r
                          );\r
         }\r
+\r
         Print (L"\nInstalled Table(s):\n");\r
         if (HighLight) {\r
           gST->ConOut->SetAttribute (gST->ConOut, OriginalAttribute);\r
         }\r
       }\r
+\r
       Print (\r
         L"\t%4d. %c%c%c%c\n",\r
         ++mTableCount,\r
@@ -223,13 +136,14 @@ ProcessTableReportOptions (
         SignaturePtr[3]\r
         );\r
       break;\r
-    case EREPORT_DUMP_BIN_FILE:\r
-      if (Signature == GetSelectedAcpiTable ()) {\r
-        mSelectedAcpiTableFound = TRUE;\r
+    case ReportDumpBinFile:\r
+      if (Signature == SelectedTable->Type) {\r
+        SelectedTable->Found = TRUE;\r
         DumpAcpiTableToFile (TablePtr, Length);\r
       }\r
+\r
       break;\r
-    case EREPORT_MAX:\r
+    case ReportMax:\r
       // We should never be here.\r
       // This case is only present to prevent compiler warning.\r
       break;\r
@@ -240,10 +154,13 @@ ProcessTableReportOptions (
       OriginalAttribute = gST->ConOut->Mode->Attribute;\r
       gST->ConOut->SetAttribute (\r
                      gST->ConOut,\r
-                     EFI_TEXT_ATTR(EFI_LIGHTBLUE,\r
-                       ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4))\r
+                     EFI_TEXT_ATTR (\r
+                       EFI_LIGHTBLUE,\r
+                       ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4)\r
+                       )\r
                      );\r
     }\r
+\r
     Print (\r
       L"\n\n --------------- %c%c%c%c Table --------------- \n\n",\r
       SignaturePtr[0],\r
@@ -259,35 +176,6 @@ ProcessTableReportOptions (
   return Log;\r
 }\r
 \r
-/**\r
-  This function converts a string to ACPI table signature.\r
-\r
-  @param [in] Str   Pointer to the string to be converted to the\r
-                    ACPI table signature.\r
-\r
-  @retval The ACPI table signature.\r
-**/\r
-STATIC\r
-UINT32\r
-ConvertStrToAcpiSignature (\r
-  IN  CONST CHAR16* Str\r
-  )\r
-{\r
-  UINT8 Index = 0;\r
-  CHAR8 Ptr[4];\r
-\r
-  // Convert to Upper case and convert to ASCII\r
-  while ((Index < 4) && (Str[Index] != 0)) {\r
-    if (Str[Index] >= L'a' && Str[Index] <= L'z') {\r
-      Ptr[Index] = (CHAR8)(Str[Index] - (L'a' - L'A'));\r
-    } else {\r
-      Ptr[Index] = (CHAR8)Str[Index];\r
-    }\r
-    Index++;\r
-  }\r
-  return *(UINT32*)Ptr;\r
-}\r
-\r
 /**\r
   This function iterates the configuration table entries in the\r
   system table, retrieves the RSDP pointer and starts parsing the ACPI tables.\r
@@ -298,39 +186,59 @@ ConvertStrToAcpiSignature (
           Returns EFI_UNSUPPORTED if the RSDP version is less than 2.\r
           Returns EFI_SUCCESS     if successful.\r
 **/\r
-STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 AcpiView (\r
-  IN EFI_SYSTEM_TABLESystemTable\r
+  IN EFI_SYSTEM_TABLE  *SystemTable\r
   )\r
 {\r
   EFI_STATUS               Status;\r
   UINTN                    Index;\r
-  EFI_CONFIGURATION_TABLEEfiConfigurationTable;\r
+  EFI_CONFIGURATION_TABLE  *EfiConfigurationTable;\r
   BOOLEAN                  FoundAcpiTable;\r
   UINTN                    OriginalAttribute;\r
   UINTN                    PrintAttribute;\r
   EREPORT_OPTION           ReportOption;\r
-  UINT8*                   RsdpPtr;\r
+  UINT8                    *RsdpPtr;\r
   UINT32                   RsdpLength;\r
   UINT8                    RsdpRevision;\r
   PARSE_ACPI_TABLE_PROC    RsdpParserProc;\r
   BOOLEAN                  Trace;\r
+  SELECTED_ACPI_TABLE      *SelectedTable;\r
+\r
+  //\r
+  // set local variables to suppress incorrect compiler/analyzer warnings\r
+  //\r
+  EfiConfigurationTable = NULL;\r
+  OriginalAttribute     = 0;\r
+\r
+  // Reset Table counts\r
+  mTableCount    = 0;\r
+  mBinTableCount = 0;\r
+\r
+  // Reset The error/warning counters\r
+  ResetErrorCount ();\r
+  ResetWarningCount ();\r
+\r
+  // Retrieve the user selection of ACPI table to process\r
+  GetSelectedAcpiTable (&SelectedTable);\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
-    if (CompareGuid (&gEfiAcpiTableGuid,\r
-          &(SystemTable->ConfigurationTable[Index].VendorGuid))) {\r
+    if (CompareGuid (\r
+          &gEfiAcpiTableGuid,\r
+          &(SystemTable->ConfigurationTable[Index].VendorGuid)\r
+          ))\r
+    {\r
       EfiConfigurationTable = &SystemTable->ConfigurationTable[Index];\r
-      FoundAcpiTable = TRUE;\r
+      FoundAcpiTable        = TRUE;\r
       break;\r
     }\r
   }\r
 \r
   if (FoundAcpiTable) {\r
-    RsdpPtr = (UINT8*)EfiConfigurationTable->VendorTable;\r
+    RsdpPtr = (UINT8 *)EfiConfigurationTable->VendorTable;\r
 \r
     // The RSDP revision is 1 byte starting at offset 15\r
     RsdpRevision = *(RsdpPtr + RSDP_REVISION_OFFSET);\r
@@ -342,8 +250,15 @@ AcpiView (
       return EFI_UNSUPPORTED;\r
     }\r
 \r
+ #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)\r
+    if (GetMandatoryTableValidate ()) {\r
+      ArmSbbrResetTableCounts ();\r
+    }\r
+\r
+ #endif\r
+\r
     // The RSDP length is 4 bytes starting at offset 20\r
-    RsdpLength = *(UINT32*)(RsdpPtr + RSDP_LENGTH_OFFSET);\r
+    RsdpLength = *(UINT32 *)(RsdpPtr + RSDP_LENGTH_OFFSET);\r
 \r
     Trace = ProcessTableReportOptions (RSDP_TABLE_INFO, RsdpPtr, RsdpLength);\r
 \r
@@ -361,7 +276,6 @@ AcpiView (
       RsdpLength,\r
       RsdpRevision\r
       );\r
-\r
   } else {\r
     IncrementErrorCount ();\r
     Print (\r
@@ -370,38 +284,50 @@ AcpiView (
     return EFI_NOT_FOUND;\r
   }\r
 \r
+ #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)\r
+  if (GetMandatoryTableValidate ()) {\r
+    ArmSbbrReqsValidate ((ARM_SBBR_VERSION)GetMandatoryTableSpec ());\r
+  }\r
+\r
+ #endif\r
+\r
   ReportOption = GetReportOption ();\r
-  if (EREPORT_TABLE_LIST != ReportOption) {\r
-    if (((EREPORT_SELECTED == ReportOption)  ||\r
-         (EREPORT_DUMP_BIN_FILE == ReportOption)) &&\r
-        (!mSelectedAcpiTableFound)) {\r
+  if (ReportTableList != ReportOption) {\r
+    if (((ReportSelected == ReportOption)  ||\r
+         (ReportDumpBinFile == ReportOption)) &&\r
+        (!SelectedTable->Found))\r
+    {\r
       Print (L"\nRequested ACPI Table not found.\n");\r
-    } else if (EREPORT_DUMP_BIN_FILE != ReportOption) {\r
+    } else if (GetConsistencyChecking () &&\r
+               (ReportDumpBinFile != ReportOption))\r
+    {\r
       OriginalAttribute = gST->ConOut->Mode->Attribute;\r
 \r
       Print (L"\nTable Statistics:\n");\r
 \r
       if (GetColourHighlighting ()) {\r
         PrintAttribute = (GetErrorCount () > 0) ?\r
-                            EFI_TEXT_ATTR (\r
-                              EFI_RED,\r
-                              ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4)\r
-                              ) :\r
-                            OriginalAttribute;\r
+                         EFI_TEXT_ATTR (\r
+                           EFI_RED,\r
+                           ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4)\r
+                           ) :\r
+                         OriginalAttribute;\r
         gST->ConOut->SetAttribute (gST->ConOut, PrintAttribute);\r
       }\r
+\r
       Print (L"\t%d Error(s)\n", GetErrorCount ());\r
 \r
       if (GetColourHighlighting ()) {\r
         PrintAttribute = (GetWarningCount () > 0) ?\r
-                            EFI_TEXT_ATTR (\r
-                              EFI_RED,\r
-                              ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4)\r
-                              ) :\r
-                            OriginalAttribute;\r
+                         EFI_TEXT_ATTR (\r
+                           EFI_RED,\r
+                           ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4)\r
+                           ) :\r
+                         OriginalAttribute;\r
 \r
         gST->ConOut->SetAttribute (gST->ConOut, PrintAttribute);\r
       }\r
+\r
       Print (L"\t%d Warning(s)\n", GetWarningCount ());\r
 \r
       if (GetColourHighlighting ()) {\r
@@ -409,204 +335,6 @@ AcpiView (
       }\r
     }\r
   }\r
-  return EFI_SUCCESS;\r
-}\r
 \r
-/**\r
-  Function for 'acpiview' command.\r
-\r
-  @param[in] ImageHandle  Handle to the Image (NULL if Internal).\r
-  @param[in] SystemTable  Pointer to the System Table (NULL if Internal).\r
-**/\r
-SHELL_STATUS\r
-EFIAPI\r
-ShellCommandRunAcpiView (\r
-  IN EFI_HANDLE        ImageHandle,\r
-  IN EFI_SYSTEM_TABLE* SystemTable\r
-  )\r
-{\r
-  EFI_STATUS         Status;\r
-  SHELL_STATUS       ShellStatus = SHELL_SUCCESS;\r
-  LIST_ENTRY*        Package = NULL;\r
-  CHAR16*            ProblemParam;\r
-  CONST CHAR16*      Temp;\r
-  CHAR8              ColourOption[8];\r
-  SHELL_FILE_HANDLE  TmpDumpFileHandle = NULL;\r
-\r
-  // Set Defaults\r
-  mReportType = EREPORT_ALL;\r
-  mTableCount = 0;\r
-  mBinTableCount = 0;\r
-  mSelectedAcpiTable = 0;\r
-  mSelectedAcpiTableName = NULL;\r
-  mSelectedAcpiTableFound = FALSE;\r
-  mVerbose = TRUE;\r
-  mConsistencyCheck = TRUE;\r
-\r
-  // Reset The error/warning counters\r
-  ResetErrorCount ();\r
-  ResetWarningCount ();\r
-\r
-  Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);\r
-  if (EFI_ERROR (Status)) {\r
-    if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {\r
-      ShellPrintHiiEx (\r
-        -1,\r
-        -1,\r
-        NULL,\r
-        STRING_TOKEN (STR_GEN_PROBLEM),\r
-        gShellAcpiViewHiiHandle,\r
-        L"acpiview",\r
-        ProblemParam\r
-        );\r
-      FreePool (ProblemParam);\r
-    } else {\r
-      Print (L"acpiview: Error processing input parameter(s)\n");\r
-    }\r
-    ShellStatus = SHELL_INVALID_PARAMETER;\r
-  } else {\r
-    if (ShellCommandLineGetCount (Package) > 1) {\r
-      ShellPrintHiiEx (\r
-        -1,\r
-        -1,\r
-        NULL,\r
-        STRING_TOKEN (STR_GEN_TOO_MANY),\r
-        gShellAcpiViewHiiHandle,\r
-        L"acpiview"\r
-        );\r
-      ShellStatus = SHELL_INVALID_PARAMETER;\r
-    } else if (ShellCommandLineGetFlag (Package, L"-?")) {\r
-      ShellPrintHiiEx (\r
-        -1,\r
-        -1,\r
-        NULL,\r
-        STRING_TOKEN (STR_GET_HELP_ACPIVIEW),\r
-        gShellAcpiViewHiiHandle,\r
-        L"acpiview"\r
-        );\r
-    } else if (ShellCommandLineGetFlag (Package, L"-s") &&\r
-               ShellCommandLineGetValue (Package, L"-s") == NULL) {\r
-      ShellPrintHiiEx (\r
-        -1,\r
-        -1,\r
-        NULL,\r
-        STRING_TOKEN (STR_GEN_NO_VALUE),\r
-        gShellAcpiViewHiiHandle,\r
-        L"acpiview",\r
-        L"-s"\r
-        );\r
-      ShellStatus = SHELL_INVALID_PARAMETER;\r
-    } else if ((ShellCommandLineGetFlag (Package, L"-s") &&\r
-                ShellCommandLineGetFlag (Package, L"-l"))) {\r
-      ShellPrintHiiEx (\r
-        -1,\r
-        -1,\r
-        NULL,\r
-        STRING_TOKEN (STR_GEN_TOO_MANY),\r
-        gShellAcpiViewHiiHandle,\r
-        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
-          -1,\r
-          -1,\r
-          NULL,\r
-          STRING_TOKEN (STR_GEN_MISSING_OPTION),\r
-          gShellAcpiViewHiiHandle,\r
-          L"acpiview",\r
-          L"-s",\r
-          L"-d"\r
-          );\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
-\r
-      if (ShellCommandLineGetFlag (Package, L"-l")) {\r
-        mReportType = EREPORT_TABLE_LIST;\r
-      } else {\r
-        mSelectedAcpiTableName = ShellCommandLineGetValue (Package, L"-s");\r
-        if (mSelectedAcpiTableName != NULL) {\r
-          mSelectedAcpiTable = (UINT32)ConvertStrToAcpiSignature (\r
-                                         mSelectedAcpiTableName\r
-                                         );\r
-          mReportType = EREPORT_SELECTED;\r
-\r
-          if (ShellCommandLineGetFlag (Package, L"-d"))  {\r
-            // Create a temporary file to check if the media is writable.\r
-            CHAR16 FileNameBuffer[MAX_FILE_NAME_LEN];\r
-            mReportType = EREPORT_DUMP_BIN_FILE;\r
-\r
-            UnicodeSPrint (\r
-              FileNameBuffer,\r
-              sizeof (FileNameBuffer),\r
-              L".\\%s%04d.tmp",\r
-              mSelectedAcpiTableName,\r
-              mBinTableCount\r
-              );\r
-\r
-            Status = ShellOpenFileByName (\r
-                       FileNameBuffer,\r
-                       &TmpDumpFileHandle,\r
-                       EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE |\r
-                       EFI_FILE_MODE_CREATE,\r
-                       0\r
-                       );\r
-\r
-            if (EFI_ERROR (Status)) {\r
-              ShellStatus = SHELL_INVALID_PARAMETER;\r
-              TmpDumpFileHandle = NULL;\r
-              ShellPrintHiiEx (\r
-                -1,\r
-                -1,\r
-                NULL,\r
-                STRING_TOKEN (STR_GEN_READONLY_MEDIA),\r
-                gShellAcpiViewHiiHandle,\r
-                L"acpiview"\r
-                );\r
-              goto Done;\r
-            }\r
-            // Delete Temporary file.\r
-            ShellDeleteFile (&TmpDumpFileHandle);\r
-          } // -d\r
-        } // -s\r
-      }\r
-\r
-      // Parse ACPI Table information\r
-      Status = AcpiView (SystemTable);\r
-      if (EFI_ERROR (Status)) {\r
-        ShellStatus = SHELL_NOT_FOUND;\r
-      }\r
-    }\r
-  }\r
-\r
-Done:\r
-  if (Package != NULL) {\r
-    ShellCommandLineFreeVarList (Package);\r
-  }\r
-  return ShellStatus;\r
+  return EFI_SUCCESS;\r
 }\r