/** @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
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
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
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
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
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
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_TABLE* SystemTable\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
EFI_STATUS Status;\r
UINTN Index;\r
- EFI_CONFIGURATION_TABLE* EfiConfigurationTable;\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
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
RsdpLength,\r
RsdpRevision\r
);\r
-\r
} else {\r
IncrementErrorCount ();\r
Print (\r
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
}\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