/** @file | |
ACPI 1.0b definitions from the ACPI Specification, revision 1.0b | |
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR> | |
This program and the accompanying materials are licensed and made available under | |
the terms and conditions of the BSD License that accompanies this distribution. | |
The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license.php. | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
**/ | |
#ifndef _ACPI_1_0_H_ | |
#define _ACPI_1_0_H_ | |
#include <IndustryStandard/AcpiAml.h> | |
/// | |
/// Common table header, this prefaces all ACPI tables, including FACS, but | |
/// excluding the RSD PTR structure. | |
/// | |
typedef struct { | |
UINT32 Signature; | |
UINT32 Length; | |
} EFI_ACPI_COMMON_HEADER; | |
#pragma pack(1) | |
/// | |
/// The common ACPI description table header. This structure prefaces most ACPI tables. | |
/// | |
typedef struct { | |
UINT32 Signature; | |
UINT32 Length; | |
UINT8 Revision; | |
UINT8 Checksum; | |
UINT8 OemId[6]; | |
UINT64 OemTableId; | |
UINT32 OemRevision; | |
UINT32 CreatorId; | |
UINT32 CreatorRevision; | |
} EFI_ACPI_DESCRIPTION_HEADER; | |
#pragma pack() | |
// | |
// Define for Desriptor | |
// | |
#define ACPI_SMALL_ITEM_FLAG 0x00 | |
#define ACPI_LARGE_ITEM_FLAG 0x01 | |
// | |
// Small Item Descriptor Name | |
// | |
#define ACPI_SMALL_IRQ_DESCRIPTOR_NAME 0x04 | |
#define ACPI_SMALL_DMA_DESCRIPTOR_NAME 0x05 | |
#define ACPI_SMALL_START_DEPENDENT_DESCRIPTOR_NAME 0x06 | |
#define ACPI_SMALL_END_DEPENDENT_DESCRIPTOR_NAME 0x07 | |
#define ACPI_SMALL_IO_PORT_DESCRIPTOR_NAME 0x08 | |
#define ACPI_SMALL_FIXED_IO_PORT_DESCRIPTOR_NAME 0x09 | |
#define ACPI_SMALL_VENDOR_DEFINED_DESCRIPTOR_NAME 0x0E | |
#define ACPI_SMALL_END_TAG_DESCRIPTOR_NAME 0x0F | |
// | |
// Large Item Descriptor Name | |
// | |
#define ACPI_LARGE_24_BIT_MEMORY_RANGE_DESCRIPTOR_NAME 0x01 | |
#define ACPI_LARGE_VENDOR_DEFINED_DESCRIPTOR_NAME 0x04 | |
#define ACPI_LARGE_32_BIT_MEMORY_RANGE_DESCRIPTOR_NAME 0x05 | |
#define ACPI_LARGE_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR_NAME 0x06 | |
#define ACPI_LARGE_DWORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x07 | |
#define ACPI_LARGE_WORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x08 | |
#define ACPI_LARGE_EXTENDED_IRQ_DESCRIPTOR_NAME 0x09 | |
#define ACPI_LARGE_QWORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x0A | |
// | |
// Small Item Descriptor Value | |
// | |
#define ACPI_IRQ_NOFLAG_DESCRIPTOR 0x22 | |
#define ACPI_IRQ_DESCRIPTOR 0x23 | |
#define ACPI_DMA_DESCRIPTOR 0x2A | |
#define ACPI_START_DEPENDENT_DESCRIPTOR 0x30 | |
#define ACPI_START_DEPENDENT_EX_DESCRIPTOR 0x31 | |
#define ACPI_END_DEPENDENT_DESCRIPTOR 0x38 | |
#define ACPI_IO_PORT_DESCRIPTOR 0x47 | |
#define ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR 0x4B | |
#define ACPI_END_TAG_DESCRIPTOR 0x79 | |
// | |
// Large Item Descriptor Value | |
// | |
#define ACPI_24_BIT_MEMORY_RANGE_DESCRIPTOR 0x81 | |
#define ACPI_32_BIT_MEMORY_RANGE_DESCRIPTOR 0x85 | |
#define ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR 0x86 | |
#define ACPI_DWORD_ADDRESS_SPACE_DESCRIPTOR 0x87 | |
#define ACPI_WORD_ADDRESS_SPACE_DESCRIPTOR 0x88 | |
#define ACPI_EXTENDED_INTERRUPT_DESCRIPTOR 0x89 | |
#define ACPI_QWORD_ADDRESS_SPACE_DESCRIPTOR 0x8A | |
#define ACPI_ADDRESS_SPACE_DESCRIPTOR 0x8A | |
// | |
// Resource Type | |
// | |
#define ACPI_ADDRESS_SPACE_TYPE_MEM 0x00 | |
#define ACPI_ADDRESS_SPACE_TYPE_IO 0x01 | |
#define ACPI_ADDRESS_SPACE_TYPE_BUS 0x02 | |
/// | |
/// Power Management Timer frequency is fixed at 3.579545MHz. | |
/// | |
#define ACPI_TIMER_FREQUENCY 3579545 | |
// | |
// Ensure proper structure formats | |
// | |
#pragma pack(1) | |
/// | |
/// The commond definition of QWORD, DWORD, and WORD | |
/// Address Space Descriptors. | |
/// | |
typedef PACKED struct { | |
UINT8 Desc; | |
UINT16 Len; | |
UINT8 ResType; | |
UINT8 GenFlag; | |
UINT8 SpecificFlag; | |
UINT64 AddrSpaceGranularity; | |
UINT64 AddrRangeMin; | |
UINT64 AddrRangeMax; | |
UINT64 AddrTranslationOffset; | |
UINT64 AddrLen; | |
} EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR; | |
typedef PACKED union { | |
UINT8 Byte; | |
PACKED struct { | |
UINT8 Length : 3; | |
UINT8 Name : 4; | |
UINT8 Type : 1; | |
} Bits; | |
} ACPI_SMALL_RESOURCE_HEADER; | |
typedef PACKED struct { | |
PACKED union { | |
UINT8 Byte; | |
PACKED struct { | |
UINT8 Name : 7; | |
UINT8 Type : 1; | |
}Bits; | |
} Header; | |
UINT16 Length; | |
} ACPI_LARGE_RESOURCE_HEADER; | |
/// | |
/// IRQ Descriptor. | |
/// | |
typedef PACKED struct { | |
ACPI_SMALL_RESOURCE_HEADER Header; | |
UINT16 Mask; | |
} EFI_ACPI_IRQ_NOFLAG_DESCRIPTOR; | |
/// | |
/// IRQ Descriptor. | |
/// | |
typedef PACKED struct { | |
ACPI_SMALL_RESOURCE_HEADER Header; | |
UINT16 Mask; | |
UINT8 Information; | |
} EFI_ACPI_IRQ_DESCRIPTOR; | |
/// | |
/// DMA Descriptor. | |
/// | |
typedef PACKED struct { | |
ACPI_SMALL_RESOURCE_HEADER Header; | |
UINT8 ChannelMask; | |
UINT8 Information; | |
} EFI_ACPI_DMA_DESCRIPTOR; | |
/// | |
/// I/O Port Descriptor | |
/// | |
typedef PACKED struct { | |
ACPI_SMALL_RESOURCE_HEADER Header; | |
UINT8 Information; | |
UINT16 BaseAddressMin; | |
UINT16 BaseAddressMax; | |
UINT8 Alignment; | |
UINT8 Length; | |
} EFI_ACPI_IO_PORT_DESCRIPTOR; | |
/// | |
/// Fixed Location I/O Port Descriptor. | |
/// | |
typedef PACKED struct { | |
ACPI_SMALL_RESOURCE_HEADER Header; | |
UINT16 BaseAddress; | |
UINT8 Length; | |
} EFI_ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR; | |
/// | |
/// 24-Bit Memory Range Descriptor | |
/// | |
typedef PACKED struct { | |
ACPI_LARGE_RESOURCE_HEADER Header; | |
UINT8 Information; | |
UINT16 BaseAddressMin; | |
UINT16 BaseAddressMax; | |
UINT16 Alignment; | |
UINT16 Length; | |
} EFI_ACPI_24_BIT_MEMORY_RANGE_DESCRIPTOR; | |
/// | |
/// 32-Bit Memory Range Descriptor | |
/// | |
typedef PACKED struct { | |
ACPI_LARGE_RESOURCE_HEADER Header; | |
UINT8 Information; | |
UINT32 BaseAddressMin; | |
UINT32 BaseAddressMax; | |
UINT32 Alignment; | |
UINT32 Length; | |
} EFI_ACPI_32_BIT_MEMORY_RANGE_DESCRIPTOR; | |
/// | |
/// Fixed 32-Bit Fixed Memory Range Descriptor | |
/// | |
typedef PACKED struct { | |
ACPI_LARGE_RESOURCE_HEADER Header; | |
UINT8 Information; | |
UINT32 BaseAddress; | |
UINT32 Length; | |
} EFI_ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR; | |
/// | |
/// QWORD Address Space Descriptor | |
/// | |
typedef PACKED struct { | |
ACPI_LARGE_RESOURCE_HEADER Header; | |
UINT8 ResType; | |
UINT8 GenFlag; | |
UINT8 SpecificFlag; | |
UINT64 AddrSpaceGranularity; | |
UINT64 AddrRangeMin; | |
UINT64 AddrRangeMax; | |
UINT64 AddrTranslationOffset; | |
UINT64 AddrLen; | |
} EFI_ACPI_QWORD_ADDRESS_SPACE_DESCRIPTOR; | |
/// | |
/// DWORD Address Space Descriptor | |
/// | |
typedef PACKED struct { | |
ACPI_LARGE_RESOURCE_HEADER Header; | |
UINT8 ResType; | |
UINT8 GenFlag; | |
UINT8 SpecificFlag; | |
UINT32 AddrSpaceGranularity; | |
UINT32 AddrRangeMin; | |
UINT32 AddrRangeMax; | |
UINT32 AddrTranslationOffset; | |
UINT32 AddrLen; | |
} EFI_ACPI_DWORD_ADDRESS_SPACE_DESCRIPTOR; | |
/// | |
/// WORD Address Space Descriptor | |
/// | |
typedef PACKED struct { | |
ACPI_LARGE_RESOURCE_HEADER Header; | |
UINT8 ResType; | |
UINT8 GenFlag; | |
UINT8 SpecificFlag; | |
UINT16 AddrSpaceGranularity; | |
UINT16 AddrRangeMin; | |
UINT16 AddrRangeMax; | |
UINT16 AddrTranslationOffset; | |
UINT16 AddrLen; | |
} EFI_ACPI_WORD_ADDRESS_SPACE_DESCRIPTOR; | |
/// | |
/// Extended Interrupt Descriptor | |
/// | |
typedef PACKED struct { | |
ACPI_LARGE_RESOURCE_HEADER Header; | |
UINT8 InterruptVectorFlags; | |
UINT8 InterruptTableLength; | |
UINT32 InterruptNumber[1]; | |
} EFI_ACPI_EXTENDED_INTERRUPT_DESCRIPTOR; | |
#pragma pack() | |
/// | |
/// The End tag identifies an end of resource data. | |
/// | |
typedef struct { | |
UINT8 Desc; | |
UINT8 Checksum; | |
} EFI_ACPI_END_TAG_DESCRIPTOR; | |
// | |
// General use definitions | |
// | |
#define EFI_ACPI_RESERVED_BYTE 0x00 | |
#define EFI_ACPI_RESERVED_WORD 0x0000 | |
#define EFI_ACPI_RESERVED_DWORD 0x00000000 | |
#define EFI_ACPI_RESERVED_QWORD 0x0000000000000000 | |
// | |
// Resource Type Specific Flags | |
// Ref ACPI specification 6.4.3.5.5 | |
// | |
// Bit [0] : Write Status, _RW | |
// | |
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_WRITE (1 << 0) | |
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_ONLY (0 << 0) | |
// | |
// Bit [2:1] : Memory Attributes, _MEM | |
// | |
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_NON_CACHEABLE (0 << 1) | |
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE (1 << 1) | |
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_WRITE_COMBINING (2 << 1) | |
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE (3 << 1) | |
// | |
// Bit [4:3] : Memory Attributes, _MTP | |
// | |
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_MEMORY (0 << 3) | |
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_RESERVED (1 << 3) | |
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_ACPI (2 << 3) | |
#define EFI_APCI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_NVS (3 << 3) | |
// | |
// Bit [5] : Memory to I/O Translation, _TTP | |
// | |
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_TRANSLATION (1 << 5) | |
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_STATIC (0 << 5) | |
// | |
// IRQ Information | |
// Ref ACPI specification 6.4.2.1 | |
// | |
#define EFI_ACPI_IRQ_SHARABLE_MASK 0x10 | |
#define EFI_ACPI_IRQ_SHARABLE 0x10 | |
#define EFI_ACPI_IRQ_POLARITY_MASK 0x08 | |
#define EFI_ACPI_IRQ_HIGH_TRUE 0x00 | |
#define EFI_ACPI_IRQ_LOW_FALSE 0x08 | |
#define EFI_ACPI_IRQ_MODE 0x01 | |
#define EFI_ACPI_IRQ_LEVEL_TRIGGERED 0x00 | |
#define EFI_ACPI_IRQ_EDGE_TRIGGERED 0x01 | |
// | |
// DMA Information | |
// Ref ACPI specification 6.4.2.2 | |
// | |
#define EFI_ACPI_DMA_SPEED_TYPE_MASK 0x60 | |
#define EFI_ACPI_DMA_SPEED_TYPE_COMPATIBILITY 0x00 | |
#define EFI_ACPI_DMA_SPEED_TYPE_A 0x20 | |
#define EFI_ACPI_DMA_SPEED_TYPE_B 0x40 | |
#define EFI_ACPI_DMA_SPEED_TYPE_F 0x60 | |
#define EFI_ACPI_DMA_BUS_MASTER_MASK 0x04 | |
#define EFI_ACPI_DMA_BUS_MASTER 0x04 | |
#define EFI_ACPI_DMA_TRANSFER_TYPE_MASK 0x03 | |
#define EFI_ACPI_DMA_TRANSFER_TYPE_8_BIT 0x00 | |
#define EFI_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT 0x01 | |
#define EFI_ACPI_DMA_TRANSFER_TYPE_16_BIT 0x10 | |
// | |
// IO Information | |
// Ref ACPI specification 6.4.2.5 | |
// | |
#define EFI_ACPI_IO_DECODE_MASK 0x01 | |
#define EFI_ACPI_IO_DECODE_16_BIT 0x01 | |
#define EFI_ACPI_IO_DECODE_10_BIT 0x00 | |
// | |
// Memory Information | |
// Ref ACPI specification 6.4.3.4 | |
// | |
#define EFI_ACPI_MEMORY_WRITE_STATUS_MASK 0x01 | |
#define EFI_ACPI_MEMORY_WRITABLE 0x01 | |
#define EFI_ACPI_MEMORY_NON_WRITABLE 0x00 | |
// | |
// Ensure proper structure formats | |
// | |
#pragma pack(1) | |
// | |
// ACPI 1.0b table structures | |
// | |
/// | |
/// Root System Description Pointer Structure. | |
/// | |
typedef struct { | |
UINT64 Signature; | |
UINT8 Checksum; | |
UINT8 OemId[6]; | |
UINT8 Reserved; | |
UINT32 RsdtAddress; | |
} EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER; | |
// | |
// Root System Description Table | |
// No definition needed as it is a common description table header, the same with | |
// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers. | |
// | |
/// | |
/// RSDT Revision (as defined in ACPI 1.0b specification). | |
/// | |
#define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01 | |
/// | |
/// Fixed ACPI Description Table Structure (FADT). | |
/// | |
typedef struct { | |
EFI_ACPI_DESCRIPTION_HEADER Header; | |
UINT32 FirmwareCtrl; | |
UINT32 Dsdt; | |
UINT8 IntModel; | |
UINT8 Reserved1; | |
UINT16 SciInt; | |
UINT32 SmiCmd; | |
UINT8 AcpiEnable; | |
UINT8 AcpiDisable; | |
UINT8 S4BiosReq; | |
UINT8 Reserved2; | |
UINT32 Pm1aEvtBlk; | |
UINT32 Pm1bEvtBlk; | |
UINT32 Pm1aCntBlk; | |
UINT32 Pm1bCntBlk; | |
UINT32 Pm2CntBlk; | |
UINT32 PmTmrBlk; | |
UINT32 Gpe0Blk; | |
UINT32 Gpe1Blk; | |
UINT8 Pm1EvtLen; | |
UINT8 Pm1CntLen; | |
UINT8 Pm2CntLen; | |
UINT8 PmTmLen; | |
UINT8 Gpe0BlkLen; | |
UINT8 Gpe1BlkLen; | |
UINT8 Gpe1Base; | |
UINT8 Reserved3; | |
UINT16 PLvl2Lat; | |
UINT16 PLvl3Lat; | |
UINT16 FlushSize; | |
UINT16 FlushStride; | |
UINT8 DutyOffset; | |
UINT8 DutyWidth; | |
UINT8 DayAlrm; | |
UINT8 MonAlrm; | |
UINT8 Century; | |
UINT8 Reserved4; | |
UINT8 Reserved5; | |
UINT8 Reserved6; | |
UINT32 Flags; | |
} EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE; | |
/// | |
/// FADT Version (as defined in ACPI 1.0b specification). | |
/// | |
#define EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x01 | |
#define EFI_ACPI_1_0_INT_MODE_DUAL_PIC 0 | |
#define EFI_ACPI_1_0_INT_MODE_MULTIPLE_APIC 1 | |
// | |
// Fixed ACPI Description Table Fixed Feature Flags | |
// All other bits are reserved and must be set to 0. | |
// | |
#define EFI_ACPI_1_0_WBINVD BIT0 | |
#define EFI_ACPI_1_0_WBINVD_FLUSH BIT1 | |
#define EFI_ACPI_1_0_PROC_C1 BIT2 | |
#define EFI_ACPI_1_0_P_LVL2_UP BIT3 | |
#define EFI_ACPI_1_0_PWR_BUTTON BIT4 | |
#define EFI_ACPI_1_0_SLP_BUTTON BIT5 | |
#define EFI_ACPI_1_0_FIX_RTC BIT6 | |
#define EFI_ACPI_1_0_RTC_S4 BIT7 | |
#define EFI_ACPI_1_0_TMR_VAL_EXT BIT8 | |
#define EFI_ACPI_1_0_DCK_CAP BIT9 | |
/// | |
/// Firmware ACPI Control Structure. | |
/// | |
typedef struct { | |
UINT32 Signature; | |
UINT32 Length; | |
UINT32 HardwareSignature; | |
UINT32 FirmwareWakingVector; | |
UINT32 GlobalLock; | |
UINT32 Flags; | |
UINT8 Reserved[40]; | |
} EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE; | |
/// | |
/// Firmware Control Structure Feature Flags. | |
/// All other bits are reserved and must be set to 0. | |
/// | |
#define EFI_ACPI_1_0_S4BIOS_F BIT0 | |
/// | |
/// Multiple APIC Description Table header definition. The rest of the table | |
/// must be defined in a platform-specific manner. | |
/// | |
typedef struct { | |
EFI_ACPI_DESCRIPTION_HEADER Header; | |
UINT32 LocalApicAddress; | |
UINT32 Flags; | |
} EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER; | |
/// | |
/// MADT Revision (as defined in ACPI 1.0b specification). | |
/// | |
#define EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x01 | |
/// | |
/// Multiple APIC Flags | |
/// All other bits are reserved and must be set to 0. | |
/// | |
#define EFI_ACPI_1_0_PCAT_COMPAT BIT0 | |
// | |
// Multiple APIC Description Table APIC structure types | |
// All other values between 0x05 an 0xFF are reserved and | |
// will be ignored by OSPM. | |
// | |
#define EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC 0x00 | |
#define EFI_ACPI_1_0_IO_APIC 0x01 | |
#define EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE 0x02 | |
#define EFI_ACPI_1_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03 | |
#define EFI_ACPI_1_0_LOCAL_APIC_NMI 0x04 | |
// | |
// APIC Structure Definitions | |
// | |
/// | |
/// Processor Local APIC Structure Definition. | |
/// | |
typedef struct { | |
UINT8 Type; | |
UINT8 Length; | |
UINT8 AcpiProcessorId; | |
UINT8 ApicId; | |
UINT32 Flags; | |
} EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC_STRUCTURE; | |
/// | |
/// Local APIC Flags. All other bits are reserved and must be 0. | |
/// | |
#define EFI_ACPI_1_0_LOCAL_APIC_ENABLED BIT0 | |
/// | |
/// IO APIC Structure. | |
/// | |
typedef struct { | |
UINT8 Type; | |
UINT8 Length; | |
UINT8 IoApicId; | |
UINT8 Reserved; | |
UINT32 IoApicAddress; | |
UINT32 SystemVectorBase; | |
} EFI_ACPI_1_0_IO_APIC_STRUCTURE; | |
/// | |
/// Interrupt Source Override Structure. | |
/// | |
typedef struct { | |
UINT8 Type; | |
UINT8 Length; | |
UINT8 Bus; | |
UINT8 Source; | |
UINT32 GlobalSystemInterruptVector; | |
UINT16 Flags; | |
} EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE; | |
/// | |
/// Non-Maskable Interrupt Source Structure. | |
/// | |
typedef struct { | |
UINT8 Type; | |
UINT8 Length; | |
UINT16 Flags; | |
UINT32 GlobalSystemInterruptVector; | |
} EFI_ACPI_1_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE; | |
/// | |
/// Local APIC NMI Structure. | |
/// | |
typedef struct { | |
UINT8 Type; | |
UINT8 Length; | |
UINT8 AcpiProcessorId; | |
UINT16 Flags; | |
UINT8 LocalApicInti; | |
} EFI_ACPI_1_0_LOCAL_APIC_NMI_STRUCTURE; | |
/// | |
/// Smart Battery Description Table (SBST) | |
/// | |
typedef struct { | |
EFI_ACPI_DESCRIPTION_HEADER Header; | |
UINT32 WarningEnergyLevel; | |
UINT32 LowEnergyLevel; | |
UINT32 CriticalEnergyLevel; | |
} EFI_ACPI_1_0_SMART_BATTERY_DESCRIPTION_TABLE; | |
// | |
// Known table signatures | |
// | |
/// | |
/// "RSD PTR " Root System Description Pointer. | |
/// | |
#define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') | |
/// | |
/// "APIC" Multiple APIC Description Table. | |
/// | |
#define EFI_ACPI_1_0_APIC_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C') | |
/// | |
/// "DSDT" Differentiated System Description Table. | |
/// | |
#define EFI_ACPI_1_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T') | |
/// | |
/// "FACS" Firmware ACPI Control Structure. | |
/// | |
#define EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S') | |
/// | |
/// "FACP" Fixed ACPI Description Table. | |
/// | |
#define EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P') | |
/// | |
/// "PSDT" Persistent System Description Table. | |
/// | |
#define EFI_ACPI_1_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T') | |
/// | |
/// "RSDT" Root System Description Table. | |
/// | |
#define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T') | |
/// | |
/// "SBST" Smart Battery Specification Table. | |
/// | |
#define EFI_ACPI_1_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T') | |
/// | |
/// "SSDT" Secondary System Description Table. | |
/// | |
#define EFI_ACPI_1_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T') | |
#pragma pack() | |
#endif |