ReactOS 0.4.17-dev-1190-g4c812f4
acpi.h
Go to the documentation of this file.
1#pragma once
2
4#include <uacpi/helpers.h>
5#include <uacpi/types.h>
6
13#define ACPI_RSDP_SIGNATURE "RSD PTR "
14#define ACPI_RSDT_SIGNATURE "RSDT"
15#define ACPI_XSDT_SIGNATURE "XSDT"
16#define ACPI_MADT_SIGNATURE "APIC"
17#define ACPI_FADT_SIGNATURE "FACP"
18#define ACPI_FACS_SIGNATURE "FACS"
19#define ACPI_MCFG_SIGNATURE "MCFG"
20#define ACPI_HPET_SIGNATURE "HPET"
21#define ACPI_SRAT_SIGNATURE "SRAT"
22#define ACPI_SLIT_SIGNATURE "SLIT"
23#define ACPI_DSDT_SIGNATURE "DSDT"
24#define ACPI_SSDT_SIGNATURE "SSDT"
25#define ACPI_PSDT_SIGNATURE "PSDT"
26#define ACPI_ECDT_SIGNATURE "ECDT"
27#define ACPI_DBG2_SIGNATURE "DBG2"
28#define ACPI_SPCR_SIGNATURE "SPCR"
29#define ACPI_RHCT_SIGNATURE "RHCT"
30#define ACPI_DMAR_SIGNATURE "DMAR"
31#define ACPI_WAET_SIGNATURE "WAET"
32#define ACPI_HMAT_SIGNATURE "HMAT"
33
34#define ACPI_AS_ID_SYS_MEM 0x00
35#define ACPI_AS_ID_SYS_IO 0x01
36#define ACPI_AS_ID_PCI_CFG_SPACE 0x02
37#define ACPI_AS_ID_EC 0x03
38#define ACPI_AS_ID_SMBUS 0x04
39#define ACPI_AS_ID_SYS_CMOS 0x05
40#define ACPI_AS_ID_PCI_BAR_TGT 0x06
41#define ACPI_AS_ID_IPMI 0x07
42#define ACPI_AS_ID_GP_IO 0x08
43#define ACPI_AS_ID_GENERIC_SBUS 0x09
44#define ACPI_AS_ID_PCC 0x0A
45#define ACPI_AS_ID_FFH 0x7F
46#define ACPI_AS_ID_OEM_BASE 0xC0
47#define ACPI_AS_ID_OEM_END 0xFF
48
49#define ACPI_ACCESS_UD 0
50#define ACPI_ACCESS_BYTE 1
51#define ACPI_ACCESS_WORD 2
52#define ACPI_ACCESS_DWORD 3
53#define ACPI_ACCESS_QWORD 4
54
55UACPI_PACKED(struct acpi_gas {
56 uacpi_u8 address_space_id;
57 uacpi_u8 register_bit_width;
58 uacpi_u8 register_bit_offset;
59 uacpi_u8 access_size;
61})
62UACPI_EXPECT_SIZEOF(struct acpi_gas, 12);
63
64UACPI_PACKED(struct acpi_rsdp {
67 uacpi_char oemid[6];
69 uacpi_u32 rsdt_addr;
70
71 // vvvv available if .revision >= 2.0 only
73 uacpi_u64 xsdt_addr;
74 uacpi_u8 extended_checksum;
75 uacpi_u8 rsvd[3];
76})
77UACPI_EXPECT_SIZEOF(struct acpi_rsdp, 36);
78
79UACPI_PACKED(struct acpi_sdt_hdr {
84 uacpi_char oemid[6];
85 uacpi_char oem_table_id[8];
86 uacpi_u32 oem_revision;
87 uacpi_u32 creator_id;
88 uacpi_u32 creator_revision;
89})
90UACPI_EXPECT_SIZEOF(struct acpi_sdt_hdr, 36);
91
92UACPI_PACKED(struct acpi_rsdt {
93 struct acpi_sdt_hdr hdr;
94 uacpi_u32 entries[];
95})
96
97UACPI_PACKED(struct acpi_xsdt {
98 struct acpi_sdt_hdr hdr;
99 uacpi_u64 entries[];
100})
101
102UACPI_PACKED(struct acpi_entry_hdr {
109})
110
111// acpi_madt->flags
112#define ACPI_PCAT_COMPAT (1 << 0)
113
114enum acpi_madt_entry_type {
115 ACPI_MADT_ENTRY_TYPE_LAPIC = 0,
116 ACPI_MADT_ENTRY_TYPE_IOAPIC = 1,
117 ACPI_MADT_ENTRY_TYPE_INTERRUPT_SOURCE_OVERRIDE = 2,
118 ACPI_MADT_ENTRY_TYPE_NMI_SOURCE = 3,
119 ACPI_MADT_ENTRY_TYPE_LAPIC_NMI = 4,
120 ACPI_MADT_ENTRY_TYPE_LAPIC_ADDRESS_OVERRIDE = 5,
121 ACPI_MADT_ENTRY_TYPE_IOSAPIC = 6,
122 ACPI_MADT_ENTRY_TYPE_LSAPIC = 7,
123 ACPI_MADT_ENTRY_TYPE_PLATFORM_INTERRUPT_SOURCES = 8,
124 ACPI_MADT_ENTRY_TYPE_LOCAL_X2APIC = 9,
125 ACPI_MADT_ENTRY_TYPE_LOCAL_X2APIC_NMI = 0xA,
126 ACPI_MADT_ENTRY_TYPE_GICC = 0xB,
127 ACPI_MADT_ENTRY_TYPE_GICD = 0xC,
128 ACPI_MADT_ENTRY_TYPE_GIC_MSI_FRAME = 0xD,
129 ACPI_MADT_ENTRY_TYPE_GICR = 0xE,
130 ACPI_MADT_ENTRY_TYPE_GIC_ITS = 0xF,
131 ACPI_MADT_ENTRY_TYPE_MULTIPROCESSOR_WAKEUP = 0x10,
132 ACPI_MADT_ENTRY_TYPE_CORE_PIC = 0x11,
133 ACPI_MADT_ENTRY_TYPE_LIO_PIC = 0x12,
134 ACPI_MADT_ENTRY_TYPE_HT_PIC = 0x13,
135 ACPI_MADT_ENTRY_TYPE_EIO_PIC = 0x14,
136 ACPI_MADT_ENTRY_TYPE_MSI_PIC = 0x15,
137 ACPI_MADT_ENTRY_TYPE_BIO_PIC = 0x16,
138 ACPI_MADT_ENTRY_TYPE_LPC_PIC = 0x17,
139 ACPI_MADT_ENTRY_TYPE_RINTC = 0x18,
140 ACPI_MADT_ENTRY_TYPE_IMSIC = 0x19,
141 ACPI_MADT_ENTRY_TYPE_APLIC = 0x1A,
142 ACPI_MADT_ENTRY_TYPE_PLIC = 0x1B,
143 ACPI_MADT_ENTRY_TYPE_RESERVED = 0x1C, // 0x1C..0x7F
144 ACPI_MADT_ENTRY_TYPE_OEM = 0x80, // 0x80..0xFF
145};
146
147UACPI_PACKED(struct acpi_madt {
148 struct acpi_sdt_hdr hdr;
149 uacpi_u32 local_interrupt_controller_address;
151 struct acpi_entry_hdr entries[];
152})
153UACPI_EXPECT_SIZEOF(struct acpi_madt, 44);
154
160#define ACPI_PIC_ENABLED (1 << 0)
161#define ACPI_PIC_ONLINE_CAPABLE (1 << 1)
162
163UACPI_PACKED(struct acpi_madt_lapic {
164 struct acpi_entry_hdr hdr;
165 uacpi_u8 uid;
166 uacpi_u8 id;
168})
169UACPI_EXPECT_SIZEOF(struct acpi_madt_lapic, 8);
170
171UACPI_PACKED(struct acpi_madt_ioapic {
172 struct acpi_entry_hdr hdr;
173 uacpi_u8 id;
174 uacpi_u8 rsvd;
176 uacpi_u32 gsi_base;
177})
178UACPI_EXPECT_SIZEOF(struct acpi_madt_ioapic, 12);
179
187#define ACPI_MADT_POLARITY_MASK 0b11
188#define ACPI_MADT_POLARITY_CONFORMING 0b00
189#define ACPI_MADT_POLARITY_ACTIVE_HIGH 0b01
190#define ACPI_MADT_POLARITY_ACTIVE_LOW 0b11
191
192#define ACPI_MADT_TRIGGERING_MASK 0b1100
193#define ACPI_MADT_TRIGGERING_CONFORMING 0b0000
194#define ACPI_MADT_TRIGGERING_EDGE 0b0100
195#define ACPI_MADT_TRIGGERING_LEVEL 0b1100
196
197UACPI_PACKED(struct acpi_madt_interrupt_source_override {
198 struct acpi_entry_hdr hdr;
199 uacpi_u8 bus;
201 uacpi_u32 gsi;
203})
204UACPI_EXPECT_SIZEOF(struct acpi_madt_interrupt_source_override, 10);
205
207 struct acpi_entry_hdr hdr;
209 uacpi_u32 gsi;
210})
212
213UACPI_PACKED(struct acpi_madt_lapic_nmi {
214 struct acpi_entry_hdr hdr;
215 uacpi_u8 uid;
218})
219UACPI_EXPECT_SIZEOF(struct acpi_madt_lapic_nmi, 6);
220
221UACPI_PACKED(struct acpi_madt_lapic_address_override {
222 struct acpi_entry_hdr hdr;
223 uacpi_u16 rsvd;
225})
226UACPI_EXPECT_SIZEOF(struct acpi_madt_lapic_address_override, 12);
227
228UACPI_PACKED(struct acpi_madt_iosapic {
229 struct acpi_entry_hdr hdr;
230 uacpi_u8 id;
231 uacpi_u8 rsvd;
232 uacpi_u32 gsi_base;
234})
235UACPI_EXPECT_SIZEOF(struct acpi_madt_iosapic, 16);
236
237UACPI_PACKED(struct acpi_madt_lsapic {
238 struct acpi_entry_hdr hdr;
239 uacpi_u8 acpi_id;
240 uacpi_u8 id;
241 uacpi_u8 eid;
244 uacpi_u32 uid;
245 uacpi_char uid_string[];
246})
247UACPI_EXPECT_SIZEOF(struct acpi_madt_lsapic, 16);
248
249// acpi_madt_platform_interrupt_source->platform_flags
250#define ACPI_CPEI_PROCESSOR_OVERRIDE (1 << 0)
251
252UACPI_PACKED(struct acpi_madt_platform_interrupt_source {
253 struct acpi_entry_hdr hdr;
256 uacpi_u8 processor_id;
257 uacpi_u8 processor_eid;
258 uacpi_u8 iosapic_vector;
259 uacpi_u32 gsi;
260 uacpi_u32 platform_flags;
261})
262UACPI_EXPECT_SIZEOF(struct acpi_madt_platform_interrupt_source, 16);
263
264UACPI_PACKED(struct acpi_madt_x2apic {
265 struct acpi_entry_hdr hdr;
266 uacpi_u16 rsvd;
269 uacpi_u32 uid;
270})
271UACPI_EXPECT_SIZEOF(struct acpi_madt_x2apic, 16);
272
273UACPI_PACKED(struct acpi_madt_x2apic_nmi {
274 struct acpi_entry_hdr hdr;
276 uacpi_u32 uid;
279})
280UACPI_EXPECT_SIZEOF(struct acpi_madt_x2apic_nmi, 12);
281
282// acpi_madt_gicc->flags
283#define ACPI_GICC_ENABLED (1 << 0)
284#define ACPI_GICC_PERF_INTERRUPT_MODE (1 << 1)
285#define ACPI_GICC_VGIC_MAINTENANCE_INTERRUPT_MODE (1 << 2)
286#define ACPI_GICC_ONLINE_CAPABLE (1 << 3)
287
288// ACPI_GICC_*_INTERRUPT_MODE
289#define ACPI_GICC_TRIGGERING_EDGE 1
290#define ACPI_GICC_TRIGGERING_LEVEL 0
291
292UACPI_PACKED(struct acpi_madt_gicc {
293 struct acpi_entry_hdr hdr;
294 uacpi_u16 rsvd0;
295 uacpi_u32 interface_number;
296 uacpi_u32 acpi_id;
298 uacpi_u32 parking_protocol_version;
299 uacpi_u32 perf_interrupt_gsiv;
300 uacpi_u64 parked_address;
302 uacpi_u64 gicv;
303 uacpi_u64 gich;
304 uacpi_u32 vgic_maitenante_interrupt;
305 uacpi_u64 gicr_base_address;
306 uacpi_u64 mpidr;
307 uacpi_u8 power_efficiency_class;
308 uacpi_u8 rsvd1;
309 uacpi_u16 spe_overflow_interrupt;
310 uacpi_u16 trbe_interrupt;
311})
312UACPI_EXPECT_SIZEOF(struct acpi_madt_gicc, 82);
313
314UACPI_PACKED(struct acpi_madt_gicd {
315 struct acpi_entry_hdr hdr;
316 uacpi_u16 rsvd0;
319 uacpi_u32 system_vector_base;
320 uacpi_u8 gic_version;
321 uacpi_u8 reserved1[3];
322})
323UACPI_EXPECT_SIZEOF(struct acpi_madt_gicd, 24);
324
325// acpi_madt_gic_msi_frame->flags
326#define ACPI_SPI_SELECT (1 << 0)
327
328UACPI_PACKED(struct acpi_madt_gic_msi_frame {
329 struct acpi_entry_hdr hdr;
330 uacpi_u16 rsvd;
334 uacpi_u16 spi_count;
335 uacpi_u16 spi_base;
336})
337UACPI_EXPECT_SIZEOF(struct acpi_madt_gic_msi_frame, 24);
338
339UACPI_PACKED(struct acpi_madt_gicr {
340 struct acpi_entry_hdr hdr;
341 uacpi_u16 rsvd;
344})
345UACPI_EXPECT_SIZEOF(struct acpi_madt_gicr, 16);
346
347UACPI_PACKED(struct acpi_madt_gic_its {
348 struct acpi_entry_hdr hdr;
349 uacpi_u16 rsvd0;
352 uacpi_u32 rsvd1;
353})
354UACPI_EXPECT_SIZEOF(struct acpi_madt_gic_its, 20);
355
356UACPI_PACKED(struct acpi_madt_multiprocessor_wakeup {
357 struct acpi_entry_hdr hdr;
358 uacpi_u16 mailbox_version;
359 uacpi_u32 rsvd;
360 uacpi_u64 mailbox_address;
361})
362UACPI_EXPECT_SIZEOF(struct acpi_madt_multiprocessor_wakeup, 16);
363
364#define ACPI_CORE_PIC_ENABLED (1 << 0)
365
367 struct acpi_entry_hdr hdr;
369 uacpi_u32 acpi_id;
372})
374
376 struct acpi_entry_hdr hdr;
380 uacpi_u16 cascade_vector;
381 uacpi_u64 cascade_vector_mapping;
382})
384
386 struct acpi_entry_hdr hdr;
390 uacpi_u64 cascade_vector;
391})
393
395 struct acpi_entry_hdr hdr;
397 uacpi_u8 cascade_vector;
399 uacpi_u64 node_map;
400})
402
404 struct acpi_entry_hdr hdr;
409})
411
413 struct acpi_entry_hdr hdr;
417 uacpi_u16 hardware_id;
418 uacpi_u16 gsi_base;
419})
421
423 struct acpi_entry_hdr hdr;
427 uacpi_u16 cascade_vector;
428})
430
431UACPI_PACKED(struct acpi_madt_rintc {
432 struct acpi_entry_hdr hdr;
434 uacpi_u8 rsvd;
436 uacpi_u64 hart_id;
437 uacpi_u32 uid;
438 uacpi_u32 ext_intc_id;
441})
442UACPI_EXPECT_SIZEOF(struct acpi_madt_rintc, 36);
443
444UACPI_PACKED(struct acpi_madt_imsic {
445 struct acpi_entry_hdr hdr;
447 uacpi_u8 rsvd;
449 uacpi_u16 num_ids;
450 uacpi_u16 num_guest_ids;
451 uacpi_u8 guest_index_bits;
452 uacpi_u8 hart_index_bits;
453 uacpi_u8 group_index_bits;
454 uacpi_u8 group_index_shift;
455})
456UACPI_EXPECT_SIZEOF(struct acpi_madt_imsic, 16);
457
458UACPI_PACKED(struct acpi_madt_aplic {
459 struct acpi_entry_hdr hdr;
461 uacpi_u8 id;
463 uacpi_u64 hardware_id;
464 uacpi_u16 idc_count;
465 uacpi_u16 sources_count;
466 uacpi_u32 gsi_base;
469})
470UACPI_EXPECT_SIZEOF(struct acpi_madt_aplic, 36);
471
472UACPI_PACKED(struct acpi_madt_plic {
473 struct acpi_entry_hdr hdr;
475 uacpi_u8 id;
476 uacpi_u64 hardware_id;
477 uacpi_u16 sources_count;
478 uacpi_u16 max_priority;
482 uacpi_u32 gsi_base;
483
484})
485UACPI_EXPECT_SIZEOF(struct acpi_madt_plic, 36);
486
496};
497
498UACPI_PACKED(struct acpi_srat {
499 struct acpi_sdt_hdr hdr;
500 uacpi_u32 rsvd0;
501 uacpi_u64 rsvd1;
502 struct acpi_entry_hdr entries[];
503})
504UACPI_EXPECT_SIZEOF(struct acpi_srat, 48);
505
510#define ACPI_SRAT_PROCESSOR_ENABLED (1 << 0)
511
512UACPI_PACKED(struct acpi_srat_processor_affinity {
513 struct acpi_entry_hdr hdr;
514 uacpi_u8 proximity_domain_low;
515 uacpi_u8 id;
517 uacpi_u8 eid;
518 uacpi_u8 proximity_domain_high[3];
519 uacpi_u32 clock_domain;
520})
521UACPI_EXPECT_SIZEOF(struct acpi_srat_processor_affinity, 16);
522
523// acpi_srat_memory_affinity->flags
524#define ACPI_SRAT_MEMORY_ENABLED (1 << 0)
525#define ACPI_SRAT_MEMORY_HOTPLUGGABLE (1 << 1)
526#define ACPI_SRAT_MEMORY_NON_VOLATILE (1 << 2)
527
528UACPI_PACKED(struct acpi_srat_memory_affinity {
529 struct acpi_entry_hdr hdr;
530 uacpi_u32 proximity_domain;
531 uacpi_u16 rsvd0;
534 uacpi_u32 rsvd1;
536 uacpi_u64 rsdv2;
537})
538UACPI_EXPECT_SIZEOF(struct acpi_srat_memory_affinity, 40);
539
540UACPI_PACKED(struct acpi_srat_x2apic_affinity {
541 struct acpi_entry_hdr hdr;
542 uacpi_u16 rsvd0;
543 uacpi_u32 proximity_domain;
546 uacpi_u32 clock_domain;
547 uacpi_u32 rsvd1;
548})
549UACPI_EXPECT_SIZEOF(struct acpi_srat_x2apic_affinity, 24);
550
551// acpi_srat_gicc_affinity->flags
552#define ACPI_SRAT_GICC_ENABLED (1 << 0)
553
555 struct acpi_entry_hdr hdr;
556 uacpi_u32 proximity_domain;
557 uacpi_u32 uid;
559 uacpi_u32 clock_domain;
560})
562
564 struct acpi_entry_hdr hdr;
565 uacpi_u32 proximity_domain;
566 uacpi_u16 rsvd;
568})
570
571// acpi_srat_generic_affinity->flags
572#define ACPI_GENERIC_AFFINITY_ENABLED (1 << 0)
573#define ACPI_GENERIC_AFFINITY_ARCH_TRANSACTIONS (1 << 1)
574
576 struct acpi_entry_hdr hdr;
577 uacpi_u8 rsvd0;
578 uacpi_u8 handle_type;
579 uacpi_u32 proximity_domain;
580 uacpi_u8 handle[16];
582 uacpi_u32 rsvd1;
583})
585
586// acpi_srat_rintc_affinity->flags
587#define ACPI_SRAT_RINTC_AFFINITY_ENABLED (1 << 0)
588
589UACPI_PACKED(struct acpi_srat_rintc_affinity {
590 struct acpi_entry_hdr hdr;
591 uacpi_u16 rsvd;
592 uacpi_u32 proximity_domain;
593 uacpi_u32 uid;
595 uacpi_u32 clock_domain;
596})
597UACPI_EXPECT_SIZEOF(struct acpi_srat_rintc_affinity, 20);
598
599UACPI_PACKED(struct acpi_slit {
600 struct acpi_sdt_hdr hdr;
601 uacpi_u64 num_localities;
603})
604UACPI_EXPECT_SIZEOF(struct acpi_slit, 44);
605
612#define ACPI_GTDT_TRIGGERING (1 << 0)
613#define ACPI_GTDT_TRIGGERING_EDGE 1
614#define ACPI_GTDT_TRIGGERING_LEVEL 0
615
622#define ACPI_GTDT_POLARITY (1 << 1)
623#define ACPI_GTDT_POLARITY_ACTIVE_LOW 1
624#define ACPI_GTDT_POLARITY_ACTIVE_HIGH 0
625
626// acpi_gtdt->el*_flags
627#define ACPI_GTDT_ALWAYS_ON_CAPABLE (1 << 2)
628
629UACPI_PACKED(struct acpi_gtdt {
630 struct acpi_sdt_hdr hdr;
631 uacpi_u64 cnt_control_base;
632 uacpi_u32 rsvd;
633 uacpi_u32 el1_secure_gsiv;
634 uacpi_u32 el1_secure_flags;
635 uacpi_u32 el1_non_secure_gsiv;
636 uacpi_u32 el1_non_secure_flags;
637 uacpi_u32 el1_virtual_gsiv;
638 uacpi_u32 el1_virtual_flags;
639 uacpi_u32 el2_gsiv;
640 uacpi_u32 el2_flags;
641 uacpi_u64 cnt_read_base;
642 uacpi_u32 platform_timer_count;
643 uacpi_u32 platform_timer_offset;
644
645 // revision >= 3
646 uacpi_u32 el2_virtual_gsiv;
647 uacpi_u32 el2_virtual_flags;
648})
649UACPI_EXPECT_SIZEOF(struct acpi_gtdt, 104);
650
654};
655
656UACPI_PACKED(struct acpi_gtdt_entry_hdr {
659})
660
661UACPI_PACKED(struct acpi_gtdt_timer {
662 struct acpi_gtdt_entry_hdr hdr;
663 uacpi_u8 rsvd;
664 uacpi_u64 cnt_ctl_base;
665 uacpi_u32 timer_count;
666 uacpi_u32 timer_offset;
667})
668UACPI_EXPECT_SIZEOF(struct acpi_gtdt_timer, 20);
669
670// acpi_gtdt_timer_entry->common_flags
671#define ACPI_GTDT_TIMER_ENTRY_SECURE (1 << 0)
672#define ACPI_GTDT_TIMER_ENTRY_ALWAYS_ON_CAPABLE (1 << 1)
673
675 uacpi_u8 frame_number;
676 uacpi_u8 rsvd[3];
677 uacpi_u64 cnt_base;
678 uacpi_u64 el0_cnt_base;
679 uacpi_u32 physical_gsiv;
680 uacpi_u32 physical_flags;
681 uacpi_u32 virtual_gsiv;
682 uacpi_u32 virtual_flags;
683 uacpi_u32 common_flags;
684})
686
687// acpi_gtdt_watchdog->flags
688#define ACPI_GTDT_WATCHDOG_SECURE (1 << 2)
689
691 struct acpi_gtdt_entry_hdr hdr;
692 uacpi_u8 rsvd;
693 uacpi_u64 refresh_frame;
694 uacpi_u64 control_frame;
695 uacpi_u32 gsiv;
697})
699
700// acpi_fdt->iapc_flags
701#define ACPI_IA_PC_LEGACY_DEVS (1 << 0)
702#define ACPI_IA_PC_8042 (1 << 1)
703#define ACPI_IA_PC_NO_VGA (1 << 2)
704#define ACPI_IA_PC_NO_MSI (1 << 3)
705#define ACPI_IA_PC_NO_PCIE_ASPM (1 << 4)
706#define ACPI_IA_PC_NO_CMOS_RTC (1 << 5)
707
708// acpi_fdt->flags
709#define ACPI_WBINVD (1 << 0)
710#define ACPI_WBINVD_FLUSH (1 << 1)
711#define ACPI_PROC_C1 (1 << 2)
712#define ACPI_P_LVL2_UP (1 << 3)
713#define ACPI_PWR_BUTTON (1 << 4)
714#define ACPI_SLP_BUTTON (1 << 5)
715#define ACPI_FIX_RTC (1 << 6)
716#define ACPI_RTC_S4 (1 << 7)
717#define ACPI_TMR_VAL_EXT (1 << 8)
718#define ACPI_DCK_CAP (1 << 9)
719#define ACPI_RESET_REG_SUP (1 << 10)
720#define ACPI_SEALED_CASE (1 << 11)
721#define ACPI_HEADLESS (1 << 12)
722#define ACPI_CPU_SW_SLP (1 << 13)
723#define ACPI_PCI_EXP_WAK (1 << 14)
724#define ACPI_USE_PLATFORM_CLOCK (1 << 15)
725#define ACPI_S4_RTC_STS_VALID (1 << 16)
726#define ACPI_REMOTE_POWER_ON_CAPABLE (1 << 17)
727#define ACPI_FORCE_APIC_CLUSTER_MODEL (1 << 18)
728#define ACPI_FORCE_APIC_PHYS_DEST_MODE (1 << 19)
729#define ACPI_HW_REDUCED_ACPI (1 << 20)
730#define ACPI_LOW_POWER_S0_IDLE_CAPABLE (1 << 21)
731
732// acpi_fdt->arm_flags
733#define ACPI_ARM_PSCI_COMPLIANT (1 << 0)
734#define ACPI_ARM_PSCI_USE_HVC (1 << 1)
735
736UACPI_PACKED(struct acpi_fadt {
737 struct acpi_sdt_hdr hdr;
738 uacpi_u32 firmware_ctrl;
739 uacpi_u32 dsdt;
740 uacpi_u8 int_model;
741 uacpi_u8 preferred_pm_profile;
742 uacpi_u16 sci_int;
743 uacpi_u32 smi_cmd;
744 uacpi_u8 acpi_enable;
745 uacpi_u8 acpi_disable;
746 uacpi_u8 s4bios_req;
747 uacpi_u8 pstate_cnt;
748 uacpi_u32 pm1a_evt_blk;
749 uacpi_u32 pm1b_evt_blk;
750 uacpi_u32 pm1a_cnt_blk;
751 uacpi_u32 pm1b_cnt_blk;
752 uacpi_u32 pm2_cnt_blk;
753 uacpi_u32 pm_tmr_blk;
754 uacpi_u32 gpe0_blk;
755 uacpi_u32 gpe1_blk;
756 uacpi_u8 pm1_evt_len;
757 uacpi_u8 pm1_cnt_len;
758 uacpi_u8 pm2_cnt_len;
759 uacpi_u8 pm_tmr_len;
760 uacpi_u8 gpe0_blk_len;
761 uacpi_u8 gpe1_blk_len;
762 uacpi_u8 gpe1_base;
763 uacpi_u8 cst_cnt;
764 uacpi_u16 p_lvl2_lat;
765 uacpi_u16 p_lvl3_lat;
766 uacpi_u16 flush_size;
767 uacpi_u16 flush_stride;
768 uacpi_u8 duty_offset;
769 uacpi_u8 duty_width;
770 uacpi_u8 day_alrm;
771 uacpi_u8 mon_alrm;
772 uacpi_u8 century;
773 uacpi_u16 iapc_boot_arch;
774 uacpi_u8 rsvd;
776 struct acpi_gas reset_reg;
777 uacpi_u8 reset_value;
778 uacpi_u16 arm_boot_arch;
779 uacpi_u8 fadt_minor_verison;
780 uacpi_u64 x_firmware_ctrl;
781 uacpi_u64 x_dsdt;
782 struct acpi_gas x_pm1a_evt_blk;
783 struct acpi_gas x_pm1b_evt_blk;
784 struct acpi_gas x_pm1a_cnt_blk;
785 struct acpi_gas x_pm1b_cnt_blk;
786 struct acpi_gas x_pm2_cnt_blk;
787 struct acpi_gas x_pm_tmr_blk;
788 struct acpi_gas x_gpe0_blk;
789 struct acpi_gas x_gpe1_blk;
790 struct acpi_gas sleep_control_reg;
791 struct acpi_gas sleep_status_reg;
792 uacpi_u64 hypervisor_vendor_identity;
793})
794UACPI_EXPECT_SIZEOF(struct acpi_fadt, 276);
795
796// acpi_facs->flags
797#define ACPI_S4BIOS_F (1 << 0)
798#define ACPI_64BIT_WAKE_SUPPORTED_F (1 << 1)
799
800// acpi_facs->ospm_flags
801#define ACPI_64BIT_WAKE_F (1 << 0)
802
803struct acpi_facs {
815};
817
821 uacpi_u8 start_bus;
822 uacpi_u8 end_bus;
823 uacpi_u32 rsvd;
824})
826
827UACPI_PACKED(struct acpi_mcfg {
828 struct acpi_sdt_hdr hdr;
829 uacpi_u64 rsvd;
830 struct acpi_mcfg_allocation entries[];
831})
832UACPI_EXPECT_SIZEOF(struct acpi_mcfg, 44);
833
834// acpi_hpet->block_id
835#define ACPI_HPET_PCI_VENDOR_ID_SHIFT 16
836#define ACPI_HPET_LEGACY_REPLACEMENT_IRQ_ROUTING_CAPABLE (1 << 15)
837#define ACPI_HPET_COUNT_SIZE_CAP (1 << 13)
838#define ACPI_HPET_NUMBER_OF_COMPARATORS_SHIFT 8
839#define ACPI_HPET_NUMBER_OF_COMPARATORS_MASK 0b11111
840#define ACPI_HPET_HARDWARE_REV_ID_MASK 0b11111111
841
842// acpi_hpet->flags
843#define ACPI_HPET_PAGE_PROTECTION_MASK 0b11
844#define ACPI_HPET_PAGE_NO_PROTECTION 0
845#define ACPI_HPET_PAGE_4K_PROTECTED 1
846#define ACPI_HPET_PAGE_64K_PROTECTED 2
847
848UACPI_PACKED(struct acpi_hpet {
849 struct acpi_sdt_hdr hdr;
850 uacpi_u32 block_id;
851 struct acpi_gas address;
853 uacpi_u16 min_clock_tick;
855})
856UACPI_EXPECT_SIZEOF(struct acpi_hpet, 56);
857
858// PM1{a,b}_STS
859#define ACPI_PM1_STS_TMR_STS_IDX 0
860#define ACPI_PM1_STS_BM_STS_IDX 4
861#define ACPI_PM1_STS_GBL_STS_IDX 5
862#define ACPI_PM1_STS_PWRBTN_STS_IDX 8
863#define ACPI_PM1_STS_SLPBTN_STS_IDX 9
864#define ACPI_PM1_STS_RTC_STS_IDX 10
865#define ACPI_PM1_STS_IGN0_IDX 11
866#define ACPI_PM1_STS_PCIEXP_WAKE_STS_IDX 14
867#define ACPI_PM1_STS_WAKE_STS_IDX 15
868
869#define ACPI_PM1_STS_TMR_STS_MASK (1 << ACPI_PM1_STS_TMR_STS_IDX)
870#define ACPI_PM1_STS_BM_STS_MASK (1 << ACPI_PM1_STS_BM_STS_IDX)
871#define ACPI_PM1_STS_GBL_STS_MASK (1 << ACPI_PM1_STS_GBL_STS_IDX)
872#define ACPI_PM1_STS_PWRBTN_STS_MASK (1 << ACPI_PM1_STS_PWRBTN_STS_IDX)
873#define ACPI_PM1_STS_SLPBTN_STS_MASK (1 << ACPI_PM1_STS_SLPBTN_STS_IDX)
874#define ACPI_PM1_STS_RTC_STS_MASK (1 << ACPI_PM1_STS_RTC_STS_IDX)
875#define ACPI_PM1_STS_IGN0_MASK (1 << ACPI_PM1_STS_IGN0_IDX)
876#define ACPI_PM1_STS_PCIEXP_WAKE_STS_MASK (1 << ACPI_PM1_STS_PCIEXP_WAKE_STS_IDX)
877#define ACPI_PM1_STS_WAKE_STS_MASK (1 << ACPI_PM1_STS_WAKE_STS_IDX)
878
879#define ACPI_PM1_STS_CLEAR 1
880
881// PM1{a,b}_EN
882#define ACPI_PM1_EN_TMR_EN_IDX 0
883#define ACPI_PM1_EN_GBL_EN_IDX 5
884#define ACPI_PM1_EN_PWRBTN_EN_IDX 8
885#define ACPI_PM1_EN_SLPBTN_EN_IDX 9
886#define ACPI_PM1_EN_RTC_EN_IDX 10
887#define ACPI_PM1_EN_PCIEXP_WAKE_DIS_IDX 14
888
889#define ACPI_PM1_EN_TMR_EN_MASK (1 << ACPI_PM1_EN_TMR_EN_IDX)
890#define ACPI_PM1_EN_GBL_EN_MASK (1 << ACPI_PM1_EN_GBL_EN_IDX)
891#define ACPI_PM1_EN_PWRBTN_EN_MASK (1 << ACPI_PM1_EN_PWRBTN_EN_IDX)
892#define ACPI_PM1_EN_SLPBTN_EN_MASK (1 << ACPI_PM1_EN_SLPBTN_EN_IDX)
893#define ACPI_PM1_EN_RTC_EN_MASK (1 << ACPI_PM1_EN_RTC_EN_IDX)
894#define ACPI_PM1_EN_PCIEXP_WAKE_DIS_MASK (1 << ACPI_PM1_EN_PCIEXP_WAKE_DIS_IDX)
895
896// PM1{a,b}_CNT_BLK
897#define ACPI_PM1_CNT_SCI_EN_IDX 0
898#define ACPI_PM1_CNT_BM_RLD_IDX 1
899#define ACPI_PM1_CNT_GBL_RLS_IDX 2
900#define ACPI_PM1_CNT_RSVD0_IDX 3
901#define ACPI_PM1_CNT_RSVD1_IDX 4
902#define ACPI_PM1_CNT_RSVD2_IDX 5
903#define ACPI_PM1_CNT_RSVD3_IDX 6
904#define ACPI_PM1_CNT_RSVD4_IDX 7
905#define ACPI_PM1_CNT_RSVD5_IDX 8
906#define ACPI_PM1_CNT_IGN0_IDX 9
907#define ACPI_PM1_CNT_SLP_TYP_IDX 10
908#define ACPI_PM1_CNT_SLP_EN_IDX 13
909#define ACPI_PM1_CNT_RSVD6_IDX 14
910#define ACPI_PM1_CNT_RSVD7_IDX 15
911
912#define ACPI_SLP_TYP_MAX 0x7
913
914#define ACPI_PM1_CNT_SCI_EN_MASK (1 << ACPI_PM1_CNT_SCI_EN_IDX)
915#define ACPI_PM1_CNT_BM_RLD_MASK (1 << ACPI_PM1_CNT_BM_RLD_IDX)
916#define ACPI_PM1_CNT_GBL_RLS_MASK (1 << ACPI_PM1_CNT_GBL_RLS_IDX)
917#define ACPI_PM1_CNT_SLP_TYP_MASK (ACPI_SLP_TYP_MAX << ACPI_PM1_CNT_SLP_TYP_IDX)
918#define ACPI_PM1_CNT_SLP_EN_MASK (1 << ACPI_PM1_CNT_SLP_EN_IDX)
919
926#define ACPI_PM1_CNT_PRESERVE_MASK ( \
927 (1 << ACPI_PM1_CNT_RSVD0_IDX) | \
928 (1 << ACPI_PM1_CNT_RSVD1_IDX) | \
929 (1 << ACPI_PM1_CNT_RSVD2_IDX) | \
930 (1 << ACPI_PM1_CNT_RSVD3_IDX) | \
931 (1 << ACPI_PM1_CNT_RSVD4_IDX) | \
932 (1 << ACPI_PM1_CNT_RSVD5_IDX) | \
933 (1 << ACPI_PM1_CNT_IGN0_IDX ) | \
934 (1 << ACPI_PM1_CNT_RSVD6_IDX) | \
935 (1 << ACPI_PM1_CNT_RSVD7_IDX) \
936)
937
938// PM2_CNT
939#define ACPI_PM2_CNT_ARB_DIS_IDX 0
940#define ACPI_PM2_CNT_ARB_DIS_MASK (1 << ACPI_PM2_CNT_ARB_DIS_IDX)
941
942// All bits are reserved but this first one
943#define ACPI_PM2_CNT_PRESERVE_MASK (~((uacpi_u64)ACPI_PM2_CNT_ARB_DIS_MASK))
944
945// SLEEP_CONTROL_REG
946#define ACPI_SLP_CNT_RSVD0_IDX 0
947#define ACPI_SLP_CNT_IGN0_IDX 1
948#define ACPI_SLP_CNT_SLP_TYP_IDX 2
949#define ACPI_SLP_CNT_SLP_EN_IDX 5
950#define ACPI_SLP_CNT_RSVD1_IDX 6
951#define ACPI_SLP_CNT_RSVD2_IDX 7
952
953#define ACPI_SLP_CNT_SLP_TYP_MASK (ACPI_SLP_TYP_MAX << ACPI_SLP_CNT_SLP_TYP_IDX)
954#define ACPI_SLP_CNT_SLP_EN_MASK (1 << ACPI_SLP_CNT_SLP_EN_IDX)
955
956#define ACPI_SLP_CNT_PRESERVE_MASK ( \
957 (1 << ACPI_SLP_CNT_RSVD0_IDX) | \
958 (1 << ACPI_SLP_CNT_IGN0_IDX) | \
959 (1 << ACPI_SLP_CNT_RSVD1_IDX) | \
960 (1 << ACPI_SLP_CNT_RSVD2_IDX) \
961)
962
963// SLEEP_STATUS_REG
964#define ACPI_SLP_STS_WAK_STS_IDX 7
965
966#define ACPI_SLP_STS_WAK_STS_MASK (1 << ACPI_SLP_STS_WAK_STS_IDX)
967
968// All bits are reserved but this last one
969#define ACPI_SLP_STS_PRESERVE_MASK (~((uacpi_u64)ACPI_SLP_STS_WAK_STS_MASK))
970
971#define ACPI_SLP_STS_CLEAR 1
972
973UACPI_PACKED(struct acpi_dsdt {
974 struct acpi_sdt_hdr hdr;
975 uacpi_u8 definition_block[];
976})
977
978UACPI_PACKED(struct acpi_ssdt {
979 struct acpi_sdt_hdr hdr;
980 uacpi_u8 definition_block[];
981})
982
993#define ACPI_STA_RESULT_DEVICE_ENABLED (1 << 1)
994#define ACPI_STA_RESULT_DEVICE_SHOWN_IN_UI (1 << 2)
995#define ACPI_STA_RESULT_DEVICE_FUNCTIONING (1 << 3)
996#define ACPI_STA_RESULT_DEVICE_BATTERY_PRESENT (1 << 4)
997
998#define ACPI_REG_DISCONNECT 0
999#define ACPI_REG_CONNECT 1
1000
1001UACPI_PACKED(struct acpi_ecdt {
1002 struct acpi_sdt_hdr hdr;
1003 struct acpi_gas ec_control;
1004 struct acpi_gas ec_data;
1005 uacpi_u32 uid;
1006 uacpi_u8 gpe_bit;
1007 uacpi_char ec_id[];
1008})
1009UACPI_EXPECT_SIZEOF(struct acpi_ecdt, 65);
1010
1011// acpi_dbg2_device_info->port_type
1017};
1018
1047};
1048
1055};
1056
1064};
1065
1066UACPI_PACKED(struct acpi_dbg2 {
1067 struct acpi_sdt_hdr hdr;
1068 uacpi_u32 offset_dbg_device_info;
1069 uacpi_u32 number_dbg_device_info;
1075})
1076UACPI_EXPECT_SIZEOF(struct acpi_dbg2, 44);
1077
1078UACPI_PACKED(struct acpi_dbg2_dbg_device_info {
1081 uacpi_u8 number_generic_address_registers;
1082 uacpi_u16 namespace_string_length;
1083 uacpi_u16 namespace_string_offset;
1084 uacpi_u16 oem_data_length;
1085 uacpi_u16 oem_data_offset;
1086 uacpi_u16 port_type;
1087 uacpi_u16 port_subtype;
1088 uacpi_u16 rsvd;
1089 uacpi_u16 base_address_register_offset;
1090 uacpi_u16 address_size_offset;
1102})
1103UACPI_EXPECT_SIZEOF(struct acpi_dbg2_dbg_device_info, 22);
1104
1105// acpi_scpr->interrupt_type
1106#define ACPI_SPCR_INTERRUPT_TYPE_8259 0x1
1107#define ACPI_SPCR_INTERRUPT_TYPE_IOAPIC 0x2
1108#define ACPI_SPCR_INTERRUPT_TYPE_IOSAPIC 0x4
1109#define ACPI_SPCR_INTERRUPT_TYPE_GIC 0x8
1110#define ACPI_SPCR_INTERRUPT_TYPE_PLIC_APLIC 0x10
1111
1112// acpi_spcr->pci_flags
1113#define ACPI_SPCR_PCI_FLAGS_DO_NOT_DISABLE 0x1
1114
1115// acpi_spcr->terminal_type
1121};
1122
1123UACPI_PACKED(struct acpi_spcr {
1124 struct acpi_sdt_hdr hdr;
1125 uacpi_u8 interface_type;
1126 uacpi_u8 rsvd[3];
1127 struct acpi_gas base_address;
1128 uacpi_u8 interrupt_type;
1129 uacpi_u8 irq;
1130 uacpi_u32 gsi;
1131 uacpi_u8 configured_baud_rate;
1132 uacpi_u8 parity;
1133 uacpi_u8 stop_bits;
1134 uacpi_u8 flow_control;
1135 uacpi_u8 terminal_type;
1136 uacpi_u8 language;
1137 uacpi_u16 pci_device_id;
1138 uacpi_u16 pci_vendor_id;
1139 uacpi_u8 pci_bus_number;
1140 uacpi_u8 pci_device_number;
1141 uacpi_u8 pci_function_number;
1142 uacpi_u32 pci_flags;
1143 uacpi_u8 pci_segment;
1144
1145 // revision >= 3
1146 uacpi_u32 uart_clock_frequency;
1147
1148 // revision >= 4
1149 uacpi_u32 precise_baud_rate;
1150 uacpi_u16 namespace_string_length;
1151 uacpi_u16 namespace_string_offset;
1156})
1157UACPI_EXPECT_SIZEOF(struct acpi_spcr, 88);
1158
1159UACPI_PACKED(struct acpi_rhct_hdr {
1163})
1164UACPI_EXPECT_SIZEOF(struct acpi_rhct_hdr, 6);
1165
1166// acpi_rhct->flags
1167#define ACPI_TIMER_CANNOT_WAKE_CPU (1 << 0)
1168
1169UACPI_PACKED(struct acpi_rhct {
1170 struct acpi_sdt_hdr hdr;
1172 uacpi_u64 timebase_frequency;
1173 uacpi_u32 node_count;
1174 uacpi_u32 nodes_offset;
1175 struct acpi_rhct_hdr entries[];
1176})
1177UACPI_EXPECT_SIZEOF(struct acpi_rhct, 56);
1178
1184};
1185
1186UACPI_PACKED(struct acpi_rhct_isa_string {
1187 struct acpi_rhct_hdr hdr;
1189 uacpi_u8 isa[];
1190})
1191UACPI_EXPECT_SIZEOF(struct acpi_rhct_isa_string, 8);
1192
1193UACPI_PACKED(struct acpi_rhct_cmo {
1194 struct acpi_rhct_hdr hdr;
1195 uacpi_u8 rsvd;
1196 uacpi_u8 cbom_size;
1197 uacpi_u8 cbop_size;
1198 uacpi_u8 cboz_size;
1199})
1200UACPI_EXPECT_SIZEOF(struct acpi_rhct_cmo, 10);
1201
1206};
1207
1208UACPI_PACKED(struct acpi_rhct_mmu {
1209 struct acpi_rhct_hdr hdr;
1210 uacpi_u8 rsvd;
1211 uacpi_u8 type;
1212})
1213UACPI_EXPECT_SIZEOF(struct acpi_rhct_mmu, 8);
1214
1215UACPI_PACKED(struct acpi_rhct_hart_info {
1216 struct acpi_rhct_hdr hdr;
1217 uacpi_u16 offset_count;
1218 uacpi_u32 uid;
1220})
1221UACPI_EXPECT_SIZEOF(struct acpi_rhct_hart_info, 12);
1222
1223#define ACPI_LARGE_ITEM (1 << 7)
1224
1225#define ACPI_SMALL_ITEM_NAME_IDX 3
1226#define ACPI_SMALL_ITEM_NAME_MASK 0xF
1227#define ACPI_SMALL_ITEM_LENGTH_MASK 0x7
1228
1229#define ACPI_LARGE_ITEM_NAME_MASK 0x7F
1230
1231// Small items
1232#define ACPI_RESOURCE_IRQ 0x04
1233#define ACPI_RESOURCE_DMA 0x05
1234#define ACPI_RESOURCE_START_DEPENDENT 0x06
1235#define ACPI_RESOURCE_END_DEPENDENT 0x07
1236#define ACPI_RESOURCE_IO 0x08
1237#define ACPI_RESOURCE_FIXED_IO 0x09
1238#define ACPI_RESOURCE_FIXED_DMA 0x0A
1239#define ACPI_RESOURCE_VENDOR_TYPE0 0x0E
1240#define ACPI_RESOURCE_END_TAG 0x0F
1241
1242// Large items
1243#define ACPI_RESOURCE_MEMORY24 0x01
1244#define ACPI_RESOURCE_GENERIC_REGISTER 0x02
1245#define ACPI_RESOURCE_VENDOR_TYPE1 0x04
1246#define ACPI_RESOURCE_MEMORY32 0x05
1247#define ACPI_RESOURCE_FIXED_MEMORY32 0x06
1248#define ACPI_RESOURCE_ADDRESS32 0x07
1249#define ACPI_RESOURCE_ADDRESS16 0x08
1250#define ACPI_RESOURCE_EXTENDED_IRQ 0x09
1251#define ACPI_RESOURCE_ADDRESS64 0x0A
1252#define ACPI_RESOURCE_ADDRESS64_EXTENDED 0x0B
1253#define ACPI_RESOURCE_GPIO_CONNECTION 0x0C
1254#define ACPI_RESOURCE_PIN_FUNCTION 0x0D
1255#define ACPI_RESOURCE_SERIAL_CONNECTION 0x0E
1256#define ACPI_RESOURCE_PIN_CONFIGURATION 0x0F
1257#define ACPI_RESOURCE_PIN_GROUP 0x10
1258#define ACPI_RESOURCE_PIN_GROUP_FUNCTION 0x11
1259#define ACPI_RESOURCE_PIN_GROUP_CONFIGURATION 0x12
1260#define ACPI_RESOURCE_CLOCK_INPUT 0x13
1261
1266UACPI_PACKED(struct acpi_small_item {
1267 uacpi_u8 type_and_length;
1268})
1269UACPI_EXPECT_SIZEOF(struct acpi_small_item, 1);
1270
1272 struct acpi_small_item common;
1273 uacpi_u16 irq_mask;
1275})
1277
1279 struct acpi_small_item common;
1280 uacpi_u8 channel_mask;
1282})
1284
1286 struct acpi_small_item common;
1288})
1290
1291UACPI_PACKED(struct acpi_resource_end_dependent {
1292 struct acpi_small_item common;
1293})
1294UACPI_EXPECT_SIZEOF(struct acpi_resource_end_dependent, 1);
1295
1297 struct acpi_small_item common;
1299 uacpi_u16 minimum;
1300 uacpi_u16 maximum;
1303})
1305
1307 struct acpi_small_item common;
1310})
1312
1314 struct acpi_small_item common;
1315 uacpi_u16 request_line;
1317 uacpi_u8 transfer_width;
1318})
1320
1321UACPI_PACKED(struct acpi_resource_vendor_defined_type0 {
1322 struct acpi_small_item common;
1323 uacpi_u8 byte_data[];
1324})
1325UACPI_EXPECT_SIZEOF(struct acpi_resource_vendor_defined_type0, 1);
1326
1328 struct acpi_small_item common;
1330})
1332
1333UACPI_PACKED(struct acpi_large_item {
1334 uacpi_u8 type;
1336})
1337UACPI_EXPECT_SIZEOF(struct acpi_large_item, 3);
1338
1340 struct acpi_large_item common;
1342 uacpi_u16 minimum;
1343 uacpi_u16 maximum;
1346})
1348
1349UACPI_PACKED(struct acpi_resource_vendor_defined_type1 {
1350 struct acpi_large_item common;
1351 uacpi_u8 byte_data[];
1352})
1353UACPI_EXPECT_SIZEOF(struct acpi_resource_vendor_defined_type1, 3);
1354
1356 struct acpi_large_item common;
1358 uacpi_u32 minimum;
1359 uacpi_u32 maximum;
1362})
1364
1366 struct acpi_large_item common;
1370})
1372
1374 struct acpi_large_item common;
1375 uacpi_u8 type;
1377 uacpi_u8 type_flags;
1378})
1380
1382 struct acpi_resource_address common;
1383 uacpi_u64 granularity;
1384 uacpi_u64 minimum;
1385 uacpi_u64 maximum;
1386 uacpi_u64 translation_offset;
1388})
1390
1392 struct acpi_resource_address common;
1393 uacpi_u32 granularity;
1394 uacpi_u32 minimum;
1395 uacpi_u32 maximum;
1396 uacpi_u32 translation_offset;
1398})
1400
1402 struct acpi_resource_address common;
1403 uacpi_u16 granularity;
1404 uacpi_u16 minimum;
1405 uacpi_u16 maximum;
1406 uacpi_u16 translation_offset;
1408})
1410
1411UACPI_PACKED(struct acpi_resource_address64_extended {
1412 struct acpi_resource_address common;
1413 uacpi_u8 revision_id;
1414 uacpi_u8 rsvd;
1415 uacpi_u64 granularity;
1416 uacpi_u64 minimum;
1417 uacpi_u64 maximum;
1418 uacpi_u64 translation_offset;
1421})
1422UACPI_EXPECT_SIZEOF(struct acpi_resource_address64_extended, 56);
1423
1425 struct acpi_large_item common;
1427 uacpi_u8 num_irqs;
1428 uacpi_u32 irqs[];
1429})
1431
1433 struct acpi_large_item common;
1434 uacpi_u8 address_space_id;
1435 uacpi_u8 bit_width;
1436 uacpi_u8 bit_offset;
1437 uacpi_u8 access_size;
1439})
1441
1442UACPI_PACKED(struct acpi_resource_gpio_connection {
1443 struct acpi_large_item common;
1444 uacpi_u8 revision_id;
1445 uacpi_u8 type;
1446 uacpi_u16 general_flags;
1447 uacpi_u16 connection_flags;
1448 uacpi_u8 pull_configuration;
1449 uacpi_u16 drive_strength;
1450 uacpi_u16 debounce_timeout;
1451 uacpi_u16 pin_table_offset;
1452 uacpi_u8 source_index;
1453 uacpi_u16 source_offset;
1454 uacpi_u16 vendor_data_offset;
1455 uacpi_u16 vendor_data_length;
1456})
1457UACPI_EXPECT_SIZEOF(struct acpi_resource_gpio_connection, 23);
1458
1459#define ACPI_SERIAL_TYPE_I2C 1
1460#define ACPI_SERIAL_TYPE_SPI 2
1461#define ACPI_SERIAL_TYPE_UART 3
1462#define ACPI_SERIAL_TYPE_CSI2 4
1463#define ACPI_SERIAL_TYPE_MAX ACPI_SERIAL_TYPE_CSI2
1464
1465UACPI_PACKED(struct acpi_resource_serial {
1466 struct acpi_large_item common;
1467 uacpi_u8 revision_id;
1468 uacpi_u8 source_index;
1469 uacpi_u8 type;
1471 uacpi_u16 type_specific_flags;
1472 uacpi_u8 type_specific_revision_id;
1473 uacpi_u16 type_data_length;
1474})
1475UACPI_EXPECT_SIZEOF(struct acpi_resource_serial, 12);
1476
1477UACPI_PACKED(struct acpi_resource_serial_i2c {
1478 struct acpi_resource_serial common;
1479 uacpi_u32 connection_speed;
1480 uacpi_u16 slave_address;
1481})
1482UACPI_EXPECT_SIZEOF(struct acpi_resource_serial_i2c, 18);
1483
1484UACPI_PACKED(struct acpi_resource_serial_spi {
1485 struct acpi_resource_serial common;
1486 uacpi_u32 connection_speed;
1487 uacpi_u8 data_bit_length;
1488 uacpi_u8 phase;
1489 uacpi_u8 polarity;
1490 uacpi_u16 device_selection;
1491})
1492UACPI_EXPECT_SIZEOF(struct acpi_resource_serial_spi, 21);
1493
1494UACPI_PACKED(struct acpi_resource_serial_uart {
1495 struct acpi_resource_serial common;
1496 uacpi_u32 baud_rate;
1497 uacpi_u16 rx_fifo;
1498 uacpi_u16 tx_fifo;
1499 uacpi_u8 parity;
1500 uacpi_u8 lines_enabled;
1501})
1502UACPI_EXPECT_SIZEOF(struct acpi_resource_serial_uart, 22);
1503
1504UACPI_PACKED(struct acpi_resource_serial_csi2 {
1505 struct acpi_resource_serial common;
1506})
1507UACPI_EXPECT_SIZEOF(struct acpi_resource_serial_csi2, 12);
1508
1510 struct acpi_large_item common;
1511 uacpi_u8 revision_id;
1513 uacpi_u8 pull_configuration;
1514 uacpi_u16 function_number;
1515 uacpi_u16 pin_table_offset;
1516 uacpi_u8 source_index;
1517 uacpi_u16 source_offset;
1518 uacpi_u16 vendor_data_offset;
1519 uacpi_u16 vendor_data_length;
1520})
1522
1523UACPI_PACKED(struct acpi_resource_pin_configuration {
1524 struct acpi_large_item common;
1525 uacpi_u8 revision_id;
1527 uacpi_u8 type;
1529 uacpi_u16 pin_table_offset;
1530 uacpi_u8 source_index;
1531 uacpi_u16 source_offset;
1532 uacpi_u16 vendor_data_offset;
1533 uacpi_u16 vendor_data_length;
1534})
1535UACPI_EXPECT_SIZEOF(struct acpi_resource_pin_configuration, 20);
1536
1538 struct acpi_large_item common;
1539 uacpi_u8 revision_id;
1541 uacpi_u16 pin_table_offset;
1542 uacpi_u16 source_lable_offset;
1543 uacpi_u16 vendor_data_offset;
1544 uacpi_u16 vendor_data_length;
1545})
1547
1549 struct acpi_large_item common;
1550 uacpi_u8 revision_id;
1552 uacpi_u16 function;
1553 uacpi_u8 source_index;
1554 uacpi_u16 source_offset;
1555 uacpi_u16 source_lable_offset;
1556 uacpi_u16 vendor_data_offset;
1557 uacpi_u16 vendor_data_length;
1558})
1560
1561UACPI_PACKED(struct acpi_resource_pin_group_configuration {
1562 struct acpi_large_item common;
1563 uacpi_u8 revision_id;
1565 uacpi_u8 type;
1567 uacpi_u8 source_index;
1568 uacpi_u16 source_offset;
1569 uacpi_u16 source_lable_offset;
1570 uacpi_u16 vendor_data_offset;
1571 uacpi_u16 vendor_data_length;
1572})
1573UACPI_EXPECT_SIZEOF(struct acpi_resource_pin_group_configuration, 20);
1574
1575UACPI_PACKED(struct acpi_resource_clock_input {
1576 struct acpi_large_item common;
1577 uacpi_u8 revision_id;
1580 uacpi_u32 numerator;
1581 uacpi_u8 source_index;
1582})
1583UACPI_EXPECT_SIZEOF(struct acpi_resource_clock_input, 13);
1584
1585// acpi_dmar->flags
1586#define ACPI_DMAR_INTR_REMAP (1 << 0)
1587#define ACPI_DMAR_X2APIC_OPT_OUT (1 << 1)
1588#define ACPI_DMAR_DMA_CTRL_PLATFORM_OPT_IN_FLAG (1 << 2)
1589
1590UACPI_PACKED(struct acpi_dmar_entry_hdr {
1593})
1594UACPI_EXPECT_SIZEOF(struct acpi_dmar_entry_hdr, 4);
1595
1596// acpi_dmar_entry_hdr->type
1605};
1606
1607UACPI_PACKED(struct acpi_dmar {
1608 struct acpi_sdt_hdr hdr;
1609 uacpi_u8 haw;
1611 uacpi_u8 rsvd[10];
1612 struct acpi_dmar_entry_hdr entries[];
1613})
1614UACPI_EXPECT_SIZEOF(struct acpi_dmar, 48);
1615
1616// acpi_dmar_dss->type
1617#define ACPI_DSS_PCI_ENDPOINT 0x01
1618#define ACPI_DSS_PCI_BRIDGE 0x02
1619#define ACPI_DSS_IOAPIC 0x03
1620#define ACPI_DSS_MSI_CAPABLE_HPET 0x04
1621#define ACPI_DSS_ACPI_NAMESPACE_DEVICE 0x05
1622
1623// acpi_dmar_dss->flags
1624#define ACPI_DSS_REQ_WO_PASID_NESTED_NOTALLOWED (1 << 0)
1625#define ACPI_DSS_REQ_WO_PASID_PWSNP_NOTALLOWED (1 << 1)
1626#define ACPI_DSS_REQ_WO_PASID_PGSNP_NOTALLOWED (1 << 2)
1627#define ACPI_DSS_ATC_HARDENED (1 << 3)
1628#define ACPI_DSS_ATC_REQUIRED (1 << 4)
1629
1630UACPI_PACKED(struct acpi_dmar_dss {
1631 uacpi_u8 type;
1634 uacpi_u8 rsvd;
1635 uacpi_u8 enumeration_id;
1636 uacpi_u8 start_bus;
1637
1638 // The actual number of bytes here depends on the type
1639 uacpi_u16 path[1];
1640})
1641UACPI_EXPECT_SIZEOF(struct acpi_dmar_dss, 8);
1642
1643// acpi_dmar_drhd->flags
1644#define ACPI_INCLUDE_PCI_ALL (1 << 0)
1645
1646UACPI_PACKED(struct acpi_dmar_drhd {
1647 struct acpi_dmar_entry_hdr hdr;
1649 uacpi_u8 size;
1652 struct acpi_dmar_dss entries[];
1653})
1654UACPI_EXPECT_SIZEOF(struct acpi_dmar_drhd, 16);
1655
1656UACPI_PACKED(struct acpi_dmar_rmrr {
1657 struct acpi_dmar_entry_hdr hdr;
1658 uacpi_u16 rsvd;
1662 struct acpi_dmar_dss entries[];
1663})
1664UACPI_EXPECT_SIZEOF(struct acpi_dmar_rmrr, 24);
1665
1666// acpi_dmar_atsr->flags
1667#define ACPI_ATSR_ALL_PORTS (1 << 0)
1668
1670 struct acpi_dmar_entry_hdr hdr;
1672 uacpi_u8 rsvd;
1674 struct acpi_dmar_dss entries[];
1675})
1677
1679 struct acpi_dmar_entry_hdr hdr;
1680 uacpi_u32 rsvd;
1682 uacpi_u32 proximity_domain;
1683})
1685
1687 struct acpi_dmar_entry_hdr hdr;
1688 uacpi_u8 rsvd[3];
1689 uacpi_u8 device_id;
1690 uacpi_char name[];
1691})
1693
1694// acpi_dmar_satc->flags
1695#define ACPI_SATC_ATC_REQUIRED 0x01
1696
1698 struct acpi_dmar_entry_hdr hdr;
1700 uacpi_u8 rsvd;
1702 struct acpi_dmar_dss entries[];
1703})
1705
1706UACPI_PACKED(struct acpi_dmar_sidp {
1707 struct acpi_dmar_entry_hdr hdr;
1708 uacpi_u16 rsvd;
1710 struct acpi_dmar_dss entries[];
1711})
1712UACPI_EXPECT_SIZEOF(struct acpi_dmar_sidp, 8);
1713
1714// acpi_waet->flags
1715#define ACPI_WAET_RTC_GOOD (1 << 0)
1716#define ACPI_WAET_ACPI_PM_TIMER_GOOD (1 << 1)
1717
1718UACPI_PACKED(struct acpi_waet {
1719 struct acpi_sdt_hdr hdr;
1721})
1722UACPI_EXPECT_SIZEOF(struct acpi_waet, 40);
1723
1724UACPI_PACKED(struct acpi_hmat_entry_hdr {
1726 uacpi_u16 rsvd;
1728})
1729UACPI_EXPECT_SIZEOF(struct acpi_hmat_entry_hdr, 8);
1730
1731// acpi_hmat_entry_hdr->type
1736};
1737
1738UACPI_PACKED(struct acpi_hmat {
1739 struct acpi_sdt_hdr hdr;
1740 uacpi_u32 rsvd;
1741 struct acpi_hmat_entry_hdr entries[];
1742})
1743UACPI_EXPECT_SIZEOF(struct acpi_hmat, 40);
1744
1745// acpi_hmat_proximity_domain->flags
1746#define ACPI_HMAT_PROXIMITY_DOMAIN_INITIATOR_VALID (1 << 0)
1747#define ACPI_HMAT_PROXIMITY_DOMAIN_MEMORY_VALID (1 << 1)
1748#define ACPI_HMAT_RESERVATION_HINT (1 << 2)
1749
1751 struct acpi_hmat_entry_hdr hdr;
1753 uacpi_u16 rsvd0;
1754 uacpi_u32 initiator_proximity_domain;
1755 uacpi_u32 memory_proximity_domain;
1756 uacpi_u32 rsvd1;
1757 union {
1758 uacpi_u64 start_address_deprecated; // deprecated in ACPI 6.3
1759 uacpi_u64 rsvd2;
1760 };
1761 union {
1762 uacpi_u64 range_length_deprecated; // deprecated in ACPI 6.3
1763 uacpi_u64 rsvd3;
1764 };
1765})
1767
1768// acpi_hmat_locality->flags
1769#define ACPI_HMAT_LOCALITY_MEM_HIERARCHY_MASK 0x0F
1770#define ACPI_HMAT_LOCALITY_MEM_HIERARCHY_MEMORY 0x00
1771#define ACPI_HMAT_LOCALITY_MEM_HIERARCHY_L1 0x01
1772#define ACPI_HMAT_LOCALITY_MEM_HIERARCHY_L2 0x02
1773#define ACPI_HMAT_LOCALITY_MEM_HIERARCHY_L3 0x03
1774
1775#define ACPI_HMAT_LOCALITY_MIN_TRANSFER_SIZE_VALID 0x10
1776#define ACPI_HMAT_LOCALITY_NON_SEQUENTIAL_TRANSFERS 0x20
1777
1778// acpi_hmat_locality->data_type
1779#define ACPI_HMAT_LOCALITY_DATA_TYPE_ACCESS_LATENCY 0x00
1780#define ACPI_HMAT_LOCALITY_DATA_TYPE_READ_LATENCY 0x01
1781#define ACPI_HMAT_LOCALITY_DATA_TYPE_WRITE_LATENCY 0x02
1782#define ACPI_HMAT_LOCALITY_DATA_TYPE_ACCESS_BANDWIDTH 0x03
1783#define ACPI_HMAT_LOCALITY_DATA_TYPE_READ_BANDWIDTH 0x04
1784#define ACPI_HMAT_LOCALITY_DATA_TYPE_WRITE_BANDWIDTH 0x05
1785
1787 struct acpi_hmat_entry_hdr hdr;
1790 uacpi_u16 min_transfer_size;
1791 uacpi_u32 num_initiator_proximity_domains;
1792 uacpi_u32 num_target_proximity_domains;
1793 uacpi_u32 rsvd;
1794 uacpi_u64 entry_base_unit;
1802})
1804
1805// acpi_hmat_cache->cache_attributes
1806#define ACPI_HMAT_CACHE_TOTAL_LEVELS_MASK 0xF
1807#define ACPI_HMAT_CACHE_TOTAL_LEVELS_SHIFT 0
1808
1809#define ACPI_HMAT_CACHE_LEVEL_MASK 0xF
1810#define ACPI_HMAT_CACHE_LEVEL_SHIFT 4
1811
1812#define ACPI_HMAT_CACHE_ASSOCIATIVITY_MASK 0xF
1813#define ACPI_HMAT_CACHE_ASSOCIATIVITY_SHIFT 8
1814#define ACPI_HMAT_CACHE_ASSOCIATIVITY_NONE 0x00
1815#define ACPI_HMAT_CACHE_ASSOCIATIVITY_DIRECT 0x01
1816#define ACPI_HMAT_CACHE_ASSOCIATIVITY_COMPLEX 0x02
1817
1818#define ACPI_HMAT_CACHE_WRITE_POLICY_MASK 0xF
1819#define ACPI_HMAT_CACHE_WRITE_POLICY_SHIFT 12
1820#define ACPI_HMAT_CACHE_WRITE_POLICY_NONE 0x00
1821#define ACPI_HMAT_CACHE_WRITE_POLICY_WB 0x01
1822#define ACPI_HMAT_CACHE_WRITE_POLICY_WT 0x02
1823
1824#define ACPI_HMAT_CACHE_LINE_SIZE_MASK 0xFFFF
1825#define ACPI_HMAT_CACHE_LINE_SIZE_SHIFT 16
1826
1828 struct acpi_hmat_entry_hdr hdr;
1829 uacpi_u32 memory_proximity_domain;
1830 uacpi_u32 rsvd0;
1831 uacpi_u64 cache_size;
1832 uacpi_u32 cache_attributes;
1833 uacpi_u16 rsvd1;
1834 uacpi_u16 num_smbios_handles;
1835 uacpi_u16 smbios_handles[];
1836})
_Check_return_ _Ret_maybenull_ _In_ size_t alignment
Definition: align.cpp:48
#define lint
Definition: hash.c:43
static PDB_INFORMATION information
Definition: db.cpp:179
static cab_ULONG checksum(const cab_UBYTE *data, cab_UWORD bytes, cab_ULONG csum)
Definition: fdi.c:353
static const WCHAR version[]
Definition: asmname.c:66
WORD WORD WORD * revision
Definition: metahost.c:91
#define ACPI_STA_RESULT_DEVICE_PRESENT
Definition: acpi.h:992
acpi_dbg2_type
Definition: acpi.h:1012
@ ACPI_DBG2_TYPE_SERIAL
Definition: acpi.h:1013
@ ACPI_DBG2_TYPE_NET
Definition: acpi.h:1016
@ ACPI_DBG2_TYPE_1394
Definition: acpi.h:1014
@ ACPI_DBG2_TYPE_USB
Definition: acpi.h:1015
acpi_gtdt_entry_type
Definition: acpi.h:651
@ ACPI_GTDT_ENTRY_TYPE_TIMER
Definition: acpi.h:652
@ ACPI_GTDT_ENTRY_TYPE_WATCHDOG
Definition: acpi.h:653
acpi_dmar_entry_type
Definition: acpi.h:1597
@ ACPI_DMAR_ENTRY_TYPE_RHSA
Definition: acpi.h:1601
@ ACPI_DMAR_ENTRY_TYPE_SATC
Definition: acpi.h:1603
@ ACPI_DMAR_ENTRY_TYPE_ATSR
Definition: acpi.h:1600
@ ACPI_DMAR_ENTRY_TYPE_RMRR
Definition: acpi.h:1599
@ ACPI_DMAR_ENTRY_TYPE_SIDP
Definition: acpi.h:1604
@ ACPI_DMAR_ENTRY_TYPE_ANDD
Definition: acpi.h:1602
@ ACPI_DMAR_ENTRY_TYPE_DRHD
Definition: acpi.h:1598
#define ACPI_PCAT_COMPAT
acpi_dbg2_usb_subtype
Definition: acpi.h:1061
@ ACPI_DBG2_SUBTYPE_USB_XHCI_DEBUG
Definition: acpi.h:1062
@ ACPI_DBG2_SUBTYPE_USB_EHCI_DEBUG
Definition: acpi.h:1063
acpi_rhct_entry_type
Definition: acpi.h:1179
@ ACPI_RHCT_ENTRY_TYPE_ISA_STRING
Definition: acpi.h:1180
@ ACPI_RHCT_ENTRY_TYPE_HART_INFO
Definition: acpi.h:1183
@ ACPI_RHCT_ENTRY_TYPE_CMO
Definition: acpi.h:1181
@ ACPI_RHCT_ENTRY_TYPE_MMU
Definition: acpi.h:1182
acpi_hmat_entry_type
Definition: acpi.h:1732
@ ACPI_HMAT_ENTRY_TYPE_LOCALITY
Definition: acpi.h:1734
@ ACPI_HMAT_ENTRY_TYPE_CACHE
Definition: acpi.h:1735
@ ACPI_HMAT_ENTRY_TYPE_PROXIMITY_DOMAIN
Definition: acpi.h:1733
acpi_srat_entry_type
Definition: acpi.h:487
@ ACPI_SRAT_ENTRY_TYPE_X2APIC_AFFINITY
Definition: acpi.h:490
@ ACPI_SRAT_ENTRY_TYPE_GENERIC_INITIATOR_AFFINITY
Definition: acpi.h:493
@ ACPI_SRAT_ENTRY_TYPE_GIC_ITS_AFFINITY
Definition: acpi.h:492
@ ACPI_SRAT_ENTRY_TYPE_GICC_AFFINITY
Definition: acpi.h:491
@ ACPI_SRAT_ENTRY_TYPE_RINTC_AFFINITY
Definition: acpi.h:495
@ ACPI_SRAT_ENTRY_TYPE_MEMORY_AFFINITY
Definition: acpi.h:489
@ ACPI_SRAT_ENTRY_TYPE_PROCESSOR_AFFINITY
Definition: acpi.h:488
@ ACPI_SRAT_ENTRY_TYPE_GENERIC_PORT_AFFINITY
Definition: acpi.h:494
acpi_dbg2_1394_subtype
Definition: acpi.h:1053
@ ACPI_DBG2_SUBTYPE_1394_STANDARD
Definition: acpi.h:1054
acpi_rhct_mmu_type
Definition: acpi.h:1202
@ ACPI_RHCT_MMU_TYPE_SV39
Definition: acpi.h:1203
@ ACPI_RHCT_MMU_TYPE_SV48
Definition: acpi.h:1204
@ ACPI_RHCT_MMU_TYPE_SV57
Definition: acpi.h:1205
acpi_spcr_terminal_type
Definition: acpi.h:1116
@ ACPI_SPCR_TERMINAL_TYPE_VT100
Definition: acpi.h:1117
@ ACPI_SPCR_TERMINAL_TYPE_ANSI
Definition: acpi.h:1120
@ ACPI_SPCR_TERMINAL_TYPE_VT_UTF8
Definition: acpi.h:1119
@ ACPI_SPCR_TERMINAL_TYPE_EXTENDED_VT100
Definition: acpi.h:1118
acpi_dbg2_serial_subtype
Definition: acpi.h:1025
@ ACPI_DBG2_SUBTYPE_SERIAL_APM88XXXX
Definition: acpi.h:1033
@ ACPI_DBG2_SUBTYPE_SERIAL_NS16550
Definition: acpi.h:1026
@ ACPI_DBG2_SUBTYPE_SERIAL_NS16550_NVIDIA
Definition: acpi.h:1031
@ ACPI_DBG2_SUBTYPE_SERIAL_INTEL_USIF
Definition: acpi.h:1036
@ ACPI_DBG2_SUBTYPE_SERIAL_ARM_SBSA_32BIT
Definition: acpi.h:1038
@ ACPI_DBG2_SUBTYPE_SERIAL_BCM2835
Definition: acpi.h:1041
@ ACPI_DBG2_SUBTYPE_SERIAL_SAM5250
Definition: acpi.h:1035
@ ACPI_DBG2_SUBTYPE_SERIAL_NS16550_GAS
Definition: acpi.h:1043
@ ACPI_DBG2_SUBTYPE_SERIAL_MSM8X60
Definition: acpi.h:1030
@ ACPI_DBG2_SUBTYPE_SERIAL_PL011
Definition: acpi.h:1029
@ ACPI_DBG2_SUBTYPE_SERIAL_ARM_DCC
Definition: acpi.h:1040
@ ACPI_DBG2_SUBTYPE_SERIAL_SDM845_1_8432MHZ
Definition: acpi.h:1042
@ ACPI_DBG2_SUBTYPE_SERIAL_INTEL_LPSS
Definition: acpi.h:1045
@ ACPI_DBG2_SUBTYPE_SERIAL_NS16550_DBGP1
Definition: acpi.h:1027
@ ACPI_DBG2_SUBTYPE_SERIAL_SDM845_7_372MHZ
Definition: acpi.h:1044
@ ACPI_DBG2_SUBTYPE_SERIAL_TI_OMAP
Definition: acpi.h:1032
@ ACPI_DBG2_SUBTYPE_SERIAL_IMX6
Definition: acpi.h:1037
@ ACPI_DBG2_SUBTYPE_SERIAL_RISCV_SBI
Definition: acpi.h:1046
@ ACPI_DBG2_SUBTYPE_SERIAL_ARM_SBSA_GENERIC
Definition: acpi.h:1039
@ ACPI_DBG2_SUBTYPE_SERIAL_MSM8974
Definition: acpi.h:1034
@ ACPI_DBG2_SUBTYPE_SERIAL_MAX311XE_SPI
Definition: acpi.h:1028
#define UACPI_EXPECT_SIZEOF(type, size)
Definition: helpers.h:10
#define UACPI_PACKED(decl)
Definition: compiler.h:36
uint32_t uacpi_u32
Definition: types.h:21
uint64_t uacpi_u64
Definition: types.h:22
char uacpi_char
Definition: types.h:44
uint16_t uacpi_u16
Definition: types.h:20
uint8_t uacpi_u8
Definition: types.h:19
r reserved
Definition: btrfs.c:3006
unsigned char irq
Definition: dsp.h:13
static const FxOffsetAndName offsets[]
GLuint start
Definition: gl.h:1545
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLuint address
Definition: glext.h:9393
GLsizeiptr size
Definition: glext.h:5919
GLbitfield flags
Definition: glext.h:7161
GLint limit
Definition: glext.h:10326
GLuint GLenum matrix
Definition: glext.h:9407
GLuint divisor
Definition: glext.h:6313
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
GLuint id
Definition: glext.h:5910
enum wined3d_data_type data_type
Definition: glsl_shader.c:71
char hdr[14]
Definition: iptest.cpp:33
static unsigned int number
Definition: dsound.c:1479
static HANDLE ACCESS_MASK ULONG attributes
Definition: om.c:94
uacpi_u32 length
Definition: acpi.h:805
uacpi_u32 global_lock
Definition: acpi.h:808
uacpi_u64 x_firmware_waking_vector
Definition: acpi.h:810
uacpi_u32 flags
Definition: acpi.h:809
uacpi_u32 ospm_flags
Definition: acpi.h:813
uacpi_u8 version
Definition: acpi.h:811
uacpi_u32 firmware_waking_vector
Definition: acpi.h:807
uacpi_char rsvd1[24]
Definition: acpi.h:814
uacpi_u32 hardware_signature
Definition: acpi.h:806
uacpi_char rsvd0[3]
Definition: acpi.h:812
Definition: actbl1.h:1559
Definition: wpp.c:50
Definition: name.c:39
Definition: dlist.c:348
Definition: pdh_main.c:64