1 /** @file 2 ACPI Alert Standard Format Description Table ASF! as described in the ASF2.0 Specification 3 4 Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR> 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 **/ 13 14 #ifndef _ALERT_STANDARD_FORMAT_TABLE_H_ 15 #define _ALERT_STANDARD_FORMAT_TABLE_H_ 16 17 #include <IndustryStandard/Acpi.h> 18 19 // 20 // Ensure proper structure formats 21 // 22 #pragma pack (1) 23 24 /// 25 /// Information Record header that appears at the beginning of each record 26 /// 27 typedef struct { 28 UINT8 Type; 29 UINT8 Reserved; 30 UINT16 RecordLength; 31 } EFI_ACPI_ASF_RECORD_HEADER; 32 33 /// 34 /// This structure contains information that identifies the system's type 35 /// and configuration 36 /// 37 typedef struct { 38 EFI_ACPI_ASF_RECORD_HEADER RecordHeader; 39 UINT8 MinWatchDogResetValue; 40 UINT8 MinPollingInterval; 41 UINT16 SystemID; 42 UINT32 IANAManufactureID; 43 UINT8 FeatureFlags; 44 UINT8 Reserved[3]; 45 } EFI_ACPI_ASF_INFO; 46 47 /// 48 /// ASF Alert Data 49 /// 50 typedef struct { 51 UINT8 DeviceAddress; 52 UINT8 Command; 53 UINT8 DataMask; 54 UINT8 CompareValue; 55 UINT8 EventSenseType; 56 UINT8 EventType; 57 UINT8 EventOffset; 58 UINT8 EventSourceType; 59 UINT8 EventSeverity; 60 UINT8 SensorNumber; 61 UINT8 Entity; 62 UINT8 EntityInstance; 63 } EFI_ACPI_ASF_ALERTDATA; 64 65 /// 66 /// Alert sensors definition 67 /// 68 typedef struct { 69 EFI_ACPI_ASF_RECORD_HEADER RecordHeader; 70 UINT8 AssertionEventBitMask; 71 UINT8 DeassertionEventBitMask; 72 UINT8 NumberOfAlerts; 73 UINT8 ArrayElementLength; ///< For ASF version 1.0 and later, this filed is set to 0x0C 74 /// 75 /// EFI_ACPI_ASF_ALERTDATA DeviceArray[ANYSIZE_ARRAY]; 76 /// 77 } EFI_ACPI_ASF_ALRT; 78 79 /// 80 /// Alert Control Data 81 /// 82 typedef struct { 83 UINT8 Function; 84 UINT8 DeviceAddress; 85 UINT8 Command; 86 UINT8 DataValue; 87 } EFI_ACPI_ASF_CONTROLDATA; 88 89 /// 90 /// Alert Remote Control System Actions 91 /// 92 typedef struct { 93 EFI_ACPI_ASF_RECORD_HEADER RecordHeader; 94 UINT8 NumberOfControls; 95 UINT8 ArrayElementLength; ///< For ASF version 1.0 and later, this filed is set to 0x4 96 UINT16 RctlReserved; 97 /// 98 /// EFI_ACPI_ASF_CONTROLDATA; DeviceArray[ANYSIZE_ARRAY]; 99 /// 100 } EFI_ACPI_ASF_RCTL; 101 102 103 /// 104 /// Remote Control Capabilities 105 /// 106 typedef struct { 107 EFI_ACPI_ASF_RECORD_HEADER RecordHeader; 108 UINT8 RemoteControlCapabilities[7]; 109 UINT8 RMCPCompletionCode; 110 UINT32 RMCPIANA; 111 UINT8 RMCPSpecialCommand; 112 UINT8 RMCPSpecialCommandParameter[2]; 113 UINT8 RMCPBootOptions[2]; 114 UINT8 RMCPOEMParameters[2]; 115 } EFI_ACPI_ASF_RMCP; 116 117 /// 118 /// SMBus Devices with fixed addresses 119 /// 120 typedef struct { 121 EFI_ACPI_ASF_RECORD_HEADER RecordHeader; 122 UINT8 SEEPROMAddress; 123 UINT8 NumberOfDevices; 124 /// 125 /// UINT8 FixedSmbusAddresses[ANYSIZE_ARRAY]; 126 /// 127 } EFI_ACPI_ASF_ADDR; 128 129 /// 130 /// ASF! Description Table Header 131 /// 132 typedef EFI_ACPI_DESCRIPTION_HEADER EFI_ACPI_ASF_DESCRIPTION_HEADER; 133 134 /// 135 /// The revision stored in ASF! DESCRIPTION TABLE as BCD value 136 /// 137 #define EFI_ACPI_2_0_ASF_DESCRIPTION_TABLE_REVISION 0x20 138 139 /// 140 /// "ASF!" ASF Description Table Signature 141 /// 142 #define EFI_ACPI_ASF_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32 ('A', 'S', 'F', '!') 143 144 #pragma pack () 145 146 #endif // _ALERT_STANDARD_FORMAT_TABLE_H 147