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