]> git.proxmox.com Git - mirror_edk2.git/blob - ShellPkg/Library/UefiShellAcpiViewCommandLib/Arm/SbbrValidator.h
ShellPkg: Apply uncrustify changes
[mirror_edk2.git] / ShellPkg / Library / UefiShellAcpiViewCommandLib / Arm / SbbrValidator.h
1 /** @file
2 Header file for SbbrValidator.c
3
4 Copyright (c) 2020, ARM Limited. All rights reserved.
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7 @par Glossary:
8 - Sbbr or SBBR - Server Base Boot Requirements
9 - Sbsa or SBSA - Server Base System Architecture
10
11 @par Reference(s):
12 - Arm Server Base Boot Requirements 1.2, September 2019
13 - Arm Server Base Boot Requirements 1.1, May 2018
14 - Arm Server Base Boot Requirements 1.0, March 2016
15 - Arm Server Base System Architecture 6.0
16 **/
17
18 #ifndef SBBR_VALIDATOR_H_
19 #define SBBR_VALIDATOR_H_
20
21 #include <IndustryStandard/Acpi.h>
22
23 /**
24 Arm SBBR specification versions.
25 **/
26 typedef enum {
27 ArmSbbrVersion_1_0 = 0,
28 ArmSbbrVersion_1_1 = 1,
29 ArmSbbrVersion_1_2 = 2,
30 ArmSbbrVersionMax = 3
31 } ARM_SBBR_VERSION;
32
33 /**
34 The ACPI table instance counter.
35 **/
36 typedef struct AcpiTableCounter {
37 CONST UINT32 Signature; /// ACPI table signature
38 UINT32 Count; /// Instance count
39 } ACPI_TABLE_COUNTER;
40
41 /**
42 ACPI table SBBR requirements.
43 **/
44 typedef struct AcpiSbbrReq {
45 CONST UINT32 *Tables; /// List of required tables
46 CONST UINT32 TableCount; /// Number of elements in Tables
47 } ACPI_SBBR_REQ;
48
49 /**
50 Reset the platform ACPI table instance count for all SBBR-mandatory tables.
51 **/
52 VOID
53 EFIAPI
54 ArmSbbrResetTableCounts (
55 VOID
56 );
57
58 /**
59 Increment instance count for SBBR-mandatory ACPI table with the given
60 signature.
61
62 @param [in] Signature ACPI table signature.
63
64 @retval TRUE Count incremented successfully.
65 @retval FALSE Table with the input signature not found.
66 **/
67 BOOLEAN
68 EFIAPI
69 ArmSbbrIncrementTableCount (
70 UINT32 Signature
71 );
72
73 /**
74 Validate that all ACPI tables required by the given SBBR specification
75 version are installed on the platform.
76
77 @param [in] Version SBBR spec version to validate against.
78
79 @retval EFI_SUCCESS All required tables are present.
80 @retval EFI_INVALID_PARAMETER Invalid SBBR version.
81 @retval EFI_NOT_FOUND One or more mandatory tables are missing.
82 @retval EFI_UNSUPPORTED Mandatory ACPI table does not have its
83 instance count tracked.
84 **/
85 EFI_STATUS
86 EFIAPI
87 ArmSbbrReqsValidate (
88 ARM_SBBR_VERSION Version
89 );
90
91 #endif // SBBR_VALIDATOR_H_