123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663 |
- /** @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_
-
- FILE_LICENCE ( BSD3 );
-
- #include <ipxe/efi/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
|