Home | History | Annotate | Download | only in AcpiPlatform
      1 /*++
      2 
      3   Copyright (c) 2004  - 2014, Intel Corporation. All rights reserved.<BR>
      4 
      5   This program and the accompanying materials are licensed and made available under
      7   the terms and conditions of the BSD License that accompanies this distribution.
      9   The full text of the license may be found at
     11   http://opensource.org/licenses/bsd-license.php.
     13 
     15   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     17   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     19 
     21 
     23 Module Name:
     24 
     25   AcpiPlatformHooksLib.h
     26 
     27 Abstract:
     28 
     29   This is an implementation of the ACPI platform driver.  Requirements for
     30   this driver are defined in the Tiano ACPI External Product Specification,
     31   revision 0.3.6.
     32 
     33 --*/
     34 
     35 #ifndef _ACPI_PLATFORM_HOOKS_LIB_H_
     36 #define _ACPI_PLATFORM_HOOKS_LIB_H_
     37 
     38 //
     39 // Statements that include other header files.
     40 //
     41 #include <IndustryStandard/Acpi.h>
     42 
     43 /**
     44   Returns the ACPI table version that the platform wants.
     45 
     46   @param[in]  None
     47 
     48   @retval  EFI_ACPI_TABLE_VERSION_NONE  if ACPI is to be disabled.
     49   @retval  EFI_ACPI_TABLE_VERSION_1_0B  if 1.0b.
     50   @retval  EFI_ACPI_TABLE_VERSION_2_00  if 2.00.
     51 **/
     52 EFI_ACPI_TABLE_VERSION
     53 AcpiPlatformHooksGetAcpiTableVersion (
     54   VOID
     55   );
     56 
     57 /**
     58   Returns the OEMID, OEM Table ID, OEM Revision.
     59 
     60   @param[in]  None
     61 
     62   @retval  OemId        OEM ID string for ACPI tables, maximum 6 ASCII characters.
     63                         This is an OEM-supplied string that identifies the OEM.
     64   @retval  OemTableId   An OEM-supplied string that the OEM uses to identify
     65                         the particular data table. This field is particularly useful
     66                         when defining a definition block to distinguish definition block
     67                         functions. The OEM assigns each dissimilar table a new OEM Table ID.
     68   @retval  OemRevision  An OEM-supplied revision number for ACPI tables.
     69                         Larger numbers are assumed to be newer revisions.
     70 
     71 **/
     72 EFI_STATUS
     73 AcpiPlatformHooksGetOemFields (
     74   OUT UINT8   *OemId,
     75   OUT UINT64  *OemTableId,
     76   OUT UINT32  *OemRevision
     77   );
     78 
     79  /**
     80   Called for every ACPI table found in the BIOS flash.
     81   Returns whether a table is active or not. Inactive tables
     82   are not published in the ACPI table list. This hook can be
     83   used to implement optional SSDT tables or enabling/disabling
     84   specific functionality (e.g. SPCR table) based on a setup
     85   switch or platform preference. In case of optional SSDT tables,
     86   the platform flash will include all the SSDT tables but will
     87   return EFI_SUCCESS only for those tables that need to be
     88   published.
     89   This hook can also be used to update the table data. The header
     90   is updated by the common code. For example, if a platform wants
     91   to use an SSDT table to export some platform settings to the
     92   ACPI code, it needs to update the data inside that SSDT based
     93   on platform preferences in this hook.
     94 
     95   @param[in]  None
     96 
     97   @retval  EFI_SUCCESS      if the table is active.
     98   @retval  EFI_UNSUPPORTED  if the table is not active.
     99 **/
    100 EFI_STATUS
    101 AcpiPlatformHooksIsActiveTable (
    102   IN OUT EFI_ACPI_COMMON_HEADER     *Table
    103   );
    104 
    105 #endif
    106