actbl.h (7c478bd9) actbl.h (450d6964)
1/******************************************************************************
2 *
3 * Name: actbl.h - Table data structures defined in ACPI specification
1/******************************************************************************
2 *
3 * Name: actbl.h - Table data structures defined in ACPI specification
4 * $Revision: 69 $
4 * $Revision: 72 $
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999 - 2005, Intel Corp.

--- 141 unchanged lines hidden (view full) ---

154/*
155 * ACPI Version-independent tables
156 *
157 * NOTE: The tables that are specific to ACPI versions (1.0, 2.0, etc.)
158 * are in separate files.
159 */
160typedef struct rsdp_descriptor /* Root System Descriptor Pointer */
161{
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999 - 2005, Intel Corp.

--- 141 unchanged lines hidden (view full) ---

154/*
155 * ACPI Version-independent tables
156 *
157 * NOTE: The tables that are specific to ACPI versions (1.0, 2.0, etc.)
158 * are in separate files.
159 */
160typedef struct rsdp_descriptor /* Root System Descriptor Pointer */
161{
162 char Signature [8]; /* ACPI signature, contains "RSD PTR " */
163 UINT8 Checksum; /* To make sum of struct == 0 */
164 char OemId [6]; /* OEM identification */
165 UINT8 Revision; /* Must be 0 for 1.0, 2 for 2.0 */
166 UINT32 RsdtPhysicalAddress; /* 32-bit physical address of RSDT */
167 UINT32 Length; /* XSDT Length in bytes including hdr */
168 UINT64 XsdtPhysicalAddress; /* 64-bit physical address of XSDT */
169 UINT8 ExtendedChecksum; /* Checksum of entire table */
170 char Reserved [3]; /* Reserved field must be 0 */
162 char Signature[8]; /* ACPI signature, contains "RSD PTR " */
163 UINT8 Checksum; /* ACPI 1.0 checksum */
164 char OemId[6]; /* OEM identification */
165 UINT8 Revision; /* Must be (0) for ACPI 1.0 or (2) for ACPI 2.0+ */
166 UINT32 RsdtPhysicalAddress; /* 32-bit physical address of the RSDT */
167 UINT32 Length; /* XSDT Length in bytes, including header */
168 UINT64 XsdtPhysicalAddress; /* 64-bit physical address of the XSDT */
169 UINT8 ExtendedChecksum; /* Checksum of entire table (ACPI 2.0) */
170 char Reserved[3]; /* Reserved, must be zero */
171
172} RSDP_DESCRIPTOR;
173
174
175typedef struct acpi_common_facs /* Common FACS for internal use */
176{
177 UINT32 *GlobalLock;
178 UINT64 *FirmwareWakingVector;
179 UINT8 VectorWidth;
180
181} ACPI_COMMON_FACS;
182
183
184#define ACPI_TABLE_HEADER_DEF /* ACPI common table header */ \
171
172} RSDP_DESCRIPTOR;
173
174
175typedef struct acpi_common_facs /* Common FACS for internal use */
176{
177 UINT32 *GlobalLock;
178 UINT64 *FirmwareWakingVector;
179 UINT8 VectorWidth;
180
181} ACPI_COMMON_FACS;
182
183
184#define ACPI_TABLE_HEADER_DEF /* ACPI common table header */ \
185 char Signature [4]; /* ACPI signature (4 ASCII characters) */\
186 UINT32 Length; /* Length of table, in bytes, including header */\
185 char Signature[4]; /* ASCII table signature */\
186 UINT32 Length; /* Length of table in bytes, including this header */\
187 UINT8 Revision; /* ACPI Specification minor version # */\
188 UINT8 Checksum; /* To make sum of entire table == 0 */\
187 UINT8 Revision; /* ACPI Specification minor version # */\
188 UINT8 Checksum; /* To make sum of entire table == 0 */\
189 char OemId [6]; /* OEM identification */\
190 char OemTableId [8]; /* OEM table identification */\
189 char OemId[6]; /* ASCII OEM identification */\
190 char OemTableId[8]; /* ASCII OEM table identification */\
191 UINT32 OemRevision; /* OEM revision number */\
191 UINT32 OemRevision; /* OEM revision number */\
192 char AslCompilerId [4]; /* ASL compiler vendor ID */\
193 UINT32 AslCompilerRevision; /* ASL compiler revision number */
192 char AslCompilerId [4]; /* ASCII ASL compiler vendor ID */\
193 UINT32 AslCompilerRevision; /* ASL compiler version */
194
195
196typedef struct acpi_table_header /* ACPI common table header */
197{
198 ACPI_TABLE_HEADER_DEF
199
200} ACPI_TABLE_HEADER;
201

