]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/IndustryStandard/AlertStandardFormatTable.h
13a0b9076881ed8f8690db9a65a4640525ed6476
[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 /// Information Record header that appears at the beginning of each record
21 ///
22 typedef struct {
23 UINT8 Type;
24 UINT8 Reserved;
25 UINT16 RecordLength;
26 } EFI_ACPI_ASF_RECORD_HEADER;
27
28 ///
29 /// This structure contains information that identifies the system's type
30 /// and configuration
31 ///
32 typedef struct {
33 EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
34 UINT8 MinWatchDogResetValue;
35 UINT8 MinPollingInterval;
36 UINT16 SystemID;
37 UINT32 IANAManufactureID;
38 UINT8 FeatureFlags;
39 UINT8 Reserved[3];
40 } EFI_ACPI_ASF_INFO;
41
42 ///
43 /// ASF Alert Data
44 ///
45 typedef struct {
46 UINT8 DeviceAddress;
47 UINT8 Command;
48 UINT8 DataMask;
49 UINT8 CompareValue;
50 UINT8 EventSenseType;
51 UINT8 EventType;
52 UINT8 EventOffset;
53 UINT8 EventSourceType;
54 UINT8 EventSeverity;
55 UINT8 SensorNumber;
56 UINT8 Entity;
57 UINT8 EntityInstance;
58 } EFI_ACPI_ASF_ALERTDATA;
59
60 ///
61 /// Alert sensors definition
62 ///
63 typedef struct {
64 EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
65 UINT8 AssertionEventBitMask;
66 UINT8 DeassertionEventBitMask;
67 UINT8 NumberOfAlerts;
68 UINT8 ArrayElementLength; ///< For ASF version 1.0 and later, this filed is set to 0x0C
69 ///
70 /// EFI_ACPI_ASF_ALERTDATA DeviceArray[ANYSIZE_ARRAY];
71 ///
72 } EFI_ACPI_ASF_ALRT;
73
74 ///
75 /// Alert Control Data
76 ///
77 typedef struct {
78 UINT8 Function;
79 UINT8 DeviceAddress;
80 UINT8 Command;
81 UINT8 DataValue;
82 } EFI_ACPI_ASF_CONTROLDATA;
83
84 ///
85 /// Alert Remote Control System Actions
86 ///
87 typedef struct {
88 EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
89 UINT8 NumberOfControls;
90 UINT8 ArrayElementLength; ///< For ASF version 1.0 and later, this filed is set to 0x4
91 UINT16 RctlReserved;
92 ///
93 /// EFI_ACPI_ASF_CONTROLDATA; DeviceArray[ANYSIZE_ARRAY];
94 ///
95 } EFI_ACPI_ASF_RCTL;
96
97
98 ///
99 /// Remote Control Capabilities
100 ///
101 typedef struct {
102 EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
103 UINT8 RemoteControlCapabilities[7];
104 UINT8 RMCPCompletionCode;
105 UINT32 RMCPIANA;
106 UINT8 RMCPSpecialCommand;
107 UINT8 RMCPSpecialCommandParameter[2];
108 UINT8 RMCPBootOptions[2];
109 UINT8 RMCPOEMParameters[2];
110 } EFI_ACPI_ASF_RMCP;
111
112 ///
113 /// SMBus Devices with fixed addresses
114 ///
115 typedef struct {
116 EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
117 UINT8 SEEPROMAddress;
118 UINT8 NumberOfDevices;
119 ///
120 /// UINT8 FixedSmbusAddresses[ANYSIZE_ARRAY];
121 ///
122 } EFI_ACPI_ASF_ADDR;
123
124 ///
125 /// ASF! Description Table Header
126 ///
127 typedef EFI_ACPI_DESCRIPTION_HEADER EFI_ACPI_ASF_DESCRIPTION_HEADER;
128
129 ///
130 /// The revision stored in ASF! DESCRIPTION TABLE as BCD value
131 ///
132 #define EFI_ACPI_2_0_ASF_DESCRIPTION_TABLE_REVISION 0x20
133
134 ///
135 /// "ASF!" ASF Description Table Signature
136 ///
137 #define EFI_ACPI_ASF_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32 ('A', 'S', 'F', '!')
138
139 #endif