MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
AcpiSystemDescriptionTable.h File Reference

Data Structures

struct  EFI_ACPI_SDT_HEADER
 
struct  _EFI_ACPI_SDT_PROTOCOL
 

Macros

#define EFI_ACPI_SDT_PROTOCOL_GUID   { 0xeb97088e, 0xcfdf, 0x49c6, { 0xbe, 0x4b, 0xd9, 0x6, 0xa5, 0xb2, 0xe, 0x86 }}
 
#define EFI_ACPI_TABLE_VERSION_NONE   (1 << 0)
 
#define EFI_ACPI_TABLE_VERSION_1_0B   (1 << 1)
 
#define EFI_ACPI_TABLE_VERSION_2_0   (1 << 2)
 
#define EFI_ACPI_TABLE_VERSION_3_0   (1 << 3)
 
#define EFI_ACPI_TABLE_VERSION_4_0   (1 << 4)
 
#define EFI_ACPI_TABLE_VERSION_5_0   (1 << 5)
 
#define EFI_ACPI_DATA_TYPE_NONE   0
 
#define EFI_ACPI_DATA_TYPE_OPCODE   1
 
#define EFI_ACPI_DATA_TYPE_NAME_STRING   2
 
#define EFI_ACPI_DATA_TYPE_OP   3
 
#define EFI_ACPI_DATA_TYPE_UINT   4
 
#define EFI_ACPI_DATA_TYPE_STRING   5
 
#define EFI_ACPI_DATA_TYPE_CHILD   6
 

Typedefs

typedef UINT32 EFI_ACPI_TABLE_VERSION
 
typedef VOIDEFI_ACPI_HANDLE
 
typedef UINT32 EFI_ACPI_DATA_TYPE
 
typedef EFI_STATUS(EFIAPIEFI_ACPI_NOTIFICATION_FN )(IN EFI_ACPI_SDT_HEADER *Table, IN EFI_ACPI_TABLE_VERSION Version, IN UINTN TableKey)
 
typedef EFI_STATUS(EFIAPIEFI_ACPI_GET_ACPI_TABLE2 )(IN UINTN Index, OUT EFI_ACPI_SDT_HEADER **Table, OUT EFI_ACPI_TABLE_VERSION *Version, OUT UINTN *TableKey)
 
typedef EFI_STATUS(EFIAPIEFI_ACPI_REGISTER_NOTIFY )(IN BOOLEAN Register, IN EFI_ACPI_NOTIFICATION_FN Notification)
 
typedef EFI_STATUS(EFIAPIEFI_ACPI_OPEN )(IN VOID *Buffer, OUT EFI_ACPI_HANDLE *Handle)
 
typedef EFI_STATUS(EFIAPIEFI_ACPI_OPEN_SDT )(IN UINTN TableKey, OUT EFI_ACPI_HANDLE *Handle)
 
typedef EFI_STATUS(EFIAPIEFI_ACPI_CLOSE )(IN EFI_ACPI_HANDLE Handle)
 
typedef EFI_STATUS(EFIAPIEFI_ACPI_GET_CHILD )(IN EFI_ACPI_HANDLE ParentHandle, IN OUT EFI_ACPI_HANDLE *Handle)
 
typedef EFI_STATUS(EFIAPIEFI_ACPI_GET_OPTION )(IN EFI_ACPI_HANDLE Handle, IN UINTN Index, OUT EFI_ACPI_DATA_TYPE *DataType, OUT CONST VOID **Data, OUT UINTN *DataSize)
 
typedef EFI_STATUS(EFIAPIEFI_ACPI_SET_OPTION )(IN EFI_ACPI_HANDLE Handle, IN UINTN Index, IN CONST VOID *Data, IN UINTN DataSize)
 
typedef EFI_STATUS(EFIAPIEFI_ACPI_FIND_PATH )(IN EFI_ACPI_HANDLE HandleIn, IN VOID *AcpiPath, OUT EFI_ACPI_HANDLE *HandleOut)
 
typedef struct
_EFI_ACPI_SDT_PROTOCOL 
EFI_ACPI_SDT_PROTOCOL
 

