]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Foundation/Framework/Protocol/AcpiSupport/AcpiSupport.h
1) Sync EdkCompatibilityPkg with EDK 1.04. The changes includes:
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Protocol / AcpiSupport / AcpiSupport.h
CommitLineData
3eb9473e 1/*++\r
2\r
2c40a813 3Copyright (c) 1999 - 2007, Intel Corporation\r
3eb9473e 4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12\r
13Module Name:\r
14\r
15 AcpiSupport.h\r
16\r
17Abstract:\r
18\r
19 Definition of the ACPI Support protocol. This is defined in the \r
20 Tiano ACPI External Product Specification, revision 0.5.1.\r
21\r
22--*/\r
23\r
24#ifndef _ACPI_SUPPORT_PROTOCOL_H_\r
25#define _ACPI_SUPPORT_PROTOCOL_H_\r
26\r
27//\r
28// Includes\r
29//\r
30#include "Tiano.h"\r
31\r
32//\r
33// Forward reference for pure ANSI compatability\r
34//\r
35EFI_FORWARD_DECLARATION (EFI_ACPI_SUPPORT_PROTOCOL);\r
36\r
37//\r
38// ACPI Support Protocol GUID\r
39//\r
40#define EFI_ACPI_SUPPORT_GUID \\r
41 { \\r
42 0xdbff9d55, 0x89b7, 0x46da, 0xbd, 0xdf, 0x67, 0x7d, 0x3d, 0xc0, 0x24, 0x1d \\r
43 }\r
44\r
45//\r
46// Extern the GUID for protocol users.\r
47//\r
48extern EFI_GUID gEfiAcpiSupportGuid;\r
49\r
50//\r
51// Protocol Data Definitions\r
52//\r
53//\r
54// ACPI Version bitmap definition:\r
55//\r
56// EFI_ACPI_TABLE_VERSION_1_0B - ACPI Version 1.0b\r
57// EFI_ACPI_TABLE_VERSION_2_0 - ACPI Version 2.0\r
58// EFI_ACPI_TABLE_VERSION_3_0 - ACPI Version 3.0\r
59// EFI_ACPI_TABLE_VERSION_NONE - No ACPI Versions. This might be used\r
60// to create memory-based operation regions or other information\r
61// that is not part of the ACPI "tree" but must still be found\r
62// in ACPI memory space and/or managed by the core ACPI driver.\r
63//\r
64// Note that EFI provides discrete GUIDs for each version of ACPI\r
65// that is supported. It is expected that each EFI GUIDed\r
66// version of ACPI will also have a corresponding bitmap\r
67// definition. This allows maintenance of separate ACPI trees\r
68// for each distinctly different version of ACPI.\r
69//\r
70#define EFI_ACPI_TABLE_VERSION UINT32\r
71\r
72#define EFI_ACPI_TABLE_VERSION_NONE (1 << 0)\r
73#define EFI_ACPI_TABLE_VERSION_1_0B (1 << 1)\r
74#define EFI_ACPI_TABLE_VERSION_2_0 (1 << 2)\r
75#define EFI_ACPI_TABLE_VERSION_3_0 (1 << 3)\r
76\r
77//\r
78// Protocol Member Functions\r
79//\r
80//\r
81// Retrieve a copy of an ACPI table and the handle of the table.\r
82//\r
83typedef\r
84EFI_STATUS\r
3eb9473e 85(EFIAPI *EFI_ACPI_GET_ACPI_TABLE) (\r
86 IN EFI_ACPI_SUPPORT_PROTOCOL * This,\r
87 IN INTN Index,\r
88 OUT VOID **Table,\r
89 OUT EFI_ACPI_TABLE_VERSION * Version,\r
90 OUT UINTN *Handle\r
91 );\r
92\r
93//\r
94// Add, update, or remove a table.\r
95//\r
96typedef\r
97EFI_STATUS\r
3eb9473e 98(EFIAPI *EFI_ACPI_SET_ACPI_TABLE) (\r
99 IN EFI_ACPI_SUPPORT_PROTOCOL * This,\r
100 IN VOID *Table OPTIONAL,\r
101 IN BOOLEAN Checksum,\r
102 IN EFI_ACPI_TABLE_VERSION Version,\r
103 IN OUT UINTN *Handle\r
104 );\r
105\r
106//\r
107// Publish tables to the outside world\r
108//\r
109typedef\r
110EFI_STATUS\r
3eb9473e 111(EFIAPI *EFI_ACPI_PUBLISH_TABLES) (\r
112 IN EFI_ACPI_SUPPORT_PROTOCOL * This,\r
113 IN EFI_ACPI_TABLE_VERSION Version\r
114 );\r
115\r
116//\r
117// ACPI Support Protocol\r
118//\r
119typedef struct _EFI_ACPI_SUPPORT_PROTOCOL {\r
120 EFI_ACPI_GET_ACPI_TABLE GetAcpiTable;\r
121 EFI_ACPI_SET_ACPI_TABLE SetAcpiTable;\r
122 EFI_ACPI_PUBLISH_TABLES PublishTables;\r
123} EFI_ACPI_SUPPORT_PROTOCOL;\r
124\r
125#endif\r