xref: /freebsd/sys/contrib/dev/acpica/include/actbl3.h (revision 1b7a2680fba589daf6f700565214919cb941ab56)
13f0275a0SJung-uk Kim /******************************************************************************
23f0275a0SJung-uk Kim  *
33f0275a0SJung-uk Kim  * Name: actbl3.h - ACPI Table Definitions
43f0275a0SJung-uk Kim  *
53f0275a0SJung-uk Kim  *****************************************************************************/
63f0275a0SJung-uk Kim 
70d84335fSJung-uk Kim /******************************************************************************
80d84335fSJung-uk Kim  *
90d84335fSJung-uk Kim  * 1. Copyright Notice
100d84335fSJung-uk Kim  *
1129f37e9bSJung-uk Kim  * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
123f0275a0SJung-uk Kim  * All rights reserved.
133f0275a0SJung-uk Kim  *
140d84335fSJung-uk Kim  * 2. License
150d84335fSJung-uk Kim  *
160d84335fSJung-uk Kim  * 2.1. This is your license from Intel Corp. under its intellectual property
170d84335fSJung-uk Kim  * rights. You may have additional license terms from the party that provided
180d84335fSJung-uk Kim  * you this software, covering your right to use that party's intellectual
190d84335fSJung-uk Kim  * property rights.
200d84335fSJung-uk Kim  *
210d84335fSJung-uk Kim  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
220d84335fSJung-uk Kim  * copy of the source code appearing in this file ("Covered Code") an
230d84335fSJung-uk Kim  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
240d84335fSJung-uk Kim  * base code distributed originally by Intel ("Original Intel Code") to copy,
250d84335fSJung-uk Kim  * make derivatives, distribute, use and display any portion of the Covered
260d84335fSJung-uk Kim  * Code in any form, with the right to sublicense such rights; and
270d84335fSJung-uk Kim  *
280d84335fSJung-uk Kim  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
290d84335fSJung-uk Kim  * license (with the right to sublicense), under only those claims of Intel
300d84335fSJung-uk Kim  * patents that are infringed by the Original Intel Code, to make, use, sell,
310d84335fSJung-uk Kim  * offer to sell, and import the Covered Code and derivative works thereof
320d84335fSJung-uk Kim  * solely to the minimum extent necessary to exercise the above copyright
330d84335fSJung-uk Kim  * license, and in no event shall the patent license extend to any additions
340d84335fSJung-uk Kim  * to or modifications of the Original Intel Code. No other license or right
350d84335fSJung-uk Kim  * is granted directly or by implication, estoppel or otherwise;
360d84335fSJung-uk Kim  *
370d84335fSJung-uk Kim  * The above copyright and patent license is granted only if the following
380d84335fSJung-uk Kim  * conditions are met:
390d84335fSJung-uk Kim  *
400d84335fSJung-uk Kim  * 3. Conditions
410d84335fSJung-uk Kim  *
420d84335fSJung-uk Kim  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
430d84335fSJung-uk Kim  * Redistribution of source code of any substantial portion of the Covered
440d84335fSJung-uk Kim  * Code or modification with rights to further distribute source must include
450d84335fSJung-uk Kim  * the above Copyright Notice, the above License, this list of Conditions,
460d84335fSJung-uk Kim  * and the following Disclaimer and Export Compliance provision. In addition,
470d84335fSJung-uk Kim  * Licensee must cause all Covered Code to which Licensee contributes to
480d84335fSJung-uk Kim  * contain a file documenting the changes Licensee made to create that Covered
490d84335fSJung-uk Kim  * Code and the date of any change. Licensee must include in that file the
500d84335fSJung-uk Kim  * documentation of any changes made by any predecessor Licensee. Licensee
510d84335fSJung-uk Kim  * must include a prominent statement that the modification is derived,
520d84335fSJung-uk Kim  * directly or indirectly, from Original Intel Code.
530d84335fSJung-uk Kim  *
540d84335fSJung-uk Kim  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
550d84335fSJung-uk Kim  * Redistribution of source code of any substantial portion of the Covered
560d84335fSJung-uk Kim  * Code or modification without rights to further distribute source must
570d84335fSJung-uk Kim  * include the following Disclaimer and Export Compliance provision in the
580d84335fSJung-uk Kim  * documentation and/or other materials provided with distribution. In
590d84335fSJung-uk Kim  * addition, Licensee may not authorize further sublicense of source of any
600d84335fSJung-uk Kim  * portion of the Covered Code, and must include terms to the effect that the
610d84335fSJung-uk Kim  * license from Licensee to its licensee is limited to the intellectual
620d84335fSJung-uk Kim  * property embodied in the software Licensee provides to its licensee, and
630d84335fSJung-uk Kim  * not to intellectual property embodied in modifications its licensee may
640d84335fSJung-uk Kim  * make.
650d84335fSJung-uk Kim  *
660d84335fSJung-uk Kim  * 3.3. Redistribution of Executable. Redistribution in executable form of any
670d84335fSJung-uk Kim  * substantial portion of the Covered Code or modification must reproduce the
680d84335fSJung-uk Kim  * above Copyright Notice, and the following Disclaimer and Export Compliance
690d84335fSJung-uk Kim  * provision in the documentation and/or other materials provided with the
700d84335fSJung-uk Kim  * distribution.
710d84335fSJung-uk Kim  *
720d84335fSJung-uk Kim  * 3.4. Intel retains all right, title, and interest in and to the Original
730d84335fSJung-uk Kim  * Intel Code.
740d84335fSJung-uk Kim  *
750d84335fSJung-uk Kim  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
760d84335fSJung-uk Kim  * Intel shall be used in advertising or otherwise to promote the sale, use or
770d84335fSJung-uk Kim  * other dealings in products derived from or relating to the Covered Code
780d84335fSJung-uk Kim  * without prior written authorization from Intel.
790d84335fSJung-uk Kim  *
800d84335fSJung-uk Kim  * 4. Disclaimer and Export Compliance
810d84335fSJung-uk Kim  *
820d84335fSJung-uk Kim  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
830d84335fSJung-uk Kim  * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
840d84335fSJung-uk Kim  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
850d84335fSJung-uk Kim  * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
860d84335fSJung-uk Kim  * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
870d84335fSJung-uk Kim  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
880d84335fSJung-uk Kim  * PARTICULAR PURPOSE.
890d84335fSJung-uk Kim  *
900d84335fSJung-uk Kim  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
910d84335fSJung-uk Kim  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
920d84335fSJung-uk Kim  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
930d84335fSJung-uk Kim  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
940d84335fSJung-uk Kim  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
950d84335fSJung-uk Kim  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
960d84335fSJung-uk Kim  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
970d84335fSJung-uk Kim  * LIMITED REMEDY.
980d84335fSJung-uk Kim  *
990d84335fSJung-uk Kim  * 4.3. Licensee shall not export, either directly or indirectly, any of this
1000d84335fSJung-uk Kim  * software or system incorporating such software without first obtaining any
1010d84335fSJung-uk Kim  * required license or other approval from the U. S. Department of Commerce or
1020d84335fSJung-uk Kim  * any other agency or department of the United States Government. In the
1030d84335fSJung-uk Kim  * event Licensee exports any such software from the United States or
1040d84335fSJung-uk Kim  * re-exports any such software from a foreign destination, Licensee shall
1050d84335fSJung-uk Kim  * ensure that the distribution and export/re-export of the software is in
1060d84335fSJung-uk Kim  * compliance with all laws, regulations, orders, or other restrictions of the
1070d84335fSJung-uk Kim  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
1080d84335fSJung-uk Kim  * any of its subsidiaries will export/re-export any technical data, process,
1090d84335fSJung-uk Kim  * software, or service, directly or indirectly, to any country for which the
1100d84335fSJung-uk Kim  * United States government or any agency thereof requires an export license,
1110d84335fSJung-uk Kim  * other governmental approval, or letter of assurance, without first obtaining
1120d84335fSJung-uk Kim  * such license, approval or letter.
1130d84335fSJung-uk Kim  *
1140d84335fSJung-uk Kim  *****************************************************************************
1150d84335fSJung-uk Kim  *
1160d84335fSJung-uk Kim  * Alternatively, you may choose to be licensed under the terms of the
1170d84335fSJung-uk Kim  * following license:
1180d84335fSJung-uk Kim  *
1193f0275a0SJung-uk Kim  * Redistribution and use in source and binary forms, with or without
1203f0275a0SJung-uk Kim  * modification, are permitted provided that the following conditions
1213f0275a0SJung-uk Kim  * are met:
1223f0275a0SJung-uk Kim  * 1. Redistributions of source code must retain the above copyright
1233f0275a0SJung-uk Kim  *    notice, this list of conditions, and the following disclaimer,
1243f0275a0SJung-uk Kim  *    without modification.
1253f0275a0SJung-uk Kim  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
1263f0275a0SJung-uk Kim  *    substantially similar to the "NO WARRANTY" disclaimer below
1273f0275a0SJung-uk Kim  *    ("Disclaimer") and any redistribution must be conditioned upon
1283f0275a0SJung-uk Kim  *    including a substantially similar Disclaimer requirement for further
1293f0275a0SJung-uk Kim  *    binary redistribution.
1303f0275a0SJung-uk Kim  * 3. Neither the names of the above-listed copyright holders nor the names
1313f0275a0SJung-uk Kim  *    of any contributors may be used to endorse or promote products derived
1323f0275a0SJung-uk Kim  *    from this software without specific prior written permission.
1333f0275a0SJung-uk Kim  *
1340d84335fSJung-uk Kim  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1350d84335fSJung-uk Kim  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1360d84335fSJung-uk Kim  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1370d84335fSJung-uk Kim  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1380d84335fSJung-uk Kim  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1390d84335fSJung-uk Kim  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1400d84335fSJung-uk Kim  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1410d84335fSJung-uk Kim  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1420d84335fSJung-uk Kim  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1430d84335fSJung-uk Kim  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1440d84335fSJung-uk Kim  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1450d84335fSJung-uk Kim  *
1460d84335fSJung-uk Kim  * Alternatively, you may choose to be licensed under the terms of the
1473f0275a0SJung-uk Kim  * GNU General Public License ("GPL") version 2 as published by the Free
1483f0275a0SJung-uk Kim  * Software Foundation.
1493f0275a0SJung-uk Kim  *
1500d84335fSJung-uk Kim  *****************************************************************************/
1513f0275a0SJung-uk Kim 
1523f0275a0SJung-uk Kim #ifndef __ACTBL3_H__
1533f0275a0SJung-uk Kim #define __ACTBL3_H__
1543f0275a0SJung-uk Kim 
1553f0275a0SJung-uk Kim 
1563f0275a0SJung-uk Kim /*******************************************************************************
1573f0275a0SJung-uk Kim  *
158ff879b07SJung-uk Kim  * Additional ACPI Tables
1593f0275a0SJung-uk Kim  *
1603f0275a0SJung-uk Kim  * These tables are not consumed directly by the ACPICA subsystem, but are
1613f0275a0SJung-uk Kim  * included here to support device drivers and the AML disassembler.
1623f0275a0SJung-uk Kim  *
1633f0275a0SJung-uk Kim  ******************************************************************************/
1643f0275a0SJung-uk Kim 
1653f0275a0SJung-uk Kim 
1663f0275a0SJung-uk Kim /*
1673f0275a0SJung-uk Kim  * Values for description table header signatures for tables defined in this
1683f0275a0SJung-uk Kim  * file. Useful because they make it more difficult to inadvertently type in
1693f0275a0SJung-uk Kim  * the wrong signature.
1703f0275a0SJung-uk Kim  */
171ff879b07SJung-uk Kim #define ACPI_SIG_SLIC           "SLIC"      /* Software Licensing Description Table */
172ff879b07SJung-uk Kim #define ACPI_SIG_SLIT           "SLIT"      /* System Locality Distance Information Table */
173ff879b07SJung-uk Kim #define ACPI_SIG_SPCR           "SPCR"      /* Serial Port Console Redirection table */
174ff879b07SJung-uk Kim #define ACPI_SIG_SPMI           "SPMI"      /* Server Platform Management Interface table */
175ff879b07SJung-uk Kim #define ACPI_SIG_SRAT           "SRAT"      /* System Resource Affinity Table */
176a371a5fdSJung-uk Kim #define ACPI_SIG_STAO           "STAO"      /* Status Override table */
177ff879b07SJung-uk Kim #define ACPI_SIG_TCPA           "TCPA"      /* Trusted Computing Platform Alliance table */
178ff879b07SJung-uk Kim #define ACPI_SIG_TPM2           "TPM2"      /* Trusted Platform Module 2.0 H/W interface table */
179ff879b07SJung-uk Kim #define ACPI_SIG_UEFI           "UEFI"      /* Uefi Boot Optimization Table */
180cfd1ed46SJung-uk Kim #define ACPI_SIG_VIOT           "VIOT"      /* Virtual I/O Translation Table */
181ff879b07SJung-uk Kim #define ACPI_SIG_WAET           "WAET"      /* Windows ACPI Emulated devices Table */
182ff879b07SJung-uk Kim #define ACPI_SIG_WDAT           "WDAT"      /* Watchdog Action Table */
183ff879b07SJung-uk Kim #define ACPI_SIG_WDDT           "WDDT"      /* Watchdog Timer Description Table */
184ff879b07SJung-uk Kim #define ACPI_SIG_WDRT           "WDRT"      /* Watchdog Resource Table */
185a371a5fdSJung-uk Kim #define ACPI_SIG_WPBT           "WPBT"      /* Windows Platform Binary Table */
1863ee58df5SJung-uk Kim #define ACPI_SIG_WSMT           "WSMT"      /* Windows SMM Security Mitigations Table */
187a371a5fdSJung-uk Kim #define ACPI_SIG_XENV           "XENV"      /* Xen Environment table */
188ff879b07SJung-uk Kim #define ACPI_SIG_XXXX           "XXXX"      /* Intermediate AML header for ASL/ASL+ converter */
1893f0275a0SJung-uk Kim 
1903f0275a0SJung-uk Kim /*
1913f0275a0SJung-uk Kim  * All tables must be byte-packed to match the ACPI specification, since
1923f0275a0SJung-uk Kim  * the tables are provided by the system BIOS.
1933f0275a0SJung-uk Kim  */
1943f0275a0SJung-uk Kim #pragma pack(1)
1953f0275a0SJung-uk Kim 
1963f0275a0SJung-uk Kim /*
1971df130f1SJung-uk Kim  * Note: C bitfields are not used for this reason:
1981df130f1SJung-uk Kim  *
1991df130f1SJung-uk Kim  * "Bitfields are great and easy to read, but unfortunately the C language
2001df130f1SJung-uk Kim  * does not specify the layout of bitfields in memory, which means they are
2011df130f1SJung-uk Kim  * essentially useless for dealing with packed data in on-disk formats or
2021df130f1SJung-uk Kim  * binary wire protocols." (Or ACPI tables and buffers.) "If you ask me,
2031df130f1SJung-uk Kim  * this decision was a design error in C. Ritchie could have picked an order
2041df130f1SJung-uk Kim  * and stuck with it." Norman Ramsey.
2051df130f1SJung-uk Kim  * See http://stackoverflow.com/a/1053662/41661
2063f0275a0SJung-uk Kim  */
2073f0275a0SJung-uk Kim 
2083f0275a0SJung-uk Kim 
2093f0275a0SJung-uk Kim /*******************************************************************************
2103f0275a0SJung-uk Kim  *
211ff879b07SJung-uk Kim  * SLIC - Software Licensing Description Table
212ff879b07SJung-uk Kim  *
213ff879b07SJung-uk Kim  * Conforms to "Microsoft Software Licensing Tables (SLIC and MSDM)",
214ff879b07SJung-uk Kim  * November 29, 2011. Copyright 2011 Microsoft
215ff879b07SJung-uk Kim  *
216ff879b07SJung-uk Kim  ******************************************************************************/
217ff879b07SJung-uk Kim 
218ff879b07SJung-uk Kim /* Basic SLIC table is only the common ACPI header */
219ff879b07SJung-uk Kim 
220ff879b07SJung-uk Kim typedef struct acpi_table_slic
221ff879b07SJung-uk Kim {
222ff879b07SJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
223ff879b07SJung-uk Kim 
224ff879b07SJung-uk Kim } ACPI_TABLE_SLIC;
225ff879b07SJung-uk Kim 
226ff879b07SJung-uk Kim 
227ff879b07SJung-uk Kim /*******************************************************************************
228ff879b07SJung-uk Kim  *
229ff879b07SJung-uk Kim  * SLIT - System Locality Distance Information Table
2303f0275a0SJung-uk Kim  *        Version 1
2313f0275a0SJung-uk Kim  *
2323f0275a0SJung-uk Kim  ******************************************************************************/
2333f0275a0SJung-uk Kim 
234ff879b07SJung-uk Kim typedef struct acpi_table_slit
2353f0275a0SJung-uk Kim {
2363f0275a0SJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
237ff879b07SJung-uk Kim     UINT64                  LocalityCount;
238ff879b07SJung-uk Kim     UINT8                   Entry[1];           /* Real size = localities^2 */
2393f0275a0SJung-uk Kim 
240ff879b07SJung-uk Kim } ACPI_TABLE_SLIT;
241af051161SJung-uk Kim 
2423f0275a0SJung-uk Kim 
2433f0275a0SJung-uk Kim /*******************************************************************************
2443f0275a0SJung-uk Kim  *
245ff879b07SJung-uk Kim  * SPCR - Serial Port Console Redirection table
246313a0c13SJung-uk Kim  *        Version 2
2473f0275a0SJung-uk Kim  *
248ff879b07SJung-uk Kim  * Conforms to "Serial Port Console Redirection Table",
249ff879b07SJung-uk Kim  * Version 1.03, August 10, 2015
250ff879b07SJung-uk Kim  *
2513f0275a0SJung-uk Kim  ******************************************************************************/
2523f0275a0SJung-uk Kim 
253ff879b07SJung-uk Kim typedef struct acpi_table_spcr
2543f0275a0SJung-uk Kim {
2553f0275a0SJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
256ff879b07SJung-uk Kim     UINT8                   InterfaceType;      /* 0=full 16550, 1=subset of 16550 */
257ff879b07SJung-uk Kim     UINT8                   Reserved[3];
258ff879b07SJung-uk Kim     ACPI_GENERIC_ADDRESS    SerialPort;
259ff879b07SJung-uk Kim     UINT8                   InterruptType;
260ff879b07SJung-uk Kim     UINT8                   PcInterrupt;
261ff879b07SJung-uk Kim     UINT32                  Interrupt;
262ff879b07SJung-uk Kim     UINT8                   BaudRate;
263ff879b07SJung-uk Kim     UINT8                   Parity;
264ff879b07SJung-uk Kim     UINT8                   StopBits;
265ff879b07SJung-uk Kim     UINT8                   FlowControl;
266ff879b07SJung-uk Kim     UINT8                   TerminalType;
267ff879b07SJung-uk Kim     UINT8                   Reserved1;
268ff879b07SJung-uk Kim     UINT16                  PciDeviceId;
269ff879b07SJung-uk Kim     UINT16                  PciVendorId;
270ff879b07SJung-uk Kim     UINT8                   PciBus;
271ff879b07SJung-uk Kim     UINT8                   PciDevice;
272ff879b07SJung-uk Kim     UINT8                   PciFunction;
273ff879b07SJung-uk Kim     UINT32                  PciFlags;
274ff879b07SJung-uk Kim     UINT8                   PciSegment;
275ff879b07SJung-uk Kim     UINT32                  Reserved2;
2763f0275a0SJung-uk Kim 
277ff879b07SJung-uk Kim } ACPI_TABLE_SPCR;
2783f0275a0SJung-uk Kim 
279ff879b07SJung-uk Kim /* Masks for PciFlags field above */
2803f0275a0SJung-uk Kim 
281ff879b07SJung-uk Kim #define ACPI_SPCR_DO_NOT_DISABLE    (1)
282ff879b07SJung-uk Kim 
283ff879b07SJung-uk Kim /* Values for Interface Type: See the definition of the DBG2 table */
2843f0275a0SJung-uk Kim 
2853f0275a0SJung-uk Kim 
286ff879b07SJung-uk Kim /*******************************************************************************
287ff879b07SJung-uk Kim  *
288ff879b07SJung-uk Kim  * SPMI - Server Platform Management Interface table
289ff879b07SJung-uk Kim  *        Version 5
290ff879b07SJung-uk Kim  *
291ff879b07SJung-uk Kim  * Conforms to "Intelligent Platform Management Interface Specification
292ff879b07SJung-uk Kim  * Second Generation v2.0", Document Revision 1.0, February 12, 2004 with
293ff879b07SJung-uk Kim  * June 12, 2009 markup.
294ff879b07SJung-uk Kim  *
295ff879b07SJung-uk Kim  ******************************************************************************/
296313a0c13SJung-uk Kim 
297ff879b07SJung-uk Kim typedef struct acpi_table_spmi
298313a0c13SJung-uk Kim {
299ff879b07SJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
300ff879b07SJung-uk Kim     UINT8                   InterfaceType;
301ff879b07SJung-uk Kim     UINT8                   Reserved;           /* Must be 1 */
302ff879b07SJung-uk Kim     UINT16                  SpecRevision;       /* Version of IPMI */
303ff879b07SJung-uk Kim     UINT8                   InterruptType;
304ff879b07SJung-uk Kim     UINT8                   GpeNumber;          /* GPE assigned */
305ff879b07SJung-uk Kim     UINT8                   Reserved1;
306ff879b07SJung-uk Kim     UINT8                   PciDeviceFlag;
307ff879b07SJung-uk Kim     UINT32                  Interrupt;
308ff879b07SJung-uk Kim     ACPI_GENERIC_ADDRESS    IpmiRegister;
309ff879b07SJung-uk Kim     UINT8                   PciSegment;
310ff879b07SJung-uk Kim     UINT8                   PciBus;
311ff879b07SJung-uk Kim     UINT8                   PciDevice;
312ff879b07SJung-uk Kim     UINT8                   PciFunction;
313ff879b07SJung-uk Kim     UINT8                   Reserved2;
314313a0c13SJung-uk Kim 
315ff879b07SJung-uk Kim } ACPI_TABLE_SPMI;
316313a0c13SJung-uk Kim 
317ff879b07SJung-uk Kim /* Values for InterfaceType above */
318313a0c13SJung-uk Kim 
319ff879b07SJung-uk Kim enum AcpiSpmiInterfaceTypes
320313a0c13SJung-uk Kim {
321ff879b07SJung-uk Kim     ACPI_SPMI_NOT_USED              = 0,
322ff879b07SJung-uk Kim     ACPI_SPMI_KEYBOARD              = 1,
323ff879b07SJung-uk Kim     ACPI_SPMI_SMI                   = 2,
324ff879b07SJung-uk Kim     ACPI_SPMI_BLOCK_TRANSFER        = 3,
325ff879b07SJung-uk Kim     ACPI_SPMI_SMBUS                 = 4,
326ff879b07SJung-uk Kim     ACPI_SPMI_RESERVED              = 5         /* 5 and above are reserved */
327313a0c13SJung-uk Kim };
328313a0c13SJung-uk Kim 
329313a0c13SJung-uk Kim 
3303f0275a0SJung-uk Kim /*******************************************************************************
3313f0275a0SJung-uk Kim  *
332ff879b07SJung-uk Kim  * SRAT - System Resource Affinity Table
333ff879b07SJung-uk Kim  *        Version 3
3343f0275a0SJung-uk Kim  *
3353f0275a0SJung-uk Kim  ******************************************************************************/
3363f0275a0SJung-uk Kim 
337ff879b07SJung-uk Kim typedef struct acpi_table_srat
3383f0275a0SJung-uk Kim {
3393f0275a0SJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
340ff879b07SJung-uk Kim     UINT32                  TableRevision;      /* Must be value '1' */
341ff879b07SJung-uk Kim     UINT64                  Reserved;           /* Reserved, must be zero */
3423f0275a0SJung-uk Kim 
343ff879b07SJung-uk Kim } ACPI_TABLE_SRAT;
3443f0275a0SJung-uk Kim 
345313a0c13SJung-uk Kim /* Values for subtable type in ACPI_SUBTABLE_HEADER */
346313a0c13SJung-uk Kim 
347ff879b07SJung-uk Kim enum AcpiSratType
348313a0c13SJung-uk Kim {
349ff879b07SJung-uk Kim     ACPI_SRAT_TYPE_CPU_AFFINITY         = 0,
350ff879b07SJung-uk Kim     ACPI_SRAT_TYPE_MEMORY_AFFINITY      = 1,
351ff879b07SJung-uk Kim     ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY  = 2,
352ff879b07SJung-uk Kim     ACPI_SRAT_TYPE_GICC_AFFINITY        = 3,
353ff879b07SJung-uk Kim     ACPI_SRAT_TYPE_GIC_ITS_AFFINITY     = 4, /* ACPI 6.2 */
354cd6518c7SJung-uk Kim     ACPI_SRAT_TYPE_GENERIC_AFFINITY     = 5, /* ACPI 6.3 */
355*1b7a2680SJung-uk Kim     ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6, /* ACPI 6.4 */
356*1b7a2680SJung-uk Kim     ACPI_SRAT_TYPE_RESERVED              = 7  /* 7 and greater are reserved */
357313a0c13SJung-uk Kim };
358313a0c13SJung-uk Kim 
3593f0275a0SJung-uk Kim /*
360ff879b07SJung-uk Kim  * SRAT Subtables, correspond to Type in ACPI_SUBTABLE_HEADER
3613f0275a0SJung-uk Kim  */
3623f0275a0SJung-uk Kim 
363ff879b07SJung-uk Kim /* 0: Processor Local APIC/SAPIC Affinity */
3643f0275a0SJung-uk Kim 
365ff879b07SJung-uk Kim typedef struct acpi_srat_cpu_affinity
3663f0275a0SJung-uk Kim {
3673f0275a0SJung-uk Kim     ACPI_SUBTABLE_HEADER    Header;
368ff879b07SJung-uk Kim     UINT8                   ProximityDomainLo;
369ff879b07SJung-uk Kim     UINT8                   ApicId;
370af051161SJung-uk Kim     UINT32                  Flags;
371ff879b07SJung-uk Kim     UINT8                   LocalSapicEid;
372ff879b07SJung-uk Kim     UINT8                   ProximityDomainHi[3];
373ff879b07SJung-uk Kim     UINT32                  ClockDomain;
374af051161SJung-uk Kim 
375ff879b07SJung-uk Kim } ACPI_SRAT_CPU_AFFINITY;
376ff879b07SJung-uk Kim 
377ff879b07SJung-uk Kim /* Flags */
378ff879b07SJung-uk Kim 
379ff879b07SJung-uk Kim #define ACPI_SRAT_CPU_USE_AFFINITY  (1)         /* 00: Use affinity structure */
380af051161SJung-uk Kim 
381af051161SJung-uk Kim 
382ff879b07SJung-uk Kim /* 1: Memory Affinity */
3833f0275a0SJung-uk Kim 
384ff879b07SJung-uk Kim typedef struct acpi_srat_mem_affinity
3853f0275a0SJung-uk Kim {
386ff879b07SJung-uk Kim     ACPI_SUBTABLE_HEADER    Header;
3873f0275a0SJung-uk Kim     UINT32                  ProximityDomain;
388ff879b07SJung-uk Kim     UINT16                  Reserved;           /* Reserved, must be zero */
389ff879b07SJung-uk Kim     UINT64                  BaseAddress;
390ff879b07SJung-uk Kim     UINT64                  Length;
391ff879b07SJung-uk Kim     UINT32                  Reserved1;
392ff879b07SJung-uk Kim     UINT32                  Flags;
393ff879b07SJung-uk Kim     UINT64                  Reserved2;          /* Reserved, must be zero */
3943f0275a0SJung-uk Kim 
395ff879b07SJung-uk Kim } ACPI_SRAT_MEM_AFFINITY;
396ff879b07SJung-uk Kim 
397ff879b07SJung-uk Kim /* Flags */
398ff879b07SJung-uk Kim 
399ff879b07SJung-uk Kim #define ACPI_SRAT_MEM_ENABLED       (1)         /* 00: Use affinity structure */
400ff879b07SJung-uk Kim #define ACPI_SRAT_MEM_HOT_PLUGGABLE (1<<1)      /* 01: Memory region is hot pluggable */
401ff879b07SJung-uk Kim #define ACPI_SRAT_MEM_NON_VOLATILE  (1<<2)      /* 02: Memory region is non-volatile */
4023f0275a0SJung-uk Kim 
4033f0275a0SJung-uk Kim 
404ff879b07SJung-uk Kim /* 2: Processor Local X2_APIC Affinity (ACPI 4.0) */
4053f0275a0SJung-uk Kim 
406ff879b07SJung-uk Kim typedef struct acpi_srat_x2apic_cpu_affinity
4073f0275a0SJung-uk Kim {
408ff879b07SJung-uk Kim     ACPI_SUBTABLE_HEADER    Header;
409ff879b07SJung-uk Kim     UINT16                  Reserved;           /* Reserved, must be zero */
410ff879b07SJung-uk Kim     UINT32                  ProximityDomain;
411ff879b07SJung-uk Kim     UINT32                  ApicId;
412ff879b07SJung-uk Kim     UINT32                  Flags;
413ff879b07SJung-uk Kim     UINT32                  ClockDomain;
414ff879b07SJung-uk Kim     UINT32                  Reserved2;
415ff879b07SJung-uk Kim 
416ff879b07SJung-uk Kim } ACPI_SRAT_X2APIC_CPU_AFFINITY;
417ff879b07SJung-uk Kim 
418ff879b07SJung-uk Kim /* Flags for ACPI_SRAT_CPU_AFFINITY and ACPI_SRAT_X2APIC_CPU_AFFINITY */
419ff879b07SJung-uk Kim 
420ff879b07SJung-uk Kim #define ACPI_SRAT_CPU_ENABLED       (1)         /* 00: Use affinity structure */
421ff879b07SJung-uk Kim 
422ff879b07SJung-uk Kim 
423ff879b07SJung-uk Kim /* 3: GICC Affinity (ACPI 5.1) */
424ff879b07SJung-uk Kim 
425ff879b07SJung-uk Kim typedef struct acpi_srat_gicc_affinity
426ff879b07SJung-uk Kim {
427ff879b07SJung-uk Kim     ACPI_SUBTABLE_HEADER    Header;
428ff879b07SJung-uk Kim     UINT32                  ProximityDomain;
429ff879b07SJung-uk Kim     UINT32                  AcpiProcessorUid;
430ff879b07SJung-uk Kim     UINT32                  Flags;
431ff879b07SJung-uk Kim     UINT32                  ClockDomain;
432ff879b07SJung-uk Kim 
433ff879b07SJung-uk Kim } ACPI_SRAT_GICC_AFFINITY;
434ff879b07SJung-uk Kim 
435ff879b07SJung-uk Kim /* Flags for ACPI_SRAT_GICC_AFFINITY */
436ff879b07SJung-uk Kim 
437ff879b07SJung-uk Kim #define ACPI_SRAT_GICC_ENABLED     (1)         /* 00: Use affinity structure */
438ff879b07SJung-uk Kim 
439ff879b07SJung-uk Kim 
440ff879b07SJung-uk Kim /* 4: GCC ITS Affinity (ACPI 6.2) */
441ff879b07SJung-uk Kim 
442ff879b07SJung-uk Kim typedef struct acpi_srat_gic_its_affinity
443ff879b07SJung-uk Kim {
444ff879b07SJung-uk Kim     ACPI_SUBTABLE_HEADER    Header;
445ff879b07SJung-uk Kim     UINT32                  ProximityDomain;
4463f0275a0SJung-uk Kim     UINT16                  Reserved;
447ff879b07SJung-uk Kim     UINT32                  ItsId;
4483f0275a0SJung-uk Kim 
449ff879b07SJung-uk Kim } ACPI_SRAT_GIC_ITS_AFFINITY;
4503f0275a0SJung-uk Kim 
451*1b7a2680SJung-uk Kim /*
452*1b7a2680SJung-uk Kim  * Common structure for SRAT subtable types:
453*1b7a2680SJung-uk Kim  * 5: ACPI_SRAT_TYPE_GENERIC_AFFINITY
454*1b7a2680SJung-uk Kim  * 6: ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY
455*1b7a2680SJung-uk Kim  */
456cd6518c7SJung-uk Kim 
457cd6518c7SJung-uk Kim typedef struct acpi_srat_generic_affinity
458cd6518c7SJung-uk Kim {
459cd6518c7SJung-uk Kim     ACPI_SUBTABLE_HEADER    Header;
460cd6518c7SJung-uk Kim     UINT8                   Reserved;
461cd6518c7SJung-uk Kim     UINT8                   DeviceHandleType;
462cd6518c7SJung-uk Kim     UINT32                  ProximityDomain;
463cd6518c7SJung-uk Kim     UINT8                   DeviceHandle[16];
464cd6518c7SJung-uk Kim     UINT32                  Flags;
465cd6518c7SJung-uk Kim     UINT32                  Reserved1;
466cd6518c7SJung-uk Kim 
467cd6518c7SJung-uk Kim } ACPI_SRAT_GENERIC_AFFINITY;
468cd6518c7SJung-uk Kim 
469cd6518c7SJung-uk Kim /* Flags for ACPI_SRAT_GENERIC_AFFINITY */
470cd6518c7SJung-uk Kim 
471cd6518c7SJung-uk Kim #define ACPI_SRAT_GENERIC_AFFINITY_ENABLED     (1)      /* 00: Use affinity structure */
472cfd1ed46SJung-uk Kim #define ACPI_SRAT_ARCHITECTURAL_TRANSACTIONS   (1<<1)   /* ACPI 6.4 */
473cd6518c7SJung-uk Kim 
474efcc2a30SJung-uk Kim /*******************************************************************************
475efcc2a30SJung-uk Kim  *
476a371a5fdSJung-uk Kim  * STAO - Status Override Table (_STA override) - ACPI 6.0
477a371a5fdSJung-uk Kim  *        Version 1
478a371a5fdSJung-uk Kim  *
479a371a5fdSJung-uk Kim  * Conforms to "ACPI Specification for Status Override Table"
480a371a5fdSJung-uk Kim  * 6 January 2015
481a371a5fdSJung-uk Kim  *
482a371a5fdSJung-uk Kim  ******************************************************************************/
483a371a5fdSJung-uk Kim 
484a371a5fdSJung-uk Kim typedef struct acpi_table_stao
485a371a5fdSJung-uk Kim {
486a371a5fdSJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
487a371a5fdSJung-uk Kim     UINT8                   IgnoreUart;
488a371a5fdSJung-uk Kim 
489a371a5fdSJung-uk Kim } ACPI_TABLE_STAO;
490a371a5fdSJung-uk Kim 
491a371a5fdSJung-uk Kim 
492a371a5fdSJung-uk Kim /*******************************************************************************
493a371a5fdSJung-uk Kim  *
494ff879b07SJung-uk Kim  * TCPA - Trusted Computing Platform Alliance table
495ff879b07SJung-uk Kim  *        Version 2
496ff879b07SJung-uk Kim  *
497ff879b07SJung-uk Kim  * TCG Hardware Interface Table for TPM 1.2 Clients and Servers
498ff879b07SJung-uk Kim  *
499ff879b07SJung-uk Kim  * Conforms to "TCG ACPI Specification, Family 1.2 and 2.0",
500ff879b07SJung-uk Kim  * Version 1.2, Revision 8
501ff879b07SJung-uk Kim  * February 27, 2017
502ff879b07SJung-uk Kim  *
503ff879b07SJung-uk Kim  * NOTE: There are two versions of the table with the same signature --
504ff879b07SJung-uk Kim  * the client version and the server version. The common PlatformClass
505ff879b07SJung-uk Kim  * field is used to differentiate the two types of tables.
506ff879b07SJung-uk Kim  *
507ff879b07SJung-uk Kim  ******************************************************************************/
508ff879b07SJung-uk Kim 
509ff879b07SJung-uk Kim typedef struct acpi_table_tcpa_hdr
510ff879b07SJung-uk Kim {
511ff879b07SJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
512ff879b07SJung-uk Kim     UINT16                  PlatformClass;
513ff879b07SJung-uk Kim 
514ff879b07SJung-uk Kim } ACPI_TABLE_TCPA_HDR;
515ff879b07SJung-uk Kim 
516ff879b07SJung-uk Kim /*
517ff879b07SJung-uk Kim  * Values for PlatformClass above.
518ff879b07SJung-uk Kim  * This is how the client and server subtables are differentiated
519ff879b07SJung-uk Kim  */
520ff879b07SJung-uk Kim #define ACPI_TCPA_CLIENT_TABLE          0
521ff879b07SJung-uk Kim #define ACPI_TCPA_SERVER_TABLE          1
522ff879b07SJung-uk Kim 
523ff879b07SJung-uk Kim 
524ff879b07SJung-uk Kim typedef struct acpi_table_tcpa_client
525ff879b07SJung-uk Kim {
526ff879b07SJung-uk Kim     UINT32                  MinimumLogLength;   /* Minimum length for the event log area */
527ff879b07SJung-uk Kim     UINT64                  LogAddress;         /* Address of the event log area */
528ff879b07SJung-uk Kim 
529ff879b07SJung-uk Kim } ACPI_TABLE_TCPA_CLIENT;
530ff879b07SJung-uk Kim 
531ff879b07SJung-uk Kim typedef struct acpi_table_tcpa_server
532ff879b07SJung-uk Kim {
533ff879b07SJung-uk Kim     UINT16                  Reserved;
534ff879b07SJung-uk Kim     UINT64                  MinimumLogLength;   /* Minimum length for the event log area */
535ff879b07SJung-uk Kim     UINT64                  LogAddress;         /* Address of the event log area */
536ff879b07SJung-uk Kim     UINT16                  SpecRevision;
537ff879b07SJung-uk Kim     UINT8                   DeviceFlags;
538ff879b07SJung-uk Kim     UINT8                   InterruptFlags;
539ff879b07SJung-uk Kim     UINT8                   GpeNumber;
540ff879b07SJung-uk Kim     UINT8                   Reserved2[3];
541ff879b07SJung-uk Kim     UINT32                  GlobalInterrupt;
542ff879b07SJung-uk Kim     ACPI_GENERIC_ADDRESS    Address;
543ff879b07SJung-uk Kim     UINT32                  Reserved3;
544ff879b07SJung-uk Kim     ACPI_GENERIC_ADDRESS    ConfigAddress;
545ff879b07SJung-uk Kim     UINT8                   Group;
546ff879b07SJung-uk Kim     UINT8                   Bus;                /* PCI Bus/Segment/Function numbers */
547ff879b07SJung-uk Kim     UINT8                   Device;
548ff879b07SJung-uk Kim     UINT8                   Function;
549ff879b07SJung-uk Kim 
550ff879b07SJung-uk Kim } ACPI_TABLE_TCPA_SERVER;
551ff879b07SJung-uk Kim 
552ff879b07SJung-uk Kim /* Values for DeviceFlags above */
553ff879b07SJung-uk Kim 
554ff879b07SJung-uk Kim #define ACPI_TCPA_PCI_DEVICE            (1)
555ff879b07SJung-uk Kim #define ACPI_TCPA_BUS_PNP               (1<<1)
556ff879b07SJung-uk Kim #define ACPI_TCPA_ADDRESS_VALID         (1<<2)
557ff879b07SJung-uk Kim 
558ff879b07SJung-uk Kim /* Values for InterruptFlags above */
559ff879b07SJung-uk Kim 
560ff879b07SJung-uk Kim #define ACPI_TCPA_INTERRUPT_MODE        (1)
561ff879b07SJung-uk Kim #define ACPI_TCPA_INTERRUPT_POLARITY    (1<<1)
562ff879b07SJung-uk Kim #define ACPI_TCPA_SCI_VIA_GPE           (1<<2)
563ff879b07SJung-uk Kim #define ACPI_TCPA_GLOBAL_INTERRUPT      (1<<3)
564ff879b07SJung-uk Kim 
565ff879b07SJung-uk Kim 
566ff879b07SJung-uk Kim /*******************************************************************************
567ff879b07SJung-uk Kim  *
568ff879b07SJung-uk Kim  * TPM2 - Trusted Platform Module (TPM) 2.0 Hardware Interface Table
569ff879b07SJung-uk Kim  *        Version 4
570ff879b07SJung-uk Kim  *
571ff879b07SJung-uk Kim  * TCG Hardware Interface Table for TPM 2.0 Clients and Servers
572ff879b07SJung-uk Kim  *
573ff879b07SJung-uk Kim  * Conforms to "TCG ACPI Specification, Family 1.2 and 2.0",
574ff879b07SJung-uk Kim  * Version 1.2, Revision 8
575ff879b07SJung-uk Kim  * February 27, 2017
576ff879b07SJung-uk Kim  *
577ff879b07SJung-uk Kim  ******************************************************************************/
578ff879b07SJung-uk Kim 
5794a38ee6dSJung-uk Kim /* Revision 3 */
5804a38ee6dSJung-uk Kim 
5814a38ee6dSJung-uk Kim typedef struct acpi_table_tpm23
5824a38ee6dSJung-uk Kim {
5834a38ee6dSJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
5844a38ee6dSJung-uk Kim     UINT32                  Reserved;
5854a38ee6dSJung-uk Kim     UINT64                  ControlAddress;
5864a38ee6dSJung-uk Kim     UINT32                  StartMethod;
5874a38ee6dSJung-uk Kim 
5884a38ee6dSJung-uk Kim } ACPI_TABLE_TPM23;
5894a38ee6dSJung-uk Kim 
5904a38ee6dSJung-uk Kim /* Value for StartMethod above */
5914a38ee6dSJung-uk Kim 
5924a38ee6dSJung-uk Kim #define ACPI_TPM23_ACPI_START_METHOD                 2
5934a38ee6dSJung-uk Kim 
5944a38ee6dSJung-uk Kim /*
5954a38ee6dSJung-uk Kim  * Optional trailer for revision 3. If start method is 2, there is a 4 byte
5964a38ee6dSJung-uk Kim  * reserved area of all zeros.
5974a38ee6dSJung-uk Kim  */
5984a38ee6dSJung-uk Kim typedef struct acpi_tmp23_trailer
5994a38ee6dSJung-uk Kim {
6004a38ee6dSJung-uk Kim     UINT32                  Reserved;
6014a38ee6dSJung-uk Kim 
6024a38ee6dSJung-uk Kim } ACPI_TPM23_TRAILER;
6034a38ee6dSJung-uk Kim 
6044a38ee6dSJung-uk Kim 
6054a38ee6dSJung-uk Kim /* Revision 4 */
6064a38ee6dSJung-uk Kim 
607ff879b07SJung-uk Kim typedef struct acpi_table_tpm2
608ff879b07SJung-uk Kim {
609ff879b07SJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
610ff879b07SJung-uk Kim     UINT16                  PlatformClass;
611ff879b07SJung-uk Kim     UINT16                  Reserved;
612ff879b07SJung-uk Kim     UINT64                  ControlAddress;
613ff879b07SJung-uk Kim     UINT32                  StartMethod;
614ff879b07SJung-uk Kim 
615ff879b07SJung-uk Kim     /* Platform-specific data follows */
616ff879b07SJung-uk Kim 
617ff879b07SJung-uk Kim } ACPI_TABLE_TPM2;
618ff879b07SJung-uk Kim 
619ff879b07SJung-uk Kim /* Values for StartMethod above */
620ff879b07SJung-uk Kim 
621ff879b07SJung-uk Kim #define ACPI_TPM2_NOT_ALLOWED                       0
622ff879b07SJung-uk Kim #define ACPI_TPM2_RESERVED1                         1
623ff879b07SJung-uk Kim #define ACPI_TPM2_START_METHOD                      2
624ff879b07SJung-uk Kim #define ACPI_TPM2_RESERVED3                         3
625ff879b07SJung-uk Kim #define ACPI_TPM2_RESERVED4                         4
626ff879b07SJung-uk Kim #define ACPI_TPM2_RESERVED5                         5
627ff879b07SJung-uk Kim #define ACPI_TPM2_MEMORY_MAPPED                     6
628ff879b07SJung-uk Kim #define ACPI_TPM2_COMMAND_BUFFER                    7
629ff879b07SJung-uk Kim #define ACPI_TPM2_COMMAND_BUFFER_WITH_START_METHOD  8
630ff879b07SJung-uk Kim #define ACPI_TPM2_RESERVED9                         9
631ff879b07SJung-uk Kim #define ACPI_TPM2_RESERVED10                        10
632ff879b07SJung-uk Kim #define ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC       11  /* V1.2 Rev 8 */
633ff879b07SJung-uk Kim #define ACPI_TPM2_RESERVED                          12
634ff879b07SJung-uk Kim 
635ff879b07SJung-uk Kim 
636ff879b07SJung-uk Kim /* Optional trailer appears after any StartMethod subtables */
637ff879b07SJung-uk Kim 
638ff879b07SJung-uk Kim typedef struct acpi_tpm2_trailer
639ff879b07SJung-uk Kim {
640ff879b07SJung-uk Kim     UINT8                   MethodParameters[12];
641ff879b07SJung-uk Kim     UINT32                  MinimumLogLength;   /* Minimum length for the event log area */
642ff879b07SJung-uk Kim     UINT64                  LogAddress;         /* Address of the event log area */
643ff879b07SJung-uk Kim 
644ff879b07SJung-uk Kim } ACPI_TPM2_TRAILER;
645ff879b07SJung-uk Kim 
646ff879b07SJung-uk Kim 
647ff879b07SJung-uk Kim /*
648ff879b07SJung-uk Kim  * Subtables (StartMethod-specific)
649ff879b07SJung-uk Kim  */
650ff879b07SJung-uk Kim 
651ff879b07SJung-uk Kim /* 11: Start Method for ARM SMC (V1.2 Rev 8) */
652ff879b07SJung-uk Kim 
653ff879b07SJung-uk Kim typedef struct acpi_tpm2_arm_smc
654ff879b07SJung-uk Kim {
655ff879b07SJung-uk Kim     UINT32                  GlobalInterrupt;
656ff879b07SJung-uk Kim     UINT8                   InterruptFlags;
657ff879b07SJung-uk Kim     UINT8                   OperationFlags;
658ff879b07SJung-uk Kim     UINT16                  Reserved;
659ff879b07SJung-uk Kim     UINT32                  FunctionId;
660ff879b07SJung-uk Kim 
661ff879b07SJung-uk Kim } ACPI_TPM2_ARM_SMC;
662ff879b07SJung-uk Kim 
663ff879b07SJung-uk Kim /* Values for InterruptFlags above */
664ff879b07SJung-uk Kim 
665ff879b07SJung-uk Kim #define ACPI_TPM2_INTERRUPT_SUPPORT     (1)
666ff879b07SJung-uk Kim 
667ff879b07SJung-uk Kim /* Values for OperationFlags above */
668ff879b07SJung-uk Kim 
669ff879b07SJung-uk Kim #define ACPI_TPM2_IDLE_SUPPORT          (1)
670ff879b07SJung-uk Kim 
671ff879b07SJung-uk Kim 
672ff879b07SJung-uk Kim /*******************************************************************************
673ff879b07SJung-uk Kim  *
674ff879b07SJung-uk Kim  * UEFI - UEFI Boot optimization Table
675ff879b07SJung-uk Kim  *        Version 1
676ff879b07SJung-uk Kim  *
677ff879b07SJung-uk Kim  * Conforms to "Unified Extensible Firmware Interface Specification",
678ff879b07SJung-uk Kim  * Version 2.3, May 8, 2009
679ff879b07SJung-uk Kim  *
680ff879b07SJung-uk Kim  ******************************************************************************/
681ff879b07SJung-uk Kim 
682ff879b07SJung-uk Kim typedef struct acpi_table_uefi
683ff879b07SJung-uk Kim {
684ff879b07SJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
685ff879b07SJung-uk Kim     UINT8                   Identifier[16];     /* UUID identifier */
686ff879b07SJung-uk Kim     UINT16                  DataOffset;         /* Offset of remaining data in table */
687ff879b07SJung-uk Kim 
688ff879b07SJung-uk Kim } ACPI_TABLE_UEFI;
689ff879b07SJung-uk Kim 
690ff879b07SJung-uk Kim 
691ff879b07SJung-uk Kim /*******************************************************************************
692ff879b07SJung-uk Kim  *
693cfd1ed46SJung-uk Kim  * VIOT - Virtual I/O Translation Table
694cfd1ed46SJung-uk Kim  *        Version 1
695cfd1ed46SJung-uk Kim  *
696cfd1ed46SJung-uk Kim  ******************************************************************************/
697cfd1ed46SJung-uk Kim 
698cfd1ed46SJung-uk Kim typedef struct acpi_table_viot
699cfd1ed46SJung-uk Kim {
700cfd1ed46SJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
701cfd1ed46SJung-uk Kim     UINT16                  NodeCount;
702cfd1ed46SJung-uk Kim     UINT16                  NodeOffset;
703cfd1ed46SJung-uk Kim     UINT8                   Reserved[8];
704cfd1ed46SJung-uk Kim 
705cfd1ed46SJung-uk Kim } ACPI_TABLE_VIOT;
706cfd1ed46SJung-uk Kim 
707cfd1ed46SJung-uk Kim /* VIOT subtable header */
708cfd1ed46SJung-uk Kim 
709cfd1ed46SJung-uk Kim typedef struct acpi_viot_header
710cfd1ed46SJung-uk Kim {
711cfd1ed46SJung-uk Kim     UINT8                   Type;
712cfd1ed46SJung-uk Kim     UINT8                   Reserved;
713cfd1ed46SJung-uk Kim     UINT16                  Length;
714cfd1ed46SJung-uk Kim 
715cfd1ed46SJung-uk Kim } ACPI_VIOT_HEADER;
716cfd1ed46SJung-uk Kim 
717cfd1ed46SJung-uk Kim /* Values for Type field above */
718cfd1ed46SJung-uk Kim 
719cfd1ed46SJung-uk Kim enum AcpiViotNodeType
720cfd1ed46SJung-uk Kim {
721cfd1ed46SJung-uk Kim     ACPI_VIOT_NODE_PCI_RANGE            = 0x01,
722cfd1ed46SJung-uk Kim     ACPI_VIOT_NODE_MMIO                 = 0x02,
723cfd1ed46SJung-uk Kim     ACPI_VIOT_NODE_VIRTIO_IOMMU_PCI     = 0x03,
724cfd1ed46SJung-uk Kim     ACPI_VIOT_NODE_VIRTIO_IOMMU_MMIO    = 0x04,
725cfd1ed46SJung-uk Kim     ACPI_VIOT_RESERVED                  = 0x05
726cfd1ed46SJung-uk Kim };
727cfd1ed46SJung-uk Kim 
728cfd1ed46SJung-uk Kim /* VIOT subtables */
729cfd1ed46SJung-uk Kim 
730cfd1ed46SJung-uk Kim typedef struct acpi_viot_pci_range
731cfd1ed46SJung-uk Kim {
732cfd1ed46SJung-uk Kim     ACPI_VIOT_HEADER        Header;
733cfd1ed46SJung-uk Kim     UINT32                  EndpointStart;
734cfd1ed46SJung-uk Kim     UINT16                  SegmentStart;
735cfd1ed46SJung-uk Kim     UINT16                  SegmentEnd;
736cfd1ed46SJung-uk Kim     UINT16                  BdfStart;
737cfd1ed46SJung-uk Kim     UINT16                  BdfEnd;
738cfd1ed46SJung-uk Kim     UINT16                  OutputNode;
739cfd1ed46SJung-uk Kim     UINT8                   Reserved[6];
740cfd1ed46SJung-uk Kim 
741cfd1ed46SJung-uk Kim } ACPI_VIOT_PCI_RANGE;
742cfd1ed46SJung-uk Kim 
743cfd1ed46SJung-uk Kim typedef struct acpi_viot_mmio
744cfd1ed46SJung-uk Kim {
745cfd1ed46SJung-uk Kim     ACPI_VIOT_HEADER        Header;
746cfd1ed46SJung-uk Kim     UINT32                  Endpoint;
747cfd1ed46SJung-uk Kim     UINT64                  BaseAddress;
748cfd1ed46SJung-uk Kim     UINT16                  OutputNode;
749cfd1ed46SJung-uk Kim     UINT8                   Reserved[6];
750cfd1ed46SJung-uk Kim 
751cfd1ed46SJung-uk Kim } ACPI_VIOT_MMIO;
752cfd1ed46SJung-uk Kim 
753cfd1ed46SJung-uk Kim typedef struct acpi_viot_virtio_iommu_pci
754cfd1ed46SJung-uk Kim {
755cfd1ed46SJung-uk Kim     ACPI_VIOT_HEADER        Header;
756cfd1ed46SJung-uk Kim     UINT16                  Segment;
757cfd1ed46SJung-uk Kim     UINT16                  Bdf;
758cfd1ed46SJung-uk Kim     UINT8                   Reserved[8];
759cfd1ed46SJung-uk Kim 
760cfd1ed46SJung-uk Kim } ACPI_VIOT_VIRTIO_IOMMU_PCI;
761cfd1ed46SJung-uk Kim 
762cfd1ed46SJung-uk Kim typedef struct acpi_viot_virtio_iommu_mmio
763cfd1ed46SJung-uk Kim {
764cfd1ed46SJung-uk Kim     ACPI_VIOT_HEADER        Header;
765cfd1ed46SJung-uk Kim     UINT8                   Reserved[4];
766cfd1ed46SJung-uk Kim     UINT64                  BaseAddress;
767cfd1ed46SJung-uk Kim 
768cfd1ed46SJung-uk Kim } ACPI_VIOT_VIRTIO_IOMMU_MMIO;
769cfd1ed46SJung-uk Kim 
770cfd1ed46SJung-uk Kim 
771cfd1ed46SJung-uk Kim /*******************************************************************************
772cfd1ed46SJung-uk Kim  *
773ff879b07SJung-uk Kim  * WAET - Windows ACPI Emulated devices Table
774ff879b07SJung-uk Kim  *        Version 1
775ff879b07SJung-uk Kim  *
776ff879b07SJung-uk Kim  * Conforms to "Windows ACPI Emulated Devices Table", version 1.0, April 6, 2009
777ff879b07SJung-uk Kim  *
778ff879b07SJung-uk Kim  ******************************************************************************/
779ff879b07SJung-uk Kim 
780ff879b07SJung-uk Kim typedef struct acpi_table_waet
781ff879b07SJung-uk Kim {
782ff879b07SJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
783ff879b07SJung-uk Kim     UINT32                  Flags;
784ff879b07SJung-uk Kim 
785ff879b07SJung-uk Kim } ACPI_TABLE_WAET;
786ff879b07SJung-uk Kim 
787ff879b07SJung-uk Kim /* Masks for Flags field above */
788ff879b07SJung-uk Kim 
789ff879b07SJung-uk Kim #define ACPI_WAET_RTC_NO_ACK        (1)         /* RTC requires no int acknowledge */
790ff879b07SJung-uk Kim #define ACPI_WAET_TIMER_ONE_READ    (1<<1)      /* PM timer requires only one read */
791ff879b07SJung-uk Kim 
792ff879b07SJung-uk Kim 
793ff879b07SJung-uk Kim /*******************************************************************************
794ff879b07SJung-uk Kim  *
795ff879b07SJung-uk Kim  * WDAT - Watchdog Action Table
796ff879b07SJung-uk Kim  *        Version 1
797ff879b07SJung-uk Kim  *
798ff879b07SJung-uk Kim  * Conforms to "Hardware Watchdog Timers Design Specification",
799ff879b07SJung-uk Kim  * Copyright 2006 Microsoft Corporation.
800ff879b07SJung-uk Kim  *
801ff879b07SJung-uk Kim  ******************************************************************************/
802ff879b07SJung-uk Kim 
803ff879b07SJung-uk Kim typedef struct acpi_table_wdat
804ff879b07SJung-uk Kim {
805ff879b07SJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
806ff879b07SJung-uk Kim     UINT32                  HeaderLength;       /* Watchdog Header Length */
807ff879b07SJung-uk Kim     UINT16                  PciSegment;         /* PCI Segment number */
808ff879b07SJung-uk Kim     UINT8                   PciBus;             /* PCI Bus number */
809ff879b07SJung-uk Kim     UINT8                   PciDevice;          /* PCI Device number */
810ff879b07SJung-uk Kim     UINT8                   PciFunction;        /* PCI Function number */
811ff879b07SJung-uk Kim     UINT8                   Reserved[3];
812ff879b07SJung-uk Kim     UINT32                  TimerPeriod;        /* Period of one timer count (msec) */
813ff879b07SJung-uk Kim     UINT32                  MaxCount;           /* Maximum counter value supported */
814ff879b07SJung-uk Kim     UINT32                  MinCount;           /* Minimum counter value */
815ff879b07SJung-uk Kim     UINT8                   Flags;
816ff879b07SJung-uk Kim     UINT8                   Reserved2[3];
817ff879b07SJung-uk Kim     UINT32                  Entries;            /* Number of watchdog entries that follow */
818ff879b07SJung-uk Kim 
819ff879b07SJung-uk Kim } ACPI_TABLE_WDAT;
820ff879b07SJung-uk Kim 
821ff879b07SJung-uk Kim /* Masks for Flags field above */
822ff879b07SJung-uk Kim 
823ff879b07SJung-uk Kim #define ACPI_WDAT_ENABLED           (1)
824ff879b07SJung-uk Kim #define ACPI_WDAT_STOPPED           0x80
825ff879b07SJung-uk Kim 
826ff879b07SJung-uk Kim 
827ff879b07SJung-uk Kim /* WDAT Instruction Entries (actions) */
828ff879b07SJung-uk Kim 
829ff879b07SJung-uk Kim typedef struct acpi_wdat_entry
830ff879b07SJung-uk Kim {
831ff879b07SJung-uk Kim     UINT8                   Action;
832ff879b07SJung-uk Kim     UINT8                   Instruction;
833ff879b07SJung-uk Kim     UINT16                  Reserved;
834ff879b07SJung-uk Kim     ACPI_GENERIC_ADDRESS    RegisterRegion;
835ff879b07SJung-uk Kim     UINT32                  Value;              /* Value used with Read/Write register */
836ff879b07SJung-uk Kim     UINT32                  Mask;               /* Bitmask required for this register instruction */
837ff879b07SJung-uk Kim 
838ff879b07SJung-uk Kim } ACPI_WDAT_ENTRY;
839ff879b07SJung-uk Kim 
840ff879b07SJung-uk Kim /* Values for Action field above */
841ff879b07SJung-uk Kim 
842ff879b07SJung-uk Kim enum AcpiWdatActions
843ff879b07SJung-uk Kim {
844ff879b07SJung-uk Kim     ACPI_WDAT_RESET                 = 1,
845ff879b07SJung-uk Kim     ACPI_WDAT_GET_CURRENT_COUNTDOWN = 4,
846ff879b07SJung-uk Kim     ACPI_WDAT_GET_COUNTDOWN         = 5,
847ff879b07SJung-uk Kim     ACPI_WDAT_SET_COUNTDOWN         = 6,
848ff879b07SJung-uk Kim     ACPI_WDAT_GET_RUNNING_STATE     = 8,
849ff879b07SJung-uk Kim     ACPI_WDAT_SET_RUNNING_STATE     = 9,
850ff879b07SJung-uk Kim     ACPI_WDAT_GET_STOPPED_STATE     = 10,
851ff879b07SJung-uk Kim     ACPI_WDAT_SET_STOPPED_STATE     = 11,
852ff879b07SJung-uk Kim     ACPI_WDAT_GET_REBOOT            = 16,
853ff879b07SJung-uk Kim     ACPI_WDAT_SET_REBOOT            = 17,
854ff879b07SJung-uk Kim     ACPI_WDAT_GET_SHUTDOWN          = 18,
855ff879b07SJung-uk Kim     ACPI_WDAT_SET_SHUTDOWN          = 19,
856ff879b07SJung-uk Kim     ACPI_WDAT_GET_STATUS            = 32,
857ff879b07SJung-uk Kim     ACPI_WDAT_SET_STATUS            = 33,
858ff879b07SJung-uk Kim     ACPI_WDAT_ACTION_RESERVED       = 34    /* 34 and greater are reserved */
859ff879b07SJung-uk Kim };
860ff879b07SJung-uk Kim 
861ff879b07SJung-uk Kim /* Values for Instruction field above */
862ff879b07SJung-uk Kim 
863ff879b07SJung-uk Kim enum AcpiWdatInstructions
864ff879b07SJung-uk Kim {
865ff879b07SJung-uk Kim     ACPI_WDAT_READ_VALUE            = 0,
866ff879b07SJung-uk Kim     ACPI_WDAT_READ_COUNTDOWN        = 1,
867ff879b07SJung-uk Kim     ACPI_WDAT_WRITE_VALUE           = 2,
868ff879b07SJung-uk Kim     ACPI_WDAT_WRITE_COUNTDOWN       = 3,
869ff879b07SJung-uk Kim     ACPI_WDAT_INSTRUCTION_RESERVED  = 4,    /* 4 and greater are reserved */
870ff879b07SJung-uk Kim     ACPI_WDAT_PRESERVE_REGISTER     = 0x80  /* Except for this value */
871ff879b07SJung-uk Kim };
872ff879b07SJung-uk Kim 
873ff879b07SJung-uk Kim 
874ff879b07SJung-uk Kim /*******************************************************************************
875ff879b07SJung-uk Kim  *
876ff879b07SJung-uk Kim  * WDDT - Watchdog Descriptor Table
877ff879b07SJung-uk Kim  *        Version 1
878ff879b07SJung-uk Kim  *
879ff879b07SJung-uk Kim  * Conforms to "Using the Intel ICH Family Watchdog Timer (WDT)",
880ff879b07SJung-uk Kim  * Version 001, September 2002
881ff879b07SJung-uk Kim  *
882ff879b07SJung-uk Kim  ******************************************************************************/
883ff879b07SJung-uk Kim 
884ff879b07SJung-uk Kim typedef struct acpi_table_wddt
885ff879b07SJung-uk Kim {
886ff879b07SJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
887ff879b07SJung-uk Kim     UINT16                  SpecVersion;
888ff879b07SJung-uk Kim     UINT16                  TableVersion;
889ff879b07SJung-uk Kim     UINT16                  PciVendorId;
890ff879b07SJung-uk Kim     ACPI_GENERIC_ADDRESS    Address;
891ff879b07SJung-uk Kim     UINT16                  MaxCount;           /* Maximum counter value supported */
892ff879b07SJung-uk Kim     UINT16                  MinCount;           /* Minimum counter value supported */
893ff879b07SJung-uk Kim     UINT16                  Period;
894ff879b07SJung-uk Kim     UINT16                  Status;
895ff879b07SJung-uk Kim     UINT16                  Capability;
896ff879b07SJung-uk Kim 
897ff879b07SJung-uk Kim } ACPI_TABLE_WDDT;
898ff879b07SJung-uk Kim 
899ff879b07SJung-uk Kim /* Flags for Status field above */
900ff879b07SJung-uk Kim 
901ff879b07SJung-uk Kim #define ACPI_WDDT_AVAILABLE     (1)
902ff879b07SJung-uk Kim #define ACPI_WDDT_ACTIVE        (1<<1)
903ff879b07SJung-uk Kim #define ACPI_WDDT_TCO_OS_OWNED  (1<<2)
904ff879b07SJung-uk Kim #define ACPI_WDDT_USER_RESET    (1<<11)
905ff879b07SJung-uk Kim #define ACPI_WDDT_WDT_RESET     (1<<12)
906ff879b07SJung-uk Kim #define ACPI_WDDT_POWER_FAIL    (1<<13)
907ff879b07SJung-uk Kim #define ACPI_WDDT_UNKNOWN_RESET (1<<14)
908ff879b07SJung-uk Kim 
909ff879b07SJung-uk Kim /* Flags for Capability field above */
910ff879b07SJung-uk Kim 
911ff879b07SJung-uk Kim #define ACPI_WDDT_AUTO_RESET    (1)
912ff879b07SJung-uk Kim #define ACPI_WDDT_ALERT_SUPPORT (1<<1)
913ff879b07SJung-uk Kim 
914ff879b07SJung-uk Kim 
915ff879b07SJung-uk Kim /*******************************************************************************
916ff879b07SJung-uk Kim  *
917ff879b07SJung-uk Kim  * WDRT - Watchdog Resource Table
918ff879b07SJung-uk Kim  *        Version 1
919ff879b07SJung-uk Kim  *
920ff879b07SJung-uk Kim  * Conforms to "Watchdog Timer Hardware Requirements for Windows Server 2003",
921ff879b07SJung-uk Kim  * Version 1.01, August 28, 2006
922ff879b07SJung-uk Kim  *
923ff879b07SJung-uk Kim  ******************************************************************************/
924ff879b07SJung-uk Kim 
925ff879b07SJung-uk Kim typedef struct acpi_table_wdrt
926ff879b07SJung-uk Kim {
927ff879b07SJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
928ff879b07SJung-uk Kim     ACPI_GENERIC_ADDRESS    ControlRegister;
929ff879b07SJung-uk Kim     ACPI_GENERIC_ADDRESS    CountRegister;
930ff879b07SJung-uk Kim     UINT16                  PciDeviceId;
931ff879b07SJung-uk Kim     UINT16                  PciVendorId;
932ff879b07SJung-uk Kim     UINT8                   PciBus;             /* PCI Bus number */
933ff879b07SJung-uk Kim     UINT8                   PciDevice;          /* PCI Device number */
934ff879b07SJung-uk Kim     UINT8                   PciFunction;        /* PCI Function number */
935ff879b07SJung-uk Kim     UINT8                   PciSegment;         /* PCI Segment number */
936ff879b07SJung-uk Kim     UINT16                  MaxCount;           /* Maximum counter value supported */
937ff879b07SJung-uk Kim     UINT8                   Units;
938ff879b07SJung-uk Kim 
939ff879b07SJung-uk Kim } ACPI_TABLE_WDRT;
940ff879b07SJung-uk Kim 
941ff879b07SJung-uk Kim 
942ff879b07SJung-uk Kim /*******************************************************************************
943ff879b07SJung-uk Kim  *
944a371a5fdSJung-uk Kim  * WPBT - Windows Platform Environment Table (ACPI 6.0)
945a371a5fdSJung-uk Kim  *        Version 1
946a371a5fdSJung-uk Kim  *
947a371a5fdSJung-uk Kim  * Conforms to "Windows Platform Binary Table (WPBT)" 29 November 2011
948a371a5fdSJung-uk Kim  *
949a371a5fdSJung-uk Kim  ******************************************************************************/
950a371a5fdSJung-uk Kim 
951a371a5fdSJung-uk Kim typedef struct acpi_table_wpbt
952a371a5fdSJung-uk Kim {
953a371a5fdSJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
954a371a5fdSJung-uk Kim     UINT32                  HandoffSize;
955a371a5fdSJung-uk Kim     UINT64                  HandoffAddress;
956a371a5fdSJung-uk Kim     UINT8                   Layout;
957a371a5fdSJung-uk Kim     UINT8                   Type;
958a371a5fdSJung-uk Kim     UINT16                  ArgumentsLength;
959a371a5fdSJung-uk Kim 
960a371a5fdSJung-uk Kim } ACPI_TABLE_WPBT;
961a371a5fdSJung-uk Kim 
96297c0b5abSJung-uk Kim typedef struct acpi_wpbt_unicode
96397c0b5abSJung-uk Kim {
96497c0b5abSJung-uk Kim     UINT16                  *UnicodeString;
96597c0b5abSJung-uk Kim 
96697c0b5abSJung-uk Kim } ACPI_WPBT_UNICODE;
96797c0b5abSJung-uk Kim 
968a371a5fdSJung-uk Kim 
969a371a5fdSJung-uk Kim /*******************************************************************************
970a371a5fdSJung-uk Kim  *
9713ee58df5SJung-uk Kim  * WSMT - Windows SMM Security Mitigations Table
972ff879b07SJung-uk Kim  *        Version 1
973ff879b07SJung-uk Kim  *
9743ee58df5SJung-uk Kim  * Conforms to "Windows SMM Security Mitigations Table",
975ff879b07SJung-uk Kim  * Version 1.0, April 18, 2016
976ff879b07SJung-uk Kim  *
977ff879b07SJung-uk Kim  ******************************************************************************/
978ff879b07SJung-uk Kim 
979ff879b07SJung-uk Kim typedef struct acpi_table_wsmt
980ff879b07SJung-uk Kim {
981ff879b07SJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
982ff879b07SJung-uk Kim     UINT32                  ProtectionFlags;
983ff879b07SJung-uk Kim 
984ff879b07SJung-uk Kim } ACPI_TABLE_WSMT;
985ff879b07SJung-uk Kim 
986ff879b07SJung-uk Kim /* Flags for ProtectionFlags field above */
987ff879b07SJung-uk Kim 
988ff879b07SJung-uk Kim #define ACPI_WSMT_FIXED_COMM_BUFFERS                (1)
989ff879b07SJung-uk Kim #define ACPI_WSMT_COMM_BUFFER_NESTED_PTR_PROTECTION (2)
990ff879b07SJung-uk Kim #define ACPI_WSMT_SYSTEM_RESOURCE_PROTECTION        (4)
991ff879b07SJung-uk Kim 
992ff879b07SJung-uk Kim 
993ff879b07SJung-uk Kim /*******************************************************************************
994ff879b07SJung-uk Kim  *
995a371a5fdSJung-uk Kim  * XENV - Xen Environment Table (ACPI 6.0)
996a371a5fdSJung-uk Kim  *        Version 1
997a371a5fdSJung-uk Kim  *
998a371a5fdSJung-uk Kim  * Conforms to "ACPI Specification for Xen Environment Table" 4 January 2015
999a371a5fdSJung-uk Kim  *
1000a371a5fdSJung-uk Kim  ******************************************************************************/
1001a371a5fdSJung-uk Kim 
1002a371a5fdSJung-uk Kim typedef struct acpi_table_xenv
1003a371a5fdSJung-uk Kim {
1004a371a5fdSJung-uk Kim     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
1005a371a5fdSJung-uk Kim     UINT64                  GrantTableAddress;
1006a371a5fdSJung-uk Kim     UINT64                  GrantTableSize;
1007a371a5fdSJung-uk Kim     UINT32                  EventInterrupt;
1008a371a5fdSJung-uk Kim     UINT8                   EventFlags;
1009a371a5fdSJung-uk Kim 
1010a371a5fdSJung-uk Kim } ACPI_TABLE_XENV;
1011a371a5fdSJung-uk Kim 
1012a371a5fdSJung-uk Kim 
10133f0275a0SJung-uk Kim /* Reset to default packing */
10143f0275a0SJung-uk Kim 
10153f0275a0SJung-uk Kim #pragma pack()
10163f0275a0SJung-uk Kim 
10173f0275a0SJung-uk Kim #endif /* __ACTBL3_H__ */
1018