2 * PROJECT: ReactOS PCI Bus Driver
3 * LICENSE: BSD - See COPYING.ARM in the top level directory
4 * FILE: include/reactos/drivers/acpi/acpi.h
5 * PURPOSE: ACPI Tables and NT Registry Data
6 * PROGRAMMERS: ReactOS Portable Systems Group
10 // ACPI BIOS Registry Component Configuration Data
12 typedef struct _ACPI_E820_ENTRY
14 PHYSICAL_ADDRESS Base
;
17 } ACPI_E820_ENTRY
, *PACPI_E820_ENTRY
;
19 typedef struct _ACPI_BIOS_MULTI_NODE
21 PHYSICAL_ADDRESS RsdtAddress
;
23 ACPI_E820_ENTRY E820Entry
[1];
24 } ACPI_BIOS_MULTI_NODE
, *PACPI_BIOS_MULTI_NODE
;
29 #define RSDP_SIGNATURE 0x2052545020445352 // "RSD PTR "
30 #define FACS_SIGNATURE 0x53434146 // "FACS"
31 #define FADT_SIGNATURE 0x50434146 // "FACP"
32 #define RSDT_SIGNATURE 0x54445352 // "RSDT"
33 #define APIC_SIGNATURE 0x43495041 // "APIC"
34 #define DSDT_SIGNATURE 0x54445344 // "DSDT"
35 #define SSDT_SIGNATURE 0x54445353 // "SSDT"
36 #define PSDT_SIGNATURE 0x54445350 // "PSDT"
37 #define SBST_SIGNATURE 0x54534253 // "SBST"
38 #define DBGP_SIGNATURE 0x50474244 // "DBGP"
39 #define XSDT_SIGNATURE 'TDSX'
40 #define BOOT_SIGNATURE 'TOOB'
41 #define SRAT_SIGNATURE 'TARS'
42 #define WDRT_SIGNATURE 'TRDW'
47 #define ACPI_TMR_VAL_EXT 0x100
50 // ACPI Generic Register Address
52 typedef struct _GEN_ADDR
58 PHYSICAL_ADDRESS Address
;
59 } GEN_ADDR
, *PGEN_ADDR
;
62 // ACPI BIOS Structures (packed)
75 typedef struct _DESCRIPTION_HEADER
87 typedef DESCRIPTION_HEADER
*PDESCRIPTION_HEADER
;
93 ULONG HardwareSignature
;
94 ULONG pFirmwareWakingVector
;
97 PHYSICAL_ADDRESS x_FirmwareWakingVector
;
105 DESCRIPTION_HEADER Header
;
110 USHORT sci_int_vector
;
111 ULONG smi_cmd_io_port
;
113 UCHAR acpi_off_value
;
115 UCHAR pstate_control
;
116 ULONG pm1a_evt_blk_io_port
;
117 ULONG pm1b_evt_blk_io_port
;
118 ULONG pm1a_ctrl_blk_io_port
;
119 ULONG pm1b_ctrl_blk_io_port
;
120 ULONG pm2_ctrl_blk_io_port
;
121 ULONG pm_tmr_blk_io_port
;
122 ULONG gp0_blk_io_port
;
123 ULONG gp1_blk_io_port
;
131 UCHAR cstate_control
;
138 UCHAR day_alarm_index
;
139 UCHAR month_alarm_index
;
140 UCHAR century_alarm_index
;
147 PHYSICAL_ADDRESS x_firmware_ctrl
;
148 PHYSICAL_ADDRESS x_dsdt
;
149 GEN_ADDR x_pm1a_evt_blk
;
150 GEN_ADDR x_pm1b_evt_blk
;
151 GEN_ADDR x_pm1a_ctrl_blk
;
152 GEN_ADDR x_pm1b_ctrl_blk
;
153 GEN_ADDR x_pm2_ctrl_blk
;
154 GEN_ADDR x_pm_tmr_blk
;
162 DESCRIPTION_HEADER Header
;
163 UCHAR DiffDefBlock
[ANYSIZE_ARRAY
];
169 DESCRIPTION_HEADER Header
;
170 ULONG Tables
[ANYSIZE_ARRAY
];
176 DESCRIPTION_HEADER Header
;
177 PHYSICAL_ADDRESS Tables
[ANYSIZE_ARRAY
];
183 // Microsoft-specific (pretty much) ACPI Tables, normal MS ABI packing
185 typedef struct _DEBUG_PORT_TABLE
187 DESCRIPTION_HEADER Header
;
190 GEN_ADDR BaseAddress
;
191 } DEBUG_PORT_TABLE
, *PDEBUG_PORT_TABLE
;
193 typedef struct _WATCHDOG_TABLE
195 DESCRIPTION_HEADER Header
;
196 GEN_ADDR ControlRegister
;
197 GEN_ADDR CountRegister
;
206 } WATCHDOG_TABLE
, *PWATCHDOG_TABLE
;
208 typedef struct _BOOT_TABLE
210 DESCRIPTION_HEADER Header
;
213 } BOOT_TABLE
, *PBOOT_TABLE
;
215 typedef struct _ACPI_SRAT
217 DESCRIPTION_HEADER Header
;
220 } ACPI_SRAT
, *PACPI_SRAT
;