https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
83 lines
2.9 KiB
C
83 lines
2.9 KiB
C
/** @file
|
|
This module provides help function for finding ACPI table.
|
|
|
|
Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#include "UefiLibInternal.h"
|
|
#include <IndustryStandard/Acpi.h>
|
|
|
|
/**
|
|
This function locates next ACPI table in XSDT/RSDT based on Signature and
|
|
previous returned Table.
|
|
|
|
If PreviousTable is NULL:
|
|
This function will locate the first ACPI table in XSDT/RSDT based on
|
|
Signature in gEfiAcpi20TableGuid system configuration table first, and then
|
|
gEfiAcpi10TableGuid system configuration table.
|
|
This function will locate in XSDT first, and then RSDT.
|
|
For DSDT, this function will locate XDsdt in FADT first, and then Dsdt in
|
|
FADT.
|
|
For FACS, this function will locate XFirmwareCtrl in FADT first, and then
|
|
FirmwareCtrl in FADT.
|
|
|
|
If PreviousTable is not NULL:
|
|
1. If it could be located in XSDT in gEfiAcpi20TableGuid system configuration
|
|
table, then this function will just locate next table in XSDT in
|
|
gEfiAcpi20TableGuid system configuration table.
|
|
2. If it could be located in RSDT in gEfiAcpi20TableGuid system configuration
|
|
table, then this function will just locate next table in RSDT in
|
|
gEfiAcpi20TableGuid system configuration table.
|
|
3. If it could be located in RSDT in gEfiAcpi10TableGuid system configuration
|
|
table, then this function will just locate next table in RSDT in
|
|
gEfiAcpi10TableGuid system configuration table.
|
|
|
|
It's not supported that PreviousTable is not NULL but PreviousTable->Signature
|
|
is not same with Signature, NULL will be returned.
|
|
|
|
@param Signature ACPI table signature.
|
|
@param PreviousTable Pointer to previous returned table to locate next
|
|
table, or NULL to locate first table.
|
|
|
|
@return Next ACPI table or NULL if not found.
|
|
|
|
**/
|
|
EFI_ACPI_COMMON_HEADER *
|
|
EFIAPI
|
|
EfiLocateNextAcpiTable (
|
|
IN UINT32 Signature,
|
|
IN EFI_ACPI_COMMON_HEADER *PreviousTable OPTIONAL
|
|
)
|
|
{
|
|
ASSERT (FALSE);
|
|
return NULL;
|
|
}
|
|
|
|
/**
|
|
This function locates first ACPI table in XSDT/RSDT based on Signature.
|
|
|
|
This function will locate the first ACPI table in XSDT/RSDT based on
|
|
Signature in gEfiAcpi20TableGuid system configuration table first, and then
|
|
gEfiAcpi10TableGuid system configuration table.
|
|
This function will locate in XSDT first, and then RSDT.
|
|
For DSDT, this function will locate XDsdt in FADT first, and then Dsdt in
|
|
FADT.
|
|
For FACS, this function will locate XFirmwareCtrl in FADT first, and then
|
|
FirmwareCtrl in FADT.
|
|
|
|
@param Signature ACPI table signature.
|
|
|
|
@return First ACPI table or NULL if not found.
|
|
|
|
**/
|
|
EFI_ACPI_COMMON_HEADER *
|
|
EFIAPI
|
|
EfiLocateFirstAcpiTable (
|
|
IN UINT32 Signature
|
|
)
|
|
{
|
|
return EfiLocateNextAcpiTable (Signature, NULL);
|
|
}
|