1 /******************************************************************************
3 * Name: actbl3.h - ACPI Table Definitions
5 *****************************************************************************/
8 * Copyright (C) 2000 - 2021, Intel Corp.
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
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.
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.
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 MERCHANTABILITY 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.
48 /*******************************************************************************
50 * Additional ACPI Tables
52 * These tables are not consumed directly by the ACPICA subsystem, but are
53 * included here to support device drivers and the AML disassembler.
55 ******************************************************************************/
59 * Values for description table header signatures for tables defined in this
60 * file. Useful because they make it more difficult to inadvertently type in
61 * the wrong signature.
63 #define ACPI_SIG_SLIC "SLIC" /* Software Licensing Description Table */
64 #define ACPI_SIG_SLIT "SLIT" /* System Locality Distance Information Table */
65 #define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */
66 #define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */
67 #define ACPI_SIG_SRAT "SRAT" /* System Resource Affinity Table */
68 #define ACPI_SIG_STAO "STAO" /* Status Override table */
69 #define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */
70 #define ACPI_SIG_TPM2 "TPM2" /* Trusted Platform Module 2.0 H/W interface table */
71 #define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */
72 #define ACPI_SIG_VIOT "VIOT" /* Virtual I/O Translation Table */
73 #define ACPI_SIG_WAET "WAET" /* Windows ACPI Emulated devices Table */
74 #define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */
75 #define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */
76 #define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */
77 #define ACPI_SIG_WPBT "WPBT" /* Windows Platform Binary Table */
78 #define ACPI_SIG_WSMT "WSMT" /* Windows SMM Security Mitigations Table */
79 #define ACPI_SIG_XENV "XENV" /* Xen Environment table */
80 #define ACPI_SIG_XXXX "XXXX" /* Intermediate AML header for ASL/ASL+ converter */
83 * All tables must be byte-packed to match the ACPI specification, since
84 * the tables are provided by the system BIOS.
89 * Note: C bitfields are not used for this reason:
91 * "Bitfields are great and easy to read, but unfortunately the C language
92 * does not specify the layout of bitfields in memory, which means they are
93 * essentially useless for dealing with packed data in on-disk formats or
94 * binary wire protocols." (Or ACPI tables and buffers.) "If you ask me,
95 * this decision was a design error in C. Ritchie could have picked an order
96 * and stuck with it." Norman Ramsey.
97 * See http://stackoverflow.com/a/1053662/41661
101 /*******************************************************************************
103 * SLIC - Software Licensing Description Table
105 * Conforms to "Microsoft Software Licensing Tables (SLIC and MSDM)",
106 * November 29, 2011. Copyright 2011 Microsoft
108 ******************************************************************************/
110 /* Basic SLIC table is only the common ACPI header */
112 typedef struct acpi_table_slic
114 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
119 /*******************************************************************************
121 * SLIT - System Locality Distance Information Table
124 ******************************************************************************/
126 typedef struct acpi_table_slit
128 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
129 UINT64 LocalityCount
;
130 UINT8 Entry
[1]; /* Real size = localities^2 */
135 /*******************************************************************************
137 * SPCR - Serial Port Console Redirection table
140 * Conforms to "Serial Port Console Redirection Table",
141 * Version 1.03, August 10, 2015
143 ******************************************************************************/
145 typedef struct acpi_table_spcr
147 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
148 UINT8 InterfaceType
; /* 0=full 16550, 1=subset of 16550 */
150 ACPI_GENERIC_ADDRESS SerialPort
;
171 /* Masks for PciFlags field above */
173 #define ACPI_SPCR_DO_NOT_DISABLE (1)
175 /* Values for Interface Type: See the definition of the DBG2 table */
178 /*******************************************************************************
180 * SPMI - Server Platform Management Interface table
183 * Conforms to "Intelligent Platform Management Interface Specification
184 * Second Generation v2.0", Document Revision 1.0, February 12, 2004 with
185 * June 12, 2009 markup.
187 ******************************************************************************/
189 typedef struct acpi_table_spmi
191 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
193 UINT8 Reserved
; /* Must be 1 */
194 UINT16 SpecRevision
; /* Version of IPMI */
196 UINT8 GpeNumber
; /* GPE assigned */
200 ACPI_GENERIC_ADDRESS IpmiRegister
;
209 /* Values for InterfaceType above */
211 enum AcpiSpmiInterfaceTypes
213 ACPI_SPMI_NOT_USED
= 0,
214 ACPI_SPMI_KEYBOARD
= 1,
216 ACPI_SPMI_BLOCK_TRANSFER
= 3,
218 ACPI_SPMI_RESERVED
= 5 /* 5 and above are reserved */
222 /*******************************************************************************
224 * SRAT - System Resource Affinity Table
227 ******************************************************************************/
229 typedef struct acpi_table_srat
231 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
232 UINT32 TableRevision
; /* Must be value '1' */
233 UINT64 Reserved
; /* Reserved, must be zero */
237 /* Values for subtable type in ACPI_SUBTABLE_HEADER */
241 ACPI_SRAT_TYPE_CPU_AFFINITY
= 0,
242 ACPI_SRAT_TYPE_MEMORY_AFFINITY
= 1,
243 ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY
= 2,
244 ACPI_SRAT_TYPE_GICC_AFFINITY
= 3,
245 ACPI_SRAT_TYPE_GIC_ITS_AFFINITY
= 4, /* ACPI 6.2 */
246 ACPI_SRAT_TYPE_GENERIC_AFFINITY
= 5, /* ACPI 6.3 */
247 ACPI_SRAT_TYPE_RESERVED
= 6 /* 5 and greater are reserved */
251 * SRAT Subtables, correspond to Type in ACPI_SUBTABLE_HEADER
254 /* 0: Processor Local APIC/SAPIC Affinity */
256 typedef struct acpi_srat_cpu_affinity
258 ACPI_SUBTABLE_HEADER Header
;
259 UINT8 ProximityDomainLo
;
263 UINT8 ProximityDomainHi
[3];
266 } ACPI_SRAT_CPU_AFFINITY
;
270 #define ACPI_SRAT_CPU_USE_AFFINITY (1) /* 00: Use affinity structure */
273 /* 1: Memory Affinity */
275 typedef struct acpi_srat_mem_affinity
277 ACPI_SUBTABLE_HEADER Header
;
278 UINT32 ProximityDomain
;
279 UINT16 Reserved
; /* Reserved, must be zero */
284 UINT64 Reserved2
; /* Reserved, must be zero */
286 } ACPI_SRAT_MEM_AFFINITY
;
290 #define ACPI_SRAT_MEM_ENABLED (1) /* 00: Use affinity structure */
291 #define ACPI_SRAT_MEM_HOT_PLUGGABLE (1<<1) /* 01: Memory region is hot pluggable */
292 #define ACPI_SRAT_MEM_NON_VOLATILE (1<<2) /* 02: Memory region is non-volatile */
295 /* 2: Processor Local X2_APIC Affinity (ACPI 4.0) */
297 typedef struct acpi_srat_x2apic_cpu_affinity
299 ACPI_SUBTABLE_HEADER Header
;
300 UINT16 Reserved
; /* Reserved, must be zero */
301 UINT32 ProximityDomain
;
307 } ACPI_SRAT_X2APIC_CPU_AFFINITY
;
309 /* Flags for ACPI_SRAT_CPU_AFFINITY and ACPI_SRAT_X2APIC_CPU_AFFINITY */
311 #define ACPI_SRAT_CPU_ENABLED (1) /* 00: Use affinity structure */
314 /* 3: GICC Affinity (ACPI 5.1) */
316 typedef struct acpi_srat_gicc_affinity
318 ACPI_SUBTABLE_HEADER Header
;
319 UINT32 ProximityDomain
;
320 UINT32 AcpiProcessorUid
;
324 } ACPI_SRAT_GICC_AFFINITY
;
326 /* Flags for ACPI_SRAT_GICC_AFFINITY */
328 #define ACPI_SRAT_GICC_ENABLED (1) /* 00: Use affinity structure */
331 /* 4: GCC ITS Affinity (ACPI 6.2) */
333 typedef struct acpi_srat_gic_its_affinity
335 ACPI_SUBTABLE_HEADER Header
;
336 UINT32 ProximityDomain
;
340 } ACPI_SRAT_GIC_ITS_AFFINITY
;
343 /* 5: Generic Initiator Affinity Structure (ACPI 6.3) */
345 typedef struct acpi_srat_generic_affinity
347 ACPI_SUBTABLE_HEADER Header
;
349 UINT8 DeviceHandleType
;
350 UINT32 ProximityDomain
;
351 UINT8 DeviceHandle
[16];
355 } ACPI_SRAT_GENERIC_AFFINITY
;
357 /* Flags for ACPI_SRAT_GENERIC_AFFINITY */
359 #define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */
360 #define ACPI_SRAT_ARCHITECTURAL_TRANSACTIONS (1<<1) /* ACPI 6.4 */
362 /*******************************************************************************
364 * STAO - Status Override Table (_STA override) - ACPI 6.0
367 * Conforms to "ACPI Specification for Status Override Table"
370 ******************************************************************************/
372 typedef struct acpi_table_stao
374 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
380 /*******************************************************************************
382 * TCPA - Trusted Computing Platform Alliance table
385 * TCG Hardware Interface Table for TPM 1.2 Clients and Servers
387 * Conforms to "TCG ACPI Specification, Family 1.2 and 2.0",
388 * Version 1.2, Revision 8
391 * NOTE: There are two versions of the table with the same signature --
392 * the client version and the server version. The common PlatformClass
393 * field is used to differentiate the two types of tables.
395 ******************************************************************************/
397 typedef struct acpi_table_tcpa_hdr
399 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
400 UINT16 PlatformClass
;
402 } ACPI_TABLE_TCPA_HDR
;
405 * Values for PlatformClass above.
406 * This is how the client and server subtables are differentiated
408 #define ACPI_TCPA_CLIENT_TABLE 0
409 #define ACPI_TCPA_SERVER_TABLE 1
412 typedef struct acpi_table_tcpa_client
414 UINT32 MinimumLogLength
; /* Minimum length for the event log area */
415 UINT64 LogAddress
; /* Address of the event log area */
417 } ACPI_TABLE_TCPA_CLIENT
;
419 typedef struct acpi_table_tcpa_server
422 UINT64 MinimumLogLength
; /* Minimum length for the event log area */
423 UINT64 LogAddress
; /* Address of the event log area */
426 UINT8 InterruptFlags
;
429 UINT32 GlobalInterrupt
;
430 ACPI_GENERIC_ADDRESS Address
;
432 ACPI_GENERIC_ADDRESS ConfigAddress
;
434 UINT8 Bus
; /* PCI Bus/Segment/Function numbers */
438 } ACPI_TABLE_TCPA_SERVER
;
440 /* Values for DeviceFlags above */
442 #define ACPI_TCPA_PCI_DEVICE (1)
443 #define ACPI_TCPA_BUS_PNP (1<<1)
444 #define ACPI_TCPA_ADDRESS_VALID (1<<2)
446 /* Values for InterruptFlags above */
448 #define ACPI_TCPA_INTERRUPT_MODE (1)
449 #define ACPI_TCPA_INTERRUPT_POLARITY (1<<1)
450 #define ACPI_TCPA_SCI_VIA_GPE (1<<2)
451 #define ACPI_TCPA_GLOBAL_INTERRUPT (1<<3)
454 /*******************************************************************************
456 * TPM2 - Trusted Platform Module (TPM) 2.0 Hardware Interface Table
459 * TCG Hardware Interface Table for TPM 2.0 Clients and Servers
461 * Conforms to "TCG ACPI Specification, Family 1.2 and 2.0",
462 * Version 1.2, Revision 8
465 ******************************************************************************/
469 typedef struct acpi_table_tpm23
471 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
473 UINT64 ControlAddress
;
478 /* Value for StartMethod above */
480 #define ACPI_TPM23_ACPI_START_METHOD 2
483 * Optional trailer for revision 3. If start method is 2, there is a 4 byte
484 * reserved area of all zeros.
486 typedef struct acpi_tmp23_trailer
490 } ACPI_TPM23_TRAILER
;
495 typedef struct acpi_table_tpm2
497 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
498 UINT16 PlatformClass
;
500 UINT64 ControlAddress
;
503 /* Platform-specific data follows */
507 /* Values for StartMethod above */
509 #define ACPI_TPM2_NOT_ALLOWED 0
510 #define ACPI_TPM2_RESERVED1 1
511 #define ACPI_TPM2_START_METHOD 2
512 #define ACPI_TPM2_RESERVED3 3
513 #define ACPI_TPM2_RESERVED4 4
514 #define ACPI_TPM2_RESERVED5 5
515 #define ACPI_TPM2_MEMORY_MAPPED 6
516 #define ACPI_TPM2_COMMAND_BUFFER 7
517 #define ACPI_TPM2_COMMAND_BUFFER_WITH_START_METHOD 8
518 #define ACPI_TPM2_RESERVED9 9
519 #define ACPI_TPM2_RESERVED10 10
520 #define ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC 11 /* V1.2 Rev 8 */
521 #define ACPI_TPM2_RESERVED 12
524 /* Optional trailer appears after any StartMethod subtables */
526 typedef struct acpi_tpm2_trailer
528 UINT8 MethodParameters
[12];
529 UINT32 MinimumLogLength
; /* Minimum length for the event log area */
530 UINT64 LogAddress
; /* Address of the event log area */
536 * Subtables (StartMethod-specific)
539 /* 11: Start Method for ARM SMC (V1.2 Rev 8) */
541 typedef struct acpi_tpm2_arm_smc
543 UINT32 GlobalInterrupt
;
544 UINT8 InterruptFlags
;
545 UINT8 OperationFlags
;
551 /* Values for InterruptFlags above */
553 #define ACPI_TPM2_INTERRUPT_SUPPORT (1)
555 /* Values for OperationFlags above */
557 #define ACPI_TPM2_IDLE_SUPPORT (1)
560 /*******************************************************************************
562 * UEFI - UEFI Boot optimization Table
565 * Conforms to "Unified Extensible Firmware Interface Specification",
566 * Version 2.3, May 8, 2009
568 ******************************************************************************/
570 typedef struct acpi_table_uefi
572 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
573 UINT8 Identifier
[16]; /* UUID identifier */
574 UINT16 DataOffset
; /* Offset of remaining data in table */
579 /*******************************************************************************
581 * VIOT - Virtual I/O Translation Table
584 ******************************************************************************/
586 typedef struct acpi_table_viot
588 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
595 /* VIOT subtable header */
597 typedef struct acpi_viot_header
605 /* Values for Type field above */
607 enum AcpiViotNodeType
609 ACPI_VIOT_NODE_PCI_RANGE
= 0x01,
610 ACPI_VIOT_NODE_MMIO
= 0x02,
611 ACPI_VIOT_NODE_VIRTIO_IOMMU_PCI
= 0x03,
612 ACPI_VIOT_NODE_VIRTIO_IOMMU_MMIO
= 0x04,
613 ACPI_VIOT_RESERVED
= 0x05
618 typedef struct acpi_viot_pci_range
620 ACPI_VIOT_HEADER Header
;
621 UINT32 EndpointStart
;
629 } ACPI_VIOT_PCI_RANGE
;
631 typedef struct acpi_viot_mmio
633 ACPI_VIOT_HEADER Header
;
641 typedef struct acpi_viot_virtio_iommu_pci
643 ACPI_VIOT_HEADER Header
;
648 } ACPI_VIOT_VIRTIO_IOMMU_PCI
;
650 typedef struct acpi_viot_virtio_iommu_mmio
652 ACPI_VIOT_HEADER Header
;
656 } ACPI_VIOT_VIRTIO_IOMMU_MMIO
;
659 /*******************************************************************************
661 * WAET - Windows ACPI Emulated devices Table
664 * Conforms to "Windows ACPI Emulated Devices Table", version 1.0, April 6, 2009
666 ******************************************************************************/
668 typedef struct acpi_table_waet
670 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
675 /* Masks for Flags field above */
677 #define ACPI_WAET_RTC_NO_ACK (1) /* RTC requires no int acknowledge */
678 #define ACPI_WAET_TIMER_ONE_READ (1<<1) /* PM timer requires only one read */
681 /*******************************************************************************
683 * WDAT - Watchdog Action Table
686 * Conforms to "Hardware Watchdog Timers Design Specification",
687 * Copyright 2006 Microsoft Corporation.
689 ******************************************************************************/
691 typedef struct acpi_table_wdat
693 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
694 UINT32 HeaderLength
; /* Watchdog Header Length */
695 UINT16 PciSegment
; /* PCI Segment number */
696 UINT8 PciBus
; /* PCI Bus number */
697 UINT8 PciDevice
; /* PCI Device number */
698 UINT8 PciFunction
; /* PCI Function number */
700 UINT32 TimerPeriod
; /* Period of one timer count (msec) */
701 UINT32 MaxCount
; /* Maximum counter value supported */
702 UINT32 MinCount
; /* Minimum counter value */
705 UINT32 Entries
; /* Number of watchdog entries that follow */
709 /* Masks for Flags field above */
711 #define ACPI_WDAT_ENABLED (1)
712 #define ACPI_WDAT_STOPPED 0x80
715 /* WDAT Instruction Entries (actions) */
717 typedef struct acpi_wdat_entry
722 ACPI_GENERIC_ADDRESS RegisterRegion
;
723 UINT32 Value
; /* Value used with Read/Write register */
724 UINT32 Mask
; /* Bitmask required for this register instruction */
728 /* Values for Action field above */
733 ACPI_WDAT_GET_CURRENT_COUNTDOWN
= 4,
734 ACPI_WDAT_GET_COUNTDOWN
= 5,
735 ACPI_WDAT_SET_COUNTDOWN
= 6,
736 ACPI_WDAT_GET_RUNNING_STATE
= 8,
737 ACPI_WDAT_SET_RUNNING_STATE
= 9,
738 ACPI_WDAT_GET_STOPPED_STATE
= 10,
739 ACPI_WDAT_SET_STOPPED_STATE
= 11,
740 ACPI_WDAT_GET_REBOOT
= 16,
741 ACPI_WDAT_SET_REBOOT
= 17,
742 ACPI_WDAT_GET_SHUTDOWN
= 18,
743 ACPI_WDAT_SET_SHUTDOWN
= 19,
744 ACPI_WDAT_GET_STATUS
= 32,
745 ACPI_WDAT_SET_STATUS
= 33,
746 ACPI_WDAT_ACTION_RESERVED
= 34 /* 34 and greater are reserved */
749 /* Values for Instruction field above */
751 enum AcpiWdatInstructions
753 ACPI_WDAT_READ_VALUE
= 0,
754 ACPI_WDAT_READ_COUNTDOWN
= 1,
755 ACPI_WDAT_WRITE_VALUE
= 2,
756 ACPI_WDAT_WRITE_COUNTDOWN
= 3,
757 ACPI_WDAT_INSTRUCTION_RESERVED
= 4, /* 4 and greater are reserved */
758 ACPI_WDAT_PRESERVE_REGISTER
= 0x80 /* Except for this value */
762 /*******************************************************************************
764 * WDDT - Watchdog Descriptor Table
767 * Conforms to "Using the Intel ICH Family Watchdog Timer (WDT)",
768 * Version 001, September 2002
770 ******************************************************************************/
772 typedef struct acpi_table_wddt
774 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
778 ACPI_GENERIC_ADDRESS Address
;
779 UINT16 MaxCount
; /* Maximum counter value supported */
780 UINT16 MinCount
; /* Minimum counter value supported */
787 /* Flags for Status field above */
789 #define ACPI_WDDT_AVAILABLE (1)
790 #define ACPI_WDDT_ACTIVE (1<<1)
791 #define ACPI_WDDT_TCO_OS_OWNED (1<<2)
792 #define ACPI_WDDT_USER_RESET (1<<11)
793 #define ACPI_WDDT_WDT_RESET (1<<12)
794 #define ACPI_WDDT_POWER_FAIL (1<<13)
795 #define ACPI_WDDT_UNKNOWN_RESET (1<<14)
797 /* Flags for Capability field above */
799 #define ACPI_WDDT_AUTO_RESET (1)
800 #define ACPI_WDDT_ALERT_SUPPORT (1<<1)
803 /*******************************************************************************
805 * WDRT - Watchdog Resource Table
808 * Conforms to "Watchdog Timer Hardware Requirements for Windows Server 2003",
809 * Version 1.01, August 28, 2006
811 ******************************************************************************/
813 typedef struct acpi_table_wdrt
815 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
816 ACPI_GENERIC_ADDRESS ControlRegister
;
817 ACPI_GENERIC_ADDRESS CountRegister
;
820 UINT8 PciBus
; /* PCI Bus number */
821 UINT8 PciDevice
; /* PCI Device number */
822 UINT8 PciFunction
; /* PCI Function number */
823 UINT8 PciSegment
; /* PCI Segment number */
824 UINT16 MaxCount
; /* Maximum counter value supported */
830 /*******************************************************************************
832 * WPBT - Windows Platform Environment Table (ACPI 6.0)
835 * Conforms to "Windows Platform Binary Table (WPBT)" 29 November 2011
837 ******************************************************************************/
839 typedef struct acpi_table_wpbt
841 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
843 UINT64 HandoffAddress
;
846 UINT16 ArgumentsLength
;
850 typedef struct acpi_wpbt_unicode
852 UINT16
*UnicodeString
;
857 /*******************************************************************************
859 * WSMT - Windows SMM Security Mitigations Table
862 * Conforms to "Windows SMM Security Mitigations Table",
863 * Version 1.0, April 18, 2016
865 ******************************************************************************/
867 typedef struct acpi_table_wsmt
869 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
870 UINT32 ProtectionFlags
;
874 /* Flags for ProtectionFlags field above */
876 #define ACPI_WSMT_FIXED_COMM_BUFFERS (1)
877 #define ACPI_WSMT_COMM_BUFFER_NESTED_PTR_PROTECTION (2)
878 #define ACPI_WSMT_SYSTEM_RESOURCE_PROTECTION (4)
881 /*******************************************************************************
883 * XENV - Xen Environment Table (ACPI 6.0)
886 * Conforms to "ACPI Specification for Xen Environment Table" 4 January 2015
888 ******************************************************************************/
890 typedef struct acpi_table_xenv
892 ACPI_TABLE_HEADER Header
; /* Common ACPI table header */
893 UINT64 GrantTableAddress
;
894 UINT64 GrantTableSize
;
895 UINT32 EventInterrupt
;
901 /* Reset to default packing */
905 #endif /* __ACTBL3_H__ */