]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/IndustryStandard/AlertStandardFormatTable.h
21239d9edcfa0a45c5de70fe1221c1bb2d2ea73f
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / AlertStandardFormatTable.h
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
5 All rights reserved. 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