3 Copyright (c) 1999 - 2007, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
19 Definition of the ACPI Support protocol. This is defined in the
20 Tiano ACPI External Product Specification, revision 0.5.1.
24 #ifndef _ACPI_SUPPORT_PROTOCOL_H_
25 #define _ACPI_SUPPORT_PROTOCOL_H_
33 // Forward reference for pure ANSI compatability
35 EFI_FORWARD_DECLARATION (EFI_ACPI_SUPPORT_PROTOCOL
);
38 // ACPI Support Protocol GUID
40 #define EFI_ACPI_SUPPORT_GUID \
42 0xdbff9d55, 0x89b7, 0x46da, {0xbd, 0xdf, 0x67, 0x7d, 0x3d, 0xc0, 0x24, 0x1d} \
46 // Extern the GUID for protocol users.
48 extern EFI_GUID gEfiAcpiSupportGuid
;
51 // Protocol Data Definitions
54 // ACPI Version bitmap definition:
56 // EFI_ACPI_TABLE_VERSION_1_0B - ACPI Version 1.0b
57 // EFI_ACPI_TABLE_VERSION_2_0 - ACPI Version 2.0
58 // EFI_ACPI_TABLE_VERSION_3_0 - ACPI Version 3.0
59 // EFI_ACPI_TABLE_VERSION_NONE - No ACPI Versions. This might be used
60 // to create memory-based operation regions or other information
61 // that is not part of the ACPI "tree" but must still be found
62 // in ACPI memory space and/or managed by the core ACPI driver.
64 // Note that EFI provides discrete GUIDs for each version of ACPI
65 // that is supported. It is expected that each EFI GUIDed
66 // version of ACPI will also have a corresponding bitmap
67 // definition. This allows maintenance of separate ACPI trees
68 // for each distinctly different version of ACPI.
70 #define EFI_ACPI_TABLE_VERSION UINT32
72 #define EFI_ACPI_TABLE_VERSION_NONE (1 << 0)
73 #define EFI_ACPI_TABLE_VERSION_1_0B (1 << 1)
74 #define EFI_ACPI_TABLE_VERSION_2_0 (1 << 2)
75 #define EFI_ACPI_TABLE_VERSION_3_0 (1 << 3)
78 // Protocol Member Functions
81 // Retrieve a copy of an ACPI table and the handle of the table.
85 (EFIAPI
*EFI_ACPI_GET_ACPI_TABLE
) (
86 IN EFI_ACPI_SUPPORT_PROTOCOL
* This
,
89 OUT EFI_ACPI_TABLE_VERSION
* Version
,
94 // Add, update, or remove a table.
98 (EFIAPI
*EFI_ACPI_SET_ACPI_TABLE
) (
99 IN EFI_ACPI_SUPPORT_PROTOCOL
* This
,
100 IN VOID
*Table OPTIONAL
,
102 IN EFI_ACPI_TABLE_VERSION Version
,
107 // Publish tables to the outside world
111 (EFIAPI
*EFI_ACPI_PUBLISH_TABLES
) (
112 IN EFI_ACPI_SUPPORT_PROTOCOL
* This
,
113 IN EFI_ACPI_TABLE_VERSION Version
117 // ACPI Support Protocol
119 struct _EFI_ACPI_SUPPORT_PROTOCOL
{
120 EFI_ACPI_GET_ACPI_TABLE GetAcpiTable
;
121 EFI_ACPI_SET_ACPI_TABLE SetAcpiTable
;
122 EFI_ACPI_PUBLISH_TABLES PublishTables
;