AcpiPlatformHooksLib.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*++
  2. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
  3. SPDX-License-Identifier: BSD-2-Clause-Patent
  4. Module Name:
  5. AcpiPlatformHooksLib.h
  6. Abstract:
  7. This is an implementation of the ACPI platform driver. Requirements for
  8. this driver are defined in the Tiano ACPI External Product Specification,
  9. revision 0.3.6.
  10. --*/
  11. #ifndef _ACPI_PLATFORM_HOOKS_LIB_H_
  12. #define _ACPI_PLATFORM_HOOKS_LIB_H_
  13. //
  14. // Statements that include other header files.
  15. //
  16. #include <IndustryStandard/Acpi.h>
  17. /**
  18. Returns the ACPI table version that the platform wants.
  19. @param[in] None
  20. @retval EFI_ACPI_TABLE_VERSION_NONE if ACPI is to be disabled.
  21. @retval EFI_ACPI_TABLE_VERSION_1_0B if 1.0b.
  22. @retval EFI_ACPI_TABLE_VERSION_2_00 if 2.00.
  23. **/
  24. EFI_ACPI_TABLE_VERSION
  25. AcpiPlatformHooksGetAcpiTableVersion (
  26. VOID
  27. );
  28. /**
  29. Returns the OEMID, OEM Table ID, OEM Revision.
  30. @param[in] None
  31. @retval OemId OEM ID string for ACPI tables, maximum 6 ASCII characters.
  32. This is an OEM-supplied string that identifies the OEM.
  33. @retval OemTableId An OEM-supplied string that the OEM uses to identify
  34. the particular data table. This field is particularly useful
  35. when defining a definition block to distinguish definition block
  36. functions. The OEM assigns each dissimilar table a new OEM Table ID.
  37. @retval OemRevision An OEM-supplied revision number for ACPI tables.
  38. Larger numbers are assumed to be newer revisions.
  39. **/
  40. EFI_STATUS
  41. AcpiPlatformHooksGetOemFields (
  42. OUT UINT8 *OemId,
  43. OUT UINT64 *OemTableId,
  44. OUT UINT32 *OemRevision
  45. );
  46. /**
  47. Called for every ACPI table found in the BIOS flash.
  48. Returns whether a table is active or not. Inactive tables
  49. are not published in the ACPI table list. This hook can be
  50. used to implement optional SSDT tables or enabling/disabling
  51. specific functionality (e.g. SPCR table) based on a setup
  52. switch or platform preference. In case of optional SSDT tables,
  53. the platform flash will include all the SSDT tables but will
  54. return EFI_SUCCESS only for those tables that need to be
  55. published.
  56. This hook can also be used to update the table data. The header
  57. is updated by the common code. For example, if a platform wants
  58. to use an SSDT table to export some platform settings to the
  59. ACPI code, it needs to update the data inside that SSDT based
  60. on platform preferences in this hook.
  61. @param[in] None
  62. @retval EFI_SUCCESS if the table is active.
  63. @retval EFI_UNSUPPORTED if the table is not active.
  64. **/
  65. EFI_STATUS
  66. AcpiPlatformHooksIsActiveTable (
  67. IN OUT EFI_ACPI_COMMON_HEADER *Table
  68. );
  69. #endif