46#define ACPI_SMALL_ITEM_FLAG 0x00
47#define ACPI_LARGE_ITEM_FLAG 0x01
52#define ACPI_SMALL_IRQ_DESCRIPTOR_NAME 0x04
53#define ACPI_SMALL_DMA_DESCRIPTOR_NAME 0x05
54#define ACPI_SMALL_START_DEPENDENT_DESCRIPTOR_NAME 0x06
55#define ACPI_SMALL_END_DEPENDENT_DESCRIPTOR_NAME 0x07
56#define ACPI_SMALL_IO_PORT_DESCRIPTOR_NAME 0x08
57#define ACPI_SMALL_FIXED_IO_PORT_DESCRIPTOR_NAME 0x09
58#define ACPI_SMALL_VENDOR_DEFINED_DESCRIPTOR_NAME 0x0E
59#define ACPI_SMALL_END_TAG_DESCRIPTOR_NAME 0x0F
64#define ACPI_LARGE_24_BIT_MEMORY_RANGE_DESCRIPTOR_NAME 0x01
65#define ACPI_LARGE_VENDOR_DEFINED_DESCRIPTOR_NAME 0x04
66#define ACPI_LARGE_32_BIT_MEMORY_RANGE_DESCRIPTOR_NAME 0x05
67#define ACPI_LARGE_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR_NAME 0x06
68#define ACPI_LARGE_DWORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x07
69#define ACPI_LARGE_WORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x08
70#define ACPI_LARGE_EXTENDED_IRQ_DESCRIPTOR_NAME 0x09
71#define ACPI_LARGE_QWORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x0A
76#define ACPI_IRQ_NOFLAG_DESCRIPTOR 0x22
77#define ACPI_IRQ_DESCRIPTOR 0x23
78#define ACPI_DMA_DESCRIPTOR 0x2A
79#define ACPI_START_DEPENDENT_DESCRIPTOR 0x30
80#define ACPI_START_DEPENDENT_EX_DESCRIPTOR 0x31
81#define ACPI_END_DEPENDENT_DESCRIPTOR 0x38
82#define ACPI_IO_PORT_DESCRIPTOR 0x47
83#define ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR 0x4B
84#define ACPI_END_TAG_DESCRIPTOR 0x79
89#define ACPI_24_BIT_MEMORY_RANGE_DESCRIPTOR 0x81
90#define ACPI_32_BIT_MEMORY_RANGE_DESCRIPTOR 0x85
91#define ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR 0x86
92#define ACPI_DWORD_ADDRESS_SPACE_DESCRIPTOR 0x87
93#define ACPI_WORD_ADDRESS_SPACE_DESCRIPTOR 0x88
94#define ACPI_EXTENDED_INTERRUPT_DESCRIPTOR 0x89
95#define ACPI_QWORD_ADDRESS_SPACE_DESCRIPTOR 0x8A
96#define ACPI_ADDRESS_SPACE_DESCRIPTOR 0x8A
101#define ACPI_ADDRESS_SPACE_TYPE_MEM 0x00
102#define ACPI_ADDRESS_SPACE_TYPE_IO 0x01
103#define ACPI_ADDRESS_SPACE_TYPE_BUS 0x02
108#define ACPI_TIMER_FREQUENCY 3579545
301#define EFI_ACPI_RESERVED_BYTE 0x00
302#define EFI_ACPI_RESERVED_WORD 0x0000
303#define EFI_ACPI_RESERVED_DWORD 0x00000000
304#define EFI_ACPI_RESERVED_QWORD 0x0000000000000000
312#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_WRITE (1 << 0)
313#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_ONLY (0 << 0)
317#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_NON_CACHEABLE (0 << 1)
318#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE (1 << 1)
319#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_WRITE_COMBINING (2 << 1)
320#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE (3 << 1)
324#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_MEMORY (0 << 3)
325#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_RESERVED (1 << 3)
326#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_ACPI (2 << 3)
327#define EFI_APCI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_NVS (3 << 3)
331#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_TRANSLATION (1 << 5)
332#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_STATIC (0 << 5)
338#define EFI_ACPI_IRQ_SHARABLE_MASK 0x10
339#define EFI_ACPI_IRQ_SHARABLE 0x10
341#define EFI_ACPI_IRQ_POLARITY_MASK 0x08
342#define EFI_ACPI_IRQ_HIGH_TRUE 0x00
343#define EFI_ACPI_IRQ_LOW_FALSE 0x08
345#define EFI_ACPI_IRQ_MODE 0x01
346#define EFI_ACPI_IRQ_LEVEL_TRIGGERED 0x00
347#define EFI_ACPI_IRQ_EDGE_TRIGGERED 0x01
353#define EFI_ACPI_DMA_SPEED_TYPE_MASK 0x60
354#define EFI_ACPI_DMA_SPEED_TYPE_COMPATIBILITY 0x00
355#define EFI_ACPI_DMA_SPEED_TYPE_A 0x20
356#define EFI_ACPI_DMA_SPEED_TYPE_B 0x40
357#define EFI_ACPI_DMA_SPEED_TYPE_F 0x60
359#define EFI_ACPI_DMA_BUS_MASTER_MASK 0x04
360#define EFI_ACPI_DMA_BUS_MASTER 0x04
362#define EFI_ACPI_DMA_TRANSFER_TYPE_MASK 0x03
363#define EFI_ACPI_DMA_TRANSFER_TYPE_8_BIT 0x00
364#define EFI_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT 0x01
365#define EFI_ACPI_DMA_TRANSFER_TYPE_16_BIT 0x02
371#define EFI_ACPI_IO_DECODE_MASK 0x01
372#define EFI_ACPI_IO_DECODE_16_BIT 0x01
373#define EFI_ACPI_IO_DECODE_10_BIT 0x00
379#define EFI_ACPI_MEMORY_WRITE_STATUS_MASK 0x01
380#define EFI_ACPI_MEMORY_WRITABLE 0x01
381#define EFI_ACPI_MEMORY_NON_WRITABLE 0x00
387#define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_PRODUCER_CONSUMER_MASK BIT0
388#define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_MODE_MASK BIT1
389#define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_POLARITY_MASK BIT2
390#define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_SHARABLE_MASK BIT3
391#define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_WAKE_CAPABLITY_MASK BIT4
421#define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
472#define EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x01
474#define EFI_ACPI_1_0_INT_MODE_DUAL_PIC 0
475#define EFI_ACPI_1_0_INT_MODE_MULTIPLE_APIC 1
481#define EFI_ACPI_1_0_WBINVD BIT0
482#define EFI_ACPI_1_0_WBINVD_FLUSH BIT1
483#define EFI_ACPI_1_0_PROC_C1 BIT2
484#define EFI_ACPI_1_0_P_LVL2_UP BIT3
485#define EFI_ACPI_1_0_PWR_BUTTON BIT4
486#define EFI_ACPI_1_0_SLP_BUTTON BIT5
487#define EFI_ACPI_1_0_FIX_RTC BIT6
488#define EFI_ACPI_1_0_RTC_S4 BIT7
489#define EFI_ACPI_1_0_TMR_VAL_EXT BIT8
490#define EFI_ACPI_1_0_DCK_CAP BIT9
509#define EFI_ACPI_1_0_S4BIOS_F BIT0
524#define EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x01
530#define EFI_ACPI_1_0_PCAT_COMPAT BIT0
537#define EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC 0x00
538#define EFI_ACPI_1_0_IO_APIC 0x01
539#define EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE 0x02
540#define EFI_ACPI_1_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03
541#define EFI_ACPI_1_0_LOCAL_APIC_NMI 0x04
561#define EFI_ACPI_1_0_LOCAL_APIC_ENABLED BIT0
625#define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')
630#define EFI_ACPI_1_0_APIC_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')
635#define EFI_ACPI_1_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T')
640#define EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S')
645#define EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P')
650#define EFI_ACPI_1_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T')
655#define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T')
660#define EFI_ACPI_1_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T')
665#define EFI_ACPI_1_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T')
unsigned short UINT16
2-byte unsigned value.
unsigned long long UINT64
8-byte unsigned value.
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
PACKED struct @227247123332077166066161132023247065141323042164 EFI_ACPI_DMA_DESCRIPTOR
DMA Descriptor.
PACKED struct @076237114001023334235305306253055271250234102116 EFI_ACPI_IRQ_NOFLAG_DESCRIPTOR
IRQ Descriptor.
PACKED struct @353215227041375130360056216056366322300031324221 EFI_ACPI_WORD_ADDRESS_SPACE_DESCRIPTOR
WORD Address Space Descriptor.
UINT64 AddrSpaceGranularity
PACKED struct @261327014120320200040134046062170334032016331337 EFI_ACPI_IO_PORT_DESCRIPTOR
I/O Port Descriptor.
UINT64 AddrTranslationOffset
PACKED struct @070126363266142000122014272037224307124317056203 EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR
The common definition of QWORD, DWORD, and WORD Address Space Descriptors.
PACKED struct @377012342272350211221350135141225373040123366024 EFI_ACPI_DWORD_ADDRESS_SPACE_DESCRIPTOR
DWORD Address Space Descriptor.
UINT8 InterruptTableLength
UINT32 InterruptNumber[1]
PACKED struct @306176217015200260143323171142141232265330211254::@257346040113042050160177011172173346053034203263 Bits
PACKED struct @322164373304052060305030263006055262163126106103 EFI_ACPI_EXTENDED_INTERRUPT_DESCRIPTOR
Extended Interrupt Descriptor.
PACKED union @306176217015200260143323171142141232265330211254 ACPI_SMALL_RESOURCE_HEADER
PACKED struct @300236171037157050314047353342111247347045220320 EFI_ACPI_32_BIT_MEMORY_RANGE_DESCRIPTOR
32-Bit Memory Range Descriptor
PACKED struct @165104130223077263224044232125337106163015377141 ACPI_LARGE_RESOURCE_HEADER
PACKED struct @217250170034264011120252170177365075310053270036 EFI_ACPI_24_BIT_MEMORY_RANGE_DESCRIPTOR
24-Bit Memory Range Descriptor
UINT8 InterruptVectorFlags
PACKED struct @302153152003011147117230130025116227326340051011 EFI_ACPI_IRQ_DESCRIPTOR
IRQ Descriptor.
PACKED union @165104130223077263224044232125337106163015377141::@273126103036270271166311122320164340317073026312 Header
PACKED struct @046304245237222140166043120272364245326314043312 EFI_ACPI_QWORD_ADDRESS_SPACE_DESCRIPTOR
QWORD Address Space Descriptor.
PACKED struct @302330271104021245050051323273102313354336076200 EFI_ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR
Fixed 32-Bit Fixed Memory Range Descriptor.
PACKED struct @055232371034011371332300342010216377256100312343 EFI_ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR
Fixed Location I/O Port Descriptor.
This file contains AML code definition in the latest ACPI spec.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
UINT8_t Length
Length of this structure.
Firmware ACPI Control Structure.
UINT32 FirmwareWakingVector
Fixed ACPI Description Table Structure (FADT).
EFI_ACPI_DESCRIPTION_HEADER Header
Interrupt Source Override Structure.
UINT32 GlobalSystemInterruptVector
Local APIC NMI Structure.
Non-Maskable Interrupt Source Structure.
UINT32 GlobalSystemInterruptVector
Processor Local APIC Structure Definition.
Root System Description Pointer Structure.
Smart Battery Description Table (SBST)
UINT32 WarningEnergyLevel
EFI_ACPI_DESCRIPTION_HEADER Header
UINT32 CriticalEnergyLevel
The End tag identifies an end of resource data.