X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=IntelFrameworkPkg%2FInclude%2FProtocol%2FAcpiSupport.h;h=278ef8e42b35764720e4c250af52a8378bcde61e;hp=8955e8e028ab5dc63ed2ab4b77e32092bf9363d1;hb=639a76d1912f8eb07e26b1a8f2393b682be65f2c;hpb=b80fbe8543eb535e40172a263b6b5d633e5b282c
diff --git a/IntelFrameworkPkg/Include/Protocol/AcpiSupport.h b/IntelFrameworkPkg/Include/Protocol/AcpiSupport.h
index 8955e8e028..278ef8e42b 100644
--- a/IntelFrameworkPkg/Include/Protocol/AcpiSupport.h
+++ b/IntelFrameworkPkg/Include/Protocol/AcpiSupport.h
@@ -1,26 +1,32 @@
/** @file
- Definition of the ACPI Support protocol.
-
- Copyright (c) 2007, Intel Corporation
- All rights reserved. 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
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: AcpiSupport.h
+ This protocol provides some basic services to support publishing ACPI system tables. The
+ services handle many of the more mundane tasks that are required to publish a set of tables. The
+ services will:
+ - Generate common tables.
+ - Update the table links.
+ - Ensure that tables are properly aligned and use correct types of memory.
+ - Update checksum values and IDs.
+ - Complete the final installation of the tables.
+
+Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
+This program and the accompanying materials are licensed and made available under
+the terms and conditions of the BSD License that accompanies this distribution.
+The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php.
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
- This is defined in the ACPI Specification 0.9.
+ This Protocol is defined in Framework ACPI Specification.
+ Version 0.9.
**/
#ifndef _ACPI_SUPPORT_PROTOCOL_H_
#define _ACPI_SUPPORT_PROTOCOL_H_
-#include
+#include
typedef struct _EFI_ACPI_SUPPORT_PROTOCOL EFI_ACPI_SUPPORT_PROTOCOL;
@@ -32,32 +38,6 @@ typedef struct _EFI_ACPI_SUPPORT_PROTOCOL EFI_ACPI_SUPPORT_PROTOCOL;
0xdbff9d55, 0x89b7, 0x46da, {0xbd, 0xdf, 0x67, 0x7d, 0x3d, 0xc0, 0x24, 0x1d } \
}
-//
-// Protocol Data Definitions
-//
-//
-// ACPI Version bitmap definition:
-//
-// EFI_ACPI_TABLE_VERSION_1_0B - ACPI Version 1.0b
-// EFI_ACPI_TABLE_VERSION_2_0 - ACPI Version 2.0
-// EFI_ACPI_TABLE_VERSION_3_0 - ACPI Version 3.0
-// EFI_ACPI_TABLE_VERSION_NONE - No ACPI Versions. This might be used
-// to create memory-based operation regions or other information
-// that is not part of the ACPI "tree" but must still be found
-// in ACPI memory space and/or managed by the core ACPI driver.
-//
-// Note that EFI provides discrete GUIDs for each version of ACPI
-// that is supported. It is expected that each EFI GUIDed
-// version of ACPI will also have a corresponding bitmap
-// definition. This allows maintenance of separate ACPI trees
-// for each distinctly different version of ACPI.
-//
-#define EFI_ACPI_TABLE_VERSION UINT32
-
-#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)
//
// Protocol Member Functions
@@ -68,9 +48,9 @@ typedef struct _EFI_ACPI_SUPPORT_PROTOCOL EFI_ACPI_SUPPORT_PROTOCOL;
@param This A pointer to the EFI_ACPI_SUPPORT_PROTOCOL instance.
@param Index The zero-based index of the table to retrieve.
- @param Table Pointer for returning the table buffer.
+ @param Table The pointer for returning the table buffer.
@param Version Updated with the ACPI versions to which this table belongs.
- @param Handle Pointer for identifying the table.
+ @param Handle The pointer for identifying the table.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_NOT_FOUND The requested index is too large and a table was not found.
@@ -78,7 +58,7 @@ typedef struct _EFI_ACPI_SUPPORT_PROTOCOL EFI_ACPI_SUPPORT_PROTOCOL;
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_ACPI_GET_ACPI_TABLE) (
+(EFIAPI *EFI_ACPI_GET_ACPI_TABLE)(
IN EFI_ACPI_SUPPORT_PROTOCOL *This,
IN INTN Index,
OUT VOID **Table,
@@ -90,11 +70,11 @@ EFI_STATUS
Used to add, remove, or update ACPI tables.
@param This A pointer to the EFI_ACPI_SUPPORT_PROTOCOL instance.
- @param Table Pointer to the new table to add or update.
+ @param Table The pointer to the new table to add or update.
@param Checksum If TRUE, indicates that the checksum should be
calculated for this table.
@param Version Indicates to which version(s) of ACPI the table should be added.
- @param Pointer to the handle of the table to remove or update.
+ @param Handle The pointer to the handle of the table to remove or update.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INVALID_PARAMETER *Handle was zero and Table was NULL.
@@ -103,7 +83,7 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_ACPI_SET_ACPI_TABLE) (
+(EFIAPI *EFI_ACPI_SET_ACPI_TABLE)(
IN EFI_ACPI_SUPPORT_PROTOCOL *This,
IN VOID *Table OPTIONAL,
IN BOOLEAN Checksum,
@@ -115,8 +95,13 @@ EFI_STATUS
Causes one or more versions of the ACPI tables to be published in
the EFI system configuration tables.
+ The PublishTables() function installs the ACPI tables for the versions that are specified in
+ Version. No tables are published for Version equal to EFI_ACPI_VERSION_NONE. Once
+ published, tables will continue to be updated as tables are modified with
+ EFI_ACPI_SUPPORT_PROTOCOL.SetAcpiTable().
+
@param This A pointer to the EFI_ACPI_SUPPORT_PROTOCOL instance.
- @param Version Indicates to which version(s) of ACPI that the table should be published.
+ @param Version Indicates to which version(s) of ACPI the table should be published.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_ABORTED An error occurred and the function could not complete successfully.
@@ -124,7 +109,7 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_ACPI_PUBLISH_TABLES) (
+(EFIAPI *EFI_ACPI_PUBLISH_TABLES)(
IN EFI_ACPI_SUPPORT_PROTOCOL *This,
IN EFI_ACPI_TABLE_VERSION Version
);
@@ -133,24 +118,24 @@ EFI_STATUS
// ACPI Support Protocol
//
/**
- @par Protocol Description:
This protocol provides some basic services to support publishing ACPI system
tables. The services handle many of the more mundane tasks that are required
to publish a set of tables.
-
- @param GetAcpiTable
- Returns a table specified by an index if it exists.
-
- @param SetAcpiTable
- Adds, removes, or updates ACPI tables
-
- @param PublishTables
- Publishes the ACPI tables.
-
**/
struct _EFI_ACPI_SUPPORT_PROTOCOL {
+ ///
+ /// Returns a table specified by an index if it exists.
+ ///
EFI_ACPI_GET_ACPI_TABLE GetAcpiTable;
+
+ ///
+ /// Adds, removes, or updates ACPI tables.
+ ///
EFI_ACPI_SET_ACPI_TABLE SetAcpiTable;
+
+ ///
+ /// Publishes the ACPI tables.
+ ///
EFI_ACPI_PUBLISH_TABLES PublishTables;
};