--- 8 unchanged lines hidden (view full) ---

210#define MULTIPLE_APIC 1
211
212/* Master MADT */
213
214typedef struct multiple_apic_table
215{
216 ACPI_TABLE_HEADER_DEF /* ACPI common table header */
217 UINT32 LocalApicAddress; /* Physical address of local APIC */
194
195
196typedef struct acpi_table_header /* ACPI common table header */
197{
198 ACPI_TABLE_HEADER_DEF
199
200} ACPI_TABLE_HEADER;
201

--- 8 unchanged lines hidden (view full) ---

210#define MULTIPLE_APIC 1
211
212/* Master MADT */
213
214typedef struct multiple_apic_table
215{
216 ACPI_TABLE_HEADER_DEF /* ACPI common table header */
217 UINT32 LocalApicAddress; /* Physical address of local APIC */
218 UINT32_BIT PCATCompat : 1; /* A one indicates system also has dual 8259s */
219 UINT32_BIT Reserved1 : 31;
220
218
219 /* Flags (32 bits) */
220
221 UINT8_BIT PCATCompat : 1; /* 00: System also has dual 8259s */
222 UINT8_BIT : 7; /* 01-07: Reserved, must be zero */
223 UINT8 Reserved1[3]; /* 08-31: Reserved, must be zero */
224
221} MULTIPLE_APIC_TABLE;
222
223/* Values for Type in APIC_HEADER_DEF */
224
225#define APIC_PROCESSOR 0
226#define APIC_IO 1
227#define APIC_XRUPT_OVERRIDE 2
228#define APIC_NMI 3

--- 24 unchanged lines hidden (view full) ---

253#define POLARITY_RESERVED 2
254#define POLARITY_ACTIVE_LOW 3
255
256#define TRIGGER_CONFORMS 0
257#define TRIGGER_EDGE 1
258#define TRIGGER_RESERVED 2
259#define TRIGGER_LEVEL 3
260
225} MULTIPLE_APIC_TABLE;
226
227/* Values for Type in APIC_HEADER_DEF */
228
229#define APIC_PROCESSOR 0
230#define APIC_IO 1
231#define APIC_XRUPT_OVERRIDE 2
232#define APIC_NMI 3

--- 24 unchanged lines hidden (view full) ---

