mirror of https://github.com/acidanthera/audk.git
141 lines
4.5 KiB
C
141 lines
4.5 KiB
C
/** @file
|
|
ACPI Alert Standard Format Description Table ASF! as described in the ASF2.0 Specification
|
|
|
|
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
**/
|
|
|
|
#ifndef _ALERT_STANDARD_FORMAT_TABLE_H_
|
|
#define _ALERT_STANDARD_FORMAT_TABLE_H_
|
|
|
|
#include <IndustryStandard/Acpi.h>
|
|
|
|
//
|
|
// Ensure proper structure formats
|
|
//
|
|
#pragma pack (1)
|
|
|
|
///
|
|
/// Information Record header that appears at the beginning of each record
|
|
///
|
|
typedef struct {
|
|
UINT8 Type;
|
|
UINT8 Reserved;
|
|
UINT16 RecordLength;
|
|
} EFI_ACPI_ASF_RECORD_HEADER;
|
|
|
|
///
|
|
/// This structure contains information that identifies the system's type
|
|
/// and configuration
|
|
///
|
|
typedef struct {
|
|
EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
|
|
UINT8 MinWatchDogResetValue;
|
|
UINT8 MinPollingInterval;
|
|
UINT16 SystemID;
|
|
UINT32 IANAManufactureID;
|
|
UINT8 FeatureFlags;
|
|
UINT8 Reserved[3];
|
|
} EFI_ACPI_ASF_INFO;
|
|
|
|
///
|
|
/// ASF Alert Data
|
|
///
|
|
typedef struct {
|
|
UINT8 DeviceAddress;
|
|
UINT8 Command;
|
|
UINT8 DataMask;
|
|
UINT8 CompareValue;
|
|
UINT8 EventSenseType;
|
|
UINT8 EventType;
|
|
UINT8 EventOffset;
|
|
UINT8 EventSourceType;
|
|
UINT8 EventSeverity;
|
|
UINT8 SensorNumber;
|
|
UINT8 Entity;
|
|
UINT8 EntityInstance;
|
|
} EFI_ACPI_ASF_ALERTDATA;
|
|
|
|
///
|
|
/// Alert sensors definition
|
|
///
|
|
typedef struct {
|
|
EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
|
|
UINT8 AssertionEventBitMask;
|
|
UINT8 DeassertionEventBitMask;
|
|
UINT8 NumberOfAlerts;
|
|
UINT8 ArrayElementLength; ///< For ASF version 1.0 and later, this filed is set to 0x0C
|
|
///
|
|
/// EFI_ACPI_ASF_ALERTDATA DeviceArray[ANYSIZE_ARRAY];
|
|
///
|
|
} EFI_ACPI_ASF_ALRT;
|
|
|
|
///
|
|
/// Alert Control Data
|
|
///
|
|
typedef struct {
|
|
UINT8 Function;
|
|
UINT8 DeviceAddress;
|
|
UINT8 Command;
|
|
UINT8 DataValue;
|
|
} EFI_ACPI_ASF_CONTROLDATA;
|
|
|
|
///
|
|
/// Alert Remote Control System Actions
|
|
///
|
|
typedef struct {
|
|
EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
|
|
UINT8 NumberOfControls;
|
|
UINT8 ArrayElementLength; ///< For ASF version 1.0 and later, this filed is set to 0x4
|
|
UINT16 RctlReserved;
|
|
///
|
|
/// EFI_ACPI_ASF_CONTROLDATA; DeviceArray[ANYSIZE_ARRAY];
|
|
///
|
|
} EFI_ACPI_ASF_RCTL;
|
|
|
|
|
|
///
|
|
/// Remote Control Capabilities
|
|
///
|
|
typedef struct {
|
|
EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
|
|
UINT8 RemoteControlCapabilities[7];
|
|
UINT8 RMCPCompletionCode;
|
|
UINT32 RMCPIANA;
|
|
UINT8 RMCPSpecialCommand;
|
|
UINT8 RMCPSpecialCommandParameter[2];
|
|
UINT8 RMCPBootOptions[2];
|
|
UINT8 RMCPOEMParameters[2];
|
|
} EFI_ACPI_ASF_RMCP;
|
|
|
|
///
|
|
/// SMBus Devices with fixed addresses
|
|
///
|
|
typedef struct {
|
|
EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
|
|
UINT8 SEEPROMAddress;
|
|
UINT8 NumberOfDevices;
|
|
///
|
|
/// UINT8 FixedSmbusAddresses[ANYSIZE_ARRAY];
|
|
///
|
|
} EFI_ACPI_ASF_ADDR;
|
|
|
|
///
|
|
/// ASF! Description Table Header
|
|
///
|
|
typedef EFI_ACPI_DESCRIPTION_HEADER EFI_ACPI_ASF_DESCRIPTION_HEADER;
|
|
|
|
///
|
|
/// The revision stored in ASF! DESCRIPTION TABLE as BCD value
|
|
///
|
|
#define EFI_ACPI_2_0_ASF_DESCRIPTION_TABLE_REVISION 0x20
|
|
|
|
///
|
|
/// "ASF!" ASF Description Table Signature
|
|
///
|
|
#define EFI_ACPI_ASF_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32 ('A', 'S', 'F', '!')
|
|
|
|
#pragma pack ()
|
|
|
|
#endif // _ALERT_STANDARD_FORMAT_TABLE_H
|