Variables

EFI_GUID gEfiAcpiSdtProtocolGuid
 

Detailed Description

This protocol provides services for creating ACPI system description tables.

Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Revision Reference:
This Protocol was introduced in PI Specification 1.2.

Macro Definition Documentation

#define EFI_ACPI_DATA_TYPE_CHILD   6
#define EFI_ACPI_DATA_TYPE_NAME_STRING   2
#define EFI_ACPI_DATA_TYPE_NONE   0
#define EFI_ACPI_DATA_TYPE_OP   3
#define EFI_ACPI_DATA_TYPE_OPCODE   1
#define EFI_ACPI_DATA_TYPE_STRING   5
#define EFI_ACPI_DATA_TYPE_UINT   4
#define EFI_ACPI_SDT_PROTOCOL_GUID   { 0xeb97088e, 0xcfdf, 0x49c6, { 0xbe, 0x4b, 0xd9, 0x6, 0xa5, 0xb2, 0xe, 0x86 }}
#define EFI_ACPI_TABLE_VERSION_1_0B   (1 << 1)
#define EFI_ACPI_TABLE_VERSION_2_0   (1 << 2)
#define EFI_ACPI_TABLE_VERSION_3_0   (1 << 3)
#define EFI_ACPI_TABLE_VERSION_4_0   (1 << 4)
#define EFI_ACPI_TABLE_VERSION_5_0   (1 << 5)
#define EFI_ACPI_TABLE_VERSION_NONE   (1 << 0)

Typedef Documentation

typedef EFI_STATUS(EFIAPI * EFI_ACPI_CLOSE)(IN EFI_ACPI_HANDLE Handle)

Close an ACPI handle.

Parameters
[in]HandleReturns the handle.
Return values
EFI_SUCCESSSuccess
EFI_INVALID_PARAMETERHandle is NULL or does not refer to a valid ACPI object.
typedef EFI_STATUS(EFIAPI * EFI_ACPI_FIND_PATH)(IN EFI_ACPI_HANDLE HandleIn, IN VOID *AcpiPath, OUT EFI_ACPI_HANDLE *HandleOut)

Returns the handle of the ACPI object representing the specified ACPI path

Parameters
[in]HandleInPoints to the handle of the object representing the starting point for the path search.
[in]AcpiPathPoints to the ACPI path, which conforms to the ACPI encoded path format.
[out]HandleOutOn return, points to the ACPI object which represents AcpiPath, relative to HandleIn.
Return values
EFI_SUCCESSSuccess
EFI_INVALID_PARAMETERHandleIn is NULL or does not refer to a valid ACPI object.
typedef EFI_STATUS(EFIAPI * EFI_ACPI_GET_ACPI_TABLE2)(IN UINTN Index, OUT EFI_ACPI_SDT_HEADER **Table, OUT EFI_ACPI_TABLE_VERSION *Version, OUT UINTN *TableKey)

Returns a requested ACPI table.

The GetAcpiTable() function returns a pointer to a buffer containing the ACPI table associated with the Index that was input. The following structures are not considered elements in the list of ACPI tables:

  • Root System Description Pointer (RSD_PTR)
  • Root System Description Table (RSDT)
  • Extended System Description Table (XSDT) Version is updated with a bit map containing all the versions of ACPI of which the table is a member. For tables installed via the EFI_ACPI_TABLE_PROTOCOL.InstallAcpiTable() interface, the function returns the value of EFI_ACPI_STD_PROTOCOL.AcpiVersion.
Parameters
[in]IndexThe zero-based index of the table to retrieve.
[out]TablePointer for returning the table buffer.
[out]VersionOn return, updated with the ACPI versions to which this table belongs. Type EFI_ACPI_TABLE_VERSION is defined in "Related Definitions" in the EFI_ACPI_SDT_PROTOCOL.
[out]TableKeyOn return, points to the table key for the specified ACPI system definition table. This is identical to the table key used in the EFI_ACPI_TABLE_PROTOCOL. The TableKey can be passed to EFI_ACPI_TABLE_PROTOCOL.UninstallAcpiTable() to uninstall the table.
Return values
EFI_SUCCESSThe function completed successfully.
EFI_NOT_FOUNDThe requested index is too large and a table was not found.
typedef EFI_STATUS(EFIAPI * EFI_ACPI_GET_CHILD)(IN EFI_ACPI_HANDLE ParentHandle, IN OUT EFI_ACPI_HANDLE *Handle)