257#define POLARITY_RESERVED 2
258#define POLARITY_ACTIVE_LOW 3
259
260#define TRIGGER_CONFORMS 0
261#define TRIGGER_EDGE 1
262#define TRIGGER_RESERVED 2
263#define TRIGGER_LEVEL 3
264
261/* Common flag definitions */
265/* Common flag definitions (16 bits each) */
262
263#define MPS_INTI_FLAGS \
266
267#define MPS_INTI_FLAGS \
264 UINT16_BIT Polarity : 2; /* Polarity of APIC I/O input signals */\
265 UINT16_BIT TriggerMode : 2; /* Trigger mode of APIC input signals */\
266 UINT16_BIT Reserved1 : 12; /* Reserved, must be zero */
268 UINT8_BIT Polarity : 2; /* 00-01: Polarity of APIC I/O input signals */\
269 UINT8_BIT TriggerMode : 2; /* 02-03: Trigger mode of APIC input signals */\
270 UINT8_BIT : 4; /* 04-07: Reserved, must be zero */\
271 UINT8 Reserved1; /* 08-15: Reserved, must be zero */
267
268#define LOCAL_APIC_FLAGS \
272
273#define LOCAL_APIC_FLAGS \
269 UINT32_BIT ProcessorEnabled: 1; /* Processor is usable if set */\
270 UINT32_BIT Reserved2 : 31; /* Reserved, must be zero */
274 UINT8_BIT ProcessorEnabled: 1; /* 00: Processor is usable if set */\
275 UINT8_BIT : 7; /* 01-07: Reserved, must be zero */\
276 UINT8 Reserved2; /* 08-15: Reserved, must be zero */
271
272/* Sub-structures for MADT */
273
274typedef struct madt_processor_apic
275{
276 APIC_HEADER_DEF
277 UINT8 ProcessorId; /* ACPI processor id */
278 UINT8 LocalApicId; /* Processor's local APIC id */

--- 36 unchanged lines hidden (view full) ---

315 MPS_INTI_FLAGS
316 UINT8 Lint; /* LINTn to which NMI is connected */
317
318} MADT_LOCAL_APIC_NMI;
319
320typedef struct madt_address_override
321{
322 APIC_HEADER_DEF
277
278/* Sub-structures for MADT */
279
280typedef struct madt_processor_apic
281{
282 APIC_HEADER_DEF
283 UINT8 ProcessorId; /* ACPI processor id */
284 UINT8 LocalApicId; /* Processor's local APIC id */

--- 36 unchanged lines hidden (view full) ---

321 MPS_INTI_FLAGS
322 UINT8 Lint; /* LINTn to which NMI is connected */
323
324} MADT_LOCAL_APIC_NMI;
325
326typedef struct madt_address_override
327{
328 APIC_HEADER_DEF
323 UINT16 Reserved; /* Reserved - must be zero */
329 UINT16 Reserved; /* Reserved, must be zero */
324 UINT64 Address; /* APIC physical address */
325
326} MADT_ADDRESS_OVERRIDE;
327
328typedef struct madt_io_sapic
329{
330 APIC_HEADER_DEF
331 UINT8 IoSapicId; /* I/O SAPIC ID */
330 UINT64 Address; /* APIC physical address */
331
332} MADT_ADDRESS_OVERRIDE;
333
334typedef struct madt_io_sapic
335{
336 APIC_HEADER_DEF
337 UINT8 IoSapicId; /* I/O SAPIC ID */
332 UINT8 Reserved; /* Reserved - must be zero */
338 UINT8 Reserved; /* Reserved, must be zero */
333 UINT32 InterruptBase; /* Glocal interrupt for SAPIC start */
334 UINT64 Address; /* SAPIC physical address */
335
336} MADT_IO_SAPIC;
337
338typedef struct madt_local_sapic
339{
340 APIC_HEADER_DEF
341 UINT8 ProcessorId; /* ACPI processor id */
342 UINT8 LocalSapicId; /* SAPIC ID */
343 UINT8 LocalSapicEid; /* SAPIC EID */
339 UINT32 InterruptBase; /* Glocal interrupt for SAPIC start */
340 UINT64 Address; /* SAPIC physical address */
341
342} MADT_IO_SAPIC;
343
344typedef struct madt_local_sapic
345{
346 APIC_HEADER_DEF
347 UINT8 ProcessorId; /* ACPI processor id */
348 UINT8 LocalSapicId; /* SAPIC ID */
349 UINT8 LocalSapicEid; /* SAPIC EID */
344 UINT8 Reserved [3]; /* Reserved - must be zero */
350 UINT8 Reserved[3]; /* Reserved, must be zero */
345 LOCAL_APIC_FLAGS
346 UINT32 ProcessorUID; /* Numeric UID - ACPI 3.0 */
347 char ProcessorUIDString[1]; /* String UID - ACPI 3.0 */
348
349} MADT_LOCAL_SAPIC;
350
351typedef struct madt_interrupt_source
352{

--- 87 unchanged lines hidden ---
351 LOCAL_APIC_FLAGS
352 UINT32 ProcessorUID; /* Numeric UID - ACPI 3.0 */
353 char ProcessorUIDString[1]; /* String UID - ACPI 3.0 */
354
355} MADT_LOCAL_SAPIC;
356
357typedef struct madt_interrupt_source
358{

--- 87 unchanged lines hidden ---