XenevaOS
Loading...
Searching...
No Matches
Acpi10.h
Go to the documentation of this file.
1
14#ifndef _ACPI_1_0_H_
15#define _ACPI_1_0_H_
16
18
27
28#pragma pack(1)
43#pragma pack()
44
45//
46// Define for Desriptor
47//
48#define ACPI_SMALL_ITEM_FLAG 0x00
49#define ACPI_LARGE_ITEM_FLAG 0x01
50
51//
52// Small Item Descriptor Name
53//
54#define ACPI_SMALL_IRQ_DESCRIPTOR_NAME 0x04
55#define ACPI_SMALL_DMA_DESCRIPTOR_NAME 0x05
56#define ACPI_SMALL_START_DEPENDENT_DESCRIPTOR_NAME 0x06
57#define ACPI_SMALL_END_DEPENDENT_DESCRIPTOR_NAME 0x07
58#define ACPI_SMALL_IO_PORT_DESCRIPTOR_NAME 0x08
59#define ACPI_SMALL_FIXED_IO_PORT_DESCRIPTOR_NAME 0x09
60#define ACPI_SMALL_VENDOR_DEFINED_DESCRIPTOR_NAME 0x0E
61#define ACPI_SMALL_END_TAG_DESCRIPTOR_NAME 0x0F
62
63//
64// Large Item Descriptor Name
65//
66#define ACPI_LARGE_24_BIT_MEMORY_RANGE_DESCRIPTOR_NAME 0x01
67#define ACPI_LARGE_VENDOR_DEFINED_DESCRIPTOR_NAME 0x04
68#define ACPI_LARGE_32_BIT_MEMORY_RANGE_DESCRIPTOR_NAME 0x05
69#define ACPI_LARGE_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR_NAME 0x06
70#define ACPI_LARGE_DWORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x07
71#define ACPI_LARGE_WORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x08
72#define ACPI_LARGE_EXTENDED_IRQ_DESCRIPTOR_NAME 0x09
73#define ACPI_LARGE_QWORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x0A
74
75//
76// Small Item Descriptor Value
77//
78#define ACPI_IRQ_NOFLAG_DESCRIPTOR 0x22
79#define ACPI_IRQ_DESCRIPTOR 0x23
80#define ACPI_DMA_DESCRIPTOR 0x2A
81#define ACPI_START_DEPENDENT_DESCRIPTOR 0x30
82#define ACPI_START_DEPENDENT_EX_DESCRIPTOR 0x31
83#define ACPI_END_DEPENDENT_DESCRIPTOR 0x38
84#define ACPI_IO_PORT_DESCRIPTOR 0x47
85#define ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR 0x4B
86#define ACPI_END_TAG_DESCRIPTOR 0x79
87
88//
89// Large Item Descriptor Value
90//
91#define ACPI_24_BIT_MEMORY_RANGE_DESCRIPTOR 0x81
92#define ACPI_32_BIT_MEMORY_RANGE_DESCRIPTOR 0x85
93#define ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR 0x86
94#define ACPI_DWORD_ADDRESS_SPACE_DESCRIPTOR 0x87
95#define ACPI_WORD_ADDRESS_SPACE_DESCRIPTOR 0x88
96#define ACPI_EXTENDED_INTERRUPT_DESCRIPTOR 0x89
97#define ACPI_QWORD_ADDRESS_SPACE_DESCRIPTOR 0x8A
98#define ACPI_ADDRESS_SPACE_DESCRIPTOR 0x8A
99
100//
101// Resource Type
102//
103#define ACPI_ADDRESS_SPACE_TYPE_MEM 0x00
104#define ACPI_ADDRESS_SPACE_TYPE_IO 0x01
105#define ACPI_ADDRESS_SPACE_TYPE_BUS 0x02
106
110#define ACPI_TIMER_FREQUENCY 3579545
111
112//
113// Ensure proper structure formats
114//
115#pragma pack(1)
116
121typedef PACKED struct {
133
134typedef PACKED union {
136 PACKED struct {
142
143typedef PACKED struct {
144 PACKED union {
145 UINT8 Byte;
146 PACKED struct {
147 UINT8 Name : 7;
148 UINT8 Type : 1;
149 }Bits;
150 } Header;
153
157typedef PACKED struct {
161
165typedef PACKED struct {
167 UINT16 Mask;
170
174typedef PACKED struct {
179
183typedef PACKED struct {
191
195typedef PACKED struct {
200
204typedef PACKED struct {
212
216typedef PACKED struct {
224
228typedef PACKED struct {
234
238typedef PACKED struct {
249
253typedef PACKED struct {
264
268typedef PACKED struct {
279
283typedef PACKED struct {
289
290#pragma pack()
291
299
300//
301// General use definitions
302//
303#define EFI_ACPI_RESERVED_BYTE 0x00
304#define EFI_ACPI_RESERVED_WORD 0x0000
305#define EFI_ACPI_RESERVED_DWORD 0x00000000
306#define EFI_ACPI_RESERVED_QWORD 0x0000000000000000
307
308//
309// Resource Type Specific Flags
310// Ref ACPI specification 6.4.3.5.5
311//
312// Bit [0] : Write Status, _RW
313//
314#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_WRITE (1 << 0)
315#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_ONLY (0 << 0)
316//
317// Bit [2:1] : Memory Attributes, _MEM
318//
319#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_NON_CACHEABLE (0 << 1)
320#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE (1 << 1)
321#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_WRITE_COMBINING (2 << 1)
322#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE (3 << 1)
323//
324// Bit [4:3] : Memory Attributes, _MTP
325//
326#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_MEMORY (0 << 3)
327#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_RESERVED (1 << 3)
328#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_ACPI (2 << 3)
329#define EFI_APCI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_NVS (3 << 3)
330//
331// Bit [5] : Memory to I/O Translation, _TTP
332//
333#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_TRANSLATION (1 << 5)
334#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_STATIC (0 << 5)
335
336//
337// IRQ Information
338// Ref ACPI specification 6.4.2.1
339//
340#define EFI_ACPI_IRQ_SHARABLE_MASK 0x10
341#define EFI_ACPI_IRQ_SHARABLE 0x10
342
343#define EFI_ACPI_IRQ_POLARITY_MASK 0x08
344#define EFI_ACPI_IRQ_HIGH_TRUE 0x00
345#define EFI_ACPI_IRQ_LOW_FALSE 0x08
346
347#define EFI_ACPI_IRQ_MODE 0x01
348#define EFI_ACPI_IRQ_LEVEL_TRIGGERED 0x00
349#define EFI_ACPI_IRQ_EDGE_TRIGGERED 0x01
350
351//
352// DMA Information
353// Ref ACPI specification 6.4.2.2
354//
355#define EFI_ACPI_DMA_SPEED_TYPE_MASK 0x60
356#define EFI_ACPI_DMA_SPEED_TYPE_COMPATIBILITY 0x00
357#define EFI_ACPI_DMA_SPEED_TYPE_A 0x20
358#define EFI_ACPI_DMA_SPEED_TYPE_B 0x40
359#define EFI_ACPI_DMA_SPEED_TYPE_F 0x60
360
361#define EFI_ACPI_DMA_BUS_MASTER_MASK 0x04
362#define EFI_ACPI_DMA_BUS_MASTER 0x04
363
364#define EFI_ACPI_DMA_TRANSFER_TYPE_MASK 0x03
365#define EFI_ACPI_DMA_TRANSFER_TYPE_8_BIT 0x00
366#define EFI_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT 0x01
367#define EFI_ACPI_DMA_TRANSFER_TYPE_16_BIT 0x10
368
369//
370// IO Information
371// Ref ACPI specification 6.4.2.5
372//
373#define EFI_ACPI_IO_DECODE_MASK 0x01
374#define EFI_ACPI_IO_DECODE_16_BIT 0x01
375#define EFI_ACPI_IO_DECODE_10_BIT 0x00
376
377//
378// Memory Information
379// Ref ACPI specification 6.4.3.4
380//
381#define EFI_ACPI_MEMORY_WRITE_STATUS_MASK 0x01
382#define EFI_ACPI_MEMORY_WRITABLE 0x01
383#define EFI_ACPI_MEMORY_NON_WRITABLE 0x00
384
385//
386// Ensure proper structure formats
387//
388#pragma pack(1)
389//
390// ACPI 1.0b table structures
391//
392
403
404//
405// Root System Description Table
406// No definition needed as it is a common description table header, the same with
407// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
408//
409
413#define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
414
460
464#define EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x01
465
466#define EFI_ACPI_1_0_INT_MODE_DUAL_PIC 0
467#define EFI_ACPI_1_0_INT_MODE_MULTIPLE_APIC 1
468
469//
470// Fixed ACPI Description Table Fixed Feature Flags
471// All other bits are reserved and must be set to 0.
472//
473#define EFI_ACPI_1_0_WBINVD BIT0
474#define EFI_ACPI_1_0_WBINVD_FLUSH BIT1
475#define EFI_ACPI_1_0_PROC_C1 BIT2
476#define EFI_ACPI_1_0_P_LVL2_UP BIT3
477#define EFI_ACPI_1_0_PWR_BUTTON BIT4
478#define EFI_ACPI_1_0_SLP_BUTTON BIT5
479#define EFI_ACPI_1_0_FIX_RTC BIT6
480#define EFI_ACPI_1_0_RTC_S4 BIT7
481#define EFI_ACPI_1_0_TMR_VAL_EXT BIT8
482#define EFI_ACPI_1_0_DCK_CAP BIT9
483
496
501#define EFI_ACPI_1_0_S4BIOS_F BIT0
502
512
516#define EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x01
517
522#define EFI_ACPI_1_0_PCAT_COMPAT BIT0
523
524//
525// Multiple APIC Description Table APIC structure types
526// All other values between 0x05 an 0xFF are reserved and
527// will be ignored by OSPM.
528//
529#define EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC 0x00
530#define EFI_ACPI_1_0_IO_APIC 0x01
531#define EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE 0x02
532#define EFI_ACPI_1_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03
533#define EFI_ACPI_1_0_LOCAL_APIC_NMI 0x04
534
535//
536// APIC Structure Definitions
537//
538
549
553#define EFI_ACPI_1_0_LOCAL_APIC_ENABLED BIT0
554
566
578
588
599
609
610//
611// Known table signatures
612//
613
617#define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')
618
622#define EFI_ACPI_1_0_APIC_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')
623
627#define EFI_ACPI_1_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T')
628
632#define EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S')
633
637#define EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P')
638
642#define EFI_ACPI_1_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T')
643
647#define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T')
648
652#define EFI_ACPI_1_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T')
653
657#define EFI_ACPI_1_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T')
658
659#pragma pack()
660
661#endif
unsigned int UINT32
Definition ProcessorBind.h:102
PACKED struct @25 EFI_ACPI_DMA_DESCRIPTOR
UINT8 ResType
Definition Acpi10.h:124
UINT64 AddrRangeMin
Definition Acpi10.h:128
PACKED struct @20 EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR
PACKED struct @29 EFI_ACPI_32_BIT_MEMORY_RANGE_DESCRIPTOR
UINT8 ChannelMask
Definition Acpi10.h:176
UINT64 AddrSpaceGranularity
Definition Acpi10.h:127
PACKED struct @21::@35 Bits
UINT8 Information
Definition Acpi10.h:168
UINT16 BaseAddress
Definition Acpi10.h:197
UINT8 SpecificFlag
Definition Acpi10.h:126
UINT64 AddrTranslationOffset
Definition Acpi10.h:130
UINT16 BaseAddressMin
Definition Acpi10.h:186
PACKED struct @28 EFI_ACPI_24_BIT_MEMORY_RANGE_DESCRIPTOR
UINT16 BaseAddressMax
Definition Acpi10.h:187
UINT8 InterruptTableLength
Definition Acpi10.h:286
UINT64 AddrLen
Definition Acpi10.h:131
UINT8 Name
Definition Acpi10.h:138
UINT32 InterruptNumber[1]
Definition Acpi10.h:287
PACKED struct @26 EFI_ACPI_IO_PORT_DESCRIPTOR
UINT8 GenFlag
Definition Acpi10.h:125
PACKED struct @27 EFI_ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR
UINT16 Mask
Definition Acpi10.h:159
UINT8 Type
Definition Acpi10.h:139
UINT64 AddrRangeMax
Definition Acpi10.h:129
PACKED struct @22 ACPI_LARGE_RESOURCE_HEADER
UINT8 InterruptVectorFlags
Definition Acpi10.h:285
PACKED struct @31 EFI_ACPI_QWORD_ADDRESS_SPACE_DESCRIPTOR
PACKED struct @23 EFI_ACPI_IRQ_NOFLAG_DESCRIPTOR
UINT8 Byte
Definition Acpi10.h:135
PACKED struct @33 EFI_ACPI_WORD_ADDRESS_SPACE_DESCRIPTOR
UINT8 Desc
Definition Acpi10.h:122
UINT8 Alignment
Definition Acpi10.h:188
PACKED union @21 ACPI_SMALL_RESOURCE_HEADER
PACKED union @22::@36 Header
Definition Acpi10.h:158
UINT16 Len
Definition Acpi10.h:123
PACKED struct @24 EFI_ACPI_IRQ_DESCRIPTOR
UINT8 Length
Definition Acpi10.h:137
PACKED struct @34 EFI_ACPI_EXTENDED_INTERRUPT_DESCRIPTOR
PACKED struct @32 EFI_ACPI_DWORD_ADDRESS_SPACE_DESCRIPTOR
PACKED struct @30 EFI_ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR
UINT8 Reserved
Definition Acpi30.h:40
#define PACKED
Definition Base.h:274
unsigned short UINT16
Definition actypes.h:237
unsigned char UINT8
Definition actypes.h:236
COMPILER_DEPENDENT_UINT64 UINT64
Definition actypes.h:239
UINT32 Length
Definition Acpi10.h:489
UINT32 GlobalLock
Definition Acpi10.h:492
UINT32 Flags
Definition Acpi10.h:493
UINT32 Signature
Definition Acpi10.h:488
UINT32 HardwareSignature
Definition Acpi10.h:490
UINT32 FirmwareWakingVector
Definition Acpi10.h:491
UINT8 Reserved5
Definition Acpi10.h:456
UINT16 FlushStride
Definition Acpi10.h:449
UINT8 S4BiosReq
Definition Acpi10.h:428
UINT8 DayAlrm
Definition Acpi10.h:452
UINT32 Gpe1Blk
Definition Acpi10.h:437
UINT8 Pm1EvtLen
Definition Acpi10.h:438
UINT8 DutyWidth
Definition Acpi10.h:451
UINT32 FirmwareCtrl
Definition Acpi10.h:420
UINT8 Reserved2
Definition Acpi10.h:429
UINT8 Pm1CntLen
Definition Acpi10.h:439
UINT32 Pm1aCntBlk
Definition Acpi10.h:432
UINT8 Gpe1Base
Definition Acpi10.h:444
UINT32 Dsdt
Definition Acpi10.h:421
UINT32 Gpe0Blk
Definition Acpi10.h:436
UINT8 AcpiDisable
Definition Acpi10.h:427
UINT8 MonAlrm
Definition Acpi10.h:453
UINT16 SciInt
Definition Acpi10.h:424
UINT32 Flags
Definition Acpi10.h:458
UINT8 Reserved4
Definition Acpi10.h:455
UINT8 Gpe1BlkLen
Definition Acpi10.h:443
UINT32 Pm2CntBlk
Definition Acpi10.h:434
UINT32 Pm1aEvtBlk
Definition Acpi10.h:430
UINT16 FlushSize
Definition Acpi10.h:448
UINT8 Reserved3
Definition Acpi10.h:445
UINT8 IntModel
Definition Acpi10.h:422
UINT8 Century
Definition Acpi10.h:454
UINT32 Pm1bCntBlk
Definition Acpi10.h:433
UINT8 AcpiEnable
Definition Acpi10.h:426
UINT8 Reserved6
Definition Acpi10.h:457
UINT8 Gpe0BlkLen
Definition Acpi10.h:442
UINT32 SmiCmd
Definition Acpi10.h:425
UINT8 Reserved1
Definition Acpi10.h:423
UINT8 Pm2CntLen
Definition Acpi10.h:440
EFI_ACPI_DESCRIPTION_HEADER Header
Definition Acpi10.h:419
UINT8 DutyOffset
Definition Acpi10.h:450
UINT16 PLvl2Lat
Definition Acpi10.h:446
UINT16 PLvl3Lat
Definition Acpi10.h:447
UINT32 Pm1bEvtBlk
Definition Acpi10.h:431
UINT32 PmTmrBlk
Definition Acpi10.h:435
UINT8 PmTmLen
Definition Acpi10.h:441
UINT32 GlobalSystemInterruptVector
Definition Acpi10.h:575
Definition Acpi10.h:558
UINT32 SystemVectorBase
Definition Acpi10.h:564
UINT8 IoApicId
Definition Acpi10.h:561
UINT8 Length
Definition Acpi10.h:560
UINT8 Type
Definition Acpi10.h:559
UINT8 Reserved
Definition Acpi10.h:562
UINT32 IoApicAddress
Definition Acpi10.h:563
UINT16 Flags
Definition Acpi10.h:596
UINT8 Length
Definition Acpi10.h:594
UINT8 Type
Definition Acpi10.h:593
UINT8 LocalApicInti
Definition Acpi10.h:597
UINT8 AcpiProcessorId
Definition Acpi10.h:595
EFI_ACPI_DESCRIPTION_HEADER Header
Definition Acpi10.h:508
UINT32 LocalApicAddress
Definition Acpi10.h:509
UINT32 GlobalSystemInterruptVector
Definition Acpi10.h:586
UINT8 AcpiProcessorId
Definition Acpi10.h:545
UINT8 ApicId
Definition Acpi10.h:546
UINT8 Length
Definition Acpi10.h:544
UINT32 Flags
Definition Acpi10.h:547
UINT8 Type
Definition Acpi10.h:543
UINT32 RsdtAddress
Definition Acpi10.h:401
UINT8 Checksum
Definition Acpi10.h:398
UINT64 Signature
Definition Acpi10.h:397
UINT8 Reserved
Definition Acpi10.h:400
UINT32 WarningEnergyLevel
Definition Acpi10.h:605
UINT32 LowEnergyLevel
Definition Acpi10.h:606
EFI_ACPI_DESCRIPTION_HEADER Header
Definition Acpi10.h:604
UINT32 CriticalEnergyLevel
Definition Acpi10.h:607
Definition Acpi10.h:23
UINT32 Signature
Definition Acpi10.h:24
UINT32 Length
Definition Acpi10.h:25
Definition Acpi10.h:32
UINT8 Checksum
Definition Acpi10.h:36
UINT32 CreatorRevision
Definition Acpi10.h:41
UINT32 Length
Definition Acpi10.h:34
UINT32 CreatorId
Definition Acpi10.h:40
UINT8 Revision
Definition Acpi10.h:35
UINT32 Signature
Definition Acpi10.h:33
UINT64 OemTableId
Definition Acpi10.h:38
UINT32 OemRevision
Definition Acpi10.h:39
Definition Acpi10.h:295
UINT8 Checksum
Definition Acpi10.h:297
UINT8 Desc
Definition Acpi10.h:296