Home | History | Annotate | Download | only in IndustryStandard
      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. All rights reserved.<BR>
      5   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
    147