/** @file\r
Main file for 'acpiview' Shell command function.\r
\r
- Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.<BR>\r
+ Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
**/\r
\r
#include <Guid/ShellLibHiiGuid.h>\r
#include <IndustryStandard/Acpi.h>\r
+#include <IndustryStandard/ArmErrorSourceTable.h>\r
\r
#include <Library/BaseMemoryLib.h>\r
#include <Library/HiiLib.h>\r
#include "AcpiView.h"\r
#include "AcpiViewConfig.h"\r
\r
-CONST CHAR16 gShellAcpiViewFileName[] = L"ShellCommand";\r
-EFI_HII_HANDLE gShellAcpiViewHiiHandle = NULL;\r
+CONST CHAR16 gShellAcpiViewFileName[] = L"ShellCommand";\r
+EFI_HII_HANDLE gShellAcpiViewHiiHandle = NULL;\r
\r
/**\r
An array of acpiview command line parameters.\r
**/\r
-STATIC CONST SHELL_PARAM_ITEM ParamList[] = {\r
- {L"-q", TypeFlag},\r
- {L"-d", TypeFlag},\r
- {L"-h", TypeFlag},\r
- {L"-l", TypeFlag},\r
- {L"-s", TypeValue},\r
- {L"-r", TypeValue},\r
- {NULL, TypeMax}\r
+STATIC CONST SHELL_PARAM_ITEM ParamList[] = {\r
+ { L"-q", TypeFlag },\r
+ { L"-d", TypeFlag },\r
+ { L"-h", TypeFlag },\r
+ { L"-l", TypeFlag },\r
+ { L"-s", TypeValue },\r
+ { L"-r", TypeValue },\r
+ { NULL, TypeMax }\r
};\r
\r
/**\r
*/\r
STATIC\r
CONST\r
-ACPI_TABLE_PARSER ParserList[] = {\r
- {EFI_ACPI_6_2_BOOT_GRAPHICS_RESOURCE_TABLE_SIGNATURE, ParseAcpiBgrt},\r
- {EFI_ACPI_6_2_DEBUG_PORT_2_TABLE_SIGNATURE, ParseAcpiDbg2},\r
- {EFI_ACPI_6_2_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE,\r
- ParseAcpiDsdt},\r
- {EFI_ACPI_6_3_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE, ParseAcpiFacs},\r
- {EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiFadt},\r
- {EFI_ACPI_6_2_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiGtdt},\r
- {EFI_ACPI_6_2_IO_REMAPPING_TABLE_SIGNATURE, ParseAcpiIort},\r
- {EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiMadt},\r
- {EFI_ACPI_6_2_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE,\r
- ParseAcpiMcfg},\r
- {EFI_ACPI_6_2_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_STRUCTURE_SIGNATURE,\r
- ParseAcpiPptt},\r
- {RSDP_TABLE_INFO, ParseAcpiRsdp},\r
- {EFI_ACPI_6_2_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE, ParseAcpiSlit},\r
- {EFI_ACPI_6_2_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE, ParseAcpiSpcr},\r
- {EFI_ACPI_6_2_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE, ParseAcpiSrat},\r
- {EFI_ACPI_6_2_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiSsdt},\r
- {EFI_ACPI_6_2_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiXsdt}\r
+ACPI_TABLE_PARSER ParserList[] = {\r
+ { EFI_ACPI_6_3_ARM_ERROR_SOURCE_TABLE_SIGNATURE, ParseAcpiAest },\r
+ { EFI_ACPI_6_4_ARM_PERFORMANCE_MONITORING_UNIT_TABLE_SIGNATURE, ParseAcpiApmt },\r
+ { EFI_ACPI_6_2_BOOT_GRAPHICS_RESOURCE_TABLE_SIGNATURE, ParseAcpiBgrt },\r
+ { EFI_ACPI_6_2_DEBUG_PORT_2_TABLE_SIGNATURE, ParseAcpiDbg2 },\r
+ { EFI_ACPI_6_2_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE,\r
+ ParseAcpiDsdt },\r
+ { EFI_ACPI_6_3_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE, ParseAcpiFacs },\r
+ { EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiFadt },\r
+ { EFI_ACPI_6_4_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiGtdt },\r
+ { EFI_ACPI_6_4_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_SIGNATURE, ParseAcpiHmat },\r
+ { EFI_ACPI_6_2_IO_REMAPPING_TABLE_SIGNATURE, ParseAcpiIort },\r
+ { EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiMadt },\r
+ { EFI_ACPI_6_2_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE,\r
+ ParseAcpiMcfg },\r
+ { EFI_ACPI_6_4_PLATFORM_COMMUNICATIONS_CHANNEL_TABLE_SIGNATURE,\r
+ ParseAcpiPcct },\r
+ { EFI_ACPI_6_4_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_STRUCTURE_SIGNATURE,\r
+ ParseAcpiPptt },\r
+ { RSDP_TABLE_INFO, ParseAcpiRsdp },\r
+ { EFI_ACPI_6_2_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE, ParseAcpiSlit },\r
+ { EFI_ACPI_6_2_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE, ParseAcpiSpcr },\r
+ { EFI_ACPI_6_2_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE, ParseAcpiSrat },\r
+ { EFI_ACPI_6_2_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiSsdt },\r
+ { EFI_ACPI_6_2_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiXsdt }\r
};\r
\r
/**\r
RegisterAllParsers (\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN Count;\r
+ EFI_STATUS Status;\r
+ UINTN Count;\r
\r
Status = EFI_SUCCESS;\r
- Count = sizeof (ParserList) / sizeof (ParserList[0]);\r
+ Count = sizeof (ParserList) / sizeof (ParserList[0]);\r
\r
while (Count-- != 0) {\r
Status = RegisterParser (\r
return Status;\r
}\r
}\r
+\r
return Status;\r
}\r
\r
UINTN\r
EFIAPI\r
ShellDumpBufferToFile (\r
- IN CONST CHAR16* FileNameBuffer,\r
- IN CONST VOID* Buffer,\r
+ IN CONST CHAR16 *FileNameBuffer,\r
+ IN CONST VOID *Buffer,\r
IN CONST UINTN BufferSize\r
)\r
{\r
- EFI_STATUS Status;\r
- SHELL_FILE_HANDLE DumpFileHandle;\r
- UINTN TransferBytes;\r
+ EFI_STATUS Status;\r
+ SHELL_FILE_HANDLE DumpFileHandle;\r
+ UINTN TransferBytes;\r
\r
Status = ShellOpenFileByName (\r
FileNameBuffer,\r
}\r
\r
TransferBytes = BufferSize;\r
- Status = ShellWriteFile (\r
- DumpFileHandle,\r
- &TransferBytes,\r
- (VOID *) Buffer\r
- );\r
+ Status = ShellWriteFile (\r
+ DumpFileHandle,\r
+ &TransferBytes,\r
+ (VOID *)Buffer\r
+ );\r
\r
if (EFI_ERROR (Status)) {\r
Print (L"ERROR: Failed to write binary file.\n");\r
\r
@return The string pointer to the file name.\r
**/\r
-CONST CHAR16*\r
+CONST CHAR16 *\r
EFIAPI\r
ShellCommandGetManFileNameAcpiView (\r
VOID\r
EFIAPI\r
ShellCommandRunAcpiView (\r
IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE* SystemTable\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
EFI_STATUS Status;\r
SHELL_STATUS ShellStatus;\r
- LIST_ENTRY* Package;\r
- CHAR16* ProblemParam;\r
+ LIST_ENTRY *Package;\r
+ CHAR16 *ProblemParam;\r
SHELL_FILE_HANDLE TmpDumpFileHandle;\r
- CONST CHAR16* MandatoryTableSpecStr;\r
- CONST CHAR16* SelectedTableName;\r
+ CONST CHAR16 *MandatoryTableSpecStr;\r
+ CONST CHAR16 *SelectedTableName;\r
\r
// Set configuration defaults\r
AcpiConfigSetDefaults ();\r
\r
- ShellStatus = SHELL_SUCCESS;\r
- Package = NULL;\r
+ ShellStatus = SHELL_SUCCESS;\r
+ Package = NULL;\r
TmpDumpFileHandle = NULL;\r
\r
Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);\r
if (EFI_ERROR (Status)) {\r
- if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {\r
+ if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {\r
ShellPrintHiiEx (\r
-1,\r
-1,\r
} else {\r
Print (L"acpiview: Error processing input parameter(s)\n");\r
}\r
+\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
if (ShellCommandLineGetCount (Package) > 1) {\r
L"acpiview"\r
);\r
} else if (ShellCommandLineGetFlag (Package, L"-s") &&\r
- ShellCommandLineGetValue (Package, L"-s") == NULL) {\r
+ (ShellCommandLineGetValue (Package, L"-s") == NULL))\r
+ {\r
ShellPrintHiiEx (\r
-1,\r
-1,\r
);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else if (ShellCommandLineGetFlag (Package, L"-r") &&\r
- ShellCommandLineGetValue (Package, L"-r") == NULL) {\r
+ (ShellCommandLineGetValue (Package, L"-r") == NULL))\r
+ {\r
ShellPrintHiiEx (\r
-1,\r
-1,\r
);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else if ((ShellCommandLineGetFlag (Package, L"-s") &&\r
- ShellCommandLineGetFlag (Package, L"-l"))) {\r
+ ShellCommandLineGetFlag (Package, L"-l")))\r
+ {\r
ShellPrintHiiEx (\r
-1,\r
-1,\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
+ !ShellCommandLineGetFlag (Package, L"-s"))\r
+ {\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
// Turn on colour highlighting if requested\r
SetColourHighlighting (ShellCommandLineGetFlag (Package, L"-h"));\r
SelectAcpiTable (SelectedTableName);\r
SetReportOption (ReportSelected);\r
\r
- if (ShellCommandLineGetFlag (Package, L"-d")) {\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
+ CHAR16 FileNameBuffer[MAX_FILE_NAME_LEN];\r
SetReportOption (ReportDumpBinFile);\r
\r
UnicodeSPrint (\r
);\r
\r
if (EFI_ERROR (Status)) {\r
- ShellStatus = SHELL_INVALID_PARAMETER;\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
TmpDumpFileHandle = NULL;\r
ShellPrintHiiEx (\r
-1,\r
);\r
goto Done;\r
}\r
+\r
// Delete Temporary file.\r
ShellDeleteFile (&TmpDumpFileHandle);\r
} // -d\r
if (Package != NULL) {\r
ShellCommandLineFreeVarList (Package);\r
}\r
+\r
return ShellStatus;\r
}\r
\r
IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
+\r
gShellAcpiViewHiiHandle = NULL;\r
\r
// Check Shell Profile Debug1 bit of the profiles mask\r
if (gShellAcpiViewHiiHandle == NULL) {\r
return EFI_DEVICE_ERROR;\r
}\r
+\r
// Install our Shell command handler\r
ShellCommandRegisterCommandName (\r
L"acpiview",\r
if (gShellAcpiViewHiiHandle != NULL) {\r
HiiRemovePackages (gShellAcpiViewHiiHandle);\r
}\r
+\r
return EFI_SUCCESS;\r
}\r