/** @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; | |
} |