1 /******************************************************************************
3 * Name: actbl1.h - Additional ACPI table definitions
6 *****************************************************************************/
8 /******************************************************************************
12 * Some or all of this work - Copyright (c) 1999 - 2006, Intel Corp.
13 * All rights reserved.
17 * 2.1. This is your license from Intel Corp. under its intellectual property
18 * rights. You may have additional license terms from the party that provided
19 * you this software, covering your right to use that party's intellectual
22 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
23 * copy of the source code appearing in this file ("Covered Code") an
24 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
25 * base code distributed originally by Intel ("Original Intel Code") to copy,
26 * make derivatives, distribute, use and display any portion of the Covered
27 * Code in any form, with the right to sublicense such rights; and
29 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
30 * license (with the right to sublicense), under only those claims of Intel
31 * patents that are infringed by the Original Intel Code, to make, use, sell,
32 * offer to sell, and import the Covered Code and derivative works thereof
33 * solely to the minimum extent necessary to exercise the above copyright
34 * license, and in no event shall the patent license extend to any additions
35 * to or modifications of the Original Intel Code. No other license or right
36 * is granted directly or by implication, estoppel or otherwise;
38 * The above copyright and patent license is granted only if the following
43 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
44 * Redistribution of source code of any substantial portion of the Covered
45 * Code or modification with rights to further distribute source must include
46 * the above Copyright Notice, the above License, this list of Conditions,
47 * and the following Disclaimer and Export Compliance provision. In addition,
48 * Licensee must cause all Covered Code to which Licensee contributes to
49 * contain a file documenting the changes Licensee made to create that Covered
50 * Code and the date of any change. Licensee must include in that file the
51 * documentation of any changes made by any predecessor Licensee. Licensee
52 * must include a prominent statement that the modification is derived,
53 * directly or indirectly, from Original Intel Code.
55 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
56 * Redistribution of source code of any substantial portion of the Covered
57 * Code or modification without rights to further distribute source must
58 * include the following Disclaimer and Export Compliance provision in the
59 * documentation and/or other materials provided with distribution. In
60 * addition, Licensee may not authorize further sublicense of source of any
61 * portion of the Covered Code, and must include terms to the effect that the
62 * license from Licensee to its licensee is limited to the intellectual
63 * property embodied in the software Licensee provides to its licensee, and
64 * not to intellectual property embodied in modifications its licensee may
67 * 3.3. Redistribution of Executable. Redistribution in executable form of any
68 * substantial portion of the Covered Code or modification must reproduce the
69 * above Copyright Notice, and the following Disclaimer and Export Compliance
70 * provision in the documentation and/or other materials provided with the
73 * 3.4. Intel retains all right, title, and interest in and to the Original
76 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
77 * Intel shall be used in advertising or otherwise to promote the sale, use or
78 * other dealings in products derived from or relating to the Covered Code
79 * without prior written authorization from Intel.
81 * 4. Disclaimer and Export Compliance
83 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
84 * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
85 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
86 * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
87 * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
88 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
91 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
92 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
93 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
94 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
95 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
96 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
97 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
100 * 4.3. Licensee shall not export, either directly or indirectly, any of this
101 * software or system incorporating such software without first obtaining any
102 * required license or other approval from the U. S. Department of Commerce or
103 * any other agency or department of the United States Government. In the
104 * event Licensee exports any such software from the United States or
105 * re-exports any such software from a foreign destination, Licensee shall
106 * ensure that the distribution and export/re-export of the software is in
107 * compliance with all laws, regulations, orders, or other restrictions of the
108 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
109 * any of its subsidiaries will export/re-export any technical data, process,
110 * software, or service, directly or indirectly, to any country for which the
111 * United States government or any agency thereof requires an export license,
112 * other governmental approval, or letter of assurance, without first obtaining
113 * such license, approval or letter.
115 *****************************************************************************/
121 /*******************************************************************************
123 * Additional ACPI Tables
125 * These tables are not consumed directly by the ACPICA subsystem, but are
126 * included here to support device drivers and the AML disassembler.
128 ******************************************************************************/
132 * Values for description table header signatures. Useful because they make
133 * it more difficult to inadvertently type in the wrong signature.
135 #define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */
136 #define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */
137 #define ACPI_SIG_CPEP "CPEP" /* Corrected Platform Error Polling table */
138 #define ACPI_SIG_DBGP "DBGP" /* Debug Port table */
139 #define ACPI_SIG_ECDT "ECDT" /* Embedded Controller Boot Resources Table */
140 #define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */
141 #define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */
142 #define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */
143 #define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */
144 #define ACPI_SIG_SLIT "SLIT" /* System Locality Distance Information Table */
145 #define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */
146 #define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */
147 #define ACPI_SIG_SRAT "SRAT" /* System Resource Affinity Table */
148 #define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */
149 #define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */
153 #define APIC_SIG "APIC" /* Multiple APIC Description Table */
154 #define BOOT_SIG "BOOT" /* Simple Boot Flag Table */
155 #define SBST_SIG "SBST" /* Smart Battery Specification Table */
159 * All tables must be byte-packed to match the ACPI specification, since
160 * the tables are provided by the system BIOS.
165 * Note about bitfields: The UINT8 type is used for bitfields in ACPI tables.
166 * This is the only type that is even remotely portable. Anything else is not
167 * portable, so do not use any other bitfield types.
171 /*******************************************************************************
173 * ASF - Alert Standard Format table (Signature "ASF!")
175 ******************************************************************************/
177 typedef struct acpi_table_asf
{
178 ACPI_TABLE_HEADER_DEF
181 #define ACPI_ASF_HEADER_DEF \
186 typedef struct acpi_asf_header
{
191 /* Values for Type field */
195 #define ASF_CONTROL 2
197 #define ASF_ADDRESS 4
198 #define ASF_RESERVED 5
204 /* 0: ASF Information */
206 typedef struct acpi_asf_info
{
209 UINT8 MinPollInterval
;
218 typedef struct acpi_asf_alert
{
227 /* 2: ASF Remote Control */
229 typedef struct acpi_asf_remote
{
237 /* 3: ASF RMCP Boot Options */
239 typedef struct acpi_asf_rmcp
{
241 UINT8 Capabilities
[7];
242 UINT8 CompletionCode
;
247 UINT16 OemParameters
;
252 typedef struct acpi_asf_address
{
256 UINT8 SmbusAddresses
[1];
260 /*******************************************************************************
262 * BOOT - Simple Boot Flag Table
264 ******************************************************************************/
266 typedef struct acpi_table_boot
{
267 ACPI_TABLE_HEADER_DEF
268 UINT8 CmosIndex
; /* Index in CMOS RAM for the boot register */
273 /*******************************************************************************
275 * CPEP - Corrected Platform Error Polling table
277 ******************************************************************************/
279 typedef struct acpi_table_cpep
{
280 ACPI_TABLE_HEADER_DEF
286 typedef struct acpi_cpep_polling
{
289 UINT8 ProcessorId
; /* Processor ID */
290 UINT8 ProcessorEid
; /* Processor EID */
291 UINT32 PollingInterval
;/* Polling interval (msec) */
295 /*******************************************************************************
297 * DBGP - Debug Port table
299 ******************************************************************************/
301 typedef struct acpi_table_dbgp
{
302 ACPI_TABLE_HEADER_DEF
303 UINT8 InterfaceType
; /* 0=full 16550, 1=subset of 16550 */
305 ACPI_GENERIC_ADDRESS DebugPort
;
309 /*******************************************************************************
311 * ECDT - Embedded Controller Boot Resources Table
313 ******************************************************************************/
315 typedef struct ec_boot_resources
{
316 ACPI_TABLE_HEADER_DEF
317 ACPI_GENERIC_ADDRESS EcControl
; /* Address of EC command/status register */
318 ACPI_GENERIC_ADDRESS EcData
; /* Address of EC data register */
319 UINT32 Uid
; /* Unique ID - must be same as the EC _UID method */
320 UINT8 GpeBit
; /* The GPE for the EC */
321 UINT8 EcId
[1]; /* Full namepath of the EC in the ACPI namespace */
325 /*******************************************************************************
327 * HPET - High Precision Event Timer table
329 ******************************************************************************/
331 typedef struct acpi_hpet_table
{
332 ACPI_TABLE_HEADER_DEF
333 UINT32 HardwareId
; /* Hardware ID of event timer block */
334 ACPI_GENERIC_ADDRESS BaseAddress
; /* Address of event timer block */
335 UINT8 HpetNumber
; /* HPET sequence number */
336 UINT16 ClockTick
; /* Main counter min tick, periodic mode */
340 #if 0 /* HPET flags to be converted to macros */
341 struct /* Flags (8 bits) */
343 UINT8 PageProtect
:1;/* 00: No page protection */
344 UINT8 PageProtect4
:1;/* 01: 4KB page protected */
345 UINT8 PageProtect64
:1;/* 02: 64KB page protected */
346 UINT8
:5;/* 03-07: Reserved, must be zero */
351 /*******************************************************************************
353 * MADT - Multiple APIC Description Table
355 ******************************************************************************/
357 typedef struct multiple_apic_table
{
358 ACPI_TABLE_HEADER_DEF
359 UINT32 LocalApicAddress
;/* Physical address of local APIC */
361 /* Flags (32 bits) */
363 UINT8 PCATCompat
: 1;/* 00: System also has dual 8259s */
364 UINT8
: 7;/* 01-07: Reserved, must be zero */
365 UINT8 Reserved1
[3]; /* 08-31: Reserved, must be zero */
366 } MULTIPLE_APIC_TABLE
;
368 /* Values for MADT PCATCompat */
371 #define MULTIPLE_APIC 1
374 /* Common MADT Sub-table header */
376 #define APIC_HEADER_DEF \
380 typedef struct apic_header
{
384 /* Values for Type in APIC_HEADER */
386 #define APIC_PROCESSOR 0
388 #define APIC_XRUPT_OVERRIDE 2
390 #define APIC_LOCAL_NMI 4
391 #define APIC_ADDRESS_OVERRIDE 5
392 #define APIC_IO_SAPIC 6
393 #define APIC_LOCAL_SAPIC 7
394 #define APIC_XRUPT_SOURCE 8
395 #define APIC_RESERVED 9 /* 9 and greater are reserved */
398 /* Flag definitions for MADT sub-tables */
400 #define ACPI_MADT_IFLAGS /* INTI flags (16 bits) */ \
401 UINT8 Polarity : 2; /* 00-01: Polarity of APIC I/O input signals */ \
402 UINT8 TriggerMode : 2; /* 02-03: Trigger mode of APIC input signals */ \
403 UINT8 : 4; /* 04-07: Reserved, must be zero */ \
404 UINT8 Reserved1; /* 08-15: Reserved, must be zero */
406 #define ACPI_MADT_LFLAGS /* Local Sapic flags (32 bits) */ \
407 UINT8 ProcessorEnabled: 1; /* 00: Processor is usable if set */ \
408 UINT8 : 7; /* 01-07: Reserved, must be zero */ \
409 UINT8 Reserved2[3]; /* 08-31: Reserved, must be zero */
412 /* Values for MPS INTI flags */
414 #define POLARITY_CONFORMS 0
415 #define POLARITY_ACTIVE_HIGH 1
416 #define POLARITY_RESERVED 2
417 #define POLARITY_ACTIVE_LOW 3
419 #define TRIGGER_CONFORMS 0
420 #define TRIGGER_EDGE 1
421 #define TRIGGER_RESERVED 2
422 #define TRIGGER_LEVEL 3
426 * MADT Sub-tables, correspond to Type in APIC_HEADER
429 /* 0: processor APIC */
431 typedef struct madt_processor_apic
{
433 UINT8 ProcessorId
; /* ACPI processor id */
434 UINT8 LocalApicId
; /* Processor's local APIC id */
436 } MADT_PROCESSOR_APIC
;
440 typedef struct madt_io_apic
{
442 UINT8 IoApicId
; /* I/O APIC ID */
443 UINT8 Reserved
; /* Reserved - must be zero */
444 UINT32 Address
; /* APIC physical address */
445 UINT32 Interrupt
; /* Global system interrupt where INTI lines start */
448 /* 2: Interrupt Override */
450 typedef struct madt_interrupt_override
{
452 UINT8 Bus
; /* 0 - ISA */
453 UINT8 Source
; /* Interrupt source (IRQ) */
454 UINT32 Interrupt
; /* Global system interrupt */
456 } MADT_INTERRUPT_OVERRIDE
;
460 typedef struct madt_nmi_source
{
463 UINT32 Interrupt
; /* Global system interrupt */
466 /* 4: Local APIC NMI */
468 typedef struct madt_local_apic_nmi
{
470 UINT8 ProcessorId
; /* ACPI processor id */
472 UINT8 Lint
; /* LINTn to which NMI is connected */
473 } MADT_LOCAL_APIC_NMI
;
475 /* 5: Address Override */
477 typedef struct madt_address_override
{
479 UINT16 Reserved
; /* Reserved, must be zero */
480 UINT64 Address
; /* APIC physical address */
481 } MADT_ADDRESS_OVERRIDE
;
485 typedef struct madt_io_sapic
{
487 UINT8 IoSapicId
; /* I/O SAPIC ID */
488 UINT8 Reserved
; /* Reserved, must be zero */
489 UINT32 InterruptBase
; /* Glocal interrupt for SAPIC start */
490 UINT64 Address
; /* SAPIC physical address */
495 typedef struct madt_local_sapic
{
497 UINT8 ProcessorId
; /* ACPI processor id */
498 UINT8 LocalSapicId
; /* SAPIC ID */
499 UINT8 LocalSapicEid
; /* SAPIC EID */
500 UINT8 Reserved
[3]; /* Reserved, must be zero */
502 UINT32 ProcessorUID
; /* Numeric UID - ACPI 3.0 */
503 char ProcessorUIDString
[1];/* String UID - ACPI 3.0 */
506 /* 8: Platform Interrupt Source */
508 typedef struct madt_interrupt_source
{
511 UINT8 InterruptType
; /* 1=PMI, 2=INIT, 3=corrected */
512 UINT8 ProcessorId
; /* Processor ID */
513 UINT8 ProcessorEid
; /* Processor EID */
514 UINT8 IoSapicVector
; /* Vector value for PMI interrupts */
515 UINT32 Interrupt
; /* Global system interrupt */
516 UINT32 Flags
; /* Interrupt Source Flags */
517 } MADT_INTERRUPT_SOURCE
;
520 /*******************************************************************************
522 * MCFG - PCI Memory Mapped Configuration table and sub-table
524 ******************************************************************************/
526 typedef struct acpi_table_mcfg
{
527 ACPI_TABLE_HEADER_DEF
531 typedef struct acpi_mcfg_allocation
{
532 UINT64 BaseAddress
; /* Base address, processor-relative */
533 UINT16 PciSegment
; /* PCI segment group number */
534 UINT8 StartBusNumber
; /* Starting PCI Bus number */
535 UINT8 EndBusNumber
; /* Final PCI Bus number */
537 } ACPI_MCFG_ALLOCATION
;
540 /*******************************************************************************
542 * SBST - Smart Battery Specification Table
544 ******************************************************************************/
546 typedef struct smart_battery_table
{
547 ACPI_TABLE_HEADER_DEF
550 UINT32 CriticalLevel
;
551 } SMART_BATTERY_TABLE
;
554 /*******************************************************************************
556 * SLIT - System Locality Distance Information Table
558 ******************************************************************************/
560 typedef struct system_locality_info
{
561 ACPI_TABLE_HEADER_DEF
562 UINT64 LocalityCount
;
564 } SYSTEM_LOCALITY_INFO
;
567 /*******************************************************************************
569 * SPCR - Serial Port Console Redirection table
571 ******************************************************************************/
573 typedef struct acpi_table_spcr
{
574 ACPI_TABLE_HEADER_DEF
575 UINT8 InterfaceType
; /* 0=full 16550, 1=subset of 16550 */
577 ACPI_GENERIC_ADDRESS SerialPort
;
598 /*******************************************************************************
600 * SPMI - Server Platform Management Interface table
602 ******************************************************************************/
604 typedef struct acpi_table_spmi
{
605 ACPI_TABLE_HEADER_DEF
608 UINT16 SpecRevision
; /* Version of IPMI */
610 UINT8 GpeNumber
; /* GPE assigned */
614 ACPI_GENERIC_ADDRESS IpmiRegister
;
622 /*******************************************************************************
624 * SRAT - System Resource Affinity Table
626 ******************************************************************************/
628 typedef struct system_resource_affinity
{
629 ACPI_TABLE_HEADER_DEF
630 UINT32 Reserved1
; /* Must be value '1' */
631 UINT64 Reserved2
; /* Reserved, must be zero */
632 } SYSTEM_RESOURCE_AFFINITY
;
635 /* SRAT common sub-table header */
637 #define SRAT_SUBTABLE_HEADER \
641 /* Values for Type above */
643 #define SRAT_CPU_AFFINITY 0
644 #define SRAT_MEMORY_AFFINITY 1
645 #define SRAT_RESERVED 2
648 /* SRAT sub-tables */
650 typedef struct static_resource_alloc
{
652 UINT8 ProximityDomainLo
;
655 /* Flags (32 bits) */
657 UINT8 Enabled
:1;/* 00: Use affinity structure */
658 UINT8
:7;/* 01-07: Reserved, must be zero */
659 UINT8 Reserved3
[3]; /* 08-31: Reserved, must be zero */
662 UINT8 ProximityDomainHi
[3];
663 UINT32 Reserved4
; /* Reserved, must be zero */
664 } STATIC_RESOURCE_ALLOC
;
666 typedef struct memory_affinity
{
668 UINT32 ProximityDomain
;
671 UINT64 AddressLength
;
674 /* Flags (32 bits) */
676 UINT8 Enabled
:1;/* 00: Use affinity structure */
677 UINT8 HotPluggable
:1;/* 01: Memory region is hot pluggable */
678 UINT8 NonVolatile
:1;/* 02: Memory is non-volatile */
679 UINT8
:5;/* 03-07: Reserved, must be zero */
680 UINT8 Reserved5
[3]; /* 08-31: Reserved, must be zero */
682 UINT64 Reserved6
; /* Reserved, must be zero */
686 /*******************************************************************************
688 * TCPA - Trusted Computing Platform Alliance table
690 ******************************************************************************/
692 typedef struct acpi_table_tcpa
{
693 ACPI_TABLE_HEADER_DEF
695 UINT32 MaxLogLength
; /* Maximum length for the event log area */
696 UINT64 LogAddress
; /* Address of the event log area */
700 /*******************************************************************************
702 * WDRT - Watchdog Resource Table
704 ******************************************************************************/
706 typedef struct acpi_table_wdrt
{
707 ACPI_TABLE_HEADER_DEF
708 UINT32 HeaderLength
; /* Watchdog Header Length */
709 UINT8 PciSegment
; /* PCI Segment number */
710 UINT8 PciBus
; /* PCI Bus number */
711 UINT8 PciDevice
; /* PCI Device number */
712 UINT8 PciFunction
; /* PCI Function number */
713 UINT32 TimerPeriod
; /* Period of one timer count (msec) */
714 UINT32 MaxCount
; /* Maximum counter value supported */
715 UINT32 MinCount
; /* Minimum counter value */
718 UINT32 Entries
; /* Number of watchdog entries that follow */
721 #if 0 /* Flags, will be converted to macros */
722 UINT8 Enabled
:1; /* 00: Timer enabled */
723 UINT8
:6; /* 01-06: Reserved */
724 UINT8 SleepStop
:1; /* 07: Timer stopped in sleep state */
728 /* Macros used to generate offsets to specific table fields */
730 #define ACPI_ASF0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_INFO,f)
731 #define ACPI_ASF1_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_ALERT,f)
732 #define ACPI_ASF2_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_REMOTE,f)
733 #define ACPI_ASF3_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_RMCP,f)
734 #define ACPI_ASF4_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_ADDRESS,f)
735 #define ACPI_BOOT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_BOOT,f)
736 #define ACPI_CPEP_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_CPEP,f)
737 #define ACPI_CPEP0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_CPEP_POLLING,f)
738 #define ACPI_DBGP_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_DBGP,f)
739 #define ACPI_ECDT_OFFSET(f) (UINT8) ACPI_OFFSET (EC_BOOT_RESOURCES,f)
740 #define ACPI_HPET_OFFSET(f) (UINT8) ACPI_OFFSET (HPET_TABLE,f)
741 #define ACPI_MADT_OFFSET(f) (UINT8) ACPI_OFFSET (MULTIPLE_APIC_TABLE,f)
742 #define ACPI_MADT0_OFFSET(f) (UINT8) ACPI_OFFSET (MADT_PROCESSOR_APIC,f)
743 #define ACPI_MADT1_OFFSET(f) (UINT8) ACPI_OFFSET (MADT_IO_APIC,f)
744 #define ACPI_MADT2_OFFSET(f) (UINT8) ACPI_OFFSET (MADT_INTERRUPT_OVERRIDE,f)
745 #define ACPI_MADT3_OFFSET(f) (UINT8) ACPI_OFFSET (MADT_NMI_SOURCE,f)
746 #define ACPI_MADT4_OFFSET(f) (UINT8) ACPI_OFFSET (MADT_LOCAL_APIC_NMI,f)
747 #define ACPI_MADT5_OFFSET(f) (UINT8) ACPI_OFFSET (MADT_ADDRESS_OVERRIDE,f)
748 #define ACPI_MADT6_OFFSET(f) (UINT8) ACPI_OFFSET (MADT_IO_SAPIC,f)
749 #define ACPI_MADT7_OFFSET(f) (UINT8) ACPI_OFFSET (MADT_LOCAL_SAPIC,f)
750 #define ACPI_MADT8_OFFSET(f) (UINT8) ACPI_OFFSET (MADT_INTERRUPT_SOURCE,f)
751 #define ACPI_MADTH_OFFSET(f) (UINT8) ACPI_OFFSET (APIC_HEADER,f)
752 #define ACPI_MCFG_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_MCFG,f)
753 #define ACPI_MCFG0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MCFG_ALLOCATION,f)
754 #define ACPI_SBST_OFFSET(f) (UINT8) ACPI_OFFSET (SMART_BATTERY_TABLE,f)
755 #define ACPI_SLIT_OFFSET(f) (UINT8) ACPI_OFFSET (SYSTEM_LOCALITY_INFO,f)
756 #define ACPI_SPCR_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_SPCR,f)
757 #define ACPI_SPMI_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_SPMI,f)
758 #define ACPI_SRAT_OFFSET(f) (UINT8) ACPI_OFFSET (SYSTEM_RESOURCE_AFFINITY,f)
759 #define ACPI_SRAT0_OFFSET(f) (UINT8) ACPI_OFFSET (STATIC_RESOURCE_ALLOC,f)
760 #define ACPI_SRAT1_OFFSET(f) (UINT8) ACPI_OFFSET (MEMORY_AFFINITY,f)
761 #define ACPI_TCPA_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_TCPA,f)
762 #define ACPI_WDRT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_WDRT,f)
765 #define ACPI_HPET_FLAG_OFFSET(f, o) ACPI_FLAG_OFFSET (HPET_TABLE,f,o)
766 #define ACPI_SRAT0_FLAG_OFFSET(f, o) ACPI_FLAG_OFFSET (STATIC_RESOURCE_ALLOC,f,o)
767 #define ACPI_SRAT1_FLAG_OFFSET(f, o) ACPI_FLAG_OFFSET (MEMORY_AFFINITY,f,o)
768 #define ACPI_MADT_FLAG_OFFSET(f, o) ACPI_FLAG_OFFSET (MULTIPLE_APIC_TABLE,f,o)
769 #define ACPI_MADT0_FLAG_OFFSET(f, o) ACPI_FLAG_OFFSET (MADT_PROCESSOR_APIC,f,o)
770 #define ACPI_MADT2_FLAG_OFFSET(f, o) ACPI_FLAG_OFFSET (MADT_INTERRUPT_OVERRIDE,f,o)
771 #define ACPI_MADT3_FLAG_OFFSET(f, o) ACPI_FLAG_OFFSET (MADT_NMI_SOURCE,f,o)
772 #define ACPI_MADT4_FLAG_OFFSET(f, o) ACPI_FLAG_OFFSET (MADT_LOCAL_APIC_NMI,f,o)
773 #define ACPI_MADT7_FLAG_OFFSET(f, o) ACPI_FLAG_OFFSET (MADT_LOCAL_SAPIC,f,o)
774 #define ACPI_MADT8_FLAG_OFFSET(f, o) ACPI_FLAG_OFFSET (MADT_INTERRUPT_SOURCE,f,o)
777 /* Reset to default packing */
781 #endif /* __ACTBL1_H__ */