Pierre Gondois 47b830db58 DynamicTablesPkg: DynamicTableManagerDxe: Refactor PresenceArray
Mandatory ACPI tables depend on the architectures.
Different architectures might also want to check other tables.

Move mAcpiVerifyTables containing the list of ACPI tables to check
to an arch specific file and introduce GetAcpiTablePresenceInfo()
to get get the relevant information from the array.

Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2024-07-29 13:44:55 +00:00

64 lines
2.1 KiB
C

/** @file
Dynamic Table Manager Dxe
Copyright (c) 2017 - 2024, ARM Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef DYNAMIC_TABLE_MANAGER_DXE_H_
#define DYNAMIC_TABLE_MANAGER_DXE_H_
#include <AcpiTableGenerator.h>
///
/// Bit definitions for acceptable ACPI table presence formats.
/// Currently only ACPI tables present in the ACPI info list and
/// already installed will count towards "Table Present" during
/// verification routine.
///
#define ACPI_TABLE_PRESENT_INFO_LIST BIT0
#define ACPI_TABLE_PRESENT_INSTALLED BIT1
/// The FADT table must be placed at index 0 in mAcpiVerifyTables.
#define ACPI_TABLE_VERIFY_FADT 0
///
/// Private data structure to verify the presence of mandatory
/// or optional ACPI tables.
///
typedef struct {
/// ESTD ID for the ACPI table of interest.
ESTD_ACPI_TABLE_ID EstdTableId;
/// Standard UINT32 ACPI signature.
UINT32 AcpiTableSignature;
/// 4 character ACPI table name (the 5th char8 is for null terminator).
CHAR8 AcpiTableName[sizeof (UINT32) + 1];
/// Indicator on whether the ACPI table is required.
BOOLEAN IsMandatory;
/// Formats of verified presences, as defined by ACPI_TABLE_PRESENT_*
/// This field should be initialized to 0 and will be populated during
/// verification routine.
UINT16 Presence;
} ACPI_TABLE_PRESENCE_INFO;
/** Get the arch specific ACPI table presence information.
@param [out] PresenceArray Array containing the ACPI tables to check.
@param [out] PresenceArrayCount Count of elements in the PresenceArray.
@param [out] FadtIndex Index of the FADT table in the PresenceArray.
-1 if absent.
@retval EFI_SUCCESS Success.
**/
EFI_STATUS
EFIAPI
GetAcpiTablePresenceInfo (
OUT ACPI_TABLE_PRESENCE_INFO **PresenceArray,
OUT UINT32 *PresenceArrayCount,
OUT INT32 *FadtIndex
);
#endif // DYNAMIC_TABLE_MANAGER_DXE_H_