Home | History | Annotate | Line # | Download | only in common
dmtbinfo2.c revision 1.1.1.2.2.1
      1          1.1  christos /******************************************************************************
      2          1.1  christos  *
      3          1.1  christos  * Module Name: dmtbinfo2 - Table info for non-AML tables
      4          1.1  christos  *
      5          1.1  christos  *****************************************************************************/
      6          1.1  christos 
      7          1.1  christos /*
      8  1.1.1.2.2.1  christos  * Copyright (C) 2000 - 2019, Intel Corp.
      9          1.1  christos  * All rights reserved.
     10          1.1  christos  *
     11          1.1  christos  * Redistribution and use in source and binary forms, with or without
     12          1.1  christos  * modification, are permitted provided that the following conditions
     13          1.1  christos  * are met:
     14          1.1  christos  * 1. Redistributions of source code must retain the above copyright
     15          1.1  christos  *    notice, this list of conditions, and the following disclaimer,
     16          1.1  christos  *    without modification.
     17          1.1  christos  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     18          1.1  christos  *    substantially similar to the "NO WARRANTY" disclaimer below
     19          1.1  christos  *    ("Disclaimer") and any redistribution must be conditioned upon
     20          1.1  christos  *    including a substantially similar Disclaimer requirement for further
     21          1.1  christos  *    binary redistribution.
     22          1.1  christos  * 3. Neither the names of the above-listed copyright holders nor the names
     23          1.1  christos  *    of any contributors may be used to endorse or promote products derived
     24          1.1  christos  *    from this software without specific prior written permission.
     25          1.1  christos  *
     26          1.1  christos  * Alternatively, this software may be distributed under the terms of the
     27          1.1  christos  * GNU General Public License ("GPL") version 2 as published by the Free
     28          1.1  christos  * Software Foundation.
     29          1.1  christos  *
     30          1.1  christos  * NO WARRANTY
     31          1.1  christos  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     32          1.1  christos  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     33          1.1  christos  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
     34          1.1  christos  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     35          1.1  christos  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     36          1.1  christos  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     37          1.1  christos  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     38          1.1  christos  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     39          1.1  christos  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     40          1.1  christos  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     41          1.1  christos  * POSSIBILITY OF SUCH DAMAGES.
     42          1.1  christos  */
     43          1.1  christos 
     44          1.1  christos #include "acpi.h"
     45          1.1  christos #include "accommon.h"
     46          1.1  christos #include "acdisasm.h"
     47          1.1  christos #include "actbinfo.h"
     48          1.1  christos 
     49          1.1  christos /* This module used for application-level code only */
     50          1.1  christos 
     51          1.1  christos #define _COMPONENT          ACPI_CA_DISASSEMBLER
     52          1.1  christos         ACPI_MODULE_NAME    ("dmtbinfo2")
     53          1.1  christos 
     54          1.1  christos /*
     55          1.1  christos  * How to add a new table:
     56          1.1  christos  *
     57          1.1  christos  * - Add the C table definition to the actbl1.h or actbl2.h header.
     58          1.1  christos  * - Add ACPI_xxxx_OFFSET macro(s) for the table (and subtables) to list below.
     59          1.1  christos  * - Define the table in this file (for the disassembler). If any
     60          1.1  christos  *   new data types are required (ACPI_DMT_*), see below.
     61          1.1  christos  * - Add an external declaration for the new table definition (AcpiDmTableInfo*)
     62          1.1  christos  *     in acdisam.h
     63          1.1  christos  * - Add new table definition to the dispatch table in dmtable.c (AcpiDmTableData)
     64          1.1  christos  *     If a simple table (with no subtables), no disassembly code is needed.
     65          1.1  christos  *     Otherwise, create the AcpiDmDump* function for to disassemble the table
     66          1.1  christos  *     and add it to the dmtbdump.c file.
     67          1.1  christos  * - Add an external declaration for the new AcpiDmDump* function in acdisasm.h
     68          1.1  christos  * - Add the new AcpiDmDump* function to the dispatch table in dmtable.c
     69          1.1  christos  * - Create a template for the new table
     70          1.1  christos  * - Add data table compiler support
     71          1.1  christos  *
     72          1.1  christos  * How to add a new data type (ACPI_DMT_*):
     73          1.1  christos  *
     74          1.1  christos  * - Add new type at the end of the ACPI_DMT list in acdisasm.h
     75          1.1  christos  * - Add length and implementation cases in dmtable.c  (disassembler)
     76          1.1  christos  * - Add type and length cases in dtutils.c (DT compiler)
     77          1.1  christos  */
     78          1.1  christos 
     79          1.1  christos /*
     80          1.1  christos  * Remaining tables are not consumed directly by the ACPICA subsystem
     81          1.1  christos  */
     82          1.1  christos 
     83          1.1  christos 
     84          1.1  christos /*******************************************************************************
     85          1.1  christos  *
     86          1.1  christos  * IORT - IO Remapping Table
     87          1.1  christos  *
     88          1.1  christos  ******************************************************************************/
     89          1.1  christos 
     90          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort[] =
     91          1.1  christos {
     92          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT_OFFSET (NodeCount),               "Node Count", 0},
     93          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT_OFFSET (NodeOffset),              "Node Offset", 0},
     94          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT_OFFSET (Reserved),                "Reserved", 0},
     95          1.1  christos     ACPI_DMT_TERMINATOR
     96          1.1  christos };
     97          1.1  christos 
     98          1.1  christos /* Optional padding field */
     99          1.1  christos 
    100          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIortPad[] =
    101          1.1  christos {
    102          1.1  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "Optional Padding", DT_OPTIONAL},
    103          1.1  christos     ACPI_DMT_TERMINATOR
    104          1.1  christos };
    105          1.1  christos 
    106          1.1  christos /* Common Subtable header (one per Subtable) */
    107          1.1  christos 
    108          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIortHdr[] =
    109          1.1  christos {
    110          1.1  christos     {ACPI_DMT_UINT8,    ACPI_IORTH_OFFSET (Type),                   "Type", 0},
    111          1.1  christos     {ACPI_DMT_UINT16,   ACPI_IORTH_OFFSET (Length),                 "Length", DT_LENGTH},
    112          1.1  christos     {ACPI_DMT_UINT8,    ACPI_IORTH_OFFSET (Revision),               "Revision", 0},
    113          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORTH_OFFSET (Reserved),               "Reserved", 0},
    114          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORTH_OFFSET (MappingCount),           "Mapping Count", 0},
    115          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORTH_OFFSET (MappingOffset),          "Mapping Offset", 0},
    116          1.1  christos     ACPI_DMT_TERMINATOR
    117          1.1  christos };
    118          1.1  christos 
    119          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIortMap[] =
    120          1.1  christos {
    121          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORTM_OFFSET (InputBase),              "Input base", DT_OPTIONAL},
    122          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORTM_OFFSET (IdCount),                "ID Count", 0},
    123          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORTM_OFFSET (OutputBase),             "Output Base", 0},
    124          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORTM_OFFSET (OutputReference),        "Output Reference", 0},
    125          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORTM_OFFSET (Flags),                  "Flags (decoded below)", 0},
    126          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_IORTM_FLAG_OFFSET (Flags, 0),          "Single Mapping", 0},
    127          1.1  christos     ACPI_DMT_TERMINATOR
    128          1.1  christos };
    129          1.1  christos 
    130          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIortAcc[] =
    131          1.1  christos {
    132          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORTA_OFFSET (CacheCoherency),         "Cache Coherency", 0},
    133          1.1  christos     {ACPI_DMT_UINT8,    ACPI_IORTA_OFFSET (Hints),                  "Hints (decoded below)", 0},
    134          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_IORTA_FLAG_OFFSET (Hints, 0),          "Transient", 0},
    135          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_IORTA_FLAG_OFFSET (Hints, 0),          "Write Allocate", 0},
    136          1.1  christos     {ACPI_DMT_FLAG2,    ACPI_IORTA_FLAG_OFFSET (Hints, 0),          "Read Allocate", 0},
    137          1.1  christos     {ACPI_DMT_FLAG3,    ACPI_IORTA_FLAG_OFFSET (Hints, 0),          "Override", 0},
    138          1.1  christos     {ACPI_DMT_UINT16,   ACPI_IORTA_OFFSET (Reserved),               "Reserved", 0},
    139          1.1  christos     {ACPI_DMT_UINT8,    ACPI_IORTA_OFFSET (MemoryFlags),            "Memory Flags (decoded below)", 0},
    140          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_IORTA_FLAG_OFFSET (MemoryFlags, 0),    "Coherency", 0},
    141          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_IORTA_FLAG_OFFSET (MemoryFlags, 0),    "Device Attribute", 0},
    142          1.1  christos     ACPI_DMT_TERMINATOR
    143          1.1  christos };
    144          1.1  christos 
    145          1.1  christos /* IORT subtables */
    146          1.1  christos 
    147          1.1  christos /* 0x00: ITS Group */
    148          1.1  christos 
    149          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort0[] =
    150          1.1  christos {
    151          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT0_OFFSET (ItsCount),               "ItsCount", 0},
    152          1.1  christos     ACPI_DMT_TERMINATOR
    153          1.1  christos };
    154          1.1  christos 
    155          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort0a[] =
    156          1.1  christos {
    157          1.1  christos     {ACPI_DMT_UINT32,   0,                                          "Identifiers", DT_OPTIONAL},
    158          1.1  christos     ACPI_DMT_TERMINATOR
    159          1.1  christos };
    160          1.1  christos 
    161          1.1  christos /* 0x01: Named Component */
    162          1.1  christos 
    163          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort1[] =
    164          1.1  christos {
    165          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT1_OFFSET (NodeFlags),              "Node Flags", 0},
    166          1.1  christos     {ACPI_DMT_IORTMEM,  ACPI_IORT1_OFFSET (MemoryProperties),       "Memory Properties", 0},
    167          1.1  christos     {ACPI_DMT_UINT8,    ACPI_IORT1_OFFSET (MemoryAddressLimit),     "Memory Size Limit", 0},
    168          1.1  christos     {ACPI_DMT_STRING,   ACPI_IORT1_OFFSET (DeviceName[0]),          "Device Name", 0},
    169          1.1  christos     ACPI_DMT_TERMINATOR
    170          1.1  christos };
    171          1.1  christos 
    172          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort1a[] =
    173          1.1  christos {
    174          1.1  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "Padding", DT_OPTIONAL},
    175          1.1  christos     ACPI_DMT_TERMINATOR
    176          1.1  christos };
    177          1.1  christos 
    178          1.1  christos /* 0x02: PCI Root Complex */
    179          1.1  christos 
    180          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort2[] =
    181          1.1  christos {
    182          1.1  christos     {ACPI_DMT_IORTMEM,  ACPI_IORT2_OFFSET (MemoryProperties),       "Memory Properties", 0},
    183          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT2_OFFSET (AtsAttribute),           "ATS Attribute", 0},
    184          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT2_OFFSET (PciSegmentNumber),       "PCI Segment Number", 0},
    185  1.1.1.2.2.1  christos     {ACPI_DMT_UINT8,    ACPI_IORT2_OFFSET (MemoryAddressLimit),     "Memory Size Limit", 0},
    186  1.1.1.2.2.1  christos     {ACPI_DMT_UINT24,   ACPI_IORT2_OFFSET (Reserved[0]),            "Reserved", 0},
    187          1.1  christos     ACPI_DMT_TERMINATOR
    188          1.1  christos };
    189          1.1  christos 
    190          1.1  christos /* 0x03: SMMUv1/2 */
    191          1.1  christos 
    192          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort3[] =
    193          1.1  christos {
    194          1.1  christos     {ACPI_DMT_UINT64,   ACPI_IORT3_OFFSET (BaseAddress),            "Base Address", 0},
    195          1.1  christos     {ACPI_DMT_UINT64,   ACPI_IORT3_OFFSET (Span),                   "Span", 0},
    196          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT3_OFFSET (Model),                  "Model", 0},
    197          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT3_OFFSET (Flags),                  "Flags (decoded below)", 0},
    198          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_IORT3_FLAG_OFFSET (Flags, 0),          "DVM Supported", 0},
    199          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_IORT3_FLAG_OFFSET (Flags, 0),          "Coherent Walk", 0},
    200          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT3_OFFSET (GlobalInterruptOffset),  "Global Interrupt Offset", 0},
    201          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT3_OFFSET (ContextInterruptCount),  "Context Interrupt Count", 0},
    202          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT3_OFFSET (ContextInterruptOffset), "Context Interrupt Offset", 0},
    203          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT3_OFFSET (PmuInterruptCount),      "PMU Interrupt Count", 0},
    204          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT3_OFFSET (PmuInterruptOffset),     "PMU Interrupt Offset", 0},
    205          1.1  christos     ACPI_DMT_TERMINATOR
    206          1.1  christos };
    207          1.1  christos 
    208          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort3a[] =
    209          1.1  christos {
    210          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT3A_OFFSET (NSgIrpt),                   "NSgIrpt", 0},
    211          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT3A_OFFSET (NSgIrptFlags),              "NSgIrpt Flags (decoded below)", 0},
    212          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_IORT3a_FLAG_OFFSET (NSgIrptFlags, 0),      "Edge Triggered", 0},
    213          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT3A_OFFSET (NSgCfgIrpt),                "NSgCfgIrpt", 0},
    214          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT3A_OFFSET (NSgCfgIrptFlags),           "NSgCfgIrpt Flags (decoded below)", 0},
    215          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_IORT3a_FLAG_OFFSET (NSgCfgIrptFlags, 0),   "Edge Triggered", 0},
    216          1.1  christos     ACPI_DMT_TERMINATOR
    217          1.1  christos };
    218          1.1  christos 
    219          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort3b[] =
    220          1.1  christos {
    221          1.1  christos     {ACPI_DMT_UINT64,   0,                                          "Context Interrupt", DT_OPTIONAL},
    222          1.1  christos     ACPI_DMT_TERMINATOR
    223          1.1  christos };
    224          1.1  christos 
    225          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort3c[] =
    226          1.1  christos {
    227          1.1  christos     {ACPI_DMT_UINT64,   0,                                          "PMU Interrupt", DT_OPTIONAL},
    228          1.1  christos     ACPI_DMT_TERMINATOR
    229          1.1  christos };
    230          1.1  christos 
    231          1.1  christos /* 0x04: SMMUv3 */
    232          1.1  christos 
    233          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort4[] =
    234          1.1  christos {
    235          1.1  christos     {ACPI_DMT_UINT64,   ACPI_IORT4_OFFSET (BaseAddress),            "Base Address", 0},
    236          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (Flags),                  "Flags (decoded below)", 0},
    237          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_IORT4_FLAG_OFFSET (Flags, 0),          "COHACC Override", 0},
    238          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_IORT4_FLAG_OFFSET (Flags, 0),          "HTTU Override", 0},
    239          1.1  christos     {ACPI_DMT_FLAG3,    ACPI_IORT4_FLAG_OFFSET (Flags, 0),          "Proximity Domain Valid", 0},
    240          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (Reserved),               "Reserved", 0},
    241          1.1  christos     {ACPI_DMT_UINT64,   ACPI_IORT4_OFFSET (VatosAddress),           "VATOS Address", 0},
    242          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (Model),                  "Model", 0},
    243          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (EventGsiv),              "Event GSIV", 0},
    244          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (PriGsiv),                "PRI GSIV", 0},
    245          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (GerrGsiv),               "GERR GSIV", 0},
    246          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (SyncGsiv),               "Sync GSIV", 0},
    247  1.1.1.2.2.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (Pxm),                    "Proximity Domain", 0},
    248          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (IdMappingIndex),         "Device ID Mapping Index", 0},
    249          1.1  christos     ACPI_DMT_TERMINATOR
    250          1.1  christos };
    251          1.1  christos 
    252  1.1.1.2.2.1  christos /* 0x05: PMCG */
    253  1.1.1.2.2.1  christos 
    254  1.1.1.2.2.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort5[] =
    255  1.1.1.2.2.1  christos {
    256  1.1.1.2.2.1  christos     {ACPI_DMT_UINT64,   ACPI_IORT5_OFFSET (Page0BaseAddress),       "Page 0 Base Address", 0},
    257  1.1.1.2.2.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT5_OFFSET (OverflowGsiv),           "Overflow Interrupt GSIV", 0},
    258  1.1.1.2.2.1  christos     {ACPI_DMT_UINT32,   ACPI_IORT5_OFFSET (NodeReference),          "Node Reference", 0},
    259  1.1.1.2.2.1  christos     {ACPI_DMT_UINT64,   ACPI_IORT5_OFFSET (Page1BaseAddress),       "Page 1 Base Address", 0},
    260  1.1.1.2.2.1  christos     ACPI_DMT_TERMINATOR
    261  1.1.1.2.2.1  christos };
    262  1.1.1.2.2.1  christos 
    263          1.1  christos 
    264          1.1  christos /*******************************************************************************
    265          1.1  christos  *
    266          1.1  christos  * IVRS - I/O Virtualization Reporting Structure
    267          1.1  christos  *
    268          1.1  christos  ******************************************************************************/
    269          1.1  christos 
    270          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs[] =
    271          1.1  christos {
    272          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IVRS_OFFSET (Info),                    "Virtualization Info", 0},
    273          1.1  christos     {ACPI_DMT_UINT64,   ACPI_IVRS_OFFSET (Reserved),                "Reserved", 0},
    274          1.1  christos     ACPI_DMT_TERMINATOR
    275          1.1  christos };
    276          1.1  christos 
    277          1.1  christos /* Common Subtable header (one per Subtable) */
    278          1.1  christos 
    279          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrsHdr[] =
    280          1.1  christos {
    281          1.1  christos     {ACPI_DMT_IVRS,     ACPI_IVRSH_OFFSET (Type),                   "Subtable Type", 0},
    282          1.1  christos     {ACPI_DMT_UINT8,    ACPI_IVRSH_OFFSET (Flags),                  "Flags", 0},
    283          1.1  christos     {ACPI_DMT_UINT16,   ACPI_IVRSH_OFFSET (Length),                 "Length", DT_LENGTH},
    284          1.1  christos     {ACPI_DMT_UINT16,   ACPI_IVRSH_OFFSET (DeviceId),               "DeviceId", 0},
    285          1.1  christos     ACPI_DMT_TERMINATOR
    286          1.1  christos };
    287          1.1  christos 
    288          1.1  christos /* IVRS subtables */
    289          1.1  christos 
    290          1.1  christos /* 0x10: I/O Virtualization Hardware Definition (IVHD) Block */
    291          1.1  christos 
    292          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs0[] =
    293          1.1  christos {
    294          1.1  christos     {ACPI_DMT_UINT16,   ACPI_IVRS0_OFFSET (CapabilityOffset),       "Capability Offset", 0},
    295          1.1  christos     {ACPI_DMT_UINT64,   ACPI_IVRS0_OFFSET (BaseAddress),            "Base Address", 0},
    296          1.1  christos     {ACPI_DMT_UINT16,   ACPI_IVRS0_OFFSET (PciSegmentGroup),        "PCI Segment Group", 0},
    297          1.1  christos     {ACPI_DMT_UINT16,   ACPI_IVRS0_OFFSET (Info),                   "Virtualization Info", 0},
    298          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IVRS0_OFFSET (Reserved),               "Reserved", 0},
    299          1.1  christos     ACPI_DMT_TERMINATOR
    300          1.1  christos };
    301          1.1  christos 
    302          1.1  christos /* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition (IVMD) Block */
    303          1.1  christos 
    304          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs1[] =
    305          1.1  christos {
    306          1.1  christos     {ACPI_DMT_UINT16,   ACPI_IVRS1_OFFSET (AuxData),                "Auxiliary Data", 0},
    307          1.1  christos     {ACPI_DMT_UINT64,   ACPI_IVRS1_OFFSET (Reserved),               "Reserved", 0},
    308          1.1  christos     {ACPI_DMT_UINT64,   ACPI_IVRS1_OFFSET (StartAddress),           "Start Address", 0},
    309          1.1  christos     {ACPI_DMT_UINT64,   ACPI_IVRS1_OFFSET (MemoryLength),           "Memory Length", 0},
    310          1.1  christos     ACPI_DMT_TERMINATOR
    311          1.1  christos };
    312          1.1  christos 
    313          1.1  christos /* Device entry header for IVHD block */
    314          1.1  christos 
    315          1.1  christos #define ACPI_DMT_IVRS_DE_HEADER \
    316          1.1  christos     {ACPI_DMT_UINT8,    ACPI_IVRSD_OFFSET (Type),                   "Entry Type", 0}, \
    317          1.1  christos     {ACPI_DMT_UINT16,   ACPI_IVRSD_OFFSET (Id),                     "Device ID", 0}, \
    318          1.1  christos     {ACPI_DMT_UINT8,    ACPI_IVRSD_OFFSET (DataSetting),            "Data Setting", 0}
    319          1.1  christos 
    320          1.1  christos /* 4-byte device entry */
    321          1.1  christos 
    322          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs4[] =
    323          1.1  christos {
    324          1.1  christos     ACPI_DMT_IVRS_DE_HEADER,
    325          1.1  christos     {ACPI_DMT_EXIT,     0,                                          NULL, 0},
    326          1.1  christos };
    327          1.1  christos 
    328          1.1  christos /* 8-byte device entry */
    329          1.1  christos 
    330          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs8a[] =
    331          1.1  christos {
    332          1.1  christos     ACPI_DMT_IVRS_DE_HEADER,
    333          1.1  christos     {ACPI_DMT_UINT8,    ACPI_IVRS8A_OFFSET (Reserved1),             "Reserved", 0},
    334          1.1  christos     {ACPI_DMT_UINT16,   ACPI_IVRS8A_OFFSET (UsedId),                "Source Used Device ID", 0},
    335          1.1  christos     {ACPI_DMT_UINT8,    ACPI_IVRS8A_OFFSET (Reserved2),             "Reserved", 0},
    336          1.1  christos     ACPI_DMT_TERMINATOR
    337          1.1  christos };
    338          1.1  christos 
    339          1.1  christos /* 8-byte device entry */
    340          1.1  christos 
    341          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs8b[] =
    342          1.1  christos {
    343          1.1  christos     ACPI_DMT_IVRS_DE_HEADER,
    344          1.1  christos     {ACPI_DMT_UINT32,   ACPI_IVRS8B_OFFSET (ExtendedData),          "Extended Data", 0},
    345          1.1  christos     ACPI_DMT_TERMINATOR
    346          1.1  christos };
    347          1.1  christos 
    348          1.1  christos /* 8-byte device entry */
    349          1.1  christos 
    350          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs8c[] =
    351          1.1  christos {
    352          1.1  christos     ACPI_DMT_IVRS_DE_HEADER,
    353          1.1  christos     {ACPI_DMT_UINT8,    ACPI_IVRS8C_OFFSET (Handle),                "Handle", 0},
    354          1.1  christos     {ACPI_DMT_UINT16,   ACPI_IVRS8C_OFFSET (UsedId),                "Source Used Device ID", 0},
    355          1.1  christos     {ACPI_DMT_UINT8,    ACPI_IVRS8C_OFFSET (Variety),               "Variety", 0},
    356          1.1  christos     ACPI_DMT_TERMINATOR
    357          1.1  christos };
    358          1.1  christos 
    359          1.1  christos 
    360          1.1  christos /*******************************************************************************
    361          1.1  christos  *
    362          1.1  christos  * LPIT - Low Power Idle Table
    363          1.1  christos  *
    364          1.1  christos  ******************************************************************************/
    365          1.1  christos 
    366          1.1  christos /* Main table consists only of the standard ACPI table header */
    367          1.1  christos 
    368          1.1  christos /* Common Subtable header (one per Subtable) */
    369          1.1  christos 
    370          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoLpitHdr[] =
    371          1.1  christos {
    372          1.1  christos     {ACPI_DMT_LPIT,     ACPI_LPITH_OFFSET (Type),                   "Subtable Type", 0},
    373          1.1  christos     {ACPI_DMT_UINT32,   ACPI_LPITH_OFFSET (Length),                 "Length", DT_LENGTH},
    374          1.1  christos     {ACPI_DMT_UINT16,   ACPI_LPITH_OFFSET (UniqueId),               "Unique ID", 0},
    375          1.1  christos     {ACPI_DMT_UINT16,   ACPI_LPITH_OFFSET (Reserved),               "Reserved", 0},
    376          1.1  christos     {ACPI_DMT_UINT32,   ACPI_LPITH_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
    377          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_LPITH_FLAG_OFFSET (Flags, 0),          "State Disabled", 0},
    378          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_LPITH_FLAG_OFFSET (Flags, 0),          "No Counter", 0},
    379          1.1  christos     ACPI_DMT_TERMINATOR
    380          1.1  christos };
    381          1.1  christos 
    382          1.1  christos /* LPIT Subtables */
    383          1.1  christos 
    384          1.1  christos /* 0: Native C-state */
    385          1.1  christos 
    386          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoLpit0[] =
    387          1.1  christos {
    388          1.1  christos     {ACPI_DMT_GAS,      ACPI_LPIT0_OFFSET (EntryTrigger),           "Entry Trigger", 0},
    389          1.1  christos     {ACPI_DMT_UINT32,   ACPI_LPIT0_OFFSET (Residency),              "Residency", 0},
    390          1.1  christos     {ACPI_DMT_UINT32,   ACPI_LPIT0_OFFSET (Latency),                "Latency", 0},
    391          1.1  christos     {ACPI_DMT_GAS,      ACPI_LPIT0_OFFSET (ResidencyCounter),       "Residency Counter", 0},
    392          1.1  christos     {ACPI_DMT_UINT64,   ACPI_LPIT0_OFFSET (CounterFrequency),       "Counter Frequency", 0},
    393          1.1  christos     ACPI_DMT_TERMINATOR
    394          1.1  christos };
    395          1.1  christos 
    396          1.1  christos 
    397          1.1  christos /*******************************************************************************
    398          1.1  christos  *
    399          1.1  christos  * MADT - Multiple APIC Description Table and subtables
    400          1.1  christos  *
    401          1.1  christos  ******************************************************************************/
    402          1.1  christos 
    403          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt[] =
    404          1.1  christos {
    405          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT_OFFSET (Address),                 "Local Apic Address", 0},
    406          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT_OFFSET (Flags),                   "Flags (decoded below)", DT_FLAG},
    407          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_MADT_FLAG_OFFSET (Flags,0),            "PC-AT Compatibility", 0},
    408          1.1  christos     ACPI_DMT_TERMINATOR
    409          1.1  christos };
    410          1.1  christos 
    411          1.1  christos /* Common Subtable header (one per Subtable) */
    412          1.1  christos 
    413          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadtHdr[] =
    414          1.1  christos {
    415          1.1  christos     {ACPI_DMT_MADT,     ACPI_MADTH_OFFSET (Type),                   "Subtable Type", 0},
    416          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADTH_OFFSET (Length),                 "Length", DT_LENGTH},
    417          1.1  christos     ACPI_DMT_TERMINATOR
    418          1.1  christos };
    419          1.1  christos 
    420          1.1  christos /* MADT Subtables */
    421          1.1  christos 
    422          1.1  christos /* 0: processor APIC */
    423          1.1  christos 
    424          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt0[] =
    425          1.1  christos {
    426          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT0_OFFSET (ProcessorId),            "Processor ID", 0},
    427          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT0_OFFSET (Id),                     "Local Apic ID", 0},
    428          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT0_OFFSET (LapicFlags),             "Flags (decoded below)", DT_FLAG},
    429          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_MADT0_FLAG_OFFSET (LapicFlags,0),      "Processor Enabled", 0},
    430  1.1.1.2.2.1  christos     {ACPI_DMT_FLAG1,    ACPI_MADT0_FLAG_OFFSET (LapicFlags,0),      "Runtime Online Capable", 0},
    431          1.1  christos     ACPI_DMT_TERMINATOR
    432          1.1  christos };
    433          1.1  christos 
    434          1.1  christos /* 1: IO APIC */
    435          1.1  christos 
    436          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt1[] =
    437          1.1  christos {
    438          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT1_OFFSET (Id),                     "I/O Apic ID", 0},
    439          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT1_OFFSET (Reserved),               "Reserved", 0},
    440          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT1_OFFSET (Address),                "Address", 0},
    441          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT1_OFFSET (GlobalIrqBase),          "Interrupt", 0},
    442          1.1  christos     ACPI_DMT_TERMINATOR
    443          1.1  christos };
    444          1.1  christos 
    445          1.1  christos /* 2: Interrupt Override */
    446          1.1  christos 
    447          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt2[] =
    448          1.1  christos {
    449          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT2_OFFSET (Bus),                    "Bus", 0},
    450          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT2_OFFSET (SourceIrq),              "Source", 0},
    451          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT2_OFFSET (GlobalIrq),              "Interrupt", 0},
    452          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT2_OFFSET (IntiFlags),              "Flags (decoded below)", DT_FLAG},
    453          1.1  christos     {ACPI_DMT_FLAGS0,   ACPI_MADT2_FLAG_OFFSET (IntiFlags,0),       "Polarity", 0},
    454          1.1  christos     {ACPI_DMT_FLAGS2,   ACPI_MADT2_FLAG_OFFSET (IntiFlags,0),       "Trigger Mode", 0},
    455          1.1  christos     ACPI_DMT_TERMINATOR
    456          1.1  christos };
    457          1.1  christos 
    458          1.1  christos /* 3: NMI Sources */
    459          1.1  christos 
    460          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt3[] =
    461          1.1  christos {
    462          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT3_OFFSET (IntiFlags),              "Flags (decoded below)", DT_FLAG},
    463          1.1  christos     {ACPI_DMT_FLAGS0,   ACPI_MADT3_FLAG_OFFSET (IntiFlags,0),       "Polarity", 0},
    464          1.1  christos     {ACPI_DMT_FLAGS2,   ACPI_MADT3_FLAG_OFFSET (IntiFlags,0),       "Trigger Mode", 0},
    465          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT3_OFFSET (GlobalIrq),              "Interrupt", 0},
    466          1.1  christos     ACPI_DMT_TERMINATOR
    467          1.1  christos };
    468          1.1  christos 
    469          1.1  christos /* 4: Local APIC NMI */
    470          1.1  christos 
    471          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt4[] =
    472          1.1  christos {
    473          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT4_OFFSET (ProcessorId),            "Processor ID", 0},
    474          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT4_OFFSET (IntiFlags),              "Flags (decoded below)", DT_FLAG},
    475          1.1  christos     {ACPI_DMT_FLAGS0,   ACPI_MADT4_FLAG_OFFSET (IntiFlags,0),       "Polarity", 0},
    476          1.1  christos     {ACPI_DMT_FLAGS2,   ACPI_MADT4_FLAG_OFFSET (IntiFlags,0),       "Trigger Mode", 0},
    477          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT4_OFFSET (Lint),                   "Interrupt Input LINT", 0},
    478          1.1  christos     ACPI_DMT_TERMINATOR
    479          1.1  christos };
    480          1.1  christos 
    481          1.1  christos /* 5: Address Override */
    482          1.1  christos 
    483          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt5[] =
    484          1.1  christos {
    485          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT5_OFFSET (Reserved),               "Reserved", 0},
    486          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MADT5_OFFSET (Address),                "APIC Address", 0},
    487          1.1  christos     ACPI_DMT_TERMINATOR
    488          1.1  christos };
    489          1.1  christos 
    490          1.1  christos /* 6: I/O Sapic */
    491          1.1  christos 
    492          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt6[] =
    493          1.1  christos {
    494          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT6_OFFSET (Id),                     "I/O Sapic ID", 0},
    495          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT6_OFFSET (Reserved),               "Reserved", 0},
    496          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT6_OFFSET (GlobalIrqBase),          "Interrupt Base", 0},
    497          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MADT6_OFFSET (Address),                "Address", 0},
    498          1.1  christos     ACPI_DMT_TERMINATOR
    499          1.1  christos };
    500          1.1  christos 
    501          1.1  christos /* 7: Local Sapic */
    502          1.1  christos 
    503          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt7[] =
    504          1.1  christos {
    505          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT7_OFFSET (ProcessorId),            "Processor ID", 0},
    506          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT7_OFFSET (Id),                     "Local Sapic ID", 0},
    507          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT7_OFFSET (Eid),                    "Local Sapic EID", 0},
    508          1.1  christos     {ACPI_DMT_UINT24,   ACPI_MADT7_OFFSET (Reserved[0]),            "Reserved", 0},
    509          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT7_OFFSET (LapicFlags),             "Flags (decoded below)", DT_FLAG},
    510          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_MADT7_FLAG_OFFSET (LapicFlags,0),      "Processor Enabled", 0},
    511          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT7_OFFSET (Uid),                    "Processor UID", 0},
    512          1.1  christos     {ACPI_DMT_STRING,   ACPI_MADT7_OFFSET (UidString[0]),           "Processor UID String", 0},
    513          1.1  christos     ACPI_DMT_TERMINATOR
    514          1.1  christos };
    515          1.1  christos 
    516          1.1  christos /* 8: Platform Interrupt Source */
    517          1.1  christos 
    518          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt8[] =
    519          1.1  christos {
    520          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT8_OFFSET (IntiFlags),              "Flags (decoded below)", DT_FLAG},
    521          1.1  christos     {ACPI_DMT_FLAGS0,   ACPI_MADT8_FLAG_OFFSET (IntiFlags,0),       "Polarity", 0},
    522          1.1  christos     {ACPI_DMT_FLAGS2,   ACPI_MADT8_FLAG_OFFSET (IntiFlags,0),       "Trigger Mode", 0},
    523          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT8_OFFSET (Type),                   "InterruptType", 0},
    524          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT8_OFFSET (Id),                     "Processor ID", 0},
    525          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT8_OFFSET (Eid),                    "Processor EID", 0},
    526          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT8_OFFSET (IoSapicVector),          "I/O Sapic Vector", 0},
    527          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT8_OFFSET (GlobalIrq),              "Interrupt", 0},
    528          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT8_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
    529          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_MADT8_OFFSET (Flags),                  "CPEI Override", 0},
    530          1.1  christos     ACPI_DMT_TERMINATOR
    531          1.1  christos };
    532          1.1  christos 
    533          1.1  christos /* 9: Processor Local X2_APIC (ACPI 4.0) */
    534          1.1  christos 
    535          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt9[] =
    536          1.1  christos {
    537          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT9_OFFSET (Reserved),               "Reserved", 0},
    538          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT9_OFFSET (LocalApicId),            "Processor x2Apic ID", 0},
    539          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT9_OFFSET (LapicFlags),             "Flags (decoded below)", DT_FLAG},
    540          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_MADT9_FLAG_OFFSET (LapicFlags,0),      "Processor Enabled", 0},
    541          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT9_OFFSET (Uid),                    "Processor UID", 0},
    542          1.1  christos     ACPI_DMT_TERMINATOR
    543          1.1  christos };
    544          1.1  christos 
    545          1.1  christos /* 10: Local X2_APIC NMI (ACPI 4.0) */
    546          1.1  christos 
    547          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt10[] =
    548          1.1  christos {
    549          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT10_OFFSET (IntiFlags),             "Flags (decoded below)", DT_FLAG},
    550          1.1  christos     {ACPI_DMT_FLAGS0,   ACPI_MADT10_FLAG_OFFSET (IntiFlags,0),      "Polarity", 0},
    551          1.1  christos     {ACPI_DMT_FLAGS2,   ACPI_MADT10_FLAG_OFFSET (IntiFlags,0),      "Trigger Mode", 0},
    552          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT10_OFFSET (Uid),                   "Processor UID", 0},
    553          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT10_OFFSET (Lint),                  "Interrupt Input LINT", 0},
    554          1.1  christos     {ACPI_DMT_UINT24,   ACPI_MADT10_OFFSET (Reserved[0]),           "Reserved", 0},
    555          1.1  christos     ACPI_DMT_TERMINATOR
    556          1.1  christos };
    557          1.1  christos 
    558          1.1  christos /* 11: Generic Interrupt Controller (ACPI 5.0) */
    559          1.1  christos 
    560          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt11[] =
    561          1.1  christos {
    562          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT11_OFFSET (Reserved),              "Reserved", 0},
    563          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT11_OFFSET (CpuInterfaceNumber),    "CPU Interface Number", 0},
    564          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT11_OFFSET (Uid),                   "Processor UID", 0},
    565          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT11_OFFSET (Flags),                 "Flags (decoded below)", DT_FLAG},
    566          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_MADT11_FLAG_OFFSET (Flags,0),          "Processor Enabled", 0},
    567          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_MADT11_FLAG_OFFSET (Flags,0),          "Performance Interrupt Trigger Mode", 0},
    568          1.1  christos     {ACPI_DMT_FLAG2,    ACPI_MADT11_FLAG_OFFSET (Flags,0),          "Virtual GIC Interrupt Trigger Mode", 0},
    569          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT11_OFFSET (ParkingVersion),        "Parking Protocol Version", 0},
    570          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT11_OFFSET (PerformanceInterrupt),  "Performance Interrupt", 0},
    571          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MADT11_OFFSET (ParkedAddress),         "Parked Address", 0},
    572          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MADT11_OFFSET (BaseAddress),           "Base Address", 0},
    573          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MADT11_OFFSET (GicvBaseAddress),       "Virtual GIC Base Address", 0},
    574          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MADT11_OFFSET (GichBaseAddress),       "Hypervisor GIC Base Address", 0},
    575          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT11_OFFSET (VgicInterrupt),         "Virtual GIC Interrupt", 0},
    576          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MADT11_OFFSET (GicrBaseAddress),       "Redistributor Base Address", 0},
    577          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MADT11_OFFSET (ArmMpidr),              "ARM MPIDR", 0},
    578          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT11_OFFSET (EfficiencyClass),       "Efficiency Class", 0},
    579  1.1.1.2.2.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT11_OFFSET (Reserved2[0]),          "Reserved", 0},
    580  1.1.1.2.2.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT11_OFFSET (SpeInterrupt),          "SPE Overflow Interrupt", 0},
    581          1.1  christos     ACPI_DMT_TERMINATOR
    582          1.1  christos };
    583          1.1  christos 
    584          1.1  christos /* 12: Generic Interrupt Distributor (ACPI 5.0) */
    585          1.1  christos 
    586          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt12[] =
    587          1.1  christos {
    588          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT12_OFFSET (Reserved),              "Reserved", 0},
    589          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT12_OFFSET (GicId),                 "Local GIC Hardware ID", 0},
    590          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MADT12_OFFSET (BaseAddress),           "Base Address", 0},
    591          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT12_OFFSET (GlobalIrqBase),         "Interrupt Base", 0},
    592          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MADT12_OFFSET (Version),               "Version", 0},
    593          1.1  christos     {ACPI_DMT_UINT24,   ACPI_MADT12_OFFSET (Reserved2[0]),          "Reserved", 0},
    594          1.1  christos    ACPI_DMT_TERMINATOR
    595          1.1  christos };
    596          1.1  christos 
    597          1.1  christos /* 13: Generic MSI Frame (ACPI 5.1) */
    598          1.1  christos 
    599          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt13[] =
    600          1.1  christos {
    601          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT13_OFFSET (Reserved),              "Reserved", 0},
    602          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT13_OFFSET (MsiFrameId),            "MSI Frame ID", 0},
    603          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MADT13_OFFSET (BaseAddress),           "Base Address", 0},
    604          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT13_OFFSET (Flags),                 "Flags (decoded below)", DT_FLAG},
    605          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_MADT13_FLAG_OFFSET (Flags,0),          "Select SPI", 0},
    606          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT13_OFFSET (SpiCount),              "SPI Count", 0},
    607          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT13_OFFSET (SpiBase),               "SPI Base", 0},
    608          1.1  christos    ACPI_DMT_TERMINATOR
    609          1.1  christos };
    610          1.1  christos 
    611          1.1  christos /* 14: Generic Redistributor (ACPI 5.1) */
    612          1.1  christos 
    613          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt14[] =
    614          1.1  christos {
    615          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT14_OFFSET (Reserved),              "Reserved", 0},
    616          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MADT14_OFFSET (BaseAddress),           "Base Address", 0},
    617          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT14_OFFSET (Length),                "Length", 0},
    618          1.1  christos    ACPI_DMT_TERMINATOR
    619          1.1  christos };
    620          1.1  christos 
    621          1.1  christos /* 15: Generic Translator (ACPI 6.0) */
    622          1.1  christos 
    623          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt15[] =
    624          1.1  christos {
    625          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MADT15_OFFSET (Reserved),              "Reserved", 0},
    626          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT15_OFFSET (TranslationId),         "Translation ID", 0},
    627          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MADT15_OFFSET (BaseAddress),           "Base Address", 0},
    628          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MADT15_OFFSET (Reserved2),             "Reserved", 0},
    629          1.1  christos    ACPI_DMT_TERMINATOR
    630          1.1  christos };
    631          1.1  christos 
    632          1.1  christos 
    633          1.1  christos /*******************************************************************************
    634          1.1  christos  *
    635          1.1  christos  * MCFG - PCI Memory Mapped Configuration table and Subtable
    636          1.1  christos  *
    637          1.1  christos  ******************************************************************************/
    638          1.1  christos 
    639          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMcfg[] =
    640          1.1  christos {
    641          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MCFG_OFFSET (Reserved[0]),             "Reserved", 0},
    642          1.1  christos     ACPI_DMT_TERMINATOR
    643          1.1  christos };
    644          1.1  christos 
    645          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMcfg0[] =
    646          1.1  christos {
    647          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MCFG0_OFFSET (Address),                "Base Address", 0},
    648          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MCFG0_OFFSET (PciSegment),             "Segment Group Number", 0},
    649          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MCFG0_OFFSET (StartBusNumber),         "Start Bus Number", 0},
    650          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MCFG0_OFFSET (EndBusNumber),           "End Bus Number", 0},
    651          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MCFG0_OFFSET (Reserved),               "Reserved", 0},
    652          1.1  christos     ACPI_DMT_TERMINATOR
    653          1.1  christos };
    654          1.1  christos 
    655          1.1  christos 
    656          1.1  christos /*******************************************************************************
    657          1.1  christos  *
    658          1.1  christos  * MCHI - Management Controller Host Interface table
    659          1.1  christos  *
    660          1.1  christos  ******************************************************************************/
    661          1.1  christos 
    662          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMchi[] =
    663          1.1  christos {
    664          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (InterfaceType),           "Interface Type", 0},
    665          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (Protocol),                "Protocol", 0},
    666          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MCHI_OFFSET (ProtocolData),            "Protocol Data", 0},
    667          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (InterruptType),           "Interrupt Type", 0},
    668          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (Gpe),                     "Gpe", 0},
    669          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (PciDeviceFlag),           "Pci Device Flag", 0},
    670          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MCHI_OFFSET (GlobalInterrupt),         "Global Interrupt", 0},
    671          1.1  christos     {ACPI_DMT_GAS,      ACPI_MCHI_OFFSET (ControlRegister),         "Control Register", 0},
    672          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (PciSegment),              "Pci Segment", 0},
    673          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (PciBus),                  "Pci Bus", 0},
    674          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (PciDevice),               "Pci Device", 0},
    675          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (PciFunction),             "Pci Function", 0},
    676          1.1  christos     ACPI_DMT_TERMINATOR
    677          1.1  christos };
    678          1.1  christos 
    679          1.1  christos 
    680          1.1  christos /*******************************************************************************
    681          1.1  christos  *
    682          1.1  christos  * MPST - Memory Power State Table
    683          1.1  christos  *
    684          1.1  christos  ******************************************************************************/
    685          1.1  christos 
    686          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMpst[] =
    687          1.1  christos {
    688          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MPST_OFFSET (ChannelId),               "Channel ID", 0},
    689          1.1  christos     {ACPI_DMT_UINT24,   ACPI_MPST_OFFSET (Reserved1[0]),            "Reserved", 0},
    690          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MPST_OFFSET (PowerNodeCount),          "Power Node Count", 0},
    691          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MPST_OFFSET (Reserved2),               "Reserved", 0},
    692          1.1  christos     ACPI_DMT_TERMINATOR
    693          1.1  christos };
    694          1.1  christos 
    695          1.1  christos /* MPST subtables */
    696          1.1  christos 
    697          1.1  christos /* 0: Memory Power Node Structure */
    698          1.1  christos 
    699          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMpst0[] =
    700          1.1  christos {
    701          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MPST0_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
    702          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_MPST0_FLAG_OFFSET (Flags,0),           "Node Enabled", 0},
    703          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_MPST0_FLAG_OFFSET (Flags,0),           "Power Managed", 0},
    704          1.1  christos     {ACPI_DMT_FLAG2,    ACPI_MPST0_FLAG_OFFSET (Flags,0),           "Hot Plug Capable", 0},
    705          1.1  christos 
    706          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MPST0_OFFSET (Reserved1),              "Reserved", 0},
    707          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MPST0_OFFSET (NodeId),                 "Node ID", 0},
    708          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MPST0_OFFSET (Length),                 "Length", 0},
    709          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MPST0_OFFSET (RangeAddress),           "Range Address", 0},
    710          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MPST0_OFFSET (RangeLength),            "Range Length", 0},
    711          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MPST0_OFFSET (NumPowerStates),         "Num Power States", 0},
    712          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MPST0_OFFSET (NumPhysicalComponents),  "Num Physical Components", 0},
    713          1.1  christos     ACPI_DMT_TERMINATOR
    714          1.1  christos };
    715          1.1  christos 
    716          1.1  christos /* 0A: Sub-subtable - Memory Power State Structure (follows Memory Power Node above) */
    717          1.1  christos 
    718          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMpst0A[] =
    719          1.1  christos {
    720          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MPST0A_OFFSET (PowerState),            "Power State", 0},
    721          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MPST0A_OFFSET (InfoIndex),             "InfoIndex", 0},
    722          1.1  christos     ACPI_DMT_TERMINATOR
    723          1.1  christos };
    724          1.1  christos 
    725          1.1  christos /* 0B: Sub-subtable - Physical Component ID Structure (follows Memory Power State(s) above) */
    726          1.1  christos 
    727          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMpst0B[] =
    728          1.1  christos {
    729          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MPST0B_OFFSET (ComponentId),           "Component Id", 0},
    730          1.1  christos     ACPI_DMT_TERMINATOR
    731          1.1  christos };
    732          1.1  christos 
    733          1.1  christos /* 01: Power Characteristics Count (follows all Power Node(s) above) */
    734          1.1  christos 
    735          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMpst1[] =
    736          1.1  christos {
    737          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MPST1_OFFSET (CharacteristicsCount),   "Characteristics Count", 0},
    738          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MPST1_OFFSET (Reserved),               "Reserved", 0},
    739          1.1  christos     ACPI_DMT_TERMINATOR
    740          1.1  christos };
    741          1.1  christos 
    742          1.1  christos /* 02: Memory Power State Characteristics Structure */
    743          1.1  christos 
    744          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMpst2[] =
    745          1.1  christos {
    746          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MPST2_OFFSET (StructureId),            "Structure ID", 0},
    747          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MPST2_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
    748          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_MPST2_FLAG_OFFSET (Flags,0),           "Memory Preserved", 0},
    749          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_MPST2_FLAG_OFFSET (Flags,0),           "Auto Entry", 0},
    750          1.1  christos     {ACPI_DMT_FLAG2,    ACPI_MPST2_FLAG_OFFSET (Flags,0),           "Auto Exit", 0},
    751          1.1  christos 
    752          1.1  christos     {ACPI_DMT_UINT16,   ACPI_MPST2_OFFSET (Reserved1),              "Reserved", 0},
    753          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MPST2_OFFSET (AveragePower),           "Average Power", 0},
    754          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MPST2_OFFSET (PowerSaving),            "Power Saving", 0},
    755          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MPST2_OFFSET (ExitLatency),            "Exit Latency", 0},
    756          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MPST2_OFFSET (Reserved2),              "Reserved", 0},
    757          1.1  christos     ACPI_DMT_TERMINATOR
    758          1.1  christos };
    759          1.1  christos 
    760          1.1  christos 
    761          1.1  christos /*******************************************************************************
    762          1.1  christos  *
    763          1.1  christos  * MSCT - Maximum System Characteristics Table (ACPI 4.0)
    764          1.1  christos  *
    765          1.1  christos  ******************************************************************************/
    766          1.1  christos 
    767          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMsct[] =
    768          1.1  christos {
    769          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MSCT_OFFSET (ProximityOffset),         "Proximity Offset", 0},
    770          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MSCT_OFFSET (MaxProximityDomains),     "Max Proximity Domains", 0},
    771          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MSCT_OFFSET (MaxClockDomains),         "Max Clock Domains", 0},
    772          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MSCT_OFFSET (MaxAddress),              "Max Physical Address", 0},
    773          1.1  christos     ACPI_DMT_TERMINATOR
    774          1.1  christos };
    775          1.1  christos 
    776          1.1  christos /* Subtable - Maximum Proximity Domain Information. Version 1 */
    777          1.1  christos 
    778          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMsct0[] =
    779          1.1  christos {
    780          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MSCT0_OFFSET (Revision),               "Revision", 0},
    781          1.1  christos     {ACPI_DMT_UINT8,    ACPI_MSCT0_OFFSET (Length),                 "Length", DT_LENGTH},
    782          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MSCT0_OFFSET (RangeStart),             "Domain Range Start", 0},
    783          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MSCT0_OFFSET (RangeEnd),               "Domain Range End", 0},
    784          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MSCT0_OFFSET (ProcessorCapacity),      "Processor Capacity", 0},
    785          1.1  christos     {ACPI_DMT_UINT64,   ACPI_MSCT0_OFFSET (MemoryCapacity),         "Memory Capacity", 0},
    786          1.1  christos     ACPI_DMT_TERMINATOR
    787          1.1  christos };
    788          1.1  christos 
    789          1.1  christos 
    790          1.1  christos /*******************************************************************************
    791          1.1  christos  *
    792          1.1  christos  * MTMR - MID Timer Table
    793          1.1  christos  *
    794          1.1  christos  ******************************************************************************/
    795          1.1  christos 
    796          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMtmr[] =
    797          1.1  christos {
    798          1.1  christos     ACPI_DMT_TERMINATOR
    799          1.1  christos };
    800          1.1  christos 
    801          1.1  christos /* MTMR Subtables - MTMR Entry */
    802          1.1  christos 
    803          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMtmr0[] =
    804          1.1  christos {
    805          1.1  christos     {ACPI_DMT_GAS,      ACPI_MTMR0_OFFSET (PhysicalAddress),        "PhysicalAddress", 0},
    806          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MTMR0_OFFSET (Frequency),              "Frequency", 0},
    807          1.1  christos     {ACPI_DMT_UINT32,   ACPI_MTMR0_OFFSET (Irq),                    "IRQ", 0},
    808          1.1  christos     ACPI_DMT_TERMINATOR
    809          1.1  christos };
    810          1.1  christos 
    811          1.1  christos 
    812          1.1  christos /*******************************************************************************
    813          1.1  christos  *
    814          1.1  christos  * NFIT - NVDIMM Firmware Interface Table and Subtables - (ACPI 6.0)
    815          1.1  christos  *
    816          1.1  christos  ******************************************************************************/
    817          1.1  christos 
    818          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit[] =
    819          1.1  christos {
    820          1.1  christos     {ACPI_DMT_UINT32,   ACPI_NFIT_OFFSET (Reserved),                "Reserved", 0},
    821          1.1  christos     ACPI_DMT_TERMINATOR
    822          1.1  christos };
    823          1.1  christos 
    824          1.1  christos /* Common Subtable header */
    825          1.1  christos 
    826          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfitHdr[] =
    827          1.1  christos {
    828          1.1  christos     {ACPI_DMT_NFIT,     ACPI_NFITH_OFFSET (Type),                   "Subtable Type", 0},
    829          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFITH_OFFSET (Length),                 "Length", DT_LENGTH},
    830          1.1  christos     ACPI_DMT_TERMINATOR
    831          1.1  christos };
    832          1.1  christos 
    833          1.1  christos /* 0: System Physical Address Range Structure */
    834          1.1  christos 
    835          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit0[] =
    836          1.1  christos {
    837          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT0_OFFSET (RangeIndex),             "Range Index", 0},
    838          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT0_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
    839          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_NFIT0_FLAG_OFFSET (Flags,0),           "Add/Online Operation Only", 0},
    840          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_NFIT0_FLAG_OFFSET (Flags,0),           "Proximity Domain Valid", 0},
    841          1.1  christos     {ACPI_DMT_UINT32,   ACPI_NFIT0_OFFSET (Reserved),               "Reserved", 0},
    842          1.1  christos     {ACPI_DMT_UINT32,   ACPI_NFIT0_OFFSET (ProximityDomain),        "Proximity Domain", 0},
    843  1.1.1.2.2.1  christos     {ACPI_DMT_UUID,     ACPI_NFIT0_OFFSET (RangeGuid[0]),           "Region Type GUID", 0},
    844          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT0_OFFSET (Address),                "Address Range Base", 0},
    845          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT0_OFFSET (Length),                 "Address Range Length", 0},
    846          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT0_OFFSET (MemoryMapping),          "Memory Map Attribute", 0},
    847          1.1  christos     ACPI_DMT_TERMINATOR
    848          1.1  christos };
    849          1.1  christos 
    850          1.1  christos /* 1: Memory Device to System Address Range Map Structure */
    851          1.1  christos 
    852          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit1[] =
    853          1.1  christos {
    854          1.1  christos     {ACPI_DMT_UINT32,   ACPI_NFIT1_OFFSET (DeviceHandle),           "Device Handle", 0},
    855          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (PhysicalId),             "Physical Id", 0},
    856          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (RegionId),               "Region Id", 0},
    857          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (RangeIndex),             "Range Index", 0},
    858          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (RegionIndex),            "Control Region Index", 0},
    859          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT1_OFFSET (RegionSize),             "Region Size", 0},
    860          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT1_OFFSET (RegionOffset),           "Region Offset", 0},
    861          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT1_OFFSET (Address),                "Address Region Base", 0},
    862          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (InterleaveIndex),        "Interleave Index", 0},
    863          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (InterleaveWays),         "Interleave Ways", 0},
    864          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (Flags),                  "Flags", DT_FLAG},
    865          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_NFIT1_FLAG_OFFSET (Flags,0),           "Save to device failed", 0},
    866          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_NFIT1_FLAG_OFFSET (Flags,0),           "Restore from device failed", 0},
    867          1.1  christos     {ACPI_DMT_FLAG2,    ACPI_NFIT1_FLAG_OFFSET (Flags,0),           "Platform flush failed", 0},
    868          1.1  christos     {ACPI_DMT_FLAG3,    ACPI_NFIT1_FLAG_OFFSET (Flags,0),           "Device not armed", 0},
    869          1.1  christos     {ACPI_DMT_FLAG4,    ACPI_NFIT1_FLAG_OFFSET (Flags,0),           "Health events observed", 0},
    870          1.1  christos     {ACPI_DMT_FLAG5,    ACPI_NFIT1_FLAG_OFFSET (Flags,0),           "Health events enabled", 0},
    871          1.1  christos     {ACPI_DMT_FLAG6,    ACPI_NFIT1_FLAG_OFFSET (Flags,0),           "Mapping failed", 0},
    872          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (Reserved),               "Reserved", 0},
    873          1.1  christos     ACPI_DMT_TERMINATOR
    874          1.1  christos };
    875          1.1  christos 
    876          1.1  christos /* 2: Interleave Structure */
    877          1.1  christos 
    878          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit2[] =
    879          1.1  christos {
    880          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT2_OFFSET (InterleaveIndex),        "Interleave Index", 0},
    881          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT2_OFFSET (Reserved),               "Reserved", 0},
    882          1.1  christos     {ACPI_DMT_UINT32,   ACPI_NFIT2_OFFSET (LineCount),              "Line Count", 0},
    883          1.1  christos     {ACPI_DMT_UINT32,   ACPI_NFIT2_OFFSET (LineSize),               "Line Size", 0},
    884          1.1  christos     ACPI_DMT_TERMINATOR
    885          1.1  christos };
    886          1.1  christos 
    887          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit2a[] =
    888          1.1  christos {
    889          1.1  christos     {ACPI_DMT_UINT32,   0,                                          "Line Offset", DT_OPTIONAL},
    890          1.1  christos     ACPI_DMT_TERMINATOR
    891          1.1  christos };
    892          1.1  christos 
    893          1.1  christos /* 3: SMBIOS Management Information Structure */
    894          1.1  christos 
    895          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit3[] =
    896          1.1  christos {
    897          1.1  christos     {ACPI_DMT_UINT32,   ACPI_NFIT3_OFFSET (Reserved),               "Reserved", 0},
    898          1.1  christos     ACPI_DMT_TERMINATOR
    899          1.1  christos };
    900          1.1  christos 
    901          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit3a[] =
    902          1.1  christos {
    903          1.1  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "SMBIOS Table Entries", DT_OPTIONAL},
    904          1.1  christos     ACPI_DMT_TERMINATOR
    905          1.1  christos };
    906          1.1  christos 
    907          1.1  christos /* 4: NVDIMM Control Region Structure */
    908          1.1  christos 
    909          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit4[] =
    910          1.1  christos {
    911          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (RegionIndex),            "Region Index", 0},
    912          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (VendorId),               "Vendor Id", 0},
    913          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (DeviceId),               "Device Id", 0},
    914          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (RevisionId),             "Revision Id", 0},
    915          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (SubsystemVendorId),      "Subsystem Vendor Id", 0},
    916          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (SubsystemDeviceId),      "Subsystem Device Id", 0},
    917          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (SubsystemRevisionId),    "Subsystem Revision Id", 0},
    918          1.1  christos     {ACPI_DMT_UINT8,    ACPI_NFIT4_OFFSET (ValidFields),            "Valid Fields", 0},
    919          1.1  christos     {ACPI_DMT_UINT8,    ACPI_NFIT4_OFFSET (ManufacturingLocation),  "Manufacturing Location", 0},
    920          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (ManufacturingDate),      "Manufacturing Date", 0},
    921          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (Reserved[0]),            "Reserved", 0},
    922          1.1  christos     {ACPI_DMT_UINT32,   ACPI_NFIT4_OFFSET (SerialNumber),           "Serial Number", 0},
    923          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (Code),                   "Code", 0},
    924          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (Windows),                "Window Count", 0},
    925          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT4_OFFSET (WindowSize),             "Window Size", 0},
    926          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT4_OFFSET (CommandOffset),          "Command Offset", 0},
    927          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT4_OFFSET (CommandSize),            "Command Size", 0},
    928          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT4_OFFSET (StatusOffset),           "Status Offset", 0},
    929          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT4_OFFSET (StatusSize),             "Status Size", 0},
    930          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (Flags),                  "Flags", DT_FLAG},
    931          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_NFIT4_FLAG_OFFSET (Flags,0),           "Windows buffered", 0},
    932          1.1  christos     {ACPI_DMT_UINT48,   ACPI_NFIT4_OFFSET (Reserved1[0]),           "Reserved1", 0},
    933          1.1  christos     ACPI_DMT_TERMINATOR
    934          1.1  christos };
    935          1.1  christos 
    936          1.1  christos /* 5: NVDIMM Block Data Window Region Structure */
    937          1.1  christos 
    938          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit5[] =
    939          1.1  christos {
    940          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT5_OFFSET (RegionIndex),            "Region Index", 0},
    941          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT5_OFFSET (Windows),                "Window Count", 0},
    942          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT5_OFFSET (Offset),                 "Offset", 0},
    943          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT5_OFFSET (Size),                   "Size", 0},
    944          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT5_OFFSET (Capacity),               "Capacity", 0},
    945          1.1  christos     {ACPI_DMT_UINT64,   ACPI_NFIT5_OFFSET (StartAddress),           "Start Address", 0},
    946          1.1  christos     ACPI_DMT_TERMINATOR
    947          1.1  christos };
    948          1.1  christos 
    949          1.1  christos /* 6: Flush Hint Address Structure */
    950          1.1  christos 
    951          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit6[] =
    952          1.1  christos {
    953          1.1  christos     {ACPI_DMT_UINT32,   ACPI_NFIT6_OFFSET (DeviceHandle),           "Device Handle", 0},
    954          1.1  christos     {ACPI_DMT_UINT16,   ACPI_NFIT6_OFFSET (HintCount),              "Hint Count", 0},
    955          1.1  christos     {ACPI_DMT_UINT48,   ACPI_NFIT6_OFFSET (Reserved[0]),            "Reserved", 0},
    956          1.1  christos     ACPI_DMT_TERMINATOR
    957          1.1  christos };
    958          1.1  christos 
    959          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit6a[] =
    960          1.1  christos {
    961          1.1  christos     {ACPI_DMT_UINT64,   0,                                          "Hint Address", DT_OPTIONAL},
    962          1.1  christos     ACPI_DMT_TERMINATOR
    963          1.1  christos };
    964          1.1  christos 
    965          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit7[] =
    966          1.1  christos {
    967          1.1  christos     {ACPI_DMT_UINT8,    ACPI_NFIT7_OFFSET (HighestCapability),      "Highest Capability", 0},
    968          1.1  christos     {ACPI_DMT_UINT24,   ACPI_NFIT7_OFFSET (Reserved[0]),            "Reserved", 0},
    969          1.1  christos     {ACPI_DMT_UINT32,   ACPI_NFIT7_OFFSET (Capabilities),           "Capabilities (decoded below)", DT_FLAG},
    970          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_NFIT7_FLAG_OFFSET (Capabilities,0),    "Cache Flush to NVDIMM", 0},
    971      1.1.1.2  christos     {ACPI_DMT_FLAG1,    ACPI_NFIT7_FLAG_OFFSET (Capabilities,0),    "Memory Flush to NVDIMM", 0},
    972          1.1  christos     {ACPI_DMT_FLAG2,    ACPI_NFIT7_FLAG_OFFSET (Capabilities,0),    "Memory Mirroring", 0},
    973          1.1  christos     {ACPI_DMT_UINT32,   ACPI_NFIT7_OFFSET (Reserved2),              "Reserved", 0},
    974          1.1  christos     ACPI_DMT_TERMINATOR
    975          1.1  christos };
    976          1.1  christos 
    977          1.1  christos 
    978          1.1  christos /*******************************************************************************
    979          1.1  christos  *
    980          1.1  christos  * PCCT - Platform Communications Channel Table (ACPI 5.0)
    981          1.1  christos  *
    982          1.1  christos  ******************************************************************************/
    983          1.1  christos 
    984          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPcct[] =
    985          1.1  christos {
    986          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT_OFFSET (Flags),                   "Flags (decoded below)", DT_FLAG},
    987          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_PCCT_FLAG_OFFSET (Flags,0),            "Platform", 0},
    988          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT_OFFSET (Reserved),                "Reserved", 0},
    989          1.1  christos     ACPI_DMT_TERMINATOR
    990          1.1  christos };
    991          1.1  christos 
    992          1.1  christos /* PCCT subtables */
    993          1.1  christos 
    994          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPcctHdr[] =
    995          1.1  christos {
    996          1.1  christos     {ACPI_DMT_PCCT,     ACPI_PCCT0_OFFSET (Header.Type),            "Subtable Type", 0},
    997          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PCCT0_OFFSET (Header.Length),          "Length", DT_LENGTH},
    998          1.1  christos     ACPI_DMT_TERMINATOR
    999          1.1  christos };
   1000          1.1  christos 
   1001          1.1  christos /* 0: Generic Communications Subspace */
   1002          1.1  christos 
   1003          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPcct0[] =
   1004          1.1  christos {
   1005          1.1  christos     {ACPI_DMT_UINT48,   ACPI_PCCT0_OFFSET (Reserved[0]),            "Reserved", 0},
   1006          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT0_OFFSET (BaseAddress),            "Base Address", 0},
   1007          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT0_OFFSET (Length),                 "Address Length", 0},
   1008          1.1  christos     {ACPI_DMT_GAS,      ACPI_PCCT0_OFFSET (DoorbellRegister),       "Doorbell Register", 0},
   1009          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT0_OFFSET (PreserveMask),           "Preserve Mask", 0},
   1010          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT0_OFFSET (WriteMask),              "Write Mask", 0},
   1011          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT0_OFFSET (Latency),                "Command Latency", 0},
   1012          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT0_OFFSET (MaxAccessRate),          "Maximum Access Rate", 0},
   1013          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PCCT0_OFFSET (MinTurnaroundTime),      "Minimum Turnaround Time", 0},
   1014          1.1  christos     ACPI_DMT_TERMINATOR
   1015          1.1  christos };
   1016          1.1  christos 
   1017          1.1  christos /* 1: HW-reduced Communications Subspace (ACPI 5.1) */
   1018          1.1  christos 
   1019          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPcct1[] =
   1020          1.1  christos {
   1021          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT1_OFFSET (PlatformInterrupt),      "Platform Interrupt", 0},
   1022          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PCCT1_OFFSET (Flags),                  "Flags (Decoded Below)", DT_FLAG},
   1023          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_PCCT1_FLAG_OFFSET (Flags,0),           "Polarity", 0},
   1024          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_PCCT1_FLAG_OFFSET (Flags,0),           "Mode", 0},
   1025          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PCCT1_OFFSET (Reserved),               "Reserved", 0},
   1026          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT1_OFFSET (BaseAddress),            "Base Address", 0},
   1027          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT1_OFFSET (Length),                 "Address Length", 0},
   1028          1.1  christos     {ACPI_DMT_GAS,      ACPI_PCCT1_OFFSET (DoorbellRegister),       "Doorbell Register", 0},
   1029          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT1_OFFSET (PreserveMask),           "Preserve Mask", 0},
   1030          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT1_OFFSET (WriteMask),              "Write Mask", 0},
   1031          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT1_OFFSET (Latency),                "Command Latency", 0},
   1032          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT1_OFFSET (MaxAccessRate),          "Maximum Access Rate", 0},
   1033          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PCCT1_OFFSET (MinTurnaroundTime),      "Minimum Turnaround Time", 0},
   1034          1.1  christos     ACPI_DMT_TERMINATOR
   1035          1.1  christos };
   1036          1.1  christos 
   1037          1.1  christos /* 2: HW-reduced Communications Subspace Type 2 (ACPI 6.1) */
   1038          1.1  christos 
   1039          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPcct2[] =
   1040          1.1  christos {
   1041          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT2_OFFSET (PlatformInterrupt),      "Platform Interrupt", 0},
   1042          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PCCT2_OFFSET (Flags),                  "Flags (Decoded Below)", DT_FLAG},
   1043          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_PCCT2_FLAG_OFFSET (Flags,0),           "Polarity", 0},
   1044          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_PCCT2_FLAG_OFFSET (Flags,0),           "Mode", 0},
   1045          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PCCT2_OFFSET (Reserved),               "Reserved", 0},
   1046          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT2_OFFSET (BaseAddress),            "Base Address", 0},
   1047          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT2_OFFSET (Length),                 "Address Length", 0},
   1048          1.1  christos     {ACPI_DMT_GAS,      ACPI_PCCT2_OFFSET (DoorbellRegister),       "Doorbell Register", 0},
   1049          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT2_OFFSET (PreserveMask),           "Preserve Mask", 0},
   1050          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT2_OFFSET (WriteMask),              "Write Mask", 0},
   1051          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT2_OFFSET (Latency),                "Command Latency", 0},
   1052          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT2_OFFSET (MaxAccessRate),          "Maximum Access Rate", 0},
   1053          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PCCT2_OFFSET (MinTurnaroundTime),      "Minimum Turnaround Time", 0},
   1054          1.1  christos     {ACPI_DMT_GAS,      ACPI_PCCT2_OFFSET (PlatformAckRegister),    "Platform ACK Register", 0},
   1055          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT2_OFFSET (AckPreserveMask),        "ACK Preserve Mask", 0},
   1056          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT2_OFFSET (AckWriteMask),           "ACK Write Mask", 0},
   1057          1.1  christos     ACPI_DMT_TERMINATOR
   1058          1.1  christos };
   1059          1.1  christos 
   1060          1.1  christos /* 3: Extended PCC Master Subspace Type 3 (ACPI 6.2) */
   1061          1.1  christos 
   1062          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPcct3[] =
   1063          1.1  christos {
   1064          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT3_OFFSET (PlatformInterrupt),      "Platform Interrupt", 0},
   1065          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PCCT3_OFFSET (Flags),                  "Flags (Decoded Below)", DT_FLAG},
   1066          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_PCCT3_FLAG_OFFSET (Flags,0),           "Polarity", 0},
   1067          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_PCCT3_FLAG_OFFSET (Flags,0),           "Mode", 0},
   1068          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PCCT3_OFFSET (Reserved1),              "Reserved", 0},
   1069          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT3_OFFSET (BaseAddress),            "Base Address", 0},
   1070          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT3_OFFSET (Length),                 "Address Length", 0},
   1071          1.1  christos     {ACPI_DMT_GAS,      ACPI_PCCT3_OFFSET (DoorbellRegister),       "Doorbell Register", 0},
   1072          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT3_OFFSET (PreserveMask),           "Preserve Mask", 0},
   1073          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT3_OFFSET (WriteMask),              "Write Mask", 0},
   1074          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT3_OFFSET (Latency),                "Command Latency", 0},
   1075          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT3_OFFSET (MaxAccessRate),          "Maximum Access Rate", 0},
   1076          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT3_OFFSET (MinTurnaroundTime),      "Minimum Turnaround Time", 0},
   1077          1.1  christos     {ACPI_DMT_GAS,      ACPI_PCCT3_OFFSET (PlatformAckRegister),    "Platform ACK Register", 0},
   1078          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT3_OFFSET (AckPreserveMask),        "ACK Preserve Mask", 0},
   1079          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT3_OFFSET (AckSetMask),             "ACK Set Mask", 0},
   1080          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT3_OFFSET (Reserved2),              "Reserved", 0},
   1081          1.1  christos     {ACPI_DMT_GAS,      ACPI_PCCT3_OFFSET (CmdCompleteRegister),    "Command Complete Register", 0},
   1082          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT3_OFFSET (CmdCompleteMask),        "Command Complete Check Mask", 0},
   1083          1.1  christos     {ACPI_DMT_GAS,      ACPI_PCCT3_OFFSET (CmdUpdateRegister),      "Command Update Register", 0},
   1084          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT3_OFFSET (CmdUpdatePreserveMask),  "Command Update Preserve Mask", 0},
   1085          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT3_OFFSET (CmdUpdateSetMask),       "Command Update Set Mask", 0},
   1086          1.1  christos     {ACPI_DMT_GAS,      ACPI_PCCT3_OFFSET (ErrorStatusRegister),    "Error Status Register", 0},
   1087          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT3_OFFSET (ErrorStatusMask),        "Error Status Mask", 0},
   1088          1.1  christos     ACPI_DMT_TERMINATOR
   1089          1.1  christos };
   1090          1.1  christos 
   1091          1.1  christos /* 4: Extended PCC Slave Subspace Type 4 (ACPI 6.2) */
   1092          1.1  christos 
   1093          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPcct4[] =
   1094          1.1  christos {
   1095          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT4_OFFSET (PlatformInterrupt),      "Platform Interrupt", 0},
   1096          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PCCT4_OFFSET (Flags),                  "Flags (Decoded Below)", DT_FLAG},
   1097          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_PCCT4_FLAG_OFFSET (Flags,0),           "Polarity", 0},
   1098          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_PCCT4_FLAG_OFFSET (Flags,0),           "Mode", 0},
   1099          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PCCT4_OFFSET (Reserved1),              "Reserved", 0},
   1100          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT4_OFFSET (BaseAddress),            "Base Address", 0},
   1101          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT4_OFFSET (Length),                 "Address Length", 0},
   1102          1.1  christos     {ACPI_DMT_GAS,      ACPI_PCCT4_OFFSET (DoorbellRegister),       "Doorbell Register", 0},
   1103          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT4_OFFSET (PreserveMask),           "Preserve Mask", 0},
   1104          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT4_OFFSET (WriteMask),              "Write Mask", 0},
   1105          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT4_OFFSET (Latency),                "Command Latency", 0},
   1106          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT4_OFFSET (MaxAccessRate),          "Maximum Access Rate", 0},
   1107          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PCCT4_OFFSET (MinTurnaroundTime),      "Minimum Turnaround Time", 0},
   1108          1.1  christos     {ACPI_DMT_GAS,      ACPI_PCCT4_OFFSET (PlatformAckRegister),    "Platform ACK Register", 0},
   1109          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT4_OFFSET (AckPreserveMask),        "ACK Preserve Mask", 0},
   1110          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT4_OFFSET (AckSetMask),             "ACK Set Mask", 0},
   1111          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT4_OFFSET (Reserved2),              "Reserved", 0},
   1112          1.1  christos     {ACPI_DMT_GAS,      ACPI_PCCT4_OFFSET (CmdCompleteRegister),    "Command Complete Register", 0},
   1113          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT4_OFFSET (CmdCompleteMask),        "Command Complete Check Mask", 0},
   1114          1.1  christos     {ACPI_DMT_GAS,      ACPI_PCCT4_OFFSET (CmdUpdateRegister),      "Command Update Register", 0},
   1115          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT4_OFFSET (CmdUpdatePreserveMask),  "Command Update Preserve Mask", 0},
   1116          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT4_OFFSET (CmdUpdateSetMask),       "Command Update Set Mask", 0},
   1117          1.1  christos     {ACPI_DMT_GAS,      ACPI_PCCT4_OFFSET (ErrorStatusRegister),    "Error Status Register", 0},
   1118          1.1  christos     {ACPI_DMT_UINT64,   ACPI_PCCT4_OFFSET (ErrorStatusMask),        "Error Status Mask", 0},
   1119          1.1  christos     ACPI_DMT_TERMINATOR
   1120          1.1  christos };
   1121          1.1  christos 
   1122          1.1  christos 
   1123          1.1  christos /*******************************************************************************
   1124          1.1  christos  *
   1125          1.1  christos  * PDTT - Platform Debug Trigger Table (ACPI 6.2)
   1126          1.1  christos  *
   1127          1.1  christos  ******************************************************************************/
   1128          1.1  christos 
   1129          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPdtt[] =
   1130          1.1  christos {
   1131          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PDTT_OFFSET (TriggerCount),            "Trigger Count", 0},
   1132          1.1  christos     {ACPI_DMT_UINT24,   ACPI_PDTT_OFFSET (Reserved),                "Reserved", 0},
   1133          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PDTT_OFFSET (ArrayOffset),             "Array Offset", 0},
   1134          1.1  christos     ACPI_DMT_TERMINATOR
   1135          1.1  christos };
   1136          1.1  christos 
   1137          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPdtt0[] =
   1138          1.1  christos {
   1139          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PDTT0_OFFSET (SubchannelId),           "Subchannel Id", 0},
   1140          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PDTT0_OFFSET (Flags),                  "Flags (Decoded Below)", DT_FLAG},
   1141          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_PDTT0_FLAG_OFFSET (Flags,0),           "Runtime Trigger", 0},
   1142          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_PDTT0_FLAG_OFFSET (Flags,0),           "Wait for Completion", 0},
   1143  1.1.1.2.2.1  christos     {ACPI_DMT_FLAG2,    ACPI_PDTT0_FLAG_OFFSET (Flags,0),           "Trigger Order", 0},
   1144          1.1  christos     ACPI_DMT_TERMINATOR
   1145          1.1  christos };
   1146          1.1  christos 
   1147          1.1  christos 
   1148          1.1  christos /*******************************************************************************
   1149          1.1  christos  *
   1150          1.1  christos  * PMTT - Platform Memory Topology Table
   1151          1.1  christos  *
   1152          1.1  christos  ******************************************************************************/
   1153          1.1  christos 
   1154          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPmtt[] =
   1155          1.1  christos {
   1156          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PMTT_OFFSET (Reserved),                "Reserved", 0},
   1157          1.1  christos     ACPI_DMT_TERMINATOR
   1158          1.1  christos };
   1159          1.1  christos 
   1160          1.1  christos /* Common Subtable header (one per Subtable) */
   1161          1.1  christos 
   1162          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPmttHdr[] =
   1163          1.1  christos {
   1164          1.1  christos     {ACPI_DMT_PMTT,     ACPI_PMTTH_OFFSET (Type),                   "Subtable Type", 0},
   1165          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PMTTH_OFFSET (Reserved1),              "Reserved", 0},
   1166          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PMTTH_OFFSET (Length),                 "Length", DT_LENGTH},
   1167          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PMTTH_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   1168          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_PMTTH_FLAG_OFFSET (Flags,0),           "Top-level Device", 0},
   1169          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_PMTTH_FLAG_OFFSET (Flags,0),           "Physical Element", 0},
   1170          1.1  christos     {ACPI_DMT_FLAGS2,   ACPI_PMTTH_FLAG_OFFSET (Flags,0),           "Memory Type", 0},
   1171          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PMTTH_OFFSET (Reserved2),              "Reserved", 0},
   1172          1.1  christos     ACPI_DMT_TERMINATOR
   1173          1.1  christos };
   1174          1.1  christos 
   1175          1.1  christos /* PMTT Subtables */
   1176          1.1  christos 
   1177          1.1  christos /* 0: Socket */
   1178          1.1  christos 
   1179          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPmtt0[] =
   1180          1.1  christos {
   1181          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PMTT0_OFFSET (SocketId),               "Socket ID", 0},
   1182          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PMTT0_OFFSET (Reserved),               "Reserved", 0},
   1183          1.1  christos     ACPI_DMT_TERMINATOR
   1184          1.1  christos };
   1185          1.1  christos 
   1186          1.1  christos /* 1: Memory Controller */
   1187          1.1  christos 
   1188          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPmtt1[] =
   1189          1.1  christos {
   1190          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PMTT1_OFFSET (ReadLatency),            "Read Latency", 0},
   1191          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PMTT1_OFFSET (WriteLatency),           "Write Latency", 0},
   1192          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PMTT1_OFFSET (ReadBandwidth),          "Read Bandwidth", 0},
   1193          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PMTT1_OFFSET (WriteBandwidth),         "Write Bandwidth", 0},
   1194          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PMTT1_OFFSET (AccessWidth),            "Access Width", 0},
   1195          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PMTT1_OFFSET (Alignment),              "Alignment", 0},
   1196          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PMTT1_OFFSET (Reserved),               "Reserved", 0},
   1197          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PMTT1_OFFSET (DomainCount),            "Domain Count", 0},
   1198          1.1  christos     ACPI_DMT_TERMINATOR
   1199          1.1  christos };
   1200          1.1  christos 
   1201          1.1  christos /* 1a: Proximity Domain */
   1202          1.1  christos 
   1203          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPmtt1a[] =
   1204          1.1  christos {
   1205          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PMTT1A_OFFSET (ProximityDomain),       "Proximity Domain", 0},
   1206          1.1  christos     ACPI_DMT_TERMINATOR
   1207          1.1  christos };
   1208          1.1  christos 
   1209          1.1  christos /* 2: Physical Component */
   1210          1.1  christos 
   1211          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPmtt2[] =
   1212          1.1  christos {
   1213          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PMTT2_OFFSET (ComponentId),            "Component ID", 0},
   1214          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PMTT2_OFFSET (Reserved),               "Reserved", 0},
   1215          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PMTT2_OFFSET (MemorySize),             "Memory Size", 0},
   1216          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PMTT2_OFFSET (BiosHandle),             "Bios Handle", 0},
   1217          1.1  christos     ACPI_DMT_TERMINATOR
   1218          1.1  christos };
   1219          1.1  christos 
   1220          1.1  christos 
   1221          1.1  christos /*******************************************************************************
   1222          1.1  christos  *
   1223          1.1  christos  * PPTT - Processor Properties Topology Table (ACPI 6.2)
   1224          1.1  christos  *
   1225          1.1  christos  ******************************************************************************/
   1226          1.1  christos 
   1227          1.1  christos /* Main table consists of only the standard ACPI header - subtables follow */
   1228          1.1  christos 
   1229          1.1  christos /* Common Subtable header (one per Subtable) */
   1230          1.1  christos 
   1231          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPpttHdr[] =
   1232          1.1  christos {
   1233          1.1  christos     {ACPI_DMT_PPTT,     ACPI_PPTTH_OFFSET (Type),                   "Subtable Type", 0},
   1234          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PPTTH_OFFSET (Length),                 "Length", 0},
   1235          1.1  christos     ACPI_DMT_TERMINATOR
   1236          1.1  christos };
   1237          1.1  christos 
   1238          1.1  christos /* 0: Processor hierarchy node */
   1239          1.1  christos 
   1240          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPptt0[] =
   1241          1.1  christos {
   1242          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PPTT0_OFFSET (Reserved),               "Reserved", 0},
   1243          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PPTT0_OFFSET (Flags),                  "Flags (decoded below)", 0},
   1244          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_PPTT0_FLAG_OFFSET (Flags,0),           "Physical package", 0},
   1245          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_PPTT0_FLAG_OFFSET (Flags,0),           "ACPI Processor ID valid", 0},
   1246  1.1.1.2.2.1  christos     {ACPI_DMT_FLAG2,    ACPI_PPTT0_FLAG_OFFSET (Flags,0),           "Processor is a thread", 0},
   1247  1.1.1.2.2.1  christos     {ACPI_DMT_FLAG3,    ACPI_PPTT0_FLAG_OFFSET (Flags,0),           "Node is a leaf", 0},
   1248  1.1.1.2.2.1  christos     {ACPI_DMT_FLAG4,    ACPI_PPTT0_FLAG_OFFSET (Flags,0),           "Identical Implementation", 0},
   1249          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PPTT0_OFFSET (Parent),                 "Parent", 0},
   1250          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PPTT0_OFFSET (AcpiProcessorId),        "ACPI Processor ID", 0},
   1251          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PPTT0_OFFSET (NumberOfPrivResources),  "Private Resource Number", 0},
   1252          1.1  christos     ACPI_DMT_TERMINATOR
   1253          1.1  christos };
   1254          1.1  christos 
   1255          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPptt0a[] =
   1256          1.1  christos {
   1257          1.1  christos     {ACPI_DMT_UINT32,   0,                                          "Private Resource", DT_OPTIONAL},
   1258          1.1  christos     ACPI_DMT_TERMINATOR
   1259          1.1  christos };
   1260          1.1  christos 
   1261          1.1  christos /* 1: Cache type */
   1262          1.1  christos 
   1263          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPptt1[] =
   1264          1.1  christos {
   1265          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PPTT1_OFFSET (Reserved),               "Reserved", 0},
   1266          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PPTT1_OFFSET (Flags),                  "Flags (decoded below)", 0},
   1267          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_PPTT1_FLAG_OFFSET (Flags,0),           "Size valid", 0},
   1268          1.1  christos     {ACPI_DMT_FLAG1,    ACPI_PPTT1_FLAG_OFFSET (Flags,0),           "Number of Sets valid", 0},
   1269          1.1  christos     {ACPI_DMT_FLAG2,    ACPI_PPTT1_FLAG_OFFSET (Flags,0),           "Associativity valid", 0},
   1270          1.1  christos     {ACPI_DMT_FLAG3,    ACPI_PPTT1_FLAG_OFFSET (Flags,0),           "Allocation Type valid", 0},
   1271          1.1  christos     {ACPI_DMT_FLAG4,    ACPI_PPTT1_FLAG_OFFSET (Flags,0),           "Cache Type valid", 0},
   1272          1.1  christos     {ACPI_DMT_FLAG5,    ACPI_PPTT1_FLAG_OFFSET (Flags,0),           "Write Policy valid", 0},
   1273          1.1  christos     {ACPI_DMT_FLAG6,    ACPI_PPTT1_FLAG_OFFSET (Flags,0),           "Line Size valid", 0},
   1274          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PPTT1_OFFSET (NextLevelOfCache),       "Next Level of Cache", 0},
   1275          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PPTT1_OFFSET (Size),                   "Size", 0},
   1276          1.1  christos     {ACPI_DMT_UINT32,   ACPI_PPTT1_OFFSET (NumberOfSets),           "Number of Sets", 0},
   1277          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PPTT1_OFFSET (Associativity),          "Associativity", 0},
   1278          1.1  christos     {ACPI_DMT_UINT8,    ACPI_PPTT1_OFFSET (Attributes),             "Attributes", 0},
   1279          1.1  christos     {ACPI_DMT_FLAGS0,   ACPI_PPTT1_OFFSET (Attributes),             "Allocation Type", 0},
   1280          1.1  christos     {ACPI_DMT_FLAGS2,   ACPI_PPTT1_OFFSET (Attributes),             "Cache Type", 0},
   1281          1.1  christos     {ACPI_DMT_FLAG4,    ACPI_PPTT1_OFFSET (Attributes),             "Write Policy", 0},
   1282          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PPTT1_OFFSET (LineSize),               "Line Size", 0},
   1283          1.1  christos     ACPI_DMT_TERMINATOR
   1284          1.1  christos };
   1285          1.1  christos 
   1286          1.1  christos /* 2: ID */
   1287          1.1  christos 
   1288          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPptt2[] =
   1289          1.1  christos {
   1290          1.1  christos     {ACPI_DMT_UINT16,   ACPI_PPTT2_OFFSET (Reserved),               "Reserved", 0},
   1291  1.1.1.2.2.1  christos     {ACPI_DMT_UINT32,   ACPI_PPTT2_OFFSET (VendorId),               "Vendor ID", 0},
   1292  1.1.1.2.2.1  christos     {ACPI_DMT_UINT64,   ACPI_PPTT2_OFFSET (Level1Id),               "Level1 ID", 0},
   1293  1.1.1.2.2.1  christos     {ACPI_DMT_UINT64,   ACPI_PPTT2_OFFSET (Level2Id),               "Level2 ID", 0},
   1294  1.1.1.2.2.1  christos     {ACPI_DMT_UINT16,   ACPI_PPTT2_OFFSET (MajorRev),               "Major revision", 0},
   1295  1.1.1.2.2.1  christos     {ACPI_DMT_UINT16,   ACPI_PPTT2_OFFSET (MinorRev),               "Minor revision", 0},
   1296  1.1.1.2.2.1  christos     {ACPI_DMT_UINT16,   ACPI_PPTT2_OFFSET (SpinRev),                "Spin revision", 0},
   1297          1.1  christos     ACPI_DMT_TERMINATOR
   1298          1.1  christos };
   1299          1.1  christos 
   1300          1.1  christos 
   1301          1.1  christos /*******************************************************************************
   1302          1.1  christos  *
   1303          1.1  christos  * RASF -  RAS Feature table
   1304          1.1  christos  *
   1305          1.1  christos  ******************************************************************************/
   1306          1.1  christos 
   1307          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoRasf[] =
   1308          1.1  christos {
   1309          1.1  christos     {ACPI_DMT_BUF12,    ACPI_RASF_OFFSET (ChannelId[0]),            "Channel ID", 0},
   1310          1.1  christos     ACPI_DMT_TERMINATOR
   1311          1.1  christos };
   1312          1.1  christos 
   1313          1.1  christos 
   1314          1.1  christos /*******************************************************************************
   1315          1.1  christos  *
   1316          1.1  christos  * S3PT - S3 Performance Table
   1317          1.1  christos  *
   1318          1.1  christos  ******************************************************************************/
   1319          1.1  christos 
   1320          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoS3pt[] =
   1321          1.1  christos {
   1322          1.1  christos     {ACPI_DMT_SIG,     ACPI_S3PT_OFFSET (Signature[0]),             "Signature", 0},
   1323          1.1  christos     {ACPI_DMT_UINT32,  ACPI_S3PT_OFFSET (Length),                   "Length", DT_LENGTH},
   1324          1.1  christos     ACPI_DMT_TERMINATOR
   1325          1.1  christos };
   1326          1.1  christos 
   1327          1.1  christos /* S3PT subtable header */
   1328          1.1  christos 
   1329          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoS3ptHdr[] =
   1330          1.1  christos {
   1331          1.1  christos     {ACPI_DMT_UINT16,  ACPI_S3PTH_OFFSET (Type),                    "Type", 0},
   1332          1.1  christos     {ACPI_DMT_UINT8,   ACPI_S3PTH_OFFSET (Length),                  "Length", DT_LENGTH},
   1333          1.1  christos     {ACPI_DMT_UINT8,   ACPI_S3PTH_OFFSET (Revision),                "Revision", 0},
   1334          1.1  christos     ACPI_DMT_TERMINATOR
   1335          1.1  christos };
   1336          1.1  christos 
   1337          1.1  christos /* 0: Basic S3 Resume Performance Record */
   1338          1.1  christos 
   1339          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoS3pt0[] =
   1340          1.1  christos {
   1341          1.1  christos     {ACPI_DMT_UINT32,  ACPI_S3PT0_OFFSET (ResumeCount),             "Resume Count", 0},
   1342          1.1  christos     {ACPI_DMT_UINT64,  ACPI_S3PT0_OFFSET (FullResume),              "Full Resume", 0},
   1343          1.1  christos     {ACPI_DMT_UINT64,  ACPI_S3PT0_OFFSET (AverageResume),           "Average Resume", 0},
   1344          1.1  christos     ACPI_DMT_TERMINATOR
   1345          1.1  christos };
   1346          1.1  christos 
   1347          1.1  christos /* 1: Basic S3 Suspend Performance Record */
   1348          1.1  christos 
   1349          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoS3pt1[] =
   1350          1.1  christos {
   1351          1.1  christos     {ACPI_DMT_UINT64,  ACPI_S3PT1_OFFSET (SuspendStart),            "Suspend Start", 0},
   1352          1.1  christos     {ACPI_DMT_UINT64,  ACPI_S3PT1_OFFSET (SuspendEnd),              "Suspend End", 0},
   1353          1.1  christos     ACPI_DMT_TERMINATOR
   1354          1.1  christos };
   1355          1.1  christos 
   1356          1.1  christos 
   1357          1.1  christos /*******************************************************************************
   1358          1.1  christos  *
   1359          1.1  christos  * SBST - Smart Battery Specification Table
   1360          1.1  christos  *
   1361          1.1  christos  ******************************************************************************/
   1362          1.1  christos 
   1363          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoSbst[] =
   1364          1.1  christos {
   1365          1.1  christos     {ACPI_DMT_UINT32,   ACPI_SBST_OFFSET (WarningLevel),            "Warning Level", 0},
   1366          1.1  christos     {ACPI_DMT_UINT32,   ACPI_SBST_OFFSET (LowLevel),                "Low Level", 0},
   1367          1.1  christos     {ACPI_DMT_UINT32,   ACPI_SBST_OFFSET (CriticalLevel),           "Critical Level", 0},
   1368          1.1  christos     ACPI_DMT_TERMINATOR
   1369          1.1  christos };
   1370          1.1  christos 
   1371          1.1  christos 
   1372          1.1  christos /*******************************************************************************
   1373          1.1  christos  *
   1374  1.1.1.2.2.1  christos  * SDEI - Software Delegated Exception Interface Descriptor Table
   1375          1.1  christos  *
   1376          1.1  christos  ******************************************************************************/
   1377          1.1  christos 
   1378          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoSdei[] =
   1379          1.1  christos {
   1380          1.1  christos     ACPI_DMT_TERMINATOR
   1381          1.1  christos };
   1382          1.1  christos 
   1383          1.1  christos 
   1384          1.1  christos /*******************************************************************************
   1385          1.1  christos  *
   1386          1.1  christos  * SDEV - Secure Devices Table (ACPI 6.2)
   1387          1.1  christos  *
   1388          1.1  christos  ******************************************************************************/
   1389          1.1  christos 
   1390          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoSdev[] =
   1391          1.1  christos {
   1392          1.1  christos     ACPI_DMT_TERMINATOR
   1393          1.1  christos };
   1394          1.1  christos 
   1395          1.1  christos /* Common Subtable header (one per Subtable) */
   1396          1.1  christos 
   1397          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoSdevHdr[] =
   1398          1.1  christos {
   1399          1.1  christos     {ACPI_DMT_SDEV,     ACPI_SDEVH_OFFSET (Type),                   "Subtable Type", 0},
   1400          1.1  christos     {ACPI_DMT_UINT8,    ACPI_SDEVH_OFFSET (Flags),                  "Flags (decoded below)", 0},
   1401          1.1  christos     {ACPI_DMT_FLAG0,    ACPI_SDEVH_FLAG_OFFSET (Flags,0),           "Allow handoff to unsecure OS", 0},
   1402          1.1  christos     {ACPI_DMT_UINT16,   ACPI_SDEVH_OFFSET (Length),                 "Length", 0},
   1403          1.1  christos     ACPI_DMT_TERMINATOR
   1404          1.1  christos };
   1405          1.1  christos 
   1406          1.1  christos /* SDEV Subtables */
   1407          1.1  christos 
   1408          1.1  christos /* 0: Namespace Device Based Secure Device Structure */
   1409          1.1  christos 
   1410          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoSdev0[] =
   1411          1.1  christos {
   1412          1.1  christos     {ACPI_DMT_UINT16,   ACPI_SDEV0_OFFSET (DeviceIdOffset),         "Device ID Offset", 0},
   1413          1.1  christos     {ACPI_DMT_UINT16,   ACPI_SDEV0_OFFSET (DeviceIdLength),         "Device ID Length", 0},
   1414          1.1  christos     {ACPI_DMT_UINT16,   ACPI_SDEV0_OFFSET (VendorDataOffset),       "Vendor Data Offset", 0},
   1415          1.1  christos     {ACPI_DMT_UINT16,   ACPI_SDEV0_OFFSET (VendorDataLength),       "Vendor Data Length", 0},
   1416          1.1  christos     ACPI_DMT_TERMINATOR
   1417          1.1  christos };
   1418          1.1  christos 
   1419          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoSdev0a[] =
   1420          1.1  christos {
   1421          1.1  christos     {ACPI_DMT_STRING,   0,                                          "Namepath", 0},
   1422          1.1  christos     ACPI_DMT_TERMINATOR
   1423          1.1  christos };
   1424          1.1  christos 
   1425          1.1  christos /* 1: PCIe Endpoint Device Based Device Structure */
   1426          1.1  christos 
   1427          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoSdev1[] =
   1428          1.1  christos {
   1429          1.1  christos     {ACPI_DMT_UINT16,   ACPI_SDEV1_OFFSET (Segment),                "Segment", 0},
   1430          1.1  christos     {ACPI_DMT_UINT16,   ACPI_SDEV1_OFFSET (StartBus),               "Start Bus", 0},
   1431          1.1  christos     {ACPI_DMT_UINT16,   ACPI_SDEV1_OFFSET (PathOffset),             "Path Offset", 0},
   1432          1.1  christos     {ACPI_DMT_UINT16,   ACPI_SDEV1_OFFSET (PathLength),             "Path Length", 0},
   1433          1.1  christos     {ACPI_DMT_UINT16,   ACPI_SDEV1_OFFSET (VendorDataOffset),       "Vendor Data Offset", 0},
   1434          1.1  christos     {ACPI_DMT_UINT16,   ACPI_SDEV1_OFFSET (VendorDataLength),       "Vendor Data Length", 0},
   1435          1.1  christos     ACPI_DMT_TERMINATOR
   1436          1.1  christos };
   1437          1.1  christos 
   1438          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoSdev1a[] =
   1439          1.1  christos {
   1440          1.1  christos     {ACPI_DMT_UINT8,    ACPI_SDEV1A_OFFSET (Device),                "Device", 0},
   1441          1.1  christos     {ACPI_DMT_UINT8,    ACPI_SDEV1A_OFFSET (Function),              "Function", 0},
   1442          1.1  christos     ACPI_DMT_TERMINATOR
   1443          1.1  christos };
   1444          1.1  christos 
   1445          1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoSdev1b[] =
   1446          1.1  christos {
   1447          1.1  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "Vendor Data", 0}, /*, DT_OPTIONAL}, */
   1448          1.1  christos     ACPI_DMT_TERMINATOR
   1449          1.1  christos };
   1450          1.1  christos /*! [End] no source code translation !*/
   1451