]> git.proxmox.com Git - mirror_edk2.git/blame - OldMdePkg/Include/Protocol/AcpiTable.h
Adding top-level Conf directory for next generation of EDK II build infrastructure...
[mirror_edk2.git] / OldMdePkg / Include / Protocol / AcpiTable.h
CommitLineData
06fb8ffd 1/** @file\r
2 This protocol may be used to install or remove an ACPI table from a platform.\r
3\r
4 Copyright (c) 2007, Intel Corporation \r
5 All rights reserved. This program and the accompanying materials \r
6 are licensed and made available under the terms and conditions of the BSD License \r
7 which accompanies this distribution. The full text of the license may be found at \r
8 http://opensource.org/licenses/bsd-license.php \r
9 \r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
12\r
13 Module Name: AcpiTable.h\r
14\r
15 @par Revision Reference:\r
16 ACPI Table Protocol from the UEFI 2.1 specification.\r
17\r
18**/\r
19\r
20#ifndef __ACPI_TABLE_H__\r
21#define __ACPI_TABLE_H__\r
22\r
23//\r
24// Global ID for the Acpi Table Protocol\r
25//\r
26#define EFI_ACPI_TABLE_PROTOCOL_GUID \\r
27 { \\r
28 0xffe06bdd, 0x6107, 0x46a6, {0x7b, 0xb2, 0x5a, 0x9c, 0x7e, 0xc5, 0x27, 0x5c} \\r
29 }\r
30\r
31typedef struct _EFI_ACPI_TABLE_PROTOCOL EFI_ACPI_TABLE_PROTOCOL;\r
32\r
33#define UEFI_ACPI_TABLE_SIGNATURE EFI_SIGNATURE_32 ('U', 'E', 'F', 'I')\r
34\r
35/**\r
36 Installs an ACPI table into the RSDT/XSDT.\r
37\r
38 @param This Protocol instance pointer. \r
39 @param AcpiTableBuffer A pointer to a buffer containing the ACPI table \r
40 to be installed. \r
41 @param AcpiTableBufferSize Specifies the size, in bytes, of the \r
42 AcpiTableBuffer buffer. \r
43 @param TableKey Reurns a key to refer to the ACPI table. \r
44\r
45 @retval EFI_SUCCESS The table was successfully inserted. \r
46 @retval EFI_INVALID_PARAMETER Either AcpiTableBuffer is NULL, TableKey is \r
47 NULL, or AcpiTableBufferSize and the size field \r
48 embedded in the ACPI table pointed to by \r
49 AcpiTableBuffer are not in sync. \r
50 @retval EFI_OUT_OF_RESOURCES Insufficient resources exist to complete the \r
51 request. \r
52\r
53**/\r
54typedef\r
55EFI_STATUS\r
56(EFIAPI *EFI_ACPI_TABLE_INSTALL_ACPI_TABLE) (\r
57 IN EFI_ACPI_TABLE_PROTOCOL *This,\r
58 IN VOID *AcpiTableBuffer,\r
59 IN UINTN AcpiTableBufferSize,\r
60 OUT UINTN *TableKey\r
61 )\r
62;\r
63\r
64/**\r
65 Removes an ACPI table from the RSDT/XSDT.\r
66\r
67 @param This Protocol instance pointer. \r
68 @param TableKey Specifies the table to uninstall. The key was \r
69 returned from InstallAcpiTable(). \r
70\r
71 @retval EFI_SUCCESS The table was successfully uninstalled. \r
72 @retval EFI_NOT_FOUND TableKey does not refer to a valid key for a \r
73 table entry. \r
74\r
75**/\r
76typedef\r
77EFI_STATUS\r
78(EFIAPI *EFI_ACPI_TABLE_UNINSTALL_ACPI_TABLE) (\r
79 IN EFI_ACPI_TABLE_PROTOCOL *This,\r
80 IN UINTN TableKey\r
81 )\r
82;\r
83\r
84//\r
85// Interface structure for the ACPI Table Protocol\r
86//\r
87struct _EFI_ACPI_TABLE_PROTOCOL {\r
88 EFI_ACPI_TABLE_INSTALL_ACPI_TABLE InstallAcpiTable;\r
89 EFI_ACPI_TABLE_UNINSTALL_ACPI_TABLE UninstallAcpiTable;\r
90};\r
91\r
92//\r
93// Extern the GUID for protocol users.\r
94//\r
95extern EFI_GUID gEfiAcpiTableProtocolGuid;\r
96\r
97#endif\r