audk/ShellPkg/Library/UefiShellAcpiViewCommandLib/Arm/SbbrValidator.h

92 lines
2.4 KiB
C

/** @file
Header file for SbbrValidator.c
Copyright (c) 2020, ARM Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
@par Glossary:
- Sbbr or SBBR - Server Base Boot Requirements
- Sbsa or SBSA - Server Base System Architecture
@par Reference(s):
- Arm Server Base Boot Requirements 1.2, September 2019
- Arm Server Base Boot Requirements 1.1, May 2018
- Arm Server Base Boot Requirements 1.0, March 2016
- Arm Server Base System Architecture 6.0
**/
#ifndef SBBR_VALIDATOR_H_
#define SBBR_VALIDATOR_H_
#include <IndustryStandard/Acpi.h>
/**
Arm SBBR specification versions.
**/
typedef enum {
ArmSbbrVersion_1_0 = 0,
ArmSbbrVersion_1_1 = 1,
ArmSbbrVersion_1_2 = 2,
ArmSbbrVersionMax = 3
} ARM_SBBR_VERSION;
/**
The ACPI table instance counter.
**/
typedef struct AcpiTableCounter {
CONST UINT32 Signature; /// ACPI table signature
UINT32 Count; /// Instance count
} ACPI_TABLE_COUNTER;
/**
ACPI table SBBR requirements.
**/
typedef struct AcpiSbbrReq {
CONST UINT32* Tables; /// List of required tables
CONST UINT32 TableCount; /// Number of elements in Tables
} ACPI_SBBR_REQ;
/**
Reset the platform ACPI table instance count for all SBBR-mandatory tables.
**/
VOID
EFIAPI
ArmSbbrResetTableCounts (
VOID
);
/**
Increment instance count for SBBR-mandatory ACPI table with the given
signature.
@param [in] Signature ACPI table signature.
@retval TRUE Count incremented successfully.
@retval FALSE Table with the input signature not found.
**/
BOOLEAN
EFIAPI
ArmSbbrIncrementTableCount (
UINT32 Signature
);
/**
Validate that all ACPI tables required by the given SBBR specification
version are installed on the platform.
@param [in] Version SBBR spec version to validate against.
@retval EFI_SUCCESS All required tables are present.
@retval EFI_INVALID_PARAMETER Invalid SBBR version.
@retval EFI_NOT_FOUND One or more mandatory tables are missing.
@retval EFI_UNSUPPORTED Mandatory ACPI table does not have its
instance count tracked.
**/
EFI_STATUS
EFIAPI
ArmSbbrReqsValidate (
ARM_SBBR_VERSION Version
);
#endif // SBBR_VALIDATOR_H_