Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Do not make oldconfig when building kitten
[palacios-OLD.git] / kitten / include / acpi / actbl1.h
1 /******************************************************************************
2  *
3  * Name: actbl1.h - Additional ACPI table definitions
4  *
5  *****************************************************************************/
6
7 /*
8  * Copyright (C) 2000 - 2006, R. Byron Moore
9  * All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions, and the following disclaimer,
16  *    without modification.
17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18  *    substantially similar to the "NO WARRANTY" disclaimer below
19  *    ("Disclaimer") and any redistribution must be conditioned upon
20  *    including a substantially similar Disclaimer requirement for further
21  *    binary redistribution.
22  * 3. Neither the names of the above-listed copyright holders nor the names
23  *    of any contributors may be used to endorse or promote products derived
24  *    from this software without specific prior written permission.
25  *
26  * Alternatively, this software may be distributed under the terms of the
27  * GNU General Public License ("GPL") version 2 as published by the Free
28  * Software Foundation.
29  *
30  * NO WARRANTY
31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41  * POSSIBILITY OF SUCH DAMAGES.
42  */
43
44 #ifndef __ACTBL1_H__
45 #define __ACTBL1_H__
46
47 /*******************************************************************************
48  *
49  * Additional ACPI Tables
50  *
51  * These tables are not consumed directly by the ACPICA subsystem, but are
52  * included here to support device drivers and the AML disassembler.
53  *
54  ******************************************************************************/
55
56 /*
57  * Values for description table header signatures. Useful because they make
58  * it more difficult to inadvertently type in the wrong signature.
59  */
60 #define ACPI_SIG_ASF            "ASF!"  /* Alert Standard Format table */
61 #define ACPI_SIG_BOOT           "BOOT"  /* Simple Boot Flag Table */
62 #define ACPI_SIG_CPEP           "CPEP"  /* Corrected Platform Error Polling table */
63 #define ACPI_SIG_DBGP           "DBGP"  /* Debug Port table */
64 #define ACPI_SIG_ECDT           "ECDT"  /* Embedded Controller Boot Resources Table */
65 #define ACPI_SIG_HPET           "HPET"  /* High Precision Event Timer table */
66 #define ACPI_SIG_MADT           "APIC"  /* Multiple APIC Description Table */
67 #define ACPI_SIG_MCFG           "MCFG"  /* PCI Memory Mapped Configuration table */
68 #define ACPI_SIG_SBST           "SBST"  /* Smart Battery Specification Table */
69 #define ACPI_SIG_SLIT           "SLIT"  /* System Locality Distance Information Table */
70 #define ACPI_SIG_SPCR           "SPCR"  /* Serial Port Console Redirection table */
71 #define ACPI_SIG_SPMI           "SPMI"  /* Server Platform Management Interface table */
72 #define ACPI_SIG_SRAT           "SRAT"  /* System Resource Affinity Table */
73 #define ACPI_SIG_TCPA           "TCPA"  /* Trusted Computing Platform Alliance table */
74 #define ACPI_SIG_WDRT           "WDRT"  /* Watchdog Resource Table */
75
76 /* Legacy names */
77
78 #define APIC_SIG                "APIC"  /* Multiple APIC Description Table */
79 #define BOOT_SIG                "BOOT"  /* Simple Boot Flag Table */
80 #define SBST_SIG                "SBST"  /* Smart Battery Specification Table */
81
82 /*
83  * All tables must be byte-packed to match the ACPI specification, since
84  * the tables are provided by the system BIOS.
85  */
86 #pragma pack(1)
87
88 /*
89  * Note about bitfields: The u8 type is used for bitfields in ACPI tables.
90  * This is the only type that is even remotely portable. Anything else is not
91  * portable, so do not use any other bitfield types.
92  */
93
94 /*******************************************************************************
95  *
96  * ASF - Alert Standard Format table (Signature "ASF!")
97  *
98  ******************************************************************************/
99
100 struct acpi_table_asf {
101 ACPI_TABLE_HEADER_DEF};
102
103 #define ACPI_ASF_HEADER_DEF \
104         u8                              type; \
105         u8                              reserved; \
106         u16                             length;
107
108 struct acpi_asf_header {
109 ACPI_ASF_HEADER_DEF};
110
111 /* Values for Type field */
112
113 #define ASF_INFO                0
114 #define ASF_ALERT               1
115 #define ASF_CONTROL             2
116 #define ASF_BOOT                3
117 #define ASF_ADDRESS             4
118 #define ASF_RESERVED            5
119
120 /*
121  * ASF subtables
122  */
123
124 /* 0: ASF Information */
125
126 struct acpi_asf_info {
127         ACPI_ASF_HEADER_DEF u8 min_reset_value;
128         u8 min_poll_interval;
129         u16 system_id;
130         u32 mfg_id;
131         u8 flags;
132         u8 reserved2[3];
133 };
134
135 /* 1: ASF Alerts */
136
137 struct acpi_asf_alert {
138         ACPI_ASF_HEADER_DEF u8 assert_mask;
139         u8 deassert_mask;
140         u8 alerts;
141         u8 data_length;
142         u8 array[1];
143 };
144
145 /* 2: ASF Remote Control */
146
147 struct acpi_asf_remote {
148         ACPI_ASF_HEADER_DEF u8 controls;
149         u8 data_length;
150         u16 reserved2;
151         u8 array[1];
152 };
153
154 /* 3: ASF RMCP Boot Options */
155
156 struct acpi_asf_rmcp {
157         ACPI_ASF_HEADER_DEF u8 capabilities[7];
158         u8 completion_code;
159         u32 enterprise_id;
160         u8 command;
161         u16 parameter;
162         u16 boot_options;
163         u16 oem_parameters;
164 };
165
166 /* 4: ASF Address */
167
168 struct acpi_asf_address {
169         ACPI_ASF_HEADER_DEF u8 eprom_address;
170         u8 devices;
171         u8 smbus_addresses[1];
172 };
173
174 /*******************************************************************************
175  *
176  * BOOT - Simple Boot Flag Table
177  *
178  ******************************************************************************/
179
180 struct acpi_table_boot {
181         ACPI_TABLE_HEADER_DEF u8 cmos_index;    /* Index in CMOS RAM for the boot register */
182         u8 reserved[3];
183 };
184
185 /*******************************************************************************
186  *
187  * CPEP - Corrected Platform Error Polling table
188  *
189  ******************************************************************************/
190
191 struct acpi_table_cpep {
192         ACPI_TABLE_HEADER_DEF u64 reserved;
193 };
194
195 /* Subtable */
196
197 struct acpi_cpep_polling {
198         u8 type;
199         u8 length;
200         u8 processor_id;        /* Processor ID */
201         u8 processor_eid;       /* Processor EID */
202         u32 polling_interval;   /* Polling interval (msec) */
203 };
204
205 /*******************************************************************************
206  *
207  * DBGP - Debug Port table
208  *
209  ******************************************************************************/
210
211 struct acpi_table_dbgp {
212         ACPI_TABLE_HEADER_DEF u8 interface_type;        /* 0=full 16550, 1=subset of 16550 */
213         u8 reserved[3];
214         struct acpi_generic_address debug_port;
215 };
216
217 /*******************************************************************************
218  *
219  * ECDT - Embedded Controller Boot Resources Table
220  *
221  ******************************************************************************/
222
223 struct ec_boot_resources {
224         ACPI_TABLE_HEADER_DEF struct acpi_generic_address ec_control;   /* Address of EC command/status register */
225         struct acpi_generic_address ec_data;    /* Address of EC data register */
226         u32 uid;                /* Unique ID - must be same as the EC _UID method */
227         u8 gpe_bit;             /* The GPE for the EC */
228         u8 ec_id[1];            /* Full namepath of the EC in the ACPI namespace */
229 };
230
231 /*******************************************************************************
232  *
233  * HPET - High Precision Event Timer table
234  *
235  ******************************************************************************/
236
237 struct acpi_hpet_table {
238         ACPI_TABLE_HEADER_DEF u32 hardware_id;  /* Hardware ID of event timer block */
239         struct acpi_generic_address base_address;       /* Address of event timer block */
240         u8 hpet_number;         /* HPET sequence number */
241         u16 clock_tick;         /* Main counter min tick, periodic mode */
242         u8 attributes;
243 };
244
245 #if 0                           /* HPET flags to be converted to macros */
246 struct {                        /* Flags (8 bits) */
247         u8 page_protect:1;      /* 00:    No page protection */
248         u8 page_protect4:1;     /* 01:    4_kB page protected */
249         u8 page_protect64:1;    /* 02:    64_kB page protected */
250          u8:5;                  /* 03-07: Reserved, must be zero */
251 } flags;
252 #endif
253
254 /*******************************************************************************
255  *
256  * MADT - Multiple APIC Description Table
257  *
258  ******************************************************************************/
259
260 struct multiple_apic_table {
261         ACPI_TABLE_HEADER_DEF u32 local_apic_address;   /* Physical address of local APIC */
262
263         /* Flags (32 bits) */
264
265         u8 PCATcompat:1;        /* 00:    System also has dual 8259s */
266          u8:7;                  /* 01-07: Reserved, must be zero */
267         u8 reserved1[3];        /* 08-31: Reserved, must be zero */
268 };
269
270 /* Values for MADT PCATCompat */
271
272 #define DUAL_PIC                0
273 #define MULTIPLE_APIC           1
274
275 /* Common MADT Sub-table header */
276
277 #define APIC_HEADER_DEF \
278         u8                              type; \
279         u8                              length;
280
281 struct apic_header {
282 APIC_HEADER_DEF};
283
284 /* Values for Type in struct apic_header */
285
286 #define APIC_PROCESSOR          0
287 #define APIC_IO                 1
288 #define APIC_XRUPT_OVERRIDE     2
289 #define APIC_NMI                3
290 #define APIC_LOCAL_NMI          4
291 #define APIC_ADDRESS_OVERRIDE   5
292 #define APIC_IO_SAPIC           6
293 #define APIC_LOCAL_SAPIC        7
294 #define APIC_XRUPT_SOURCE       8
295 #define APIC_RESERVED           9       /* 9 and greater are reserved */
296
297 /* Flag definitions for MADT sub-tables */
298
299 #define ACPI_MADT_IFLAGS /* INTI flags (16 bits) */ \
300         u8                              polarity        : 2;    /* 00-01: Polarity of APIC I/O input signals */\
301         u8                              trigger_mode    : 2;    /* 02-03: Trigger mode of APIC input signals */\
302         u8                                              : 4;    /* 04-07: Reserved, must be zero */\
303         u8                              reserved1;      /* 08-15: Reserved, must be zero */
304
305 #define ACPI_MADT_LFLAGS /* Local Sapic flags (32 bits) */ \
306         u8                              processor_enabled: 1;   /* 00:    Processor is usable if set */\
307         u8                                              : 7;    /* 01-07: Reserved, must be zero */\
308         u8                              reserved2[3];   /* 08-31: Reserved, must be zero */
309
310 /* Values for MPS INTI flags */
311
312 #define POLARITY_CONFORMS       0
313 #define POLARITY_ACTIVE_HIGH    1
314 #define POLARITY_RESERVED       2
315 #define POLARITY_ACTIVE_LOW     3
316
317 #define TRIGGER_CONFORMS        0
318 #define TRIGGER_EDGE            1
319 #define TRIGGER_RESERVED        2
320 #define TRIGGER_LEVEL           3
321
322 /*
323  * MADT Sub-tables, correspond to Type in struct apic_header
324  */
325
326 /* 0: processor APIC */
327
328 struct madt_processor_apic {
329         APIC_HEADER_DEF u8 processor_id;        /* ACPI processor id */
330         u8 local_apic_id;       /* Processor's local APIC id */
331  ACPI_MADT_LFLAGS};
332
333 /* 1: IO APIC */
334
335 struct madt_io_apic {
336         APIC_HEADER_DEF u8 io_apic_id;  /* I/O APIC ID */
337         u8 reserved;            /* Reserved - must be zero */
338         u32 address;            /* APIC physical address */
339         u32 interrupt;          /* Global system interrupt where INTI lines start */
340 };
341
342 /* 2: Interrupt Override */
343
344 struct madt_interrupt_override {
345         APIC_HEADER_DEF u8 bus; /* 0 - ISA */
346         u8 source;              /* Interrupt source (IRQ) */
347         u32 interrupt;          /* Global system interrupt */
348  ACPI_MADT_IFLAGS};
349
350 /* 3: NMI Sources */
351
352 struct madt_nmi_source {
353         APIC_HEADER_DEF ACPI_MADT_IFLAGS u32 interrupt; /* Global system interrupt */
354 };
355
356 /* 4: Local APIC NMI */
357
358 struct madt_local_apic_nmi {
359         APIC_HEADER_DEF u8 processor_id;        /* ACPI processor id */
360         ACPI_MADT_IFLAGS u8 lint;       /* LINTn to which NMI is connected */
361 };
362
363 /* 5: Address Override */
364
365 struct madt_address_override {
366         APIC_HEADER_DEF u16 reserved;   /* Reserved, must be zero */
367         u64 address;            /* APIC physical address */
368 };
369
370 /* 6: I/O Sapic */
371
372 struct madt_io_sapic {
373         APIC_HEADER_DEF u8 io_sapic_id; /* I/O SAPIC ID */
374         u8 reserved;            /* Reserved, must be zero */
375         u32 interrupt_base;     /* Glocal interrupt for SAPIC start */
376         u64 address;            /* SAPIC physical address */
377 };
378
379 /* 7: Local Sapic */
380
381 struct madt_local_sapic {
382         APIC_HEADER_DEF u8 processor_id;        /* ACPI processor id */
383         u8 local_sapic_id;      /* SAPIC ID */
384         u8 local_sapic_eid;     /* SAPIC EID */
385         u8 reserved[3];         /* Reserved, must be zero */
386          ACPI_MADT_LFLAGS u32 processor_uID;    /* Numeric UID - ACPI 3.0 */
387         char processor_uIDstring[1];    /* String UID  - ACPI 3.0 */
388 };
389
390 /* 8: Platform Interrupt Source */
391
392 struct madt_interrupt_source {
393         APIC_HEADER_DEF ACPI_MADT_IFLAGS u8 interrupt_type;     /* 1=PMI, 2=INIT, 3=corrected */
394         u8 processor_id;        /* Processor ID */
395         u8 processor_eid;       /* Processor EID */
396         u8 io_sapic_vector;     /* Vector value for PMI interrupts */
397         u32 interrupt;          /* Global system interrupt */
398         u32 flags;              /* Interrupt Source Flags */
399 };
400
401 #ifdef DUPLICATE_DEFINITION_WITH_LINUX_ACPI_H
402 /*******************************************************************************
403  *
404  * MCFG - PCI Memory Mapped Configuration table and sub-table
405  *
406  ******************************************************************************/
407
408 struct acpi_table_mcfg {
409         ACPI_TABLE_HEADER_DEF u8 reserved[8];
410 };
411
412 struct acpi_mcfg_allocation {
413         u64 base_address;       /* Base address, processor-relative */
414         u16 pci_segment;        /* PCI segment group number */
415         u8 start_bus_number;    /* Starting PCI Bus number */
416         u8 end_bus_number;      /* Final PCI Bus number */
417         u32 reserved;
418 };
419 #endif
420
421 /*******************************************************************************
422  *
423  * SBST - Smart Battery Specification Table
424  *
425  ******************************************************************************/
426
427 struct smart_battery_table {
428         ACPI_TABLE_HEADER_DEF u32 warning_level;
429         u32 low_level;
430         u32 critical_level;
431 };
432
433 /*******************************************************************************
434  *
435  * SLIT - System Locality Distance Information Table
436  *
437  ******************************************************************************/
438
439 struct system_locality_info {
440         ACPI_TABLE_HEADER_DEF u64 locality_count;
441         u8 entry[1][1];
442 };
443
444 /*******************************************************************************
445  *
446  * SPCR - Serial Port Console Redirection table
447  *
448  ******************************************************************************/
449
450 struct acpi_table_spcr {
451         ACPI_TABLE_HEADER_DEF u8 interface_type;        /* 0=full 16550, 1=subset of 16550 */
452         u8 reserved[3];
453         struct acpi_generic_address serial_port;
454         u8 interrupt_type;
455         u8 pc_interrupt;
456         u32 interrupt;
457         u8 baud_rate;
458         u8 parity;
459         u8 stop_bits;
460         u8 flow_control;
461         u8 terminal_type;
462         u8 reserved2;
463         u16 pci_device_id;
464         u16 pci_vendor_id;
465         u8 pci_bus;
466         u8 pci_device;
467         u8 pci_function;
468         u32 pci_flags;
469         u8 pci_segment;
470         u32 reserved3;
471 };
472
473 /*******************************************************************************
474  *
475  * SPMI - Server Platform Management Interface table
476  *
477  ******************************************************************************/
478
479 struct acpi_table_spmi {
480         ACPI_TABLE_HEADER_DEF u8 reserved;
481         u8 interface_type;
482         u16 spec_revision;      /* Version of IPMI */
483         u8 interrupt_type;
484         u8 gpe_number;          /* GPE assigned */
485         u8 reserved2;
486         u8 pci_device_flag;
487         u32 interrupt;
488         struct acpi_generic_address ipmi_register;
489         u8 pci_segment;
490         u8 pci_bus;
491         u8 pci_device;
492         u8 pci_function;
493 };
494
495 /*******************************************************************************
496  *
497  * SRAT - System Resource Affinity Table
498  *
499  ******************************************************************************/
500
501 struct system_resource_affinity {
502         ACPI_TABLE_HEADER_DEF u32 reserved1;    /* Must be value '1' */
503         u64 reserved2;          /* Reserved, must be zero */
504 };
505
506 /* SRAT common sub-table header */
507
508 #define SRAT_SUBTABLE_HEADER \
509         u8                              type; \
510         u8                              length;
511
512 /* Values for Type above */
513
514 #define SRAT_CPU_AFFINITY       0
515 #define SRAT_MEMORY_AFFINITY    1
516 #define SRAT_RESERVED           2
517
518 /* SRAT sub-tables */
519
520 struct static_resource_alloc {
521         SRAT_SUBTABLE_HEADER u8 proximity_domain_lo;
522         u8 apic_id;
523
524         /* Flags (32 bits) */
525
526         u8 enabled:1;           /* 00:    Use affinity structure */
527          u8:7;                  /* 01-07: Reserved, must be zero */
528         u8 reserved3[3];        /* 08-31: Reserved, must be zero */
529
530         u8 local_sapic_eid;
531         u8 proximity_domain_hi[3];
532         u32 reserved4;          /* Reserved, must be zero */
533 };
534
535 struct memory_affinity {
536         SRAT_SUBTABLE_HEADER u32 proximity_domain;
537         u16 reserved3;
538         u64 base_address;
539         u64 address_length;
540         u32 reserved4;
541
542         /* Flags (32 bits) */
543
544         u8 enabled:1;           /* 00:    Use affinity structure */
545         u8 hot_pluggable:1;     /* 01:    Memory region is hot pluggable */
546         u8 non_volatile:1;      /* 02:    Memory is non-volatile */
547          u8:5;                  /* 03-07: Reserved, must be zero */
548         u8 reserved5[3];        /* 08-31: Reserved, must be zero */
549
550         u64 reserved6;          /* Reserved, must be zero */
551 };
552
553 /*******************************************************************************
554  *
555  * TCPA - Trusted Computing Platform Alliance table
556  *
557  ******************************************************************************/
558
559 struct acpi_table_tcpa {
560         ACPI_TABLE_HEADER_DEF u16 reserved;
561         u32 max_log_length;     /* Maximum length for the event log area */
562         u64 log_address;        /* Address of the event log area */
563 };
564
565 /*******************************************************************************
566  *
567  * WDRT - Watchdog Resource Table
568  *
569  ******************************************************************************/
570
571 struct acpi_table_wdrt {
572         ACPI_TABLE_HEADER_DEF u32 header_length;        /* Watchdog Header Length */
573         u8 pci_segment;         /* PCI Segment number */
574         u8 pci_bus;             /* PCI Bus number */
575         u8 pci_device;          /* PCI Device number */
576         u8 pci_function;        /* PCI Function number */
577         u32 timer_period;       /* Period of one timer count (msec) */
578         u32 max_count;          /* Maximum counter value supported */
579         u32 min_count;          /* Minimum counter value */
580         u8 flags;
581         u8 reserved[3];
582         u32 entries;            /* Number of watchdog entries that follow */
583 };
584
585 #if 0                           /* Flags, will be converted to macros */
586 u8 enabled:1;                   /* 00:    Timer enabled */
587 u8:6;                           /* 01-06: Reserved */
588 u8 sleep_stop:1;                /* 07:    Timer stopped in sleep state */
589 #endif
590
591 /* Macros used to generate offsets to specific table fields */
592
593 #define ACPI_ASF0_OFFSET(f)             (u8) ACPI_OFFSET (struct acpi_asf_info,f)
594 #define ACPI_ASF1_OFFSET(f)             (u8) ACPI_OFFSET (struct acpi_asf_alert,f)
595 #define ACPI_ASF2_OFFSET(f)             (u8) ACPI_OFFSET (struct acpi_asf_remote,f)
596 #define ACPI_ASF3_OFFSET(f)             (u8) ACPI_OFFSET (struct acpi_asf_rmcp,f)
597 #define ACPI_ASF4_OFFSET(f)             (u8) ACPI_OFFSET (struct acpi_asf_address,f)
598 #define ACPI_BOOT_OFFSET(f)             (u8) ACPI_OFFSET (struct acpi_table_boot,f)
599 #define ACPI_CPEP_OFFSET(f)             (u8) ACPI_OFFSET (struct acpi_table_cpep,f)
600 #define ACPI_CPEP0_OFFSET(f)            (u8) ACPI_OFFSET (struct acpi_cpep_polling,f)
601 #define ACPI_DBGP_OFFSET(f)             (u8) ACPI_OFFSET (struct acpi_table_dbgp,f)
602 #define ACPI_ECDT_OFFSET(f)             (u8) ACPI_OFFSET (struct ec_boot_resources,f)
603 #define ACPI_HPET_OFFSET(f)             (u8) ACPI_OFFSET (struct hpet_table,f)
604 #define ACPI_MADT_OFFSET(f)             (u8) ACPI_OFFSET (struct multiple_apic_table,f)
605 #define ACPI_MADT0_OFFSET(f)            (u8) ACPI_OFFSET (struct madt_processor_apic,f)
606 #define ACPI_MADT1_OFFSET(f)            (u8) ACPI_OFFSET (struct madt_io_apic,f)
607 #define ACPI_MADT2_OFFSET(f)            (u8) ACPI_OFFSET (struct madt_interrupt_override,f)
608 #define ACPI_MADT3_OFFSET(f)            (u8) ACPI_OFFSET (struct madt_nmi_source,f)
609 #define ACPI_MADT4_OFFSET(f)            (u8) ACPI_OFFSET (struct madt_local_apic_nmi,f)
610 #define ACPI_MADT5_OFFSET(f)            (u8) ACPI_OFFSET (struct madt_address_override,f)
611 #define ACPI_MADT6_OFFSET(f)            (u8) ACPI_OFFSET (struct madt_io_sapic,f)
612 #define ACPI_MADT7_OFFSET(f)            (u8) ACPI_OFFSET (struct madt_local_sapic,f)
613 #define ACPI_MADT8_OFFSET(f)            (u8) ACPI_OFFSET (struct madt_interrupt_source,f)
614 #define ACPI_MADTH_OFFSET(f)            (u8) ACPI_OFFSET (struct apic_header,f)
615 #define ACPI_MCFG_OFFSET(f)             (u8) ACPI_OFFSET (struct acpi_table_mcfg,f)
616 #define ACPI_MCFG0_OFFSET(f)            (u8) ACPI_OFFSET (struct acpi_mcfg_allocation,f)
617 #define ACPI_SBST_OFFSET(f)             (u8) ACPI_OFFSET (struct smart_battery_table,f)
618 #define ACPI_SLIT_OFFSET(f)             (u8) ACPI_OFFSET (struct system_locality_info,f)
619 #define ACPI_SPCR_OFFSET(f)             (u8) ACPI_OFFSET (struct acpi_table_spcr,f)
620 #define ACPI_SPMI_OFFSET(f)             (u8) ACPI_OFFSET (struct acpi_table_spmi,f)
621 #define ACPI_SRAT_OFFSET(f)             (u8) ACPI_OFFSET (struct system_resource_affinity,f)
622 #define ACPI_SRAT0_OFFSET(f)            (u8) ACPI_OFFSET (struct static_resource_alloc,f)
623 #define ACPI_SRAT1_OFFSET(f)            (u8) ACPI_OFFSET (struct memory_affinity,f)
624 #define ACPI_TCPA_OFFSET(f)             (u8) ACPI_OFFSET (struct acpi_table_tcpa,f)
625 #define ACPI_WDRT_OFFSET(f)             (u8) ACPI_OFFSET (struct acpi_table_wdrt,f)
626
627 #define ACPI_HPET_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (struct hpet_table,f,o)
628 #define ACPI_SRAT0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (struct static_resource_alloc,f,o)
629 #define ACPI_SRAT1_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (struct memory_affinity,f,o)
630 #define ACPI_MADT_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (struct multiple_apic_table,f,o)
631 #define ACPI_MADT0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (struct madt_processor_apic,f,o)
632 #define ACPI_MADT2_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (struct madt_interrupt_override,f,o)
633 #define ACPI_MADT3_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (struct madt_nmi_source,f,o)
634 #define ACPI_MADT4_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (struct madt_local_apic_nmi,f,o)
635 #define ACPI_MADT7_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (struct madt_local_sapic,f,o)
636 #define ACPI_MADT8_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (struct madt_interrupt_source,f,o)
637
638 /* Reset to default packing */
639
640 #pragma pack()
641
642 #endif                          /* __ACTBL1_H__ */