summaryrefslogtreecommitdiff
path: root/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
diff options
context:
space:
mode:
authorkx <kx@radix.pro>2024-06-04 06:43:08 +0300
committerkx <kx@radix.pro>2024-06-04 06:43:08 +0300
commit7e2ccccace24636f29ddc210b94606abd4c7e42b (patch)
tree545d43ea12671048956cafeb12303e84d601e571 /ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
parent27b044605cd5f6b33a3d231576003850b3fe305b (diff)
downloadedk2-trunk.tar.xz
Renormalized end-of-lines from master@27b044605cd5f6b33a3d231576003850b3fe305btrunk
Diffstat (limited to 'ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c')
-rw-r--r--ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c680
1 files changed, 340 insertions, 340 deletions
diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
index 9cdfcb3fae..5a64a69d6a 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c
@@ -1,340 +1,340 @@
-/** @file
-
- Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
- @par Glossary:
- - Sbbr or SBBR - Server Base Boot Requirements
-
- @par Reference(s):
- - Arm Server Base Boot Requirements 1.2, September 2019
-**/
-
-#include <Library/PrintLib.h>
-#include <Library/UefiLib.h>
-#include <Library/ShellLib.h>
-#include <Library/UefiBootServicesTableLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/DebugLib.h>
-#include <Library/MemoryAllocationLib.h>
-#include <Library/AcpiViewCommandLib.h>
-#include "AcpiParser.h"
-#include "AcpiTableParser.h"
-#include "AcpiView.h"
-#include "AcpiViewConfig.h"
-
-#if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)
- #include "Arm/SbbrValidator.h"
-#endif
-
-STATIC UINT32 mTableCount;
-STATIC UINT32 mBinTableCount;
-
-/**
- This function dumps the ACPI table to a file.
-
- @param [in] Ptr Pointer to the ACPI table data.
- @param [in] Length The length of the ACPI table.
-
- @retval TRUE Success.
- @retval FALSE Failure.
-**/
-STATIC
-BOOLEAN
-DumpAcpiTableToFile (
- IN CONST UINT8 *Ptr,
- IN CONST UINTN Length
- )
-{
- CHAR16 FileNameBuffer[MAX_FILE_NAME_LEN];
- UINTN TransferBytes;
- SELECTED_ACPI_TABLE *SelectedTable;
-
- GetSelectedAcpiTable (&SelectedTable);
-
- UnicodeSPrint (
- FileNameBuffer,
- sizeof (FileNameBuffer),
- L".\\%s%04d.bin",
- SelectedTable->Name,
- mBinTableCount++
- );
-
- Print (L"Dumping ACPI table to : %s ... ", FileNameBuffer);
-
- TransferBytes = ShellDumpBufferToFile (FileNameBuffer, Ptr, Length);
- return (Length == TransferBytes);
-}
-
-/**
- This function processes the table reporting options for the ACPI table.
-
- @param [in] Signature The ACPI table Signature.
- @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.
-**/
-BOOLEAN
-ProcessTableReportOptions (
- IN CONST UINT32 Signature,
- IN CONST UINT8 *TablePtr,
- IN CONST UINT32 Length
- )
-{
- UINTN OriginalAttribute;
- UINT8 *SignaturePtr;
- BOOLEAN Log;
- BOOLEAN HighLight;
- SELECTED_ACPI_TABLE *SelectedTable;
-
- //
- // set local variables to suppress incorrect compiler/analyzer warnings
- //
- OriginalAttribute = 0;
- SignaturePtr = (UINT8 *)(UINTN)&Signature;
- Log = FALSE;
- HighLight = GetColourHighlighting ();
- GetSelectedAcpiTable (&SelectedTable);
-
- switch (GetReportOption ()) {
- case ReportAll:
- Log = TRUE;
- break;
- case ReportSelected:
- if (Signature == SelectedTable->Type) {
- Log = TRUE;
- SelectedTable->Found = TRUE;
- }
-
- break;
- case ReportTableList:
- if (mTableCount == 0) {
- if (HighLight) {
- OriginalAttribute = gST->ConOut->Mode->Attribute;
- gST->ConOut->SetAttribute (
- gST->ConOut,
- EFI_TEXT_ATTR (
- EFI_CYAN,
- ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4)
- )
- );
- }
-
- Print (L"\nInstalled Table(s):\n");
- if (HighLight) {
- gST->ConOut->SetAttribute (gST->ConOut, OriginalAttribute);
- }
- }
-
- Print (
- L"\t%4d. %c%c%c%c\n",
- ++mTableCount,
- SignaturePtr[0],
- SignaturePtr[1],
- SignaturePtr[2],
- SignaturePtr[3]
- );
- break;
- case ReportDumpBinFile:
- if (Signature == SelectedTable->Type) {
- SelectedTable->Found = TRUE;
- DumpAcpiTableToFile (TablePtr, Length);
- }
-
- break;
- case ReportMax:
- // We should never be here.
- // This case is only present to prevent compiler warning.
- break;
- } // switch
-
- if (Log) {
- if (HighLight) {
- OriginalAttribute = gST->ConOut->Mode->Attribute;
- gST->ConOut->SetAttribute (
- gST->ConOut,
- EFI_TEXT_ATTR (
- EFI_LIGHTBLUE,
- ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4)
- )
- );
- }
-
- Print (
- L"\n\n --------------- %c%c%c%c Table --------------- \n\n",
- SignaturePtr[0],
- SignaturePtr[1],
- SignaturePtr[2],
- SignaturePtr[3]
- );
- if (HighLight) {
- gST->ConOut->SetAttribute (gST->ConOut, OriginalAttribute);
- }
- }
-
- return Log;
-}
-
-/**
- This function iterates the configuration table entries in the
- system table, retrieves the RSDP pointer and starts parsing the ACPI tables.
-
- @param [in] SystemTable Pointer to the EFI system table.
-
- @retval Returns EFI_NOT_FOUND if the RSDP pointer is not found.
- Returns EFI_UNSUPPORTED if the RSDP version is less than 2.
- Returns EFI_SUCCESS if successful.
-**/
-EFI_STATUS
-EFIAPI
-AcpiView (
- IN EFI_SYSTEM_TABLE *SystemTable
- )
-{
- EFI_STATUS Status;
- UINTN Index;
- EFI_CONFIGURATION_TABLE *EfiConfigurationTable;
- BOOLEAN FoundAcpiTable;
- UINTN OriginalAttribute;
- UINTN PrintAttribute;
- EREPORT_OPTION ReportOption;
- UINT8 *RsdpPtr;
- UINT32 RsdpLength;
- UINT8 RsdpRevision;
- PARSE_ACPI_TABLE_PROC RsdpParserProc;
- BOOLEAN Trace;
- SELECTED_ACPI_TABLE *SelectedTable;
-
- //
- // set local variables to suppress incorrect compiler/analyzer warnings
- //
- EfiConfigurationTable = NULL;
- OriginalAttribute = 0;
-
- // Reset Table counts
- mTableCount = 0;
- mBinTableCount = 0;
-
- // Reset The error/warning counters
- ResetErrorCount ();
- ResetWarningCount ();
-
- // Retrieve the user selection of ACPI table to process
- GetSelectedAcpiTable (&SelectedTable);
-
- // Search the table for an entry that matches the ACPI Table Guid
- FoundAcpiTable = FALSE;
- for (Index = 0; Index < SystemTable->NumberOfTableEntries; Index++) {
- if (CompareGuid (
- &gEfiAcpiTableGuid,
- &(SystemTable->ConfigurationTable[Index].VendorGuid)
- ))
- {
- EfiConfigurationTable = &SystemTable->ConfigurationTable[Index];
- FoundAcpiTable = TRUE;
- break;
- }
- }
-
- if (FoundAcpiTable) {
- RsdpPtr = (UINT8 *)EfiConfigurationTable->VendorTable;
-
- // The RSDP revision is 1 byte starting at offset 15
- RsdpRevision = *(RsdpPtr + RSDP_REVISION_OFFSET);
-
- if (RsdpRevision < 2) {
- Print (
- L"ERROR: RSDP version less than 2 is not supported.\n"
- );
- return EFI_UNSUPPORTED;
- }
-
- #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)
- if (GetMandatoryTableValidate ()) {
- ArmSbbrResetTableCounts ();
- }
-
- #endif
-
- // The RSDP length is 4 bytes starting at offset 20
- RsdpLength = *(UINT32 *)(RsdpPtr + RSDP_LENGTH_OFFSET);
-
- Trace = ProcessTableReportOptions (RSDP_TABLE_INFO, RsdpPtr, RsdpLength);
-
- Status = GetParser (RSDP_TABLE_INFO, &RsdpParserProc);
- if (EFI_ERROR (Status)) {
- Print (
- L"ERROR: No registered parser found for RSDP.\n"
- );
- return Status;
- }
-
- RsdpParserProc (
- Trace,
- RsdpPtr,
- RsdpLength,
- RsdpRevision
- );
- } else {
- IncrementErrorCount ();
- Print (
- L"ERROR: Failed to find ACPI Table Guid in System Configuration Table.\n"
- );
- return EFI_NOT_FOUND;
- }
-
- #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)
- if (GetMandatoryTableValidate ()) {
- ArmSbbrReqsValidate ((ARM_SBBR_VERSION)GetMandatoryTableSpec ());
- }
-
- #endif
-
- ReportOption = GetReportOption ();
- if (ReportTableList != ReportOption) {
- if (((ReportSelected == ReportOption) ||
- (ReportDumpBinFile == ReportOption)) &&
- (!SelectedTable->Found))
- {
- Print (L"\nRequested ACPI Table not found.\n");
- } else if (GetConsistencyChecking () &&
- (ReportDumpBinFile != ReportOption))
- {
- OriginalAttribute = gST->ConOut->Mode->Attribute;
-
- Print (L"\nTable Statistics:\n");
-
- if (GetColourHighlighting ()) {
- PrintAttribute = (GetErrorCount () > 0) ?
- EFI_TEXT_ATTR (
- EFI_RED,
- ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4)
- ) :
- OriginalAttribute;
- gST->ConOut->SetAttribute (gST->ConOut, PrintAttribute);
- }
-
- Print (L"\t%d Error(s)\n", GetErrorCount ());
-
- if (GetColourHighlighting ()) {
- PrintAttribute = (GetWarningCount () > 0) ?
- EFI_TEXT_ATTR (
- EFI_RED,
- ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4)
- ) :
- OriginalAttribute;
-
- gST->ConOut->SetAttribute (gST->ConOut, PrintAttribute);
- }
-
- Print (L"\t%d Warning(s)\n", GetWarningCount ());
-
- if (GetColourHighlighting ()) {
- gST->ConOut->SetAttribute (gST->ConOut, OriginalAttribute);
- }
- }
- }
-
- return EFI_SUCCESS;
-}
+/** @file
+
+ Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Glossary:
+ - Sbbr or SBBR - Server Base Boot Requirements
+
+ @par Reference(s):
+ - Arm Server Base Boot Requirements 1.2, September 2019
+**/
+
+#include <Library/PrintLib.h>
+#include <Library/UefiLib.h>
+#include <Library/ShellLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/DebugLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Library/AcpiViewCommandLib.h>
+#include "AcpiParser.h"
+#include "AcpiTableParser.h"
+#include "AcpiView.h"
+#include "AcpiViewConfig.h"
+
+#if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)
+ #include "Arm/SbbrValidator.h"
+#endif
+
+STATIC UINT32 mTableCount;
+STATIC UINT32 mBinTableCount;
+
+/**
+ This function dumps the ACPI table to a file.
+
+ @param [in] Ptr Pointer to the ACPI table data.
+ @param [in] Length The length of the ACPI table.
+
+ @retval TRUE Success.
+ @retval FALSE Failure.
+**/
+STATIC
+BOOLEAN
+DumpAcpiTableToFile (
+ IN CONST UINT8 *Ptr,
+ IN CONST UINTN Length
+ )
+{
+ CHAR16 FileNameBuffer[MAX_FILE_NAME_LEN];
+ UINTN TransferBytes;
+ SELECTED_ACPI_TABLE *SelectedTable;
+
+ GetSelectedAcpiTable (&SelectedTable);
+
+ UnicodeSPrint (
+ FileNameBuffer,
+ sizeof (FileNameBuffer),
+ L".\\%s%04d.bin",
+ SelectedTable->Name,
+ mBinTableCount++
+ );
+
+ Print (L"Dumping ACPI table to : %s ... ", FileNameBuffer);
+
+ TransferBytes = ShellDumpBufferToFile (FileNameBuffer, Ptr, Length);
+ return (Length == TransferBytes);
+}
+
+/**
+ This function processes the table reporting options for the ACPI table.
+
+ @param [in] Signature The ACPI table Signature.
+ @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.
+**/
+BOOLEAN
+ProcessTableReportOptions (
+ IN CONST UINT32 Signature,
+ IN CONST UINT8 *TablePtr,
+ IN CONST UINT32 Length
+ )
+{
+ UINTN OriginalAttribute;
+ UINT8 *SignaturePtr;
+ BOOLEAN Log;
+ BOOLEAN HighLight;
+ SELECTED_ACPI_TABLE *SelectedTable;
+
+ //
+ // set local variables to suppress incorrect compiler/analyzer warnings
+ //
+ OriginalAttribute = 0;
+ SignaturePtr = (UINT8 *)(UINTN)&Signature;
+ Log = FALSE;
+ HighLight = GetColourHighlighting ();
+ GetSelectedAcpiTable (&SelectedTable);
+
+ switch (GetReportOption ()) {
+ case ReportAll:
+ Log = TRUE;
+ break;
+ case ReportSelected:
+ if (Signature == SelectedTable->Type) {
+ Log = TRUE;
+ SelectedTable->Found = TRUE;
+ }
+
+ break;
+ case ReportTableList:
+ if (mTableCount == 0) {
+ if (HighLight) {
+ OriginalAttribute = gST->ConOut->Mode->Attribute;
+ gST->ConOut->SetAttribute (
+ gST->ConOut,
+ EFI_TEXT_ATTR (
+ EFI_CYAN,
+ ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4)
+ )
+ );
+ }
+
+ Print (L"\nInstalled Table(s):\n");
+ if (HighLight) {
+ gST->ConOut->SetAttribute (gST->ConOut, OriginalAttribute);
+ }
+ }
+
+ Print (
+ L"\t%4d. %c%c%c%c\n",
+ ++mTableCount,
+ SignaturePtr[0],
+ SignaturePtr[1],
+ SignaturePtr[2],
+ SignaturePtr[3]
+ );
+ break;
+ case ReportDumpBinFile:
+ if (Signature == SelectedTable->Type) {
+ SelectedTable->Found = TRUE;
+ DumpAcpiTableToFile (TablePtr, Length);
+ }
+
+ break;
+ case ReportMax:
+ // We should never be here.
+ // This case is only present to prevent compiler warning.
+ break;
+ } // switch
+
+ if (Log) {
+ if (HighLight) {
+ OriginalAttribute = gST->ConOut->Mode->Attribute;
+ gST->ConOut->SetAttribute (
+ gST->ConOut,
+ EFI_TEXT_ATTR (
+ EFI_LIGHTBLUE,
+ ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4)
+ )
+ );
+ }
+
+ Print (
+ L"\n\n --------------- %c%c%c%c Table --------------- \n\n",
+ SignaturePtr[0],
+ SignaturePtr[1],
+ SignaturePtr[2],
+ SignaturePtr[3]
+ );
+ if (HighLight) {
+ gST->ConOut->SetAttribute (gST->ConOut, OriginalAttribute);
+ }
+ }
+
+ return Log;
+}
+
+/**
+ This function iterates the configuration table entries in the
+ system table, retrieves the RSDP pointer and starts parsing the ACPI tables.
+
+ @param [in] SystemTable Pointer to the EFI system table.
+
+ @retval Returns EFI_NOT_FOUND if the RSDP pointer is not found.
+ Returns EFI_UNSUPPORTED if the RSDP version is less than 2.
+ Returns EFI_SUCCESS if successful.
+**/
+EFI_STATUS
+EFIAPI
+AcpiView (
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+ UINTN Index;
+ EFI_CONFIGURATION_TABLE *EfiConfigurationTable;
+ BOOLEAN FoundAcpiTable;
+ UINTN OriginalAttribute;
+ UINTN PrintAttribute;
+ EREPORT_OPTION ReportOption;
+ UINT8 *RsdpPtr;
+ UINT32 RsdpLength;
+ UINT8 RsdpRevision;
+ PARSE_ACPI_TABLE_PROC RsdpParserProc;
+ BOOLEAN Trace;
+ SELECTED_ACPI_TABLE *SelectedTable;
+
+ //
+ // set local variables to suppress incorrect compiler/analyzer warnings
+ //
+ EfiConfigurationTable = NULL;
+ OriginalAttribute = 0;
+
+ // Reset Table counts
+ mTableCount = 0;
+ mBinTableCount = 0;
+
+ // Reset The error/warning counters
+ ResetErrorCount ();
+ ResetWarningCount ();
+
+ // Retrieve the user selection of ACPI table to process
+ GetSelectedAcpiTable (&SelectedTable);
+
+ // Search the table for an entry that matches the ACPI Table Guid
+ FoundAcpiTable = FALSE;
+ for (Index = 0; Index < SystemTable->NumberOfTableEntries; Index++) {
+ if (CompareGuid (
+ &gEfiAcpiTableGuid,
+ &(SystemTable->ConfigurationTable[Index].VendorGuid)
+ ))
+ {
+ EfiConfigurationTable = &SystemTable->ConfigurationTable[Index];
+ FoundAcpiTable = TRUE;
+ break;
+ }
+ }
+
+ if (FoundAcpiTable) {
+ RsdpPtr = (UINT8 *)EfiConfigurationTable->VendorTable;
+
+ // The RSDP revision is 1 byte starting at offset 15
+ RsdpRevision = *(RsdpPtr + RSDP_REVISION_OFFSET);
+
+ if (RsdpRevision < 2) {
+ Print (
+ L"ERROR: RSDP version less than 2 is not supported.\n"
+ );
+ return EFI_UNSUPPORTED;
+ }
+
+ #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)
+ if (GetMandatoryTableValidate ()) {
+ ArmSbbrResetTableCounts ();
+ }
+
+ #endif
+
+ // The RSDP length is 4 bytes starting at offset 20
+ RsdpLength = *(UINT32 *)(RsdpPtr + RSDP_LENGTH_OFFSET);
+
+ Trace = ProcessTableReportOptions (RSDP_TABLE_INFO, RsdpPtr, RsdpLength);
+
+ Status = GetParser (RSDP_TABLE_INFO, &RsdpParserProc);
+ if (EFI_ERROR (Status)) {
+ Print (
+ L"ERROR: No registered parser found for RSDP.\n"
+ );
+ return Status;
+ }
+
+ RsdpParserProc (
+ Trace,
+ RsdpPtr,
+ RsdpLength,
+ RsdpRevision
+ );
+ } else {
+ IncrementErrorCount ();
+ Print (
+ L"ERROR: Failed to find ACPI Table Guid in System Configuration Table.\n"
+ );
+ return EFI_NOT_FOUND;
+ }
+
+ #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)
+ if (GetMandatoryTableValidate ()) {
+ ArmSbbrReqsValidate ((ARM_SBBR_VERSION)GetMandatoryTableSpec ());
+ }
+
+ #endif
+
+ ReportOption = GetReportOption ();
+ if (ReportTableList != ReportOption) {
+ if (((ReportSelected == ReportOption) ||
+ (ReportDumpBinFile == ReportOption)) &&
+ (!SelectedTable->Found))
+ {
+ Print (L"\nRequested ACPI Table not found.\n");
+ } else if (GetConsistencyChecking () &&
+ (ReportDumpBinFile != ReportOption))
+ {
+ OriginalAttribute = gST->ConOut->Mode->Attribute;
+
+ Print (L"\nTable Statistics:\n");
+
+ if (GetColourHighlighting ()) {
+ PrintAttribute = (GetErrorCount () > 0) ?
+ EFI_TEXT_ATTR (
+ EFI_RED,
+ ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4)
+ ) :
+ OriginalAttribute;
+ gST->ConOut->SetAttribute (gST->ConOut, PrintAttribute);
+ }
+
+ Print (L"\t%d Error(s)\n", GetErrorCount ());
+
+ if (GetColourHighlighting ()) {
+ PrintAttribute = (GetWarningCount () > 0) ?
+ EFI_TEXT_ATTR (
+ EFI_RED,
+ ((OriginalAttribute&(BIT4|BIT5|BIT6))>>4)
+ ) :
+ OriginalAttribute;
+
+ gST->ConOut->SetAttribute (gST->ConOut, PrintAttribute);
+ }
+
+ Print (L"\t%d Warning(s)\n", GetWarningCount ());
+
+ if (GetColourHighlighting ()) {
+ gST->ConOut->SetAttribute (gST->ConOut, OriginalAttribute);
+ }
+ }
+ }
+
+ return EFI_SUCCESS;
+}