1 /*++ 2 3 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR> 4 5 6 This program and the accompanying materials are licensed and made available under 7 8 the terms and conditions of the BSD License that accompanies this distribution. 9 10 The full text of the license may be found at 11 12 http://opensource.org/licenses/bsd-license.php. 13 14 15 16 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 17 18 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 19 20 21 22 23 Module Name: 24 25 AlertStandardFormatTable.h 26 27 Abstract: 28 29 ACPI Alert Standard Format Description Table ASF! as described 30 in the ASF2.0 Specification 31 32 --*/ 33 34 #ifndef _ALERT_STANDARD_FORMAT_TABLE_H 35 #define _ALERT_STANDARD_FORMAT_TABLE_H 36 37 #include <IndustryStandard/Acpi20.h> 38 39 // 40 // Ensure proper structure formats. 41 // 42 #pragma pack (1) 43 44 // 45 // Information Record header that appears at the beginning of each record. 46 // 47 typedef struct { 48 UINT8 Type; 49 UINT8 Reserved; 50 UINT16 RecordLength; 51 } EFI_ACPI_ASF_RECORD_HEADER; 52 53 // 54 // This structure contains information that identifies the system type 55 // and configuration. 56 // 57 typedef struct { 58 EFI_ACPI_ASF_RECORD_HEADER RecordHeader; 59 UINT8 MinWatchDogResetValue; 60 UINT8 MinPollingInterval; 61 UINT16 SystemID; 62 UINT32 IANAManufactureID; 63 UINT8 FeatureFlags; 64 UINT8 Reserved[3]; 65 } EFI_ACPI_ASF_INFO; 66 67 // 68 // Alert sensors definition. 69 // 70 #define ASF_ALRT_SENSOR_ARRAY_LENGTH 36 71 72 typedef struct { 73 EFI_ACPI_ASF_RECORD_HEADER RecordHeader; 74 UINT8 AssertionEventBitMask; 75 UINT8 DeassertionEventBitMask; 76 UINT8 NumberOfAlerts; 77 UINT8 ArrayElementLength; 78 UINT8 DeviceArray[ASF_ALRT_SENSOR_ARRAY_LENGTH]; 79 } EFI_ACPI_ASF_ALRT; 80 81 // 82 // Alert Remote Control System Actions. 83 // 84 #define ASF_RCTL_DEVICES_ARRAY_LENGTH 16 85 86 typedef struct { 87 EFI_ACPI_ASF_RECORD_HEADER RecordHeader; 88 UINT8 NumberOfControls; 89 UINT8 ArrayElementLength; 90 UINT16 RctlReserved; 91 UINT8 ControlArray[ASF_RCTL_DEVICES_ARRAY_LENGTH]; 92 } EFI_ACPI_ASF_RCTL; 93 94 // 95 // Remote Control Capabilities. 96 // 97 typedef struct { 98 EFI_ACPI_ASF_RECORD_HEADER RecordHeader; 99 UINT8 RemoteControlCapabilities[7]; 100 UINT8 RMCPCompletionCode; 101 UINT32 RMCPIANA; 102 UINT8 RMCPSpecialCommand; 103 UINT8 RMCPSpecialCommandParameter[2]; 104 UINT8 RMCPBootOptions[2]; 105 UINT8 RMCPOEMParameters[2]; 106 } EFI_ACPI_ASF_RMCP; 107 108 // 109 // SMBus Devices with fixed addresses. 110 // 111 #define ASF_ADDR_DEVICE_ARRAY_LENGTH 16 112 113 typedef struct { 114 EFI_ACPI_ASF_RECORD_HEADER RecordHeader; 115 UINT8 SEEPROMAddress; 116 UINT8 NumberOfDevices; 117 UINT8 FixedSmbusAddresses[ASF_ADDR_DEVICE_ARRAY_LENGTH]; 118 } EFI_ACPI_ASF_ADDR; 119 120 typedef struct { 121 EFI_ACPI_DESCRIPTION_HEADER Header; 122 EFI_ACPI_ASF_INFO AsfInfo; 123 EFI_ACPI_ASF_ALRT AsfAlert; 124 EFI_ACPI_ASF_RCTL AsfRctl; 125 EFI_ACPI_ASF_RMCP AsfRmcp; 126 EFI_ACPI_ASF_ADDR AsfAddr; 127 } EFI_ACPI_1_0_ASF_DESCRIPTION_TABLE; 128 129 // 130 // "ASF!" ASF Description Table Signature. 131 // 132 #define EFI_ACPI_1_0_ASF_DESCRIPTION_TABLE_SIGNATURE 0x21465341 133 134 #pragma pack () 135 136 #endif // _ALERT_STANDARD_FORMAT_TABLE_H 137