]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/IndustryStandard/AlertStandardFormatTable.h
edk2/MdePkg/Include/Ia32/ProcessorBind.h:
[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 - 2007, 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 /// Alert sensors definition
49 ///
50 #define ASF_ALRT_SENSOR_ARRAY_LENGTH 36
51
52 typedef struct {
53 EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
54 UINT8 AssertionEventBitMask;
55 UINT8 DeassertionEventBitMask;
56 UINT8 NumberOfAlerts;
57 UINT8 ArrayElementLength;
58 UINT8 DeviceArray[ASF_ALRT_SENSOR_ARRAY_LENGTH];
59 } EFI_ACPI_ASF_ALRT;
60
61 ///
62 /// Alert Remote Control System Actions
63 ///
64 #define ASF_RCTL_DEVICES_ARRAY_LENGTH 16
65 typedef struct {
66 EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
67 UINT8 NumberOfControls;
68 UINT8 ArrayElementLength;
69 UINT16 RctlReserved;
70 UINT8 ControlArray[ASF_RCTL_DEVICES_ARRAY_LENGTH];
71 } EFI_ACPI_ASF_RCTL;
72
73 ///
74 /// Remote Control Capabilities
75 ///
76 typedef struct {
77 EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
78 UINT8 RemoteControlCapabilities[7];
79 UINT8 RMCPCompletionCode;
80 UINT32 RMCPIANA;
81 UINT8 RMCPSpecialCommand;
82 UINT8 RMCPSpecialCommandParameter[2];
83 UINT8 RMCPBootOptions[2];
84 UINT8 RMCPOEMParameters[2];
85 } EFI_ACPI_ASF_RMCP;
86
87 ///
88 /// SMBus Devices with fixed addresses
89 ///
90 #define ASF_ADDR_DEVICE_ARRAY_LENGTH 16
91 typedef struct {
92 EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
93 UINT8 SEEPROMAddress;
94 UINT8 NumberOfDevices;
95 UINT8 FixedSmbusAddresses[ASF_ADDR_DEVICE_ARRAY_LENGTH];
96 } EFI_ACPI_ASF_ADDR;
97
98 typedef struct {
99 EFI_ACPI_DESCRIPTION_HEADER Header;
100 EFI_ACPI_ASF_INFO AsfInfo;
101 EFI_ACPI_ASF_ALRT AsfAlert;
102 EFI_ACPI_ASF_RCTL AsfRctl;
103 EFI_ACPI_ASF_RMCP AsfRmcp;
104 EFI_ACPI_ASF_ADDR AsfAddr;
105 } EFI_ACPI_1_0_ASF_DESCRIPTION_TABLE;
106
107 ///
108 /// "ASF!" ASF Description Table Signature
109 ///
110 #define EFI_ACPI_1_0_ASF_DESCRIPTION_TABLE_SIGNATURE 0x21465341
111
112 #pragma pack ()
113
114 #endif // _ALERT_STANDARD_FORMAT_TABLE_H