/** @file
This is an implementation of the ACPI Support protocol.
It is in compliance with the 0.9 definition of the protocol.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions
of the BSD License which accompanies this distribution. The
full text of the license may be found at
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef _ACPI_SUPPORT_H_
#define _ACPI_SUPPORT_H_
#include <PiDxe.h>
#include <Protocol/AcpiTable.h>
#include <Protocol/AcpiSupport.h>
#include <Library/DebugLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/UefiDriverEntryPoint.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/UefiBootServicesTableLib.h>
//
// Statements that include other files
//
#include <IndustryStandard/Acpi.h>
//
// Private Driver Data
//
//
// ACPI Table Linked List Signature.
//
//
// ACPI Table Linked List Entry definition.
//
// Signature must be set to EFI_ACPI_TABLE_LIST_SIGNATURE
// Link is the linked list data.
// Version is the versions of the ACPI tables that this table belongs in.
// Table is a pointer to the table.
// PageAddress is the address of the pages allocated for the table.
// NumberOfPages is the number of pages allocated at PageAddress.
// Handle is used to identify a particular table.
//
typedef struct {
//
// Containment record for linked list.
//
#define EFI_ACPI_TABLE_LIST_FROM_LINK(_link) CR (_link, EFI_ACPI_TABLE_LIST, Link, EFI_ACPI_TABLE_LIST_SIGNATURE)
//
// The maximum number of tables this driver supports
//
//
// ACPI table information used to initialize tables.
//
//
// Protocol private structure definition
//
//
// ACPI support protocol instance signature definition.
//
//
// ACPI support protocol instance data structure
//
typedef struct {
//
// ACPI support protocol instance containing record macro
//
#define EFI_ACPI_SUPPORT_INSTANCE_FROM_ACPI_SUPPORT_THIS(a) \
CR (a, \
AcpiSupport, \
)
//
// ACPI table protocol instance containing record macro
//
#define EFI_ACPI_TABLE_INSTANCE_FROM_ACPI_SUPPORT_THIS(a) \
CR (a, \
)
/**
Constructor for the ACPI support protocol.
Constructor for the ACPI support protocol to initializes instance data.
@param AcpiSupportInstance Instance to construct
@retval EFI_SUCCESS Instance initialized.
@retval EFI_OUT_OF_RESOURCES Unable to allocate required resources.
**/
);
/**
Entry point of the ACPI support driver. This function creates and initializes an instance of the ACPI Support
Protocol and installs it on a new handle.
@param ImageHandle A handle for the image that is initializing this driver
@param SystemTable A pointer to the EFI system table
@retval EFI_SUCCESS Driver initialized successfully
@retval EFI_LOAD_ERROR Failed to Initialize or has been loaded
@retval EFI_OUT_OF_RESOURCES Could not allocate needed resources
**/
);
#endif