13eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/*++ 23eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3f57387d54bd8f2c0261834b2ad16155f1db63291hhtianCopyright (c) 1999 - 2007, Intel Corporation. All rights reserved.<BR> 4f57387d54bd8f2c0261834b2ad16155f1db63291hhtianThis program and the accompanying materials 53eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangare licensed and made available under the terms and conditions of the BSD License 63eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangwhich accompanies this distribution. The full text of the license may be found at 73eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwanghttp://opensource.org/licenses/bsd-license.php 83eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 93eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 103eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 113eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 123eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 133eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangModule Name: 143eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 153eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang AcpiSupport.h 163eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 173eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangAbstract: 183eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 193eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang Definition of the ACPI Support protocol. This is defined in the 203eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang Tiano ACPI External Product Specification, revision 0.5.1. 213eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 223eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang--*/ 233eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 243eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#ifndef _ACPI_SUPPORT_PROTOCOL_H_ 253eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define _ACPI_SUPPORT_PROTOCOL_H_ 263eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 273eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 283eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Includes 293eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 303eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#include "Tiano.h" 313eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 323eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 333eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Forward reference for pure ANSI compatability 343eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 353eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangEFI_FORWARD_DECLARATION (EFI_ACPI_SUPPORT_PROTOCOL); 363eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 373eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 383eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// ACPI Support Protocol GUID 393eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 403eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_ACPI_SUPPORT_GUID \ 413eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang { \ 427ccf38a33e1e227131c170a621d183b3bacef148qhuang 0xdbff9d55, 0x89b7, 0x46da, {0xbd, 0xdf, 0x67, 0x7d, 0x3d, 0xc0, 0x24, 0x1d} \ 433eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang } 443eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 453eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 463eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Extern the GUID for protocol users. 473eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 483eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangextern EFI_GUID gEfiAcpiSupportGuid; 493eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 503eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 513eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Protocol Data Definitions 523eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 533eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 543eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// ACPI Version bitmap definition: 553eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 563eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// EFI_ACPI_TABLE_VERSION_1_0B - ACPI Version 1.0b 573eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// EFI_ACPI_TABLE_VERSION_2_0 - ACPI Version 2.0 583eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// EFI_ACPI_TABLE_VERSION_3_0 - ACPI Version 3.0 593eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// EFI_ACPI_TABLE_VERSION_NONE - No ACPI Versions. This might be used 603eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// to create memory-based operation regions or other information 613eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// that is not part of the ACPI "tree" but must still be found 623eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// in ACPI memory space and/or managed by the core ACPI driver. 633eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 643eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Note that EFI provides discrete GUIDs for each version of ACPI 653eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// that is supported. It is expected that each EFI GUIDed 663eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// version of ACPI will also have a corresponding bitmap 673eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// definition. This allows maintenance of separate ACPI trees 683eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// for each distinctly different version of ACPI. 693eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 703eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_ACPI_TABLE_VERSION UINT32 713eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 723eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_ACPI_TABLE_VERSION_NONE (1 << 0) 733eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_ACPI_TABLE_VERSION_1_0B (1 << 1) 743eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_ACPI_TABLE_VERSION_2_0 (1 << 2) 753eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_ACPI_TABLE_VERSION_3_0 (1 << 3) 763eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 773eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 783eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Protocol Member Functions 793eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 803eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 813eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Retrieve a copy of an ACPI table and the handle of the table. 823eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 833eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef 843eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangEFI_STATUS 853eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang(EFIAPI *EFI_ACPI_GET_ACPI_TABLE) ( 863eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN EFI_ACPI_SUPPORT_PROTOCOL * This, 873eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN INTN Index, 883eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang OUT VOID **Table, 893eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang OUT EFI_ACPI_TABLE_VERSION * Version, 903eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang OUT UINTN *Handle 913eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang ); 923eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 933eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 943eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Add, update, or remove a table. 953eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 963eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef 973eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangEFI_STATUS 983eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang(EFIAPI *EFI_ACPI_SET_ACPI_TABLE) ( 993eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN EFI_ACPI_SUPPORT_PROTOCOL * This, 1003eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN VOID *Table OPTIONAL, 1013eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN BOOLEAN Checksum, 1023eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN EFI_ACPI_TABLE_VERSION Version, 1033eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN OUT UINTN *Handle 1043eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang ); 1053eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1063eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1073eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Publish tables to the outside world 1083eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1093eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef 1103eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangEFI_STATUS 1113eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang(EFIAPI *EFI_ACPI_PUBLISH_TABLES) ( 1123eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN EFI_ACPI_SUPPORT_PROTOCOL * This, 1133eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang IN EFI_ACPI_TABLE_VERSION Version 1143eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang ); 1153eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1163eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1173eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// ACPI Support Protocol 1183eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1195d46191d8fa6bb1ac94f697136b3444c61e8777cjljustenstruct _EFI_ACPI_SUPPORT_PROTOCOL { 1203eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_ACPI_GET_ACPI_TABLE GetAcpiTable; 1213eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_ACPI_SET_ACPI_TABLE SetAcpiTable; 1223eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_ACPI_PUBLISH_TABLES PublishTables; 1235d46191d8fa6bb1ac94f697136b3444c61e8777cjljusten}; 1243eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1253eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#endif 126