+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name:\r
-\r
- AcpiTable.h\r
-\r
-Abstract:\r
-\r
- ACPI Table Protocol from the UEFI 2.1 specification.\r
-\r
- This protocol may be used to install or remove an ACPI table from a platform.\r
-\r
---*/\r
-\r
-#ifndef __ACPI_TABLE_H__\r
-#define __ACPI_TABLE_H__\r
-\r
-#include "Acpi.h"\r
-\r
-//\r
-// Global ID for the Acpi Table Protocol\r
-//\r
-#define EFI_ACPI_TABLE_PROTOCOL_GUID \\r
- { \\r
- 0xffe06bdd, 0x6107, 0x46a6, {0x7b, 0xb2, 0x5a, 0x9c, 0x7e, 0xc5, 0x27, 0x5c} \\r
- }\r
-\r
-EFI_FORWARD_DECLARATION (EFI_ACPI_TABLE_PROTOCOL);\r
-\r
-#define UEFI_ACPI_TABLE_SIGNATURE EFI_SIGNATURE_32 ('U', 'E', 'F', 'I')\r
-\r
-#pragma pack(1)\r
-\r
-typedef struct {\r
- EFI_ACPI_DESCRIPTION_HEADER Header;\r
- EFI_GUID Identifier;\r
- UINT16 DataOffset;\r
-} EFI_ACPI_TABLE;\r
-\r
-#pragma pack()\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_ACPI_TABLE_INSTALL_ACPI_TABLE) (\r
- IN EFI_ACPI_TABLE_PROTOCOL *This,\r
- IN VOID *AcpiTableBuffer,\r
- IN UINTN AcpiTableBufferSize,\r
- OUT UINTN *TableKey\r
- )\r
-/*++\r
-\r
- Routine Description:\r
- Installs an ACPI table into the RSDT/XSDT.\r
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- AcpiTableBuffer - A pointer to a buffer containing the ACPI table to be installed.\r
- AcpiTableBufferSize - Specifies the size, in bytes, of the AcpiTableBuffer buffer.\r
- TableKey - Reurns a key to refer to the ACPI table.\r
-\r
- Returns:\r
- EFI_SUCCESS - The table was successfully inserted.\r
- EFI_INVALID_PARAMETER - Either AcpiTableBuffer is NULL, TableKey is NULL, or AcpiTableBufferSize \r
- and the size field embedded in the ACPI table pointed to by AcpiTableBuffer\r
- are not in sync.\r
- EFI_OUT_OF_RESOURCES - Insufficient resources exist to complete the request.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_ACPI_TABLE_UNINSTALL_ACPI_TABLE) (\r
- IN EFI_ACPI_TABLE_PROTOCOL *This,\r
- IN UINTN TableKey\r
- )\r
-/*++\r
-\r
- Routine Description:\r
- Removes an ACPI table from the RSDT/XSDT.\r
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- TableKey - Specifies the table to uninstall. The key was returned from InstallAcpiTable().\r
-\r
- Returns:\r
- EFI_SUCCESS - The table was successfully uninstalled.\r
- EFI_NOT_FOUND - TableKey does not refer to a valid key for a table entry.\r
-\r
---*/\r
-;\r
-\r
-//\r
-// Interface structure for the ACPI Table Protocol\r
-//\r
-struct _EFI_ACPI_TABLE_PROTOCOL {\r
- EFI_ACPI_TABLE_INSTALL_ACPI_TABLE InstallAcpiTable;\r
- EFI_ACPI_TABLE_UNINSTALL_ACPI_TABLE UninstallAcpiTable;\r
-};\r
-\r
-extern EFI_GUID gEfiAcpiTableProtocolGuid;\r
-\r
-#endif\r