123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- /** @file
- State and accessors for 'acpiview' configuration.
- Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #include <Library/BaseMemoryLib.h>
- #include <Library/DebugLib.h>
- #include "AcpiViewConfig.h"
- // Report variables
- STATIC BOOLEAN mConsistencyCheck;
- STATIC BOOLEAN mColourHighlighting;
- STATIC EREPORT_OPTION mReportType;
- STATIC BOOLEAN mMandatoryTableValidate;
- STATIC UINTN mMandatoryTableSpec;
- // User selection of which ACPI table should be checked
- SELECTED_ACPI_TABLE mSelectedAcpiTable;
- /**
- Reset the AcpiView user configuration to defaults
- **/
- VOID
- EFIAPI
- AcpiConfigSetDefaults (
- VOID
- )
- {
- mReportType = ReportAll;
- mSelectedAcpiTable.Type = 0;
- mSelectedAcpiTable.Name = NULL;
- mSelectedAcpiTable.Found = FALSE;
- mConsistencyCheck = TRUE;
- mMandatoryTableValidate = FALSE;
- mMandatoryTableSpec = 0;
- }
- /**
- This function converts a string to ACPI table signature.
- @param [in] Str Pointer to the string to be converted to the
- ACPI table signature.
- @retval The ACPI table signature.
- **/
- STATIC
- UINT32
- ConvertStrToAcpiSignature (
- IN CONST CHAR16 *Str
- )
- {
- UINT8 Index;
- CHAR8 Ptr[4];
- ZeroMem (Ptr, sizeof (Ptr));
- Index = 0;
- // Convert to Upper case and convert to ASCII
- while ((Index < 4) && (Str[Index] != 0)) {
- if ((Str[Index] >= L'a') && (Str[Index] <= L'z')) {
- Ptr[Index] = (CHAR8)(Str[Index] - (L'a' - L'A'));
- } else {
- Ptr[Index] = (CHAR8)Str[Index];
- }
- Index++;
- }
- return *(UINT32 *)Ptr;
- }
- /**
- This function selects an ACPI table in current context.
- The string name of the table is converted into UINT32
- table signature.
- @param [in] TableName The name of the ACPI table to select.
- **/
- VOID
- EFIAPI
- SelectAcpiTable (
- IN CONST CHAR16 *TableName
- )
- {
- ASSERT (TableName != NULL);
- mSelectedAcpiTable.Name = TableName;
- mSelectedAcpiTable.Type = ConvertStrToAcpiSignature (mSelectedAcpiTable.Name);
- }
- /**
- This function returns the selected ACPI table.
- @param [out] SelectedAcpiTable Pointer that will contain the returned struct.
- **/
- VOID
- EFIAPI
- GetSelectedAcpiTable (
- OUT SELECTED_ACPI_TABLE **SelectedAcpiTable
- )
- {
- *SelectedAcpiTable = &mSelectedAcpiTable;
- }
- /**
- This function returns the colour highlighting status.
- @retval TRUE Colour highlighting is enabled.
- **/
- BOOLEAN
- EFIAPI
- GetColourHighlighting (
- VOID
- )
- {
- return mColourHighlighting;
- }
- /**
- This function sets the colour highlighting status.
- @param [in] Highlight The highlight status.
- **/
- VOID
- EFIAPI
- SetColourHighlighting (
- BOOLEAN Highlight
- )
- {
- mColourHighlighting = Highlight;
- }
- /**
- This function returns the consistency checking status.
- @retval TRUE Consistency checking is enabled.
- **/
- BOOLEAN
- EFIAPI
- GetConsistencyChecking (
- VOID
- )
- {
- return mConsistencyCheck;
- }
- /**
- This function sets the consistency checking status.
- @param [in] ConsistencyChecking The consistency checking status.
- **/
- VOID
- EFIAPI
- SetConsistencyChecking (
- BOOLEAN ConsistencyChecking
- )
- {
- mConsistencyCheck = ConsistencyChecking;
- }
- /**
- This function returns the report options.
- @return The current report option.
- **/
- EREPORT_OPTION
- EFIAPI
- GetReportOption (
- VOID
- )
- {
- return mReportType;
- }
- /**
- This function sets the report options.
- @param [in] ReportType The report option to set.
- **/
- VOID
- EFIAPI
- SetReportOption (
- EREPORT_OPTION ReportType
- )
- {
- mReportType = ReportType;
- }
- /**
- This function returns the ACPI table requirements validation flag.
- @retval TRUE Check for mandatory table presence should be performed.
- **/
- BOOLEAN
- EFIAPI
- GetMandatoryTableValidate (
- VOID
- )
- {
- return mMandatoryTableValidate;
- }
- /**
- This function sets the ACPI table requirements validation flag.
- @param [in] Validate Enable/Disable ACPI table requirements validation.
- **/
- VOID
- EFIAPI
- SetMandatoryTableValidate (
- BOOLEAN Validate
- )
- {
- mMandatoryTableValidate = Validate;
- }
- /**
- This function returns the identifier of specification to validate ACPI table
- requirements against.
- @return ID of specification listing mandatory tables.
- **/
- UINTN
- EFIAPI
- GetMandatoryTableSpec (
- VOID
- )
- {
- return mMandatoryTableSpec;
- }
- /**
- This function sets the identifier of specification to validate ACPI table
- requirements against.
- @param [in] Spec ID of specification listing mandatory tables.
- **/
- VOID
- EFIAPI
- SetMandatoryTableSpec (
- UINTN Spec
- )
- {
- mMandatoryTableSpec = Spec;
- }
|