AlertStandardFormatTable.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /*++
  2. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
  3. SPDX-License-Identifier: BSD-2-Clause-Patent
  4. Module Name:
  5. AlertStandardFormatTable.h
  6. Abstract:
  7. ACPI Alert Standard Format Description Table ASF! as described
  8. in the ASF2.0 Specification
  9. --*/
  10. #ifndef _ALERT_STANDARD_FORMAT_TABLE_H
  11. #define _ALERT_STANDARD_FORMAT_TABLE_H
  12. #include <IndustryStandard/Acpi20.h>
  13. //
  14. // Ensure proper structure formats.
  15. //
  16. #pragma pack (1)
  17. //
  18. // Information Record header that appears at the beginning of each record.
  19. //
  20. typedef struct {
  21. UINT8 Type;
  22. UINT8 Reserved;
  23. UINT16 RecordLength;
  24. } EFI_ACPI_ASF_RECORD_HEADER;
  25. //
  26. // This structure contains information that identifies the system type
  27. // and configuration.
  28. //
  29. typedef struct {
  30. EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
  31. UINT8 MinWatchDogResetValue;
  32. UINT8 MinPollingInterval;
  33. UINT16 SystemID;
  34. UINT32 IANAManufactureID;
  35. UINT8 FeatureFlags;
  36. UINT8 Reserved[3];
  37. } EFI_ACPI_ASF_INFO;
  38. //
  39. // Alert sensors definition.
  40. //
  41. #define ASF_ALRT_SENSOR_ARRAY_LENGTH 36
  42. typedef struct {
  43. EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
  44. UINT8 AssertionEventBitMask;
  45. UINT8 DeassertionEventBitMask;
  46. UINT8 NumberOfAlerts;
  47. UINT8 ArrayElementLength;
  48. UINT8 DeviceArray[ASF_ALRT_SENSOR_ARRAY_LENGTH];
  49. } EFI_ACPI_ASF_ALRT;
  50. //
  51. // Alert Remote Control System Actions.
  52. //
  53. #define ASF_RCTL_DEVICES_ARRAY_LENGTH 16
  54. typedef struct {
  55. EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
  56. UINT8 NumberOfControls;
  57. UINT8 ArrayElementLength;
  58. UINT16 RctlReserved;
  59. UINT8 ControlArray[ASF_RCTL_DEVICES_ARRAY_LENGTH];
  60. } EFI_ACPI_ASF_RCTL;
  61. //
  62. // Remote Control Capabilities.
  63. //
  64. typedef struct {
  65. EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
  66. UINT8 RemoteControlCapabilities[7];
  67. UINT8 RMCPCompletionCode;
  68. UINT32 RMCPIANA;
  69. UINT8 RMCPSpecialCommand;
  70. UINT8 RMCPSpecialCommandParameter[2];
  71. UINT8 RMCPBootOptions[2];
  72. UINT8 RMCPOEMParameters[2];
  73. } EFI_ACPI_ASF_RMCP;
  74. //
  75. // SMBus Devices with fixed addresses.
  76. //
  77. #define ASF_ADDR_DEVICE_ARRAY_LENGTH 16
  78. typedef struct {
  79. EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
  80. UINT8 SEEPROMAddress;
  81. UINT8 NumberOfDevices;
  82. UINT8 FixedSmbusAddresses[ASF_ADDR_DEVICE_ARRAY_LENGTH];
  83. } EFI_ACPI_ASF_ADDR;
  84. typedef struct {
  85. EFI_ACPI_DESCRIPTION_HEADER Header;
  86. EFI_ACPI_ASF_INFO AsfInfo;
  87. EFI_ACPI_ASF_ALRT AsfAlert;
  88. EFI_ACPI_ASF_RCTL AsfRctl;
  89. EFI_ACPI_ASF_RMCP AsfRmcp;
  90. EFI_ACPI_ASF_ADDR AsfAddr;
  91. } EFI_ACPI_1_0_ASF_DESCRIPTION_TABLE;
  92. //
  93. // "ASF!" ASF Description Table Signature.
  94. //
  95. #define EFI_ACPI_1_0_ASF_DESCRIPTION_TABLE_SIGNATURE 0x21465341
  96. #pragma pack ()
  97. #endif // _ALERT_STANDARD_FORMAT_TABLE_H