git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10435 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			113 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*++
 | 
						|
 | 
						|
Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
 | 
						|
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:
 | 
						|
 | 
						|
  AcpiTable.h
 | 
						|
 | 
						|
Abstract:
 | 
						|
 | 
						|
  ACPI Table Protocol from the UEFI 2.1 specification.
 | 
						|
 | 
						|
  This protocol may be used to install or remove an ACPI table from a platform.
 | 
						|
 | 
						|
--*/
 | 
						|
 | 
						|
#ifndef __ACPI_TABLE_H__
 | 
						|
#define __ACPI_TABLE_H__
 | 
						|
 | 
						|
#include "Acpi.h"
 | 
						|
 | 
						|
//
 | 
						|
// Global ID for the Acpi Table Protocol
 | 
						|
//
 | 
						|
#define EFI_ACPI_TABLE_PROTOCOL_GUID \
 | 
						|
  { \
 | 
						|
    0xffe06bdd, 0x6107, 0x46a6, {0x7b, 0xb2, 0x5a, 0x9c, 0x7e, 0xc5, 0x27, 0x5c} \
 | 
						|
  }
 | 
						|
 | 
						|
EFI_FORWARD_DECLARATION (EFI_ACPI_TABLE_PROTOCOL);
 | 
						|
 | 
						|
#define UEFI_ACPI_TABLE_SIGNATURE    EFI_SIGNATURE_32 ('U', 'E', 'F', 'I')
 | 
						|
 | 
						|
#pragma pack(1)
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  EFI_ACPI_DESCRIPTION_HEADER  Header;
 | 
						|
  EFI_GUID                     Identifier;
 | 
						|
  UINT16                       DataOffset;
 | 
						|
} EFI_ACPI_TABLE;
 | 
						|
 | 
						|
#pragma pack()
 | 
						|
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_ACPI_TABLE_INSTALL_ACPI_TABLE) (
 | 
						|
  IN EFI_ACPI_TABLE_PROTOCOL                    *This,
 | 
						|
  IN VOID                                       *AcpiTableBuffer,
 | 
						|
  IN UINTN                                      AcpiTableBufferSize,
 | 
						|
  OUT UINTN                                     *TableKey
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
  Routine Description:
 | 
						|
    Installs an ACPI table into the RSDT/XSDT.
 | 
						|
 | 
						|
  Arguments:
 | 
						|
    This                  - Protocol instance pointer.
 | 
						|
    AcpiTableBuffer       - A pointer to a buffer containing the ACPI table to be installed.
 | 
						|
    AcpiTableBufferSize   - Specifies the size, in bytes, of the AcpiTableBuffer buffer.
 | 
						|
    TableKey              - Reurns a key to refer to the ACPI table.
 | 
						|
 | 
						|
  Returns:
 | 
						|
    EFI_SUCCESS           - The table was successfully inserted.
 | 
						|
    EFI_INVALID_PARAMETER - Either AcpiTableBuffer is NULL, TableKey is NULL, or AcpiTableBufferSize 
 | 
						|
                            and the size field embedded in the ACPI table pointed to by AcpiTableBuffer
 | 
						|
                            are not in sync.
 | 
						|
    EFI_OUT_OF_RESOURCES  - Insufficient resources exist to complete the request.
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_ACPI_TABLE_UNINSTALL_ACPI_TABLE) (
 | 
						|
  IN EFI_ACPI_TABLE_PROTOCOL                    *This,
 | 
						|
  IN UINTN                                      TableKey
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
  Routine Description:
 | 
						|
    Removes an ACPI table from the RSDT/XSDT.
 | 
						|
 | 
						|
  Arguments:
 | 
						|
    This          - Protocol instance pointer.
 | 
						|
    TableKey      - Specifies the table to uninstall.  The key was returned from InstallAcpiTable().
 | 
						|
 | 
						|
  Returns:
 | 
						|
    EFI_SUCCESS   - The table was successfully uninstalled.
 | 
						|
    EFI_NOT_FOUND - TableKey does not refer to a valid key for a table entry.
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
//
 | 
						|
// Interface structure for the ACPI Table Protocol
 | 
						|
//
 | 
						|
struct _EFI_ACPI_TABLE_PROTOCOL {
 | 
						|
  EFI_ACPI_TABLE_INSTALL_ACPI_TABLE    InstallAcpiTable;
 | 
						|
  EFI_ACPI_TABLE_UNINSTALL_ACPI_TABLE  UninstallAcpiTable;
 | 
						|
};
 | 
						|
 | 
						|
extern EFI_GUID gEfiAcpiTableProtocolGuid;
 | 
						|
 | 
						|
#endif
 |