ReactOS 0.4.17-dev-1190-g4c812f4
acpi.h
Go to the documentation of this file.
1/*
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
7 */
8
9//
10// ACPI BIOS Registry Component Configuration Data
11//
12typedef struct _ACPI_E820_ENTRY
13{
18
20{
25
26//
27// ACPI Signatures
28//
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'
43#define BGRT_SIGNATURE 0x54524742 // "BGRT"
44#define MCFG_SIGNATURE 'GFCM'
45
46//
47// FADT Flags
48//
49#define ACPI_TMR_VAL_EXT 0x100
50
51//
52// BGRT Flags
53//
54#define BGRT_STATUS_IMAGE_VALID 0x01
55
56//
57// BGRT Image Types
58//
59typedef enum _BGRT_IMAGE_TYPE
60{
64
65//
66// ACPI Generic Register Address
67//
68#include <pshpack1.h>
69typedef struct _GEN_ADDR
70{
77
78//
79// ACPI BIOS Structures (packed)
80//
81typedef struct _RSDP
82{
83 // ACPI v1.0 (Rev=0)
87 UCHAR Revision; // Was reserved before ACPI v2.0 (Rev=2).
89 // ACPI v2.0 (Rev=2)
95typedef RSDP *PRSDP;
96
97typedef struct _DESCRIPTION_HEADER
98{
99 // ACPI v1.0
111
112typedef struct _FACS
113{
114 // ACPI v1.0 (Ver=0)
121 PHYSICAL_ADDRESS x_FirmwareWakingVector; // Was reserved before ACPI v2.0 (Ver=1).
122 UCHAR Version; // Was reserved before ACPI v2.0 (Ver=1).
124 ULONG OsFlags; // Was reserved before ACPI v4.0 (Ver=2).
127typedef FACS *PFACS;
128
129typedef struct _FADT
130{
131 // ACPI v1.0 (H.Rev=1)
135 UCHAR reserved44[1]; // Was int_model before ACPI v2.0.
171 // ACPI v1.5 (H.Rev=3)
174 USHORT arm_boot_arch; // Was reserved before ACPI v5.1.
175 UCHAR minor_revision; // Was reserved before ACPI v5.1.
186 // ACPI v5.0 (H.Rev=5)
189 // ACPI v6.0 (H.Rev=6)
192typedef FADT *PFADT;
193
194typedef struct _DSDT
195{
199typedef DSDT *PDSDT;
200
201typedef struct _RSDT
202{
203 // ACPI v1.0 (H.Rev=1)
207typedef RSDT *PRSDT;
208
209typedef struct _XSDT
210{
211 // ACPI v2.0 (H.Rev=1)
215typedef XSDT *PXSDT;
216#include <poppack.h>
217
218//
219// Microsoft-specific (pretty much) ACPI Tables, normal MS ABI packing
220//
221typedef struct _DEBUG_PORT_TABLE
222{
228
229typedef struct _WATCHDOG_TABLE
230{
243
244typedef struct _BOOT_TABLE
245{
250
251typedef struct _ACPI_SRAT
252{
257
258typedef struct _BGRT_TABLE
259{
268
269typedef struct _MCFG_ALLOCATION
270{
277
278typedef struct _MCFG_TABLE
279{
284
285/* EOF */
unsigned short USHORT
Definition: pedump.c:61
struct _MCFG_ALLOCATION MCFG_ALLOCATION
struct _ACPI_SRAT ACPI_SRAT
struct _ACPI_BIOS_MULTI_NODE * PACPI_BIOS_MULTI_NODE
struct _DEBUG_PORT_TABLE DEBUG_PORT_TABLE
FACS * PFACS
Definition: acpi.h:127
struct _RSDT RSDT
struct _GEN_ADDR * PGEN_ADDR
RSDT * PRSDT
Definition: acpi.h:207
enum _BGRT_IMAGE_TYPE BGRT_IMAGE_TYPE
_BGRT_IMAGE_TYPE
Definition: acpi.h:60
@ BgrtImageTypeBitmap
Definition: acpi.h:61
@ BgrtImageTypeMax
Definition: acpi.h:62
FADT * PFADT
Definition: acpi.h:192
struct _BOOT_TABLE BOOT_TABLE
struct _ACPI_E820_ENTRY * PACPI_E820_ENTRY
struct _GEN_ADDR GEN_ADDR
struct _MCFG_TABLE MCFG_TABLE
struct _XSDT XSDT
struct _RSDP RSDP
DSDT * PDSDT
Definition: acpi.h:199
struct _ACPI_E820_ENTRY ACPI_E820_ENTRY
struct _FADT FADT
struct _ACPI_BIOS_MULTI_NODE ACPI_BIOS_MULTI_NODE
struct _MCFG_ALLOCATION * PMCFG_ALLOCATION
struct _DSDT DSDT
struct _FACS FACS
struct _ACPI_SRAT * PACPI_SRAT
struct _DEBUG_PORT_TABLE * PDEBUG_PORT_TABLE
struct _BGRT_TABLE * PBGRT_TABLE
struct _MCFG_TABLE * PMCFG_TABLE
DESCRIPTION_HEADER * PDESCRIPTION_HEADER
Definition: acpi.h:110
struct _WATCHDOG_TABLE WATCHDOG_TABLE
struct _BGRT_TABLE BGRT_TABLE
RSDP * PRSDP
Definition: acpi.h:95
struct _DESCRIPTION_HEADER DESCRIPTION_HEADER
struct _BOOT_TABLE * PBOOT_TABLE
enum _BGRT_IMAGE_TYPE * PBGRT_IMAGE_TYPE
XSDT * PXSDT
Definition: acpi.h:215
struct _WATCHDOG_TABLE * PWATCHDOG_TABLE
ACPI_E820_ENTRY E820Entry[1]
Definition: acpi.h:23
ULONGLONG Count
Definition: acpi.h:22
PHYSICAL_ADDRESS RsdtAddress
Definition: acpi.h:21
Definition: acpi.h:13
LARGE_INTEGER Length
Definition: acpi.h:15
ULONGLONG Type
Definition: acpi.h:16
PHYSICAL_ADDRESS Base
Definition: acpi.h:14
UCHAR TableRevision
Definition: acpi.h:254
DESCRIPTION_HEADER Header
Definition: acpi.h:253
ULONG OffsetX
Definition: acpi.h:265
UCHAR ImageType
Definition: acpi.h:263
DESCRIPTION_HEADER Header
Definition: acpi.h:260
USHORT Version
Definition: acpi.h:261
ULONGLONG LogoAddress
Definition: acpi.h:264
UCHAR Status
Definition: acpi.h:262
ULONG OffsetY
Definition: acpi.h:266
UCHAR CMOSIndex
Definition: acpi.h:247
DESCRIPTION_HEADER Header
Definition: acpi.h:246
UCHAR InterfaceType
Definition: acpi.h:224
GEN_ADDR BaseAddress
Definition: acpi.h:226
DESCRIPTION_HEADER Header
Definition: acpi.h:223
ULONG Signature
Definition: acpi.h:100
UCHAR Revision
Definition: acpi.h:102
ULONG OEMRevision
Definition: acpi.h:106
ULONG CreatorRev
Definition: acpi.h:108
UCHAR Checksum
Definition: acpi.h:103
UCHAR OEMID[6]
Definition: acpi.h:104
UCHAR OEMTableID[8]
Definition: acpi.h:105
UCHAR CreatorID[4]
Definition: acpi.h:107
Definition: acpi.h:195
UCHAR DiffDefBlock[ANYSIZE_ARRAY]
Definition: acpi.h:197
DESCRIPTION_HEADER Header
Definition: acpi.h:196
Definition: acpi.h:113
ULONG OsFlags
Definition: acpi.h:124
PHYSICAL_ADDRESS x_FirmwareWakingVector
Definition: acpi.h:121
ULONG Length
Definition: acpi.h:116
ULONG pFirmwareWakingVector
Definition: acpi.h:118
ULONG GlobalLock
Definition: acpi.h:119
ULONG Flags
Definition: acpi.h:120
UCHAR Reserved40[24]
Definition: acpi.h:125
ULONG Signature
Definition: acpi.h:115
UCHAR Version
Definition: acpi.h:122
UCHAR Reserved33[3]
Definition: acpi.h:123
ULONG HardwareSignature
Definition: acpi.h:117
Definition: acpi.h:130
ULONG flags
Definition: acpi.h:170
GEN_ADDR x_pm1a_evt_blk
Definition: acpi.h:178
GEN_ADDR x_gp1_blk
Definition: acpi.h:185
UCHAR pm1_ctrl_len
Definition: acpi.h:152
UCHAR reserved111[1]
Definition: acpi.h:169
GEN_ADDR x_pm1a_ctrl_blk
Definition: acpi.h:180
UCHAR gp0_blk_len
Definition: acpi.h:155
ULONG pm2_ctrl_blk_io_port
Definition: acpi.h:147
USHORT flush_stride
Definition: acpi.h:162
ULONG pm1a_ctrl_blk_io_port
Definition: acpi.h:145
ULONG gp0_blk_io_port
Definition: acpi.h:149
GEN_ADDR x_gp0_blk
Definition: acpi.h:184
UCHAR pm_profile
Definition: acpi.h:136
UCHAR reserved44[1]
Definition: acpi.h:135
ULONG pm1a_evt_blk_io_port
Definition: acpi.h:143
ULONG pm1b_ctrl_blk_io_port
Definition: acpi.h:146
UCHAR pm1_evt_len
Definition: acpi.h:151
ULONG facs
Definition: acpi.h:133
GEN_ADDR x_pm1b_ctrl_blk
Definition: acpi.h:181
UCHAR gp1_base
Definition: acpi.h:157
UCHAR acpi_on_value
Definition: acpi.h:139
USHORT lvl2_latency
Definition: acpi.h:159
GEN_ADDR sleep_status
Definition: acpi.h:188
UCHAR century_alarm_index
Definition: acpi.h:167
UCHAR duty_offset
Definition: acpi.h:163
USHORT flush_size
Definition: acpi.h:161
GEN_ADDR x_pm_tmr_blk
Definition: acpi.h:183
GEN_ADDR sleep_control
Definition: acpi.h:187
DESCRIPTION_HEADER Header
Definition: acpi.h:132
UCHAR minor_revision
Definition: acpi.h:175
GEN_ADDR x_pm1b_evt_blk
Definition: acpi.h:179
PHYSICAL_ADDRESS x_dsdt
Definition: acpi.h:177
ULONG dsdt
Definition: acpi.h:134
UCHAR s4bios_req
Definition: acpi.h:141
UCHAR acpi_off_value
Definition: acpi.h:140
GEN_ADDR x_pm2_ctrl_blk
Definition: acpi.h:182
USHORT boot_arch
Definition: acpi.h:168
UCHAR gp1_blk_len
Definition: acpi.h:156
ULONG pm_tmr_blk_io_port
Definition: acpi.h:148
UCHAR pm2_ctrl_len
Definition: acpi.h:153
UCHAR duty_width
Definition: acpi.h:164
UCHAR pm_tmr_len
Definition: acpi.h:154
UCHAR cstate_control
Definition: acpi.h:158
UCHAR month_alarm_index
Definition: acpi.h:166
PHYSICAL_ADDRESS x_firmware_ctrl
Definition: acpi.h:176
USHORT arm_boot_arch
Definition: acpi.h:174
GEN_ADDR reset_reg
Definition: acpi.h:172
ULONG smi_cmd_io_port
Definition: acpi.h:138
ULONG pm1b_evt_blk_io_port
Definition: acpi.h:144
ULONGLONG hypervisor_id
Definition: acpi.h:190
UCHAR day_alarm_index
Definition: acpi.h:165
USHORT sci_int_vector
Definition: acpi.h:137
UCHAR pstate_control
Definition: acpi.h:142
UCHAR reset_val
Definition: acpi.h:173
USHORT lvl3_latency
Definition: acpi.h:160
ULONG gp1_blk_io_port
Definition: acpi.h:150
Definition: acpi.h:70
UCHAR AddressSpaceID
Definition: acpi.h:71
UCHAR BitOffset
Definition: acpi.h:73
PHYSICAL_ADDRESS Address
Definition: acpi.h:75
UCHAR BitWidth
Definition: acpi.h:72
UCHAR Reserved
Definition: acpi.h:74
ULONGLONG BaseAddress
Definition: acpi.h:271
UCHAR StartBusNumber
Definition: acpi.h:273
ULONG Reserved
Definition: acpi.h:275
USHORT PciSegmentGroup
Definition: acpi.h:272
UCHAR EndBusNumber
Definition: acpi.h:274
MCFG_ALLOCATION Allocation[ANYSIZE_ARRAY]
Definition: acpi.h:282
DESCRIPTION_HEADER Header
Definition: acpi.h:280
ULONGLONG Reserved
Definition: acpi.h:281
Definition: acpi.h:82
ULONG Length
Definition: acpi.h:90
ULONG RsdtAddress
Definition: acpi.h:88
UCHAR Reserved33[3]
Definition: acpi.h:93
ULONGLONG Signature
Definition: acpi.h:84
UCHAR Checksum
Definition: acpi.h:85
UCHAR XChecksum
Definition: acpi.h:92
PHYSICAL_ADDRESS XsdtAddress
Definition: acpi.h:91
UCHAR Revision
Definition: acpi.h:87
UCHAR OEMID[6]
Definition: acpi.h:86
Definition: acpi.h:202
ULONG Tables[ANYSIZE_ARRAY]
Definition: acpi.h:205
DESCRIPTION_HEADER Header
Definition: acpi.h:204
UCHAR Units
Definition: acpi.h:241
UCHAR PciFunction
Definition: acpi.h:238
USHORT PciDeviceId
Definition: acpi.h:234
UCHAR PciDevice
Definition: acpi.h:237
UCHAR PciBus
Definition: acpi.h:236
DESCRIPTION_HEADER Header
Definition: acpi.h:231
USHORT MaxCount
Definition: acpi.h:240
USHORT PciVendorId
Definition: acpi.h:235
GEN_ADDR CountRegister
Definition: acpi.h:233
UCHAR PciSegment
Definition: acpi.h:239
GEN_ADDR ControlRegister
Definition: acpi.h:232
Definition: acpi.h:210
PHYSICAL_ADDRESS Tables[ANYSIZE_ARRAY]
Definition: acpi.h:213
DESCRIPTION_HEADER Header
Definition: acpi.h:212
unsigned char UCHAR
Definition: typedefs.h:53
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
uint64_t ULONGLONG
Definition: typedefs.h:67
uint32_t ULONG
Definition: typedefs.h:59
_Reserved_ PVOID Reserved
Definition: winddi.h:3974