Return the child ACPI objects.

Parameters
[in]ParentHandleParent handle.
[in,out]HandleOn entry, points to the previously returned handle or NULL to start with the first handle. On return, points to the next returned ACPI handle or NULL if there are no child objects.
Return values
EFI_SUCCESSSuccess
EFI_INVALID_PARAMETERParentHandle is NULL or does not refer to a valid ACPI object.

Retrieve information about an ACPI object.

Parameters
[in]HandleACPI object handle.
[in]IndexIndex of the data to retrieve from the object. In general, indexes read from left-to-right in the ACPI encoding, with index 0 always being the ACPI opcode.
[out]DataTypePoints to the returned data type or EFI_ACPI_DATA_TYPE_NONE if no data exists for the specified index.
[out]DataUpon return, points to the pointer to the data.
[out]DataSizeUpon return, points to the size of Data.
Return values
typedef EFI_STATUS(EFIAPI * EFI_ACPI_NOTIFICATION_FN)(IN EFI_ACPI_SDT_HEADER *Table,IN EFI_ACPI_TABLE_VERSION Version,IN UINTN TableKey)
typedef EFI_STATUS(EFIAPI * EFI_ACPI_OPEN)(IN VOID *Buffer, OUT EFI_ACPI_HANDLE *Handle)

Create a handle from an ACPI opcode

Parameters
[in]BufferPoints to the ACPI opcode.
[out]HandleUpon return, holds the handle.
Return values
EFI_SUCCESSSuccess
EFI_INVALID_PARAMETERBuffer is NULL or Handle is NULL or Buffer points to an invalid opcode.
typedef EFI_STATUS(EFIAPI * EFI_ACPI_OPEN_SDT)(IN UINTN TableKey, OUT EFI_ACPI_HANDLE *Handle)

Create a handle for the first ACPI opcode in an ACPI system description table.

Parameters
[in]TableKeyThe table key for the ACPI table, as returned by GetTable().
[out]HandleOn return, points to the newly created ACPI handle.
Return values
EFI_SUCCESSHandle created successfully.
EFI_NOT_FOUNDTableKey does not refer to a valid ACPI table.
typedef EFI_STATUS(EFIAPI * EFI_ACPI_REGISTER_NOTIFY)(IN BOOLEAN Register, IN EFI_ACPI_NOTIFICATION_FN Notification)

Register or unregister a callback when an ACPI table is installed.

This function registers or unregisters a function which will be called whenever a new ACPI table is installed.

Parameters
[in]RegisterIf TRUE, then the specified function will be registered. If FALSE, then the specified function will be unregistered.
[in]NotificationPoints to the callback function to be registered or unregistered.
Return values
EFI_SUCCESSCallback successfully registered or unregistered.
EFI_INVALID_PARAMETERNotification is NULL
EFI_INVALID_PARAMETERRegister is FALSE and Notification does not match a known registration function.
typedef EFI_STATUS(EFIAPI * EFI_ACPI_SET_OPTION)(IN EFI_ACPI_HANDLE Handle, IN UINTN Index, IN CONST VOID *Data, IN UINTN DataSize)

Change information about an ACPI object.

Parameters
[in]HandleACPI object handle.
[in]IndexIndex of the data to retrieve from the object. In general, indexes read from left-to-right in the ACPI encoding, with index 0 always being the ACPI opcode.
[in]DataPoints to the data.
[in]DataSizeThe size of the Data.
Return values
EFI_SUCCESSSuccess
EFI_INVALID_PARAMETERHandle is NULL or does not refer to a valid ACPI object.
EFI_BAD_BUFFER_SIZEData cannot be accommodated in the space occupied by the option.

Variable Documentation

EFI_GUID gEfiAcpiSdtProtocolGuid