1 /****************************************************************************** 2 * 3 * Name: actbl3.h - ACPI Table Definitions 4 * 5 *****************************************************************************/ 6 7 /* 8 * Copyright (C) 2000 - 2015, Intel Corp. 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 __ACTBL3_H__ 45 #define __ACTBL3_H__ 46 47 /******************************************************************************* 48 * 49 * Additional ACPI Tables (3) 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 * In general, the tables in this file are fully defined within the ACPI 55 * specification. 56 * 57 ******************************************************************************/ 58 59 /* 60 * Values for description table header signatures for tables defined in this 61 * file. Useful because they make it more difficult to inadvertently type in 62 * the wrong signature. 63 */ 64 #define ACPI_SIG_BGRT "BGRT" /* Boot Graphics Resource Table */ 65 #define ACPI_SIG_DRTM "DRTM" /* Dynamic Root of Trust for Measurement table */ 66 #define ACPI_SIG_FPDT "FPDT" /* Firmware Performance Data Table */ 67 #define ACPI_SIG_GTDT "GTDT" /* Generic Timer Description Table */ 68 #define ACPI_SIG_MPST "MPST" /* Memory Power State Table */ 69 #define ACPI_SIG_PCCT "PCCT" /* Platform Communications Channel Table */ 70 #define ACPI_SIG_PMTT "PMTT" /* Platform Memory Topology Table */ 71 #define ACPI_SIG_RASF "RASF" /* RAS Feature table */ 72 #define ACPI_SIG_STAO "STAO" /* Status Override table */ 73 #define ACPI_SIG_WPBT "WPBT" /* Windows Platform Binary Table */ 74 #define ACPI_SIG_XENV "XENV" /* Xen Environment table */ 75 76 #define ACPI_SIG_S3PT "S3PT" /* S3 Performance (sub)Table */ 77 #define ACPI_SIG_PCCS "PCC" /* PCC Shared Memory Region */ 78 79 /* Reserved table signatures */ 80 81 #define ACPI_SIG_MATR "MATR" /* Memory Address Translation Table */ 82 #define ACPI_SIG_MSDM "MSDM" /* Microsoft Data Management Table */ 83 84 /* 85 * All tables must be byte-packed to match the ACPI specification, since 86 * the tables are provided by the system BIOS. 87 */ 88 #pragma pack(1) 89 90 /* 91 * Note: C bitfields are not used for this reason: 92 * 93 * "Bitfields are great and easy to read, but unfortunately the C language 94 * does not specify the layout of bitfields in memory, which means they are 95 * essentially useless for dealing with packed data in on-disk formats or 96 * binary wire protocols." (Or ACPI tables and buffers.) "If you ask me, 97 * this decision was a design error in C. Ritchie could have picked an order 98 * and stuck with it." Norman Ramsey. 99 * See http://stackoverflow.com/a/1053662/41661 100 */ 101 102 /******************************************************************************* 103 * 104 * BGRT - Boot Graphics Resource Table (ACPI 5.0) 105 * Version 1 106 * 107 ******************************************************************************/ 108 109 struct acpi_table_bgrt { 110 struct acpi_table_header header; /* Common ACPI table header */ 111 u16 version; 112 u8 status; 113 u8 image_type; 114 u64 image_address; 115 u32 image_offset_x; 116 u32 image_offset_y; 117 }; 118 119 /******************************************************************************* 120 * 121 * DRTM - Dynamic Root of Trust for Measurement table 122 * Conforms to "TCG D-RTM Architecture" June 17 2013, Version 1.0.0 123 * Table version 1 124 * 125 ******************************************************************************/ 126 127 struct acpi_table_drtm { 128 struct acpi_table_header header; /* Common ACPI table header */ 129 u64 entry_base_address; 130 u64 entry_length; 131 u32 entry_address32; 132 u64 entry_address64; 133 u64 exit_address; 134 u64 log_area_address; 135 u32 log_area_length; 136 u64 arch_dependent_address; 137 u32 flags; 138 }; 139 140 /* Flag Definitions for above */ 141 142 #define ACPI_DRTM_ACCESS_ALLOWED (1) 143 #define ACPI_DRTM_ENABLE_GAP_CODE (1<<1) 144 #define ACPI_DRTM_INCOMPLETE_MEASUREMENTS (1<<2) 145 #define ACPI_DRTM_AUTHORITY_ORDER (1<<3) 146 147 /* 1) Validated Tables List (64-bit addresses) */ 148 149 struct acpi_drtm_vtable_list { 150 u32 validated_table_count; 151 u64 validated_tables[1]; 152 }; 153 154 /* 2) Resources List (of Resource Descriptors) */ 155 156 /* Resource Descriptor */ 157 158 struct acpi_drtm_resource { 159 u8 size[7]; 160 u8 type; 161 u64 address; 162 }; 163 164 struct acpi_drtm_resource_list { 165 u32 resource_count; 166 struct acpi_drtm_resource resources[1]; 167 }; 168 169 /* 3) Platform-specific Identifiers List */ 170 171 struct acpi_drtm_dps_id { 172 u32 dps_id_length; 173 u8 dps_id[16]; 174 }; 175 176 /******************************************************************************* 177 * 178 * FPDT - Firmware Performance Data Table (ACPI 5.0) 179 * Version 1 180 * 181 ******************************************************************************/ 182 183 struct acpi_table_fpdt { 184 struct acpi_table_header header; /* Common ACPI table header */ 185 }; 186 187 /* FPDT subtable header */ 188 189 struct acpi_fpdt_header { 190 u16 type; 191 u8 length; 192 u8 revision; 193 }; 194 195 /* Values for Type field above */ 196 197 enum acpi_fpdt_type { 198 ACPI_FPDT_TYPE_BOOT = 0, 199 ACPI_FPDT_TYPE_S3PERF = 1 200 }; 201 202 /* 203 * FPDT subtables 204 */ 205 206 /* 0: Firmware Basic Boot Performance Record */ 207 208 struct acpi_fpdt_boot { 209 struct acpi_fpdt_header header; 210 u8 reserved[4]; 211 u64 reset_end; 212 u64 load_start; 213 u64 startup_start; 214 u64 exit_services_entry; 215 u64 exit_services_exit; 216 }; 217 218 /* 1: S3 Performance Table Pointer Record */ 219 220 struct acpi_fpdt_s3pt_ptr { 221 struct acpi_fpdt_header header; 222 u8 reserved[4]; 223 u64 address; 224 }; 225 226 /* 227 * S3PT - S3 Performance Table. This table is pointed to by the 228 * FPDT S3 Pointer Record above. 229 */ 230 struct acpi_table_s3pt { 231 u8 signature[4]; /* "S3PT" */ 232 u32 length; 233 }; 234 235 /* 236 * S3PT Subtables 237 */ 238 struct acpi_s3pt_header { 239 u16 type; 240 u8 length; 241 u8 revision; 242 }; 243 244 /* Values for Type field above */ 245 246 enum acpi_s3pt_type { 247 ACPI_S3PT_TYPE_RESUME = 0, 248 ACPI_S3PT_TYPE_SUSPEND = 1 249 }; 250 251 struct acpi_s3pt_resume { 252 struct acpi_s3pt_header header; 253 u32 resume_count; 254 u64 full_resume; 255 u64 average_resume; 256 }; 257 258 struct acpi_s3pt_suspend { 259 struct acpi_s3pt_header header; 260 u64 suspend_start; 261 u64 suspend_end; 262 }; 263 264 /******************************************************************************* 265 * 266 * GTDT - Generic Timer Description Table (ACPI 5.1) 267 * Version 2 268 * 269 ******************************************************************************/ 270 271 struct acpi_table_gtdt { 272 struct acpi_table_header header; /* Common ACPI table header */ 273 u64 counter_block_addresss; 274 u32 reserved; 275 u32 secure_el1_interrupt; 276 u32 secure_el1_flags; 277 u32 non_secure_el1_interrupt; 278 u32 non_secure_el1_flags; 279 u32 virtual_timer_interrupt; 280 u32 virtual_timer_flags; 281 u32 non_secure_el2_interrupt; 282 u32 non_secure_el2_flags; 283 u64 counter_read_block_address; 284 u32 platform_timer_count; 285 u32 platform_timer_offset; 286 }; 287 288 /* Flag Definitions: Timer Block Physical Timers and Virtual timers */ 289 290 #define ACPI_GTDT_INTERRUPT_MODE (1) 291 #define ACPI_GTDT_INTERRUPT_POLARITY (1<<1) 292 #define ACPI_GTDT_ALWAYS_ON (1<<2) 293 294 /* Common GTDT subtable header */ 295 296 struct acpi_gtdt_header { 297 u8 type; 298 u16 length; 299 }; 300 301 /* Values for GTDT subtable type above */ 302 303 enum acpi_gtdt_type { 304 ACPI_GTDT_TYPE_TIMER_BLOCK = 0, 305 ACPI_GTDT_TYPE_WATCHDOG = 1, 306 ACPI_GTDT_TYPE_RESERVED = 2 /* 2 and greater are reserved */ 307 }; 308 309 /* GTDT Subtables, correspond to Type in struct acpi_gtdt_header */ 310 311 /* 0: Generic Timer Block */ 312 313 struct acpi_gtdt_timer_block { 314 struct acpi_gtdt_header header; 315 u8 reserved; 316 u64 block_address; 317 u32 timer_count; 318 u32 timer_offset; 319 }; 320 321 /* Timer Sub-Structure, one per timer */ 322 323 struct acpi_gtdt_timer_entry { 324 u8 frame_number; 325 u8 reserved[3]; 326 u64 base_address; 327 u64 el0_base_address; 328 u32 timer_interrupt; 329 u32 timer_flags; 330 u32 virtual_timer_interrupt; 331 u32 virtual_timer_flags; 332 u32 common_flags; 333 }; 334 335 /* Flag Definitions: timer_flags and virtual_timer_flags above */ 336 337 #define ACPI_GTDT_GT_IRQ_MODE (1) 338 #define ACPI_GTDT_GT_IRQ_POLARITY (1<<1) 339 340 /* Flag Definitions: common_flags above */ 341 342 #define ACPI_GTDT_GT_IS_SECURE_TIMER (1) 343 #define ACPI_GTDT_GT_ALWAYS_ON (1<<1) 344 345 /* 1: SBSA Generic Watchdog Structure */ 346 347 struct acpi_gtdt_watchdog { 348 struct acpi_gtdt_header header; 349 u8 reserved; 350 u64 refresh_frame_address; 351 u64 control_frame_address; 352 u32 timer_interrupt; 353 u32 timer_flags; 354 }; 355 356 /* Flag Definitions: timer_flags above */ 357 358 #define ACPI_GTDT_WATCHDOG_IRQ_MODE (1) 359 #define ACPI_GTDT_WATCHDOG_IRQ_POLARITY (1<<1) 360 #define ACPI_GTDT_WATCHDOG_SECURE (1<<2) 361 362 /******************************************************************************* 363 * 364 * MPST - Memory Power State Table (ACPI 5.0) 365 * Version 1 366 * 367 ******************************************************************************/ 368 369 #define ACPI_MPST_CHANNEL_INFO \ 370 u8 channel_id; \ 371 u8 reserved1[3]; \ 372 u16 power_node_count; \ 373 u16 reserved2; 374 375 /* Main table */ 376 377 struct acpi_table_mpst { 378 struct acpi_table_header header; /* Common ACPI table header */ 379 ACPI_MPST_CHANNEL_INFO /* Platform Communication Channel */ 380 }; 381 382 /* Memory Platform Communication Channel Info */ 383 384 struct acpi_mpst_channel { 385 ACPI_MPST_CHANNEL_INFO /* Platform Communication Channel */ 386 }; 387 388 /* Memory Power Node Structure */ 389 390 struct acpi_mpst_power_node { 391 u8 flags; 392 u8 reserved1; 393 u16 node_id; 394 u32 length; 395 u64 range_address; 396 u64 range_length; 397 u32 num_power_states; 398 u32 num_physical_components; 399 }; 400 401 /* Values for Flags field above */ 402 403 #define ACPI_MPST_ENABLED 1 404 #define ACPI_MPST_POWER_MANAGED 2 405 #define ACPI_MPST_HOT_PLUG_CAPABLE 4 406 407 /* Memory Power State Structure (follows POWER_NODE above) */ 408 409 struct acpi_mpst_power_state { 410 u8 power_state; 411 u8 info_index; 412 }; 413 414 /* Physical Component ID Structure (follows POWER_STATE above) */ 415 416 struct acpi_mpst_component { 417 u16 component_id; 418 }; 419 420 /* Memory Power State Characteristics Structure (follows all POWER_NODEs) */ 421 422 struct acpi_mpst_data_hdr { 423 u16 characteristics_count; 424 u16 reserved; 425 }; 426 427 struct acpi_mpst_power_data { 428 u8 structure_id; 429 u8 flags; 430 u16 reserved1; 431 u32 average_power; 432 u32 power_saving; 433 u64 exit_latency; 434 u64 reserved2; 435 }; 436 437 /* Values for Flags field above */ 438 439 #define ACPI_MPST_PRESERVE 1 440 #define ACPI_MPST_AUTOENTRY 2 441 #define ACPI_MPST_AUTOEXIT 4 442 443 /* Shared Memory Region (not part of an ACPI table) */ 444 445 struct acpi_mpst_shared { 446 u32 signature; 447 u16 pcc_command; 448 u16 pcc_status; 449 u32 command_register; 450 u32 status_register; 451 u32 power_state_id; 452 u32 power_node_id; 453 u64 energy_consumed; 454 u64 average_power; 455 }; 456 457 /******************************************************************************* 458 * 459 * PCCT - Platform Communications Channel Table (ACPI 5.0) 460 * Version 1 461 * 462 ******************************************************************************/ 463 464 struct acpi_table_pcct { 465 struct acpi_table_header header; /* Common ACPI table header */ 466 u32 flags; 467 u64 reserved; 468 }; 469 470 /* Values for Flags field above */ 471 472 #define ACPI_PCCT_DOORBELL 1 473 474 /* Values for subtable type in struct acpi_subtable_header */ 475 476 enum acpi_pcct_type { 477 ACPI_PCCT_TYPE_GENERIC_SUBSPACE = 0, 478 ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE = 1, 479 ACPI_PCCT_TYPE_RESERVED = 2 /* 2 and greater are reserved */ 480 }; 481 482 /* 483 * PCCT Subtables, correspond to Type in struct acpi_subtable_header 484 */ 485 486 /* 0: Generic Communications Subspace */ 487 488 struct acpi_pcct_subspace { 489 struct acpi_subtable_header header; 490 u8 reserved[6]; 491 u64 base_address; 492 u64 length; 493 struct acpi_generic_address doorbell_register; 494 u64 preserve_mask; 495 u64 write_mask; 496 u32 latency; 497 u32 max_access_rate; 498 u16 min_turnaround_time; 499 }; 500 501 /* 1: HW-reduced Communications Subspace (ACPI 5.1) */ 502 503 struct acpi_pcct_hw_reduced { 504 struct acpi_subtable_header header; 505 u32 doorbell_interrupt; 506 u8 flags; 507 u8 reserved; 508 u64 base_address; 509 u64 length; 510 struct acpi_generic_address doorbell_register; 511 u64 preserve_mask; 512 u64 write_mask; 513 u32 latency; 514 u32 max_access_rate; 515 u16 min_turnaround_time; 516 }; 517 518 /* Values for doorbell flags above */ 519 520 #define ACPI_PCCT_INTERRUPT_POLARITY (1) 521 #define ACPI_PCCT_INTERRUPT_MODE (1<<1) 522 523 /* 524 * PCC memory structures (not part of the ACPI table) 525 */ 526 527 /* Shared Memory Region */ 528 529 struct acpi_pcct_shared_memory { 530 u32 signature; 531 u16 command; 532 u16 status; 533 }; 534 535 /******************************************************************************* 536 * 537 * PMTT - Platform Memory Topology Table (ACPI 5.0) 538 * Version 1 539 * 540 ******************************************************************************/ 541 542 struct acpi_table_pmtt { 543 struct acpi_table_header header; /* Common ACPI table header */ 544 u32 reserved; 545 }; 546 547 /* Common header for PMTT subtables that follow main table */ 548 549 struct acpi_pmtt_header { 550 u8 type; 551 u8 reserved1; 552 u16 length; 553 u16 flags; 554 u16 reserved2; 555 }; 556 557 /* Values for Type field above */ 558 559 #define ACPI_PMTT_TYPE_SOCKET 0 560 #define ACPI_PMTT_TYPE_CONTROLLER 1 561 #define ACPI_PMTT_TYPE_DIMM 2 562 #define ACPI_PMTT_TYPE_RESERVED 3 /* 0x03-0xFF are reserved */ 563 564 /* Values for Flags field above */ 565 566 #define ACPI_PMTT_TOP_LEVEL 0x0001 567 #define ACPI_PMTT_PHYSICAL 0x0002 568 #define ACPI_PMTT_MEMORY_TYPE 0x000C 569 570 /* 571 * PMTT subtables, correspond to Type in struct acpi_pmtt_header 572 */ 573 574 /* 0: Socket Structure */ 575 576 struct acpi_pmtt_socket { 577 struct acpi_pmtt_header header; 578 u16 socket_id; 579 u16 reserved; 580 }; 581 582 /* 1: Memory Controller subtable */ 583 584 struct acpi_pmtt_controller { 585 struct acpi_pmtt_header header; 586 u32 read_latency; 587 u32 write_latency; 588 u32 read_bandwidth; 589 u32 write_bandwidth; 590 u16 access_width; 591 u16 alignment; 592 u16 reserved; 593 u16 domain_count; 594 }; 595 596 /* 1a: Proximity Domain substructure */ 597 598 struct acpi_pmtt_domain { 599 u32 proximity_domain; 600 }; 601 602 /* 2: Physical Component Identifier (DIMM) */ 603 604 struct acpi_pmtt_physical_component { 605 struct acpi_pmtt_header header; 606 u16 component_id; 607 u16 reserved; 608 u32 memory_size; 609 u32 bios_handle; 610 }; 611 612 /******************************************************************************* 613 * 614 * RASF - RAS Feature Table (ACPI 5.0) 615 * Version 1 616 * 617 ******************************************************************************/ 618 619 struct acpi_table_rasf { 620 struct acpi_table_header header; /* Common ACPI table header */ 621 u8 channel_id[12]; 622 }; 623 624 /* RASF Platform Communication Channel Shared Memory Region */ 625 626 struct acpi_rasf_shared_memory { 627 u32 signature; 628 u16 command; 629 u16 status; 630 u16 version; 631 u8 capabilities[16]; 632 u8 set_capabilities[16]; 633 u16 num_parameter_blocks; 634 u32 set_capabilities_status; 635 }; 636 637 /* RASF Parameter Block Structure Header */ 638 639 struct acpi_rasf_parameter_block { 640 u16 type; 641 u16 version; 642 u16 length; 643 }; 644 645 /* RASF Parameter Block Structure for PATROL_SCRUB */ 646 647 struct acpi_rasf_patrol_scrub_parameter { 648 struct acpi_rasf_parameter_block header; 649 u16 patrol_scrub_command; 650 u64 requested_address_range[2]; 651 u64 actual_address_range[2]; 652 u16 flags; 653 u8 requested_speed; 654 }; 655 656 /* Masks for Flags and Speed fields above */ 657 658 #define ACPI_RASF_SCRUBBER_RUNNING 1 659 #define ACPI_RASF_SPEED (7<<1) 660 #define ACPI_RASF_SPEED_SLOW (0<<1) 661 #define ACPI_RASF_SPEED_MEDIUM (4<<1) 662 #define ACPI_RASF_SPEED_FAST (7<<1) 663 664 /* Channel Commands */ 665 666 enum acpi_rasf_commands { 667 ACPI_RASF_EXECUTE_RASF_COMMAND = 1 668 }; 669 670 /* Platform RAS Capabilities */ 671 672 enum acpi_rasf_capabiliities { 673 ACPI_HW_PATROL_SCRUB_SUPPORTED = 0, 674 ACPI_SW_PATROL_SCRUB_EXPOSED = 1 675 }; 676 677 /* Patrol Scrub Commands */ 678 679 enum acpi_rasf_patrol_scrub_commands { 680 ACPI_RASF_GET_PATROL_PARAMETERS = 1, 681 ACPI_RASF_START_PATROL_SCRUBBER = 2, 682 ACPI_RASF_STOP_PATROL_SCRUBBER = 3 683 }; 684 685 /* Channel Command flags */ 686 687 #define ACPI_RASF_GENERATE_SCI (1<<15) 688 689 /* Status values */ 690 691 enum acpi_rasf_status { 692 ACPI_RASF_SUCCESS = 0, 693 ACPI_RASF_NOT_VALID = 1, 694 ACPI_RASF_NOT_SUPPORTED = 2, 695 ACPI_RASF_BUSY = 3, 696 ACPI_RASF_FAILED = 4, 697 ACPI_RASF_ABORTED = 5, 698 ACPI_RASF_INVALID_DATA = 6 699 }; 700 701 /* Status flags */ 702 703 #define ACPI_RASF_COMMAND_COMPLETE (1) 704 #define ACPI_RASF_SCI_DOORBELL (1<<1) 705 #define ACPI_RASF_ERROR (1<<2) 706 #define ACPI_RASF_STATUS (0x1F<<3) 707 708 /******************************************************************************* 709 * 710 * STAO - Status Override Table (_STA override) - ACPI 6.0 711 * Version 1 712 * 713 * Conforms to "ACPI Specification for Status Override Table" 714 * 6 January 2015 715 * 716 ******************************************************************************/ 717 718 struct acpi_table_stao { 719 struct acpi_table_header header; /* Common ACPI table header */ 720 u8 ignore_uart; 721 }; 722 723 /******************************************************************************* 724 * 725 * WPBT - Windows Platform Environment Table (ACPI 6.0) 726 * Version 1 727 * 728 * Conforms to "Windows Platform Binary Table (WPBT)" 29 November 2011 729 * 730 ******************************************************************************/ 731 732 struct acpi_table_wpbt { 733 struct acpi_table_header header; /* Common ACPI table header */ 734 u32 handoff_size; 735 u64 handoff_address; 736 u8 layout; 737 u8 type; 738 u16 arguments_length; 739 }; 740 741 /******************************************************************************* 742 * 743 * XENV - Xen Environment Table (ACPI 6.0) 744 * Version 1 745 * 746 * Conforms to "ACPI Specification for Xen Environment Table" 4 January 2015 747 * 748 ******************************************************************************/ 749 750 struct acpi_table_xenv { 751 struct acpi_table_header header; /* Common ACPI table header */ 752 u64 grant_table_address; 753 u64 grant_table_size; 754 u32 event_interrupt; 755 u8 event_flags; 756 }; 757 758 /* Reset to default packing */ 759 760 #pragma pack() 761 762 #endif /* __ACTBL3_H__ */ 763