linux/include/acpi/actbl3.h
<<
>>
Prefs
   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
 109struct 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
 127struct 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
 149struct 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
 158struct acpi_drtm_resource {
 159        u8 size[7];
 160        u8 type;
 161        u64 address;
 162};
 163
 164struct acpi_drtm_resource_list {
 165        u32 resource_count;
 166        struct acpi_drtm_resource resources[1];
 167};
 168
 169/* 3) Platform-specific Identifiers List */
 170
 171struct 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
 183struct acpi_table_fpdt {
 184        struct acpi_table_header header;        /* Common ACPI table header */
 185};
 186
 187/* FPDT subtable header */
 188
 189struct acpi_fpdt_header {
 190        u16 type;
 191        u8 length;
 192        u8 revision;
 193};
 194
 195/* Values for Type field above */
 196
 197enum 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
 208struct 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
 220struct 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 */
 230struct acpi_table_s3pt {
 231        u8 signature[4];        /* "S3PT" */
 232        u32 length;
 233};
 234
 235/*
 236 * S3PT Subtables
 237 */
 238struct acpi_s3pt_header {
 239        u16 type;
 240        u8 length;
 241        u8 revision;
 242};
 243
 244/* Values for Type field above */
 245
 246enum acpi_s3pt_type {
 247        ACPI_S3PT_TYPE_RESUME = 0,
 248        ACPI_S3PT_TYPE_SUSPEND = 1
 249};
 250
 251struct acpi_s3pt_resume {
 252        struct acpi_s3pt_header header;
 253        u32 resume_count;
 254        u64 full_resume;
 255        u64 average_resume;
 256};
 257
 258struct 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
 271struct 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
 296struct acpi_gtdt_header {
 297        u8 type;
 298        u16 length;
 299};
 300
 301/* Values for GTDT subtable type above */
 302
 303enum 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
 313struct 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
 323struct 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
 347struct 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
 377struct 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
 384struct acpi_mpst_channel {
 385        ACPI_MPST_CHANNEL_INFO  /* Platform Communication Channel */
 386};
 387
 388/* Memory Power Node Structure */
 389
 390struct 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
 409struct acpi_mpst_power_state {
 410        u8 power_state;
 411        u8 info_index;
 412};
 413
 414/* Physical Component ID Structure (follows POWER_STATE above) */
 415
 416struct acpi_mpst_component {
 417        u16 component_id;
 418};
 419
 420/* Memory Power State Characteristics Structure (follows all POWER_NODEs) */
 421
 422struct acpi_mpst_data_hdr {
 423        u16 characteristics_count;
 424        u16 reserved;
 425};
 426
 427struct 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
 445struct 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
 464struct 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
 476enum 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
 488struct 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
 503struct 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
 529struct 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
 542struct 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
 549struct 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
 576struct acpi_pmtt_socket {
 577        struct acpi_pmtt_header header;
 578        u16 socket_id;
 579        u16 reserved;
 580};
 581
 582/* 1: Memory Controller subtable */
 583
 584struct 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
 598struct acpi_pmtt_domain {
 599        u32 proximity_domain;
 600};
 601
 602/* 2: Physical Component Identifier (DIMM) */
 603
 604struct 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
 619struct 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
 626struct 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
 639struct acpi_rasf_parameter_block {
 640        u16 type;
 641        u16 version;
 642        u16 length;
 643};
 644
 645/* RASF Parameter Block Structure for PATROL_SCRUB */
 646
 647struct 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
 666enum acpi_rasf_commands {
 667        ACPI_RASF_EXECUTE_RASF_COMMAND = 1
 668};
 669
 670/* Platform RAS Capabilities */
 671
 672enum acpi_rasf_capabiliities {
 673        ACPI_HW_PATROL_SCRUB_SUPPORTED = 0,
 674        ACPI_SW_PATROL_SCRUB_EXPOSED = 1
 675};
 676
 677/* Patrol Scrub Commands */
 678
 679enum 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
 691enum 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
 718struct 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
 732struct 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
 750struct 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