1 /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */ 2 /****************************************************************************** 3 * 4 * Name: actbl3.h - ACPI Table Definitions 5 * 6 * Copyright (C) 2000 - 2021, Intel Corp. 7 * 8 *****************************************************************************/ 9 10 #ifndef __ACTBL3_H__ 11 #define __ACTBL3_H__ 12 13 /******************************************************************************* 14 * 15 * Additional ACPI Tables 16 * 17 * These tables are not consumed directly by the ACPICA subsystem, but are 18 * included here to support device drivers and the AML disassembler. 19 * 20 ******************************************************************************/ 21 22 /* 23 * Values for description table header signatures for tables defined in this 24 * file. Useful because they make it more difficult to inadvertently type in 25 * the wrong signature. 26 */ 27 #define ACPI_SIG_SLIC "SLIC" /* Software Licensing Description Table */ 28 #define ACPI_SIG_SLIT "SLIT" /* System Locality Distance Information Table */ 29 #define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */ 30 #define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */ 31 #define ACPI_SIG_SRAT "SRAT" /* System Resource Affinity Table */ 32 #define ACPI_SIG_STAO "STAO" /* Status Override table */ 33 #define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */ 34 #define ACPI_SIG_TPM2 "TPM2" /* Trusted Platform Module 2.0 H/W interface table */ 35 #define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */ 36 #define ACPI_SIG_WAET "WAET" /* Windows ACPI Emulated devices Table */ 37 #define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */ 38 #define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */ 39 #define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */ 40 #define ACPI_SIG_WPBT "WPBT" /* Windows Platform Binary Table */ 41 #define ACPI_SIG_WSMT "WSMT" /* Windows SMM Security Mitigations Table */ 42 #define ACPI_SIG_XENV "XENV" /* Xen Environment table */ 43 #define ACPI_SIG_XXXX "XXXX" /* Intermediate AML header for ASL/ASL+ converter */ 44 45 /* 46 * All tables must be byte-packed to match the ACPI specification, since 47 * the tables are provided by the system BIOS. 48 */ 49 #pragma pack(1) 50 51 /* 52 * Note: C bitfields are not used for this reason: 53 * 54 * "Bitfields are great and easy to read, but unfortunately the C language 55 * does not specify the layout of bitfields in memory, which means they are 56 * essentially useless for dealing with packed data in on-disk formats or 57 * binary wire protocols." (Or ACPI tables and buffers.) "If you ask me, 58 * this decision was a design error in C. Ritchie could have picked an order 59 * and stuck with it." Norman Ramsey. 60 * See http://stackoverflow.com/a/1053662/41661 61 */ 62 63 /******************************************************************************* 64 * 65 * SLIC - Software Licensing Description Table 66 * 67 * Conforms to "Microsoft Software Licensing Tables (SLIC and MSDM)", 68 * November 29, 2011. Copyright 2011 Microsoft 69 * 70 ******************************************************************************/ 71 72 /* Basic SLIC table is only the common ACPI header */ 73 74 struct acpi_table_slic { 75 struct acpi_table_header header; /* Common ACPI table header */ 76 }; 77 78 /******************************************************************************* 79 * 80 * SLIT - System Locality Distance Information Table 81 * Version 1 82 * 83 ******************************************************************************/ 84 85 struct acpi_table_slit { 86 struct acpi_table_header header; /* Common ACPI table header */ 87 u64 locality_count; 88 u8 entry[1]; /* Real size = localities^2 */ 89 }; 90 91 /******************************************************************************* 92 * 93 * SPCR - Serial Port Console Redirection table 94 * Version 2 95 * 96 * Conforms to "Serial Port Console Redirection Table", 97 * Version 1.03, August 10, 2015 98 * 99 ******************************************************************************/ 100 101 struct acpi_table_spcr { 102 struct acpi_table_header header; /* Common ACPI table header */ 103 u8 interface_type; /* 0=full 16550, 1=subset of 16550 */ 104 u8 reserved[3]; 105 struct acpi_generic_address serial_port; 106 u8 interrupt_type; 107 u8 pc_interrupt; 108 u32 interrupt; 109 u8 baud_rate; 110 u8 parity; 111 u8 stop_bits; 112 u8 flow_control; 113 u8 terminal_type; 114 u8 reserved1; 115 u16 pci_device_id; 116 u16 pci_vendor_id; 117 u8 pci_bus; 118 u8 pci_device; 119 u8 pci_function; 120 u32 pci_flags; 121 u8 pci_segment; 122 u32 reserved2; 123 }; 124 125 /* Masks for pci_flags field above */ 126 127 #define ACPI_SPCR_DO_NOT_DISABLE (1) 128 129 /* Values for Interface Type: See the definition of the DBG2 table */ 130 131 /******************************************************************************* 132 * 133 * SPMI - Server Platform Management Interface table 134 * Version 5 135 * 136 * Conforms to "Intelligent Platform Management Interface Specification 137 * Second Generation v2.0", Document Revision 1.0, February 12, 2004 with 138 * June 12, 2009 markup. 139 * 140 ******************************************************************************/ 141 142 struct acpi_table_spmi { 143 struct acpi_table_header header; /* Common ACPI table header */ 144 u8 interface_type; 145 u8 reserved; /* Must be 1 */ 146 u16 spec_revision; /* Version of IPMI */ 147 u8 interrupt_type; 148 u8 gpe_number; /* GPE assigned */ 149 u8 reserved1; 150 u8 pci_device_flag; 151 u32 interrupt; 152 struct acpi_generic_address ipmi_register; 153 u8 pci_segment; 154 u8 pci_bus; 155 u8 pci_device; 156 u8 pci_function; 157 u8 reserved2; 158 }; 159 160 /* Values for interface_type above */ 161 162 enum acpi_spmi_interface_types { 163 ACPI_SPMI_NOT_USED = 0, 164 ACPI_SPMI_KEYBOARD = 1, 165 ACPI_SPMI_SMI = 2, 166 ACPI_SPMI_BLOCK_TRANSFER = 3, 167 ACPI_SPMI_SMBUS = 4, 168 ACPI_SPMI_RESERVED = 5 /* 5 and above are reserved */ 169 }; 170 171 /******************************************************************************* 172 * 173 * SRAT - System Resource Affinity Table 174 * Version 3 175 * 176 ******************************************************************************/ 177 178 struct acpi_table_srat { 179 struct acpi_table_header header; /* Common ACPI table header */ 180 u32 table_revision; /* Must be value '1' */ 181 u64 reserved; /* Reserved, must be zero */ 182 }; 183 184 /* Values for subtable type in struct acpi_subtable_header */ 185 186 enum acpi_srat_type { 187 ACPI_SRAT_TYPE_CPU_AFFINITY = 0, 188 ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1, 189 ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2, 190 ACPI_SRAT_TYPE_GICC_AFFINITY = 3, 191 ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, /* ACPI 6.2 */ 192 ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, /* ACPI 6.3 */ 193 ACPI_SRAT_TYPE_RESERVED = 6 /* 5 and greater are reserved */ 194 }; 195 196 /* 197 * SRAT Subtables, correspond to Type in struct acpi_subtable_header 198 */ 199 200 /* 0: Processor Local APIC/SAPIC Affinity */ 201 202 struct acpi_srat_cpu_affinity { 203 struct acpi_subtable_header header; 204 u8 proximity_domain_lo; 205 u8 apic_id; 206 u32 flags; 207 u8 local_sapic_eid; 208 u8 proximity_domain_hi[3]; 209 u32 clock_domain; 210 }; 211 212 /* Flags */ 213 214 #define ACPI_SRAT_CPU_USE_AFFINITY (1) /* 00: Use affinity structure */ 215 216 /* 1: Memory Affinity */ 217 218 struct acpi_srat_mem_affinity { 219 struct acpi_subtable_header header; 220 u32 proximity_domain; 221 u16 reserved; /* Reserved, must be zero */ 222 u64 base_address; 223 u64 length; 224 u32 reserved1; 225 u32 flags; 226 u64 reserved2; /* Reserved, must be zero */ 227 }; 228 229 /* Flags */ 230 231 #define ACPI_SRAT_MEM_ENABLED (1) /* 00: Use affinity structure */ 232 #define ACPI_SRAT_MEM_HOT_PLUGGABLE (1<<1) /* 01: Memory region is hot pluggable */ 233 #define ACPI_SRAT_MEM_NON_VOLATILE (1<<2) /* 02: Memory region is non-volatile */ 234 235 /* 2: Processor Local X2_APIC Affinity (ACPI 4.0) */ 236 237 struct acpi_srat_x2apic_cpu_affinity { 238 struct acpi_subtable_header header; 239 u16 reserved; /* Reserved, must be zero */ 240 u32 proximity_domain; 241 u32 apic_id; 242 u32 flags; 243 u32 clock_domain; 244 u32 reserved2; 245 }; 246 247 /* Flags for struct acpi_srat_cpu_affinity and struct acpi_srat_x2apic_cpu_affinity */ 248 249 #define ACPI_SRAT_CPU_ENABLED (1) /* 00: Use affinity structure */ 250 251 /* 3: GICC Affinity (ACPI 5.1) */ 252 253 struct acpi_srat_gicc_affinity { 254 struct acpi_subtable_header header; 255 u32 proximity_domain; 256 u32 acpi_processor_uid; 257 u32 flags; 258 u32 clock_domain; 259 }; 260 261 /* Flags for struct acpi_srat_gicc_affinity */ 262 263 #define ACPI_SRAT_GICC_ENABLED (1) /* 00: Use affinity structure */ 264 265 /* 4: GCC ITS Affinity (ACPI 6.2) */ 266 267 struct acpi_srat_gic_its_affinity { 268 struct acpi_subtable_header header; 269 u32 proximity_domain; 270 u16 reserved; 271 u32 its_id; 272 }; 273 274 /* 5: Generic Initiator Affinity Structure (ACPI 6.3) */ 275 276 struct acpi_srat_generic_affinity { 277 struct acpi_subtable_header header; 278 u8 reserved; 279 u8 device_handle_type; 280 u32 proximity_domain; 281 u8 device_handle[16]; 282 u32 flags; 283 u32 reserved1; 284 }; 285 286 /* Flags for struct acpi_srat_generic_affinity */ 287 288 #define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */ 289 290 /******************************************************************************* 291 * 292 * STAO - Status Override Table (_STA override) - ACPI 6.0 293 * Version 1 294 * 295 * Conforms to "ACPI Specification for Status Override Table" 296 * 6 January 2015 297 * 298 ******************************************************************************/ 299 300 struct acpi_table_stao { 301 struct acpi_table_header header; /* Common ACPI table header */ 302 u8 ignore_uart; 303 }; 304 305 /******************************************************************************* 306 * 307 * TCPA - Trusted Computing Platform Alliance table 308 * Version 2 309 * 310 * TCG Hardware Interface Table for TPM 1.2 Clients and Servers 311 * 312 * Conforms to "TCG ACPI Specification, Family 1.2 and 2.0", 313 * Version 1.2, Revision 8 314 * February 27, 2017 315 * 316 * NOTE: There are two versions of the table with the same signature -- 317 * the client version and the server version. The common platform_class 318 * field is used to differentiate the two types of tables. 319 * 320 ******************************************************************************/ 321 322 struct acpi_table_tcpa_hdr { 323 struct acpi_table_header header; /* Common ACPI table header */ 324 u16 platform_class; 325 }; 326 327 /* 328 * Values for platform_class above. 329 * This is how the client and server subtables are differentiated 330 */ 331 #define ACPI_TCPA_CLIENT_TABLE 0 332 #define ACPI_TCPA_SERVER_TABLE 1 333 334 struct acpi_table_tcpa_client { 335 u32 minimum_log_length; /* Minimum length for the event log area */ 336 u64 log_address; /* Address of the event log area */ 337 }; 338 339 struct acpi_table_tcpa_server { 340 u16 reserved; 341 u64 minimum_log_length; /* Minimum length for the event log area */ 342 u64 log_address; /* Address of the event log area */ 343 u16 spec_revision; 344 u8 device_flags; 345 u8 interrupt_flags; 346 u8 gpe_number; 347 u8 reserved2[3]; 348 u32 global_interrupt; 349 struct acpi_generic_address address; 350 u32 reserved3; 351 struct acpi_generic_address config_address; 352 u8 group; 353 u8 bus; /* PCI Bus/Segment/Function numbers */ 354 u8 device; 355 u8 function; 356 }; 357 358 /* Values for device_flags above */ 359 360 #define ACPI_TCPA_PCI_DEVICE (1) 361 #define ACPI_TCPA_BUS_PNP (1<<1) 362 #define ACPI_TCPA_ADDRESS_VALID (1<<2) 363 364 /* Values for interrupt_flags above */ 365 366 #define ACPI_TCPA_INTERRUPT_MODE (1) 367 #define ACPI_TCPA_INTERRUPT_POLARITY (1<<1) 368 #define ACPI_TCPA_SCI_VIA_GPE (1<<2) 369 #define ACPI_TCPA_GLOBAL_INTERRUPT (1<<3) 370 371 /******************************************************************************* 372 * 373 * TPM2 - Trusted Platform Module (TPM) 2.0 Hardware Interface Table 374 * Version 4 375 * 376 * TCG Hardware Interface Table for TPM 2.0 Clients and Servers 377 * 378 * Conforms to "TCG ACPI Specification, Family 1.2 and 2.0", 379 * Version 1.2, Revision 8 380 * February 27, 2017 381 * 382 ******************************************************************************/ 383 384 /* Revision 3 */ 385 386 struct acpi_table_tpm23 { 387 struct acpi_table_header header; /* Common ACPI table header */ 388 u32 reserved; 389 u64 control_address; 390 u32 start_method; 391 }; 392 393 /* Value for start_method above */ 394 395 #define ACPI_TPM23_ACPI_START_METHOD 2 396 397 /* 398 * Optional trailer for revision 3. If start method is 2, there is a 4 byte 399 * reserved area of all zeros. 400 */ 401 struct acpi_tmp23_trailer { 402 u32 reserved; 403 }; 404 405 /* Revision 4 */ 406 407 struct acpi_table_tpm2 { 408 struct acpi_table_header header; /* Common ACPI table header */ 409 u16 platform_class; 410 u16 reserved; 411 u64 control_address; 412 u32 start_method; 413 414 /* Platform-specific data follows */ 415 }; 416 417 /* Optional trailer for revision 4 holding platform-specific data */ 418 struct acpi_tpm2_phy { 419 u8 start_method_specific[12]; 420 u32 log_area_minimum_length; 421 u64 log_area_start_address; 422 }; 423 424 /* Values for start_method above */ 425 426 #define ACPI_TPM2_NOT_ALLOWED 0 427 #define ACPI_TPM2_RESERVED1 1 428 #define ACPI_TPM2_START_METHOD 2 429 #define ACPI_TPM2_RESERVED3 3 430 #define ACPI_TPM2_RESERVED4 4 431 #define ACPI_TPM2_RESERVED5 5 432 #define ACPI_TPM2_MEMORY_MAPPED 6 433 #define ACPI_TPM2_COMMAND_BUFFER 7 434 #define ACPI_TPM2_COMMAND_BUFFER_WITH_START_METHOD 8 435 #define ACPI_TPM2_RESERVED9 9 436 #define ACPI_TPM2_RESERVED10 10 437 #define ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC 11 /* V1.2 Rev 8 */ 438 #define ACPI_TPM2_RESERVED 12 439 440 /* Optional trailer appears after any start_method subtables */ 441 442 struct acpi_tpm2_trailer { 443 u8 method_parameters[12]; 444 u32 minimum_log_length; /* Minimum length for the event log area */ 445 u64 log_address; /* Address of the event log area */ 446 }; 447 448 /* 449 * Subtables (start_method-specific) 450 */ 451 452 /* 11: Start Method for ARM SMC (V1.2 Rev 8) */ 453 454 struct acpi_tpm2_arm_smc { 455 u32 global_interrupt; 456 u8 interrupt_flags; 457 u8 operation_flags; 458 u16 reserved; 459 u32 function_id; 460 }; 461 462 /* Values for interrupt_flags above */ 463 464 #define ACPI_TPM2_INTERRUPT_SUPPORT (1) 465 466 /* Values for operation_flags above */ 467 468 #define ACPI_TPM2_IDLE_SUPPORT (1) 469 470 /******************************************************************************* 471 * 472 * UEFI - UEFI Boot optimization Table 473 * Version 1 474 * 475 * Conforms to "Unified Extensible Firmware Interface Specification", 476 * Version 2.3, May 8, 2009 477 * 478 ******************************************************************************/ 479 480 struct acpi_table_uefi { 481 struct acpi_table_header header; /* Common ACPI table header */ 482 u8 identifier[16]; /* UUID identifier */ 483 u16 data_offset; /* Offset of remaining data in table */ 484 }; 485 486 /******************************************************************************* 487 * 488 * WAET - Windows ACPI Emulated devices Table 489 * Version 1 490 * 491 * Conforms to "Windows ACPI Emulated Devices Table", version 1.0, April 6, 2009 492 * 493 ******************************************************************************/ 494 495 struct acpi_table_waet { 496 struct acpi_table_header header; /* Common ACPI table header */ 497 u32 flags; 498 }; 499 500 /* Masks for Flags field above */ 501 502 #define ACPI_WAET_RTC_NO_ACK (1) /* RTC requires no int acknowledge */ 503 #define ACPI_WAET_TIMER_ONE_READ (1<<1) /* PM timer requires only one read */ 504 505 /******************************************************************************* 506 * 507 * WDAT - Watchdog Action Table 508 * Version 1 509 * 510 * Conforms to "Hardware Watchdog Timers Design Specification", 511 * Copyright 2006 Microsoft Corporation. 512 * 513 ******************************************************************************/ 514 515 struct acpi_table_wdat { 516 struct acpi_table_header header; /* Common ACPI table header */ 517 u32 header_length; /* Watchdog Header Length */ 518 u16 pci_segment; /* PCI Segment number */ 519 u8 pci_bus; /* PCI Bus number */ 520 u8 pci_device; /* PCI Device number */ 521 u8 pci_function; /* PCI Function number */ 522 u8 reserved[3]; 523 u32 timer_period; /* Period of one timer count (msec) */ 524 u32 max_count; /* Maximum counter value supported */ 525 u32 min_count; /* Minimum counter value */ 526 u8 flags; 527 u8 reserved2[3]; 528 u32 entries; /* Number of watchdog entries that follow */ 529 }; 530 531 /* Masks for Flags field above */ 532 533 #define ACPI_WDAT_ENABLED (1) 534 #define ACPI_WDAT_STOPPED 0x80 535 536 /* WDAT Instruction Entries (actions) */ 537 538 struct acpi_wdat_entry { 539 u8 action; 540 u8 instruction; 541 u16 reserved; 542 struct acpi_generic_address register_region; 543 u32 value; /* Value used with Read/Write register */ 544 u32 mask; /* Bitmask required for this register instruction */ 545 }; 546 547 /* Values for Action field above */ 548 549 enum acpi_wdat_actions { 550 ACPI_WDAT_RESET = 1, 551 ACPI_WDAT_GET_CURRENT_COUNTDOWN = 4, 552 ACPI_WDAT_GET_COUNTDOWN = 5, 553 ACPI_WDAT_SET_COUNTDOWN = 6, 554 ACPI_WDAT_GET_RUNNING_STATE = 8, 555 ACPI_WDAT_SET_RUNNING_STATE = 9, 556 ACPI_WDAT_GET_STOPPED_STATE = 10, 557 ACPI_WDAT_SET_STOPPED_STATE = 11, 558 ACPI_WDAT_GET_REBOOT = 16, 559 ACPI_WDAT_SET_REBOOT = 17, 560 ACPI_WDAT_GET_SHUTDOWN = 18, 561 ACPI_WDAT_SET_SHUTDOWN = 19, 562 ACPI_WDAT_GET_STATUS = 32, 563 ACPI_WDAT_SET_STATUS = 33, 564 ACPI_WDAT_ACTION_RESERVED = 34 /* 34 and greater are reserved */ 565 }; 566 567 /* Values for Instruction field above */ 568 569 enum acpi_wdat_instructions { 570 ACPI_WDAT_READ_VALUE = 0, 571 ACPI_WDAT_READ_COUNTDOWN = 1, 572 ACPI_WDAT_WRITE_VALUE = 2, 573 ACPI_WDAT_WRITE_COUNTDOWN = 3, 574 ACPI_WDAT_INSTRUCTION_RESERVED = 4, /* 4 and greater are reserved */ 575 ACPI_WDAT_PRESERVE_REGISTER = 0x80 /* Except for this value */ 576 }; 577 578 /******************************************************************************* 579 * 580 * WDDT - Watchdog Descriptor Table 581 * Version 1 582 * 583 * Conforms to "Using the Intel ICH Family Watchdog Timer (WDT)", 584 * Version 001, September 2002 585 * 586 ******************************************************************************/ 587 588 struct acpi_table_wddt { 589 struct acpi_table_header header; /* Common ACPI table header */ 590 u16 spec_version; 591 u16 table_version; 592 u16 pci_vendor_id; 593 struct acpi_generic_address address; 594 u16 max_count; /* Maximum counter value supported */ 595 u16 min_count; /* Minimum counter value supported */ 596 u16 period; 597 u16 status; 598 u16 capability; 599 }; 600 601 /* Flags for Status field above */ 602 603 #define ACPI_WDDT_AVAILABLE (1) 604 #define ACPI_WDDT_ACTIVE (1<<1) 605 #define ACPI_WDDT_TCO_OS_OWNED (1<<2) 606 #define ACPI_WDDT_USER_RESET (1<<11) 607 #define ACPI_WDDT_WDT_RESET (1<<12) 608 #define ACPI_WDDT_POWER_FAIL (1<<13) 609 #define ACPI_WDDT_UNKNOWN_RESET (1<<14) 610 611 /* Flags for Capability field above */ 612 613 #define ACPI_WDDT_AUTO_RESET (1) 614 #define ACPI_WDDT_ALERT_SUPPORT (1<<1) 615 616 /******************************************************************************* 617 * 618 * WDRT - Watchdog Resource Table 619 * Version 1 620 * 621 * Conforms to "Watchdog Timer Hardware Requirements for Windows Server 2003", 622 * Version 1.01, August 28, 2006 623 * 624 ******************************************************************************/ 625 626 struct acpi_table_wdrt { 627 struct acpi_table_header header; /* Common ACPI table header */ 628 struct acpi_generic_address control_register; 629 struct acpi_generic_address count_register; 630 u16 pci_device_id; 631 u16 pci_vendor_id; 632 u8 pci_bus; /* PCI Bus number */ 633 u8 pci_device; /* PCI Device number */ 634 u8 pci_function; /* PCI Function number */ 635 u8 pci_segment; /* PCI Segment number */ 636 u16 max_count; /* Maximum counter value supported */ 637 u8 units; 638 }; 639 640 /******************************************************************************* 641 * 642 * WPBT - Windows Platform Environment Table (ACPI 6.0) 643 * Version 1 644 * 645 * Conforms to "Windows Platform Binary Table (WPBT)" 29 November 2011 646 * 647 ******************************************************************************/ 648 649 struct acpi_table_wpbt { 650 struct acpi_table_header header; /* Common ACPI table header */ 651 u32 handoff_size; 652 u64 handoff_address; 653 u8 layout; 654 u8 type; 655 u16 arguments_length; 656 }; 657 658 /******************************************************************************* 659 * 660 * WSMT - Windows SMM Security Mitigations Table 661 * Version 1 662 * 663 * Conforms to "Windows SMM Security Mitigations Table", 664 * Version 1.0, April 18, 2016 665 * 666 ******************************************************************************/ 667 668 struct acpi_table_wsmt { 669 struct acpi_table_header header; /* Common ACPI table header */ 670 u32 protection_flags; 671 }; 672 673 /* Flags for protection_flags field above */ 674 675 #define ACPI_WSMT_FIXED_COMM_BUFFERS (1) 676 #define ACPI_WSMT_COMM_BUFFER_NESTED_PTR_PROTECTION (2) 677 #define ACPI_WSMT_SYSTEM_RESOURCE_PROTECTION (4) 678 679 /******************************************************************************* 680 * 681 * XENV - Xen Environment Table (ACPI 6.0) 682 * Version 1 683 * 684 * Conforms to "ACPI Specification for Xen Environment Table" 4 January 2015 685 * 686 ******************************************************************************/ 687 688 struct acpi_table_xenv { 689 struct acpi_table_header header; /* Common ACPI table header */ 690 u64 grant_table_address; 691 u64 grant_table_size; 692 u32 event_interrupt; 693 u8 event_flags; 694 }; 695 696 /* Reset to default packing */ 697 698 #pragma pack() 699 700 #endif /* __ACTBL3_H__ */ 701