Home | History | Annotate | Line # | Download | only in common
dmtbinfo1.c revision 1.1.1.6
      1      1.1  christos /******************************************************************************
      2      1.1  christos  *
      3      1.1  christos  * Module Name: dmtbinfo1 - 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.5  christos  * Copyright (C) 2000 - 2021, 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.1.5  christos  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 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    ("dmtbinfo1")
     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  * ACPI Table Information, used to dump formatted ACPI tables
     81      1.1  christos  *
     82      1.1  christos  * Each entry is of the form:  <Field Type, Field Offset, Field Name>
     83      1.1  christos  */
     84      1.1  christos 
     85      1.1  christos 
     86      1.1  christos /*******************************************************************************
     87      1.1  christos  *
     88      1.1  christos  * ASF - Alert Standard Format table (Signature "ASF!")
     89      1.1  christos  *
     90      1.1  christos  ******************************************************************************/
     91      1.1  christos 
     92      1.1  christos /* Common Subtable header (one per Subtable) */
     93      1.1  christos 
     94      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsfHdr[] =
     95      1.1  christos {
     96      1.1  christos     {ACPI_DMT_ASF,      ACPI_ASF0_OFFSET (Header.Type),             "Subtable Type", 0},
     97      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (Header.Reserved),         "Reserved", 0},
     98      1.1  christos     {ACPI_DMT_UINT16,   ACPI_ASF0_OFFSET (Header.Length),           "Length", DT_LENGTH},
     99      1.1  christos     ACPI_DMT_TERMINATOR
    100      1.1  christos };
    101      1.1  christos 
    102      1.1  christos /* 0: ASF Information */
    103      1.1  christos 
    104      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf0[] =
    105      1.1  christos {
    106      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (MinResetValue),           "Minimum Reset Value", 0},
    107      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (MinPollInterval),         "Minimum Polling Interval", 0},
    108      1.1  christos     {ACPI_DMT_UINT16,   ACPI_ASF0_OFFSET (SystemId),                "System ID", 0},
    109      1.1  christos     {ACPI_DMT_UINT32,   ACPI_ASF0_OFFSET (MfgId),                   "Manufacturer ID", 0},
    110      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (Flags),                   "Flags", 0},
    111      1.1  christos     {ACPI_DMT_UINT24,   ACPI_ASF0_OFFSET (Reserved2[0]),            "Reserved", 0},
    112      1.1  christos     ACPI_DMT_TERMINATOR
    113      1.1  christos };
    114      1.1  christos 
    115      1.1  christos /* 1: ASF Alerts */
    116      1.1  christos 
    117      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf1[] =
    118      1.1  christos {
    119      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (AssertMask),              "AssertMask", 0},
    120      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (DeassertMask),            "DeassertMask", 0},
    121      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (Alerts),                  "Alert Count", 0},
    122      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (DataLength),              "Alert Data Length", 0},
    123      1.1  christos     ACPI_DMT_TERMINATOR
    124      1.1  christos };
    125      1.1  christos 
    126      1.1  christos /* 1a: ASF Alert data */
    127      1.1  christos 
    128      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf1a[] =
    129      1.1  christos {
    130      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Address),                "Address", 0},
    131      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Command),                "Command", 0},
    132      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Mask),                   "Mask", 0},
    133      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Value),                  "Value", 0},
    134      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (SensorType),             "SensorType", 0},
    135      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Type),                   "Type", 0},
    136      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Offset),                 "Offset", 0},
    137      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (SourceType),             "SourceType", 0},
    138      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Severity),               "Severity", 0},
    139      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (SensorNumber),           "SensorNumber", 0},
    140      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Entity),                 "Entity", 0},
    141      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Instance),               "Instance", 0},
    142      1.1  christos     ACPI_DMT_TERMINATOR
    143      1.1  christos };
    144      1.1  christos 
    145      1.1  christos /* 2: ASF Remote Control */
    146      1.1  christos 
    147      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf2[] =
    148      1.1  christos {
    149      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF2_OFFSET (Controls),                "Control Count", 0},
    150      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF2_OFFSET (DataLength),              "Control Data Length", 0},
    151      1.1  christos     {ACPI_DMT_UINT16,   ACPI_ASF2_OFFSET (Reserved2),               "Reserved", 0},
    152      1.1  christos     ACPI_DMT_TERMINATOR
    153      1.1  christos };
    154      1.1  christos 
    155      1.1  christos /* 2a: ASF Control data */
    156      1.1  christos 
    157      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf2a[] =
    158      1.1  christos {
    159      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Function),               "Function", 0},
    160      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Address),                "Address", 0},
    161      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Command),                "Command", 0},
    162      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Value),                  "Value", 0},
    163      1.1  christos     ACPI_DMT_TERMINATOR
    164      1.1  christos };
    165      1.1  christos 
    166      1.1  christos /* 3: ASF RMCP Boot Options */
    167      1.1  christos 
    168      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf3[] =
    169      1.1  christos {
    170      1.1  christos     {ACPI_DMT_BUF7,     ACPI_ASF3_OFFSET (Capabilities[0]),         "Capabilities", 0},
    171      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF3_OFFSET (CompletionCode),          "Completion Code", 0},
    172      1.1  christos     {ACPI_DMT_UINT32,   ACPI_ASF3_OFFSET (EnterpriseId),            "Enterprise ID", 0},
    173      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF3_OFFSET (Command),                 "Command", 0},
    174      1.1  christos     {ACPI_DMT_UINT16,   ACPI_ASF3_OFFSET (Parameter),               "Parameter", 0},
    175      1.1  christos     {ACPI_DMT_UINT16,   ACPI_ASF3_OFFSET (BootOptions),             "Boot Options", 0},
    176      1.1  christos     {ACPI_DMT_UINT16,   ACPI_ASF3_OFFSET (OemParameters),           "Oem Parameters", 0},
    177      1.1  christos     ACPI_DMT_TERMINATOR
    178      1.1  christos };
    179      1.1  christos 
    180      1.1  christos /* 4: ASF Address */
    181      1.1  christos 
    182      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf4[] =
    183      1.1  christos {
    184      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF4_OFFSET (EpromAddress),            "Eprom Address", 0},
    185      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF4_OFFSET (Devices),                 "Device Count", DT_COUNT},
    186      1.1  christos     ACPI_DMT_TERMINATOR
    187      1.1  christos };
    188      1.1  christos 
    189      1.1  christos 
    190      1.1  christos /*******************************************************************************
    191      1.1  christos  *
    192  1.1.1.6  christos  * BDAT -  BIOS Data ACPI Table
    193  1.1.1.6  christos  *
    194  1.1.1.6  christos  ******************************************************************************/
    195  1.1.1.6  christos 
    196  1.1.1.6  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoBdat[] =
    197  1.1.1.6  christos {
    198  1.1.1.6  christos     {ACPI_DMT_GAS,      ACPI_BDAT_OFFSET (Gas),                     "BDAT Generic Address", 0},
    199  1.1.1.6  christos     ACPI_DMT_TERMINATOR
    200  1.1.1.6  christos };
    201  1.1.1.6  christos 
    202  1.1.1.6  christos 
    203  1.1.1.6  christos /*******************************************************************************
    204  1.1.1.6  christos  *
    205      1.1  christos  * BERT -  Boot Error Record table
    206      1.1  christos  *
    207      1.1  christos  ******************************************************************************/
    208      1.1  christos 
    209      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoBert[] =
    210      1.1  christos {
    211      1.1  christos     {ACPI_DMT_UINT32,   ACPI_BERT_OFFSET (RegionLength),            "Boot Error Region Length", 0},
    212      1.1  christos     {ACPI_DMT_UINT64,   ACPI_BERT_OFFSET (Address),                 "Boot Error Region Address", 0},
    213      1.1  christos     ACPI_DMT_TERMINATOR
    214      1.1  christos };
    215      1.1  christos 
    216      1.1  christos 
    217      1.1  christos /*******************************************************************************
    218      1.1  christos  *
    219      1.1  christos  * BGRT -  Boot Graphics Resource Table (ACPI 5.0)
    220      1.1  christos  *
    221      1.1  christos  ******************************************************************************/
    222      1.1  christos 
    223      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoBgrt[] =
    224      1.1  christos {
    225      1.1  christos     {ACPI_DMT_UINT16,   ACPI_BGRT_OFFSET (Version),                 "Version", 0},
    226      1.1  christos     {ACPI_DMT_UINT8,    ACPI_BGRT_OFFSET (Status),                  "Status (decoded below)", DT_FLAG},
    227      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_BGRT_FLAG_OFFSET (Status, 0),          "Displayed", 0},
    228      1.1  christos     {ACPI_DMT_FLAGS1,   ACPI_BGRT_FLAG_OFFSET (Status, 0),          "Orientation Offset", 0},
    229      1.1  christos 
    230      1.1  christos     {ACPI_DMT_UINT8,    ACPI_BGRT_OFFSET (ImageType),               "Image Type", 0},
    231      1.1  christos     {ACPI_DMT_UINT64,   ACPI_BGRT_OFFSET (ImageAddress),            "Image Address", 0},
    232      1.1  christos     {ACPI_DMT_UINT32,   ACPI_BGRT_OFFSET (ImageOffsetX),            "Image OffsetX", 0},
    233      1.1  christos     {ACPI_DMT_UINT32,   ACPI_BGRT_OFFSET (ImageOffsetY),            "Image OffsetY", 0},
    234      1.1  christos     ACPI_DMT_TERMINATOR
    235      1.1  christos };
    236      1.1  christos 
    237      1.1  christos 
    238      1.1  christos /*******************************************************************************
    239      1.1  christos  *
    240      1.1  christos  * BOOT - Simple Boot Flag Table
    241      1.1  christos  *
    242      1.1  christos  ******************************************************************************/
    243      1.1  christos 
    244      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoBoot[] =
    245      1.1  christos {
    246      1.1  christos     {ACPI_DMT_UINT8,    ACPI_BOOT_OFFSET (CmosIndex),               "Boot Register Index", 0},
    247      1.1  christos     {ACPI_DMT_UINT24,   ACPI_BOOT_OFFSET (Reserved[0]),             "Reserved", 0},
    248      1.1  christos     ACPI_DMT_TERMINATOR
    249      1.1  christos };
    250      1.1  christos 
    251      1.1  christos 
    252      1.1  christos /*******************************************************************************
    253      1.1  christos  *
    254  1.1.1.5  christos  * CEDT - CXL Early Discovery Table
    255  1.1.1.5  christos  *
    256  1.1.1.5  christos  ******************************************************************************/
    257  1.1.1.5  christos 
    258  1.1.1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCedtHdr[] =
    259  1.1.1.5  christos {
    260  1.1.1.5  christos     {ACPI_DMT_CEDT,     ACPI_CEDT_OFFSET (Type),               "Subtable Type", 0},
    261  1.1.1.5  christos     {ACPI_DMT_UINT8,    ACPI_CEDT_OFFSET (Reserved),           "Reserved", 0},
    262  1.1.1.5  christos     {ACPI_DMT_UINT16,   ACPI_CEDT_OFFSET (Length),             "Length", DT_LENGTH},
    263  1.1.1.5  christos     ACPI_DMT_TERMINATOR
    264  1.1.1.5  christos };
    265  1.1.1.5  christos 
    266  1.1.1.5  christos /* 0: CXL Host Bridge Structure */
    267  1.1.1.5  christos 
    268  1.1.1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCedt0[] =
    269  1.1.1.5  christos {
    270  1.1.1.5  christos     {ACPI_DMT_UINT32,   ACPI_CEDT0_OFFSET (Uid),               "Associated host bridge", 0},
    271  1.1.1.5  christos     {ACPI_DMT_UINT32,   ACPI_CEDT0_OFFSET (CxlVersion),        "Specification version", 0},
    272  1.1.1.5  christos     {ACPI_DMT_UINT32,   ACPI_CEDT0_OFFSET (Reserved),          "Reserved", 0},
    273  1.1.1.5  christos     {ACPI_DMT_UINT64,   ACPI_CEDT0_OFFSET (Base),              "Register base", 0},
    274  1.1.1.5  christos     {ACPI_DMT_UINT64,   ACPI_CEDT0_OFFSET (Length),            "Register length", 0},
    275  1.1.1.5  christos     ACPI_DMT_TERMINATOR
    276  1.1.1.5  christos };
    277  1.1.1.5  christos 
    278  1.1.1.5  christos 
    279  1.1.1.5  christos /*******************************************************************************
    280  1.1.1.5  christos  *
    281      1.1  christos  * CPEP - Corrected Platform Error Polling table
    282      1.1  christos  *
    283      1.1  christos  ******************************************************************************/
    284      1.1  christos 
    285      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCpep[] =
    286      1.1  christos {
    287      1.1  christos     {ACPI_DMT_UINT64,   ACPI_CPEP_OFFSET (Reserved),                "Reserved", 0},
    288      1.1  christos     ACPI_DMT_TERMINATOR
    289      1.1  christos };
    290      1.1  christos 
    291      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCpep0[] =
    292      1.1  christos {
    293      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Header.Type),            "Subtable Type", 0},
    294      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Header.Length),          "Length", DT_LENGTH},
    295      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Id),                     "Processor ID", 0},
    296      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Eid),                    "Processor EID", 0},
    297      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CPEP0_OFFSET (Interval),               "Polling Interval", 0},
    298      1.1  christos     ACPI_DMT_TERMINATOR
    299      1.1  christos };
    300      1.1  christos 
    301      1.1  christos 
    302      1.1  christos /*******************************************************************************
    303      1.1  christos  *
    304      1.1  christos  * CSRT - Core System Resource Table
    305      1.1  christos  *
    306      1.1  christos  ******************************************************************************/
    307      1.1  christos 
    308      1.1  christos /* Main table consists only of the standard ACPI table header */
    309      1.1  christos 
    310      1.1  christos /* Resource Group subtable */
    311      1.1  christos 
    312      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCsrt0[] =
    313      1.1  christos {
    314      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT0_OFFSET (Length),                 "Length", DT_LENGTH},
    315      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT0_OFFSET (VendorId),               "Vendor ID", 0},
    316      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT0_OFFSET (SubvendorId),            "Subvendor ID", 0},
    317      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT0_OFFSET (DeviceId),               "Device ID", 0},
    318      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT0_OFFSET (SubdeviceId),            "Subdevice ID", 0},
    319      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT0_OFFSET (Revision),               "Revision", 0},
    320      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT0_OFFSET (Reserved),               "Reserved", 0},
    321      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT0_OFFSET (SharedInfoLength),       "Shared Info Length", 0},
    322      1.1  christos     ACPI_DMT_TERMINATOR
    323      1.1  christos };
    324      1.1  christos 
    325      1.1  christos /* Shared Info subtable */
    326      1.1  christos 
    327      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCsrt1[] =
    328      1.1  christos {
    329      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT1_OFFSET (MajorVersion),           "Major Version", 0},
    330      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT1_OFFSET (MinorVersion),           "Minor Version", 0},
    331      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT1_OFFSET (MmioBaseLow),            "MMIO Base Address Low", 0},
    332      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT1_OFFSET (MmioBaseHigh),           "MMIO Base Address High", 0},
    333      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT1_OFFSET (GsiInterrupt),           "GSI Interrupt", 0},
    334      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CSRT1_OFFSET (InterruptPolarity),      "Interrupt Polarity", 0},
    335      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CSRT1_OFFSET (InterruptMode),          "Interrupt Mode", 0},
    336      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CSRT1_OFFSET (NumChannels),            "Num Channels", 0},
    337      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CSRT1_OFFSET (DmaAddressWidth),        "DMA Address Width", 0},
    338      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT1_OFFSET (BaseRequestLine),        "Base Request Line", 0},
    339      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT1_OFFSET (NumHandshakeSignals),    "Num Handshake Signals", 0},
    340      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT1_OFFSET (MaxBlockSize),           "Max Block Size", 0},
    341      1.1  christos     ACPI_DMT_TERMINATOR
    342      1.1  christos };
    343      1.1  christos 
    344      1.1  christos /* Resource Descriptor subtable */
    345      1.1  christos 
    346      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCsrt2[] =
    347      1.1  christos {
    348      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT2_OFFSET (Length),                 "Length", DT_LENGTH},
    349      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT2_OFFSET (Type),                   "Type", 0},
    350      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT2_OFFSET (Subtype),                "Subtype", 0},
    351      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT2_OFFSET (Uid),                    "UID", 0},
    352      1.1  christos     ACPI_DMT_TERMINATOR
    353      1.1  christos };
    354      1.1  christos 
    355      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCsrt2a[] =
    356      1.1  christos {
    357      1.1  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "ResourceInfo", DT_OPTIONAL},
    358      1.1  christos     ACPI_DMT_TERMINATOR
    359      1.1  christos };
    360      1.1  christos 
    361      1.1  christos 
    362      1.1  christos /*******************************************************************************
    363      1.1  christos  *
    364      1.1  christos  * DBG2 - Debug Port Table 2
    365      1.1  christos  *
    366      1.1  christos  ******************************************************************************/
    367      1.1  christos 
    368      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2[] =
    369      1.1  christos {
    370      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DBG2_OFFSET (InfoOffset),              "Info Offset", 0},
    371      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DBG2_OFFSET (InfoCount),               "Info Count", 0},
    372      1.1  christos     ACPI_DMT_TERMINATOR
    373      1.1  christos };
    374      1.1  christos 
    375      1.1  christos /* Debug Device Information Subtable */
    376      1.1  christos 
    377      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2Device[] =
    378      1.1  christos {
    379      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DBG20_OFFSET (Revision),               "Revision", 0},
    380      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (Length),                 "Length", DT_LENGTH},
    381      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DBG20_OFFSET (RegisterCount),          "Register Count", 0},
    382      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (NamepathLength),         "Namepath Length", 0},
    383      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (NamepathOffset),         "Namepath Offset", 0},
    384      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (OemDataLength),          "OEM Data Length", DT_DESCRIBES_OPTIONAL},
    385      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (OemDataOffset),          "OEM Data Offset", DT_DESCRIBES_OPTIONAL},
    386      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (PortType),               "Port Type", 0},
    387      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (PortSubtype),            "Port Subtype", 0},
    388      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (Reserved),               "Reserved", 0},
    389      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (BaseAddressOffset),      "Base Address Offset", 0},
    390      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (AddressSizeOffset),      "Address Size Offset", 0},
    391      1.1  christos     ACPI_DMT_TERMINATOR
    392      1.1  christos };
    393      1.1  christos 
    394      1.1  christos /* Variable-length data for the subtable */
    395      1.1  christos 
    396      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2Addr[] =
    397      1.1  christos {
    398      1.1  christos     {ACPI_DMT_GAS,      0,                                          "Base Address Register", 0},
    399      1.1  christos     ACPI_DMT_TERMINATOR
    400      1.1  christos };
    401      1.1  christos 
    402      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2Size[] =
    403      1.1  christos {
    404      1.1  christos     {ACPI_DMT_UINT32,   0,                                          "Address Size", 0},
    405      1.1  christos     ACPI_DMT_TERMINATOR
    406      1.1  christos };
    407      1.1  christos 
    408      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2Name[] =
    409      1.1  christos {
    410      1.1  christos     {ACPI_DMT_STRING,   0,                                          "Namepath", 0},
    411      1.1  christos     ACPI_DMT_TERMINATOR
    412      1.1  christos };
    413      1.1  christos 
    414      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2OemData[] =
    415      1.1  christos {
    416      1.1  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "OEM Data", DT_OPTIONAL},
    417      1.1  christos     ACPI_DMT_TERMINATOR
    418      1.1  christos };
    419      1.1  christos 
    420      1.1  christos 
    421      1.1  christos /*******************************************************************************
    422      1.1  christos  *
    423      1.1  christos  * DBGP - Debug Port
    424      1.1  christos  *
    425      1.1  christos  ******************************************************************************/
    426      1.1  christos 
    427      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbgp[] =
    428      1.1  christos {
    429      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DBGP_OFFSET (Type),                    "Interface Type", 0},
    430      1.1  christos     {ACPI_DMT_UINT24,   ACPI_DBGP_OFFSET (Reserved[0]),             "Reserved", 0},
    431      1.1  christos     {ACPI_DMT_GAS,      ACPI_DBGP_OFFSET (DebugPort),               "Debug Port Register", 0},
    432      1.1  christos     ACPI_DMT_TERMINATOR
    433      1.1  christos };
    434      1.1  christos 
    435      1.1  christos 
    436      1.1  christos /*******************************************************************************
    437      1.1  christos  *
    438      1.1  christos  * DMAR - DMA Remapping table
    439      1.1  christos  *
    440      1.1  christos  ******************************************************************************/
    441      1.1  christos 
    442      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar[] =
    443      1.1  christos {
    444      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMAR_OFFSET (Width),                   "Host Address Width", 0},
    445      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMAR_OFFSET (Flags),                   "Flags", 0},
    446      1.1  christos     {ACPI_DMT_BUF10,    ACPI_DMAR_OFFSET (Reserved[0]),             "Reserved", 0},
    447      1.1  christos     ACPI_DMT_TERMINATOR
    448      1.1  christos };
    449      1.1  christos 
    450      1.1  christos /* Common Subtable header (one per Subtable) */
    451      1.1  christos 
    452      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmarHdr[] =
    453      1.1  christos {
    454      1.1  christos     {ACPI_DMT_DMAR,     ACPI_DMAR0_OFFSET (Header.Type),            "Subtable Type", 0},
    455      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DMAR0_OFFSET (Header.Length),          "Length", DT_LENGTH},
    456      1.1  christos     ACPI_DMT_TERMINATOR
    457      1.1  christos };
    458      1.1  christos 
    459      1.1  christos /* Common device scope entry */
    460      1.1  christos 
    461      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmarScope[] =
    462      1.1  christos {
    463      1.1  christos     {ACPI_DMT_DMAR_SCOPE, ACPI_DMARS_OFFSET (EntryType),            "Device Scope Type", 0},
    464      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMARS_OFFSET (Length),                 "Entry Length", DT_LENGTH},
    465      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DMARS_OFFSET (Reserved),               "Reserved", 0},
    466      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMARS_OFFSET (EnumerationId),          "Enumeration ID", 0},
    467      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMARS_OFFSET (Bus),                    "PCI Bus Number", 0},
    468      1.1  christos     ACPI_DMT_TERMINATOR
    469      1.1  christos };
    470      1.1  christos 
    471      1.1  christos /* DMAR Subtables */
    472      1.1  christos 
    473      1.1  christos /* 0: Hardware Unit Definition */
    474      1.1  christos 
    475      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar0[] =
    476      1.1  christos {
    477      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMAR0_OFFSET (Flags),                  "Flags", 0},
    478      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMAR0_OFFSET (Reserved),               "Reserved", 0},
    479      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DMAR0_OFFSET (Segment),                "PCI Segment Number", 0},
    480      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DMAR0_OFFSET (Address),                "Register Base Address", 0},
    481      1.1  christos     ACPI_DMT_TERMINATOR
    482      1.1  christos };
    483      1.1  christos 
    484      1.1  christos /* 1: Reserved Memory Definition */
    485      1.1  christos 
    486      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar1[] =
    487      1.1  christos {
    488      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DMAR1_OFFSET (Reserved),               "Reserved", 0},
    489      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DMAR1_OFFSET (Segment),                "PCI Segment Number", 0},
    490      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DMAR1_OFFSET (BaseAddress),            "Base Address", 0},
    491      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DMAR1_OFFSET (EndAddress),             "End Address (limit)", 0},
    492      1.1  christos     ACPI_DMT_TERMINATOR
    493      1.1  christos };
    494      1.1  christos 
    495      1.1  christos /* 2: Root Port ATS Capability Definition */
    496      1.1  christos 
    497      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar2[] =
    498      1.1  christos {
    499      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMAR2_OFFSET (Flags),                  "Flags", 0},
    500      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMAR2_OFFSET (Reserved),               "Reserved", 0},
    501      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DMAR2_OFFSET (Segment),                "PCI Segment Number", 0},
    502      1.1  christos     ACPI_DMT_TERMINATOR
    503      1.1  christos };
    504      1.1  christos 
    505      1.1  christos /* 3: Remapping Hardware Static Affinity Structure */
    506      1.1  christos 
    507      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar3[] =
    508      1.1  christos {
    509      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DMAR3_OFFSET (Reserved),               "Reserved", 0},
    510      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DMAR3_OFFSET (BaseAddress),            "Base Address", 0},
    511      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DMAR3_OFFSET (ProximityDomain),        "Proximity Domain", 0},
    512      1.1  christos     ACPI_DMT_TERMINATOR
    513      1.1  christos };
    514      1.1  christos 
    515      1.1  christos /* 4: ACPI Namespace Device Declaration Structure */
    516      1.1  christos 
    517      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar4[] =
    518      1.1  christos {
    519      1.1  christos     {ACPI_DMT_UINT24,   ACPI_DMAR4_OFFSET (Reserved[0]),            "Reserved", 0},
    520      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMAR4_OFFSET (DeviceNumber),           "Device Number", 0},
    521      1.1  christos     {ACPI_DMT_STRING,   ACPI_DMAR4_OFFSET (DeviceName[0]),          "Device Name", 0},
    522      1.1  christos     ACPI_DMT_TERMINATOR
    523      1.1  christos };
    524      1.1  christos 
    525      1.1  christos 
    526      1.1  christos /*******************************************************************************
    527      1.1  christos  *
    528      1.1  christos  * DRTM - Dynamic Root of Trust for Measurement table
    529      1.1  christos  *
    530      1.1  christos  ******************************************************************************/
    531      1.1  christos 
    532      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm[] =
    533      1.1  christos {
    534      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (EntryBaseAddress),        "Entry Base Address", 0},
    535      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (EntryLength),             "Entry Length", 0},
    536      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DRTM_OFFSET (EntryAddress32),          "Entry 32", 0},
    537      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (EntryAddress64),          "Entry 64", 0},
    538      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (ExitAddress),             "Exit Address", 0},
    539      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (LogAreaAddress),          "Log Area Start", 0},
    540      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DRTM_OFFSET (LogAreaLength),           "Log Area Length", 0},
    541      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (ArchDependentAddress),    "Arch Dependent Address", 0},
    542      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DRTM_OFFSET (Flags),                   "Flags (decoded below)", 0},
    543      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_DRTM_FLAG_OFFSET (Flags, 0),           "Namespace in TCB", 0},
    544      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_DRTM_FLAG_OFFSET (Flags, 0),           "Gap Code on S3 Resume", 0},
    545      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_DRTM_FLAG_OFFSET (Flags, 0),           "Gap Code on DLME_Exit", 0},
    546      1.1  christos     {ACPI_DMT_FLAG3,    ACPI_DRTM_FLAG_OFFSET (Flags, 0),           "PCR_Authorities Changed", 0},
    547      1.1  christos     ACPI_DMT_TERMINATOR
    548      1.1  christos };
    549      1.1  christos 
    550      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm0[] =
    551      1.1  christos {
    552      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DRTM0_OFFSET (ValidatedTableCount),    "Validated Table Count", DT_COUNT},
    553      1.1  christos     ACPI_DMT_TERMINATOR
    554      1.1  christos };
    555      1.1  christos 
    556      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm0a[] =
    557      1.1  christos {
    558      1.1  christos     {ACPI_DMT_UINT64,   0,                                          "Table Address", DT_OPTIONAL},
    559      1.1  christos     ACPI_DMT_TERMINATOR
    560      1.1  christos };
    561      1.1  christos 
    562      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm1[] =
    563      1.1  christos {
    564      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DRTM1_OFFSET (ResourceCount),          "Resource Count", DT_COUNT},
    565      1.1  christos     ACPI_DMT_TERMINATOR
    566      1.1  christos };
    567      1.1  christos 
    568      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm1a[] =
    569      1.1  christos {
    570      1.1  christos     {ACPI_DMT_UINT56,   ACPI_DRTM1a_OFFSET (Size[0]),               "Size", DT_OPTIONAL},
    571      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DRTM1a_OFFSET (Type),                  "Type", 0},
    572      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_DRTM1a_FLAG_OFFSET (Type, 0),          "Resource Type", 0},
    573      1.1  christos     {ACPI_DMT_FLAG7,    ACPI_DRTM1a_FLAG_OFFSET (Type, 0),          "Protections", 0},
    574      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DRTM1a_OFFSET (Address),               "Address", 0},
    575      1.1  christos     ACPI_DMT_TERMINATOR
    576      1.1  christos };
    577      1.1  christos 
    578      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm2[] =
    579      1.1  christos {
    580      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DRTM2_OFFSET (DpsIdLength),            "DLME Platform Id Length", DT_COUNT},
    581      1.1  christos     {ACPI_DMT_BUF16,    ACPI_DRTM2_OFFSET (DpsId),                  "DLME Platform Id", DT_COUNT},
    582      1.1  christos     ACPI_DMT_TERMINATOR
    583      1.1  christos };
    584      1.1  christos 
    585      1.1  christos 
    586      1.1  christos /*******************************************************************************
    587      1.1  christos  *
    588      1.1  christos  * ECDT - Embedded Controller Boot Resources Table
    589      1.1  christos  *
    590      1.1  christos  ******************************************************************************/
    591      1.1  christos 
    592      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoEcdt[] =
    593      1.1  christos {
    594      1.1  christos     {ACPI_DMT_GAS,      ACPI_ECDT_OFFSET (Control),                 "Command/Status Register", 0},
    595      1.1  christos     {ACPI_DMT_GAS,      ACPI_ECDT_OFFSET (Data),                    "Data Register", 0},
    596      1.1  christos     {ACPI_DMT_UINT32,   ACPI_ECDT_OFFSET (Uid),                     "UID", 0},
    597      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ECDT_OFFSET (Gpe),                     "GPE Number", 0},
    598      1.1  christos     {ACPI_DMT_STRING,   ACPI_ECDT_OFFSET (Id[0]),                   "Namepath", 0},
    599      1.1  christos     ACPI_DMT_TERMINATOR
    600      1.1  christos };
    601      1.1  christos 
    602      1.1  christos 
    603      1.1  christos /*******************************************************************************
    604      1.1  christos  *
    605      1.1  christos  * EINJ - Error Injection table
    606      1.1  christos  *
    607      1.1  christos  ******************************************************************************/
    608      1.1  christos 
    609      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoEinj[] =
    610      1.1  christos {
    611      1.1  christos     {ACPI_DMT_UINT32,   ACPI_EINJ_OFFSET (HeaderLength),            "Injection Header Length", 0},
    612      1.1  christos     {ACPI_DMT_UINT8,    ACPI_EINJ_OFFSET (Flags),                   "Flags", 0},
    613      1.1  christos     {ACPI_DMT_UINT24,   ACPI_EINJ_OFFSET (Reserved[0]),             "Reserved", 0},
    614      1.1  christos     {ACPI_DMT_UINT32,   ACPI_EINJ_OFFSET (Entries),                 "Injection Entry Count", 0},
    615      1.1  christos     ACPI_DMT_TERMINATOR
    616      1.1  christos };
    617      1.1  christos 
    618      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoEinj0[] =
    619      1.1  christos {
    620      1.1  christos     {ACPI_DMT_EINJACT,  ACPI_EINJ0_OFFSET (Action),                 "Action", 0},
    621      1.1  christos     {ACPI_DMT_EINJINST, ACPI_EINJ0_OFFSET (Instruction),            "Instruction", 0},
    622      1.1  christos     {ACPI_DMT_UINT8,    ACPI_EINJ0_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
    623      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_EINJ0_FLAG_OFFSET (Flags,0),           "Preserve Register Bits", 0},
    624      1.1  christos 
    625      1.1  christos     {ACPI_DMT_UINT8,    ACPI_EINJ0_OFFSET (Reserved),               "Reserved", 0},
    626      1.1  christos     {ACPI_DMT_GAS,      ACPI_EINJ0_OFFSET (RegisterRegion),         "Register Region", 0},
    627      1.1  christos     {ACPI_DMT_UINT64,   ACPI_EINJ0_OFFSET (Value),                  "Value", 0},
    628      1.1  christos     {ACPI_DMT_UINT64,   ACPI_EINJ0_OFFSET (Mask),                   "Mask", 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  * ERST - Error Record Serialization table
    636      1.1  christos  *
    637      1.1  christos  ******************************************************************************/
    638      1.1  christos 
    639      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoErst[] =
    640      1.1  christos {
    641      1.1  christos     {ACPI_DMT_UINT32,   ACPI_ERST_OFFSET (HeaderLength),            "Serialization Header Length", 0},
    642      1.1  christos     {ACPI_DMT_UINT32,   ACPI_ERST_OFFSET (Reserved),                "Reserved", 0},
    643      1.1  christos     {ACPI_DMT_UINT32,   ACPI_ERST_OFFSET (Entries),                 "Instruction Entry Count", 0},
    644      1.1  christos     ACPI_DMT_TERMINATOR
    645      1.1  christos };
    646      1.1  christos 
    647      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoErst0[] =
    648      1.1  christos {
    649      1.1  christos     {ACPI_DMT_ERSTACT,  ACPI_ERST0_OFFSET (Action),                 "Action", 0},
    650      1.1  christos     {ACPI_DMT_ERSTINST, ACPI_ERST0_OFFSET (Instruction),            "Instruction", 0},
    651      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ERST0_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
    652      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_ERST0_FLAG_OFFSET (Flags,0),           "Preserve Register Bits", 0},
    653      1.1  christos 
    654      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ERST0_OFFSET (Reserved),               "Reserved", 0},
    655      1.1  christos     {ACPI_DMT_GAS,      ACPI_ERST0_OFFSET (RegisterRegion),         "Register Region", 0},
    656      1.1  christos     {ACPI_DMT_UINT64,   ACPI_ERST0_OFFSET (Value),                  "Value", 0},
    657      1.1  christos     {ACPI_DMT_UINT64,   ACPI_ERST0_OFFSET (Mask),                   "Mask", 0},
    658      1.1  christos     ACPI_DMT_TERMINATOR
    659      1.1  christos };
    660      1.1  christos 
    661      1.1  christos 
    662      1.1  christos /*******************************************************************************
    663      1.1  christos  *
    664      1.1  christos  * FPDT - Firmware Performance Data Table (ACPI 5.0)
    665      1.1  christos  *
    666      1.1  christos  ******************************************************************************/
    667      1.1  christos 
    668      1.1  christos /* Main table consists of only the standard ACPI header - subtables follow */
    669      1.1  christos 
    670      1.1  christos /* FPDT subtable header */
    671      1.1  christos 
    672      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoFpdtHdr[] =
    673      1.1  christos {
    674      1.1  christos     {ACPI_DMT_UINT16,   ACPI_FPDTH_OFFSET (Type),                   "Subtable Type", 0},
    675      1.1  christos     {ACPI_DMT_UINT8,    ACPI_FPDTH_OFFSET (Length),                 "Length", DT_LENGTH},
    676      1.1  christos     {ACPI_DMT_UINT8,    ACPI_FPDTH_OFFSET (Revision),               "Revision", 0},
    677      1.1  christos     ACPI_DMT_TERMINATOR
    678      1.1  christos };
    679      1.1  christos 
    680      1.1  christos /* 0: Firmware Basic Boot Performance Record */
    681      1.1  christos 
    682      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoFpdt0[] =
    683      1.1  christos {
    684      1.1  christos     {ACPI_DMT_UINT32,   ACPI_FPDT0_OFFSET (Reserved),               "Reserved", 0},
    685      1.1  christos     {ACPI_DMT_UINT64,   ACPI_FPDT1_OFFSET (Address),                "FPDT Boot Record Address", 0},
    686      1.1  christos     ACPI_DMT_TERMINATOR
    687      1.1  christos };
    688      1.1  christos 
    689      1.1  christos /* 1: S3 Performance Table Pointer Record */
    690      1.1  christos 
    691      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoFpdt1[] =
    692      1.1  christos {
    693      1.1  christos     {ACPI_DMT_UINT32,   ACPI_FPDT1_OFFSET (Reserved),               "Reserved", 0},
    694      1.1  christos     {ACPI_DMT_UINT64,   ACPI_FPDT1_OFFSET (Address),                "S3PT Record Address", 0},
    695      1.1  christos     ACPI_DMT_TERMINATOR
    696      1.1  christos };
    697      1.1  christos 
    698      1.1  christos #if 0
    699      1.1  christos     /* Boot Performance Record, not supported at this time. */
    700      1.1  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (ResetEnd),               "Reset End", 0},
    701      1.1  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (LoadStart),              "Load Image Start", 0},
    702      1.1  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (StartupStart),           "Start Image Start", 0},
    703      1.1  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (ExitServicesEntry),      "Exit Services Entry", 0},
    704      1.1  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (ExitServicesExit),       "Exit Services Exit", 0},
    705      1.1  christos #endif
    706      1.1  christos 
    707      1.1  christos 
    708      1.1  christos /*******************************************************************************
    709      1.1  christos  *
    710      1.1  christos  * GTDT - Generic Timer Description Table
    711      1.1  christos  *
    712      1.1  christos  ******************************************************************************/
    713      1.1  christos 
    714      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdt[] =
    715      1.1  christos {
    716      1.1  christos     {ACPI_DMT_UINT64,   ACPI_GTDT_OFFSET (CounterBlockAddresss),    "Counter Block Address", 0},
    717      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (Reserved),                "Reserved", 0},
    718      1.1  christos     ACPI_DMT_NEW_LINE,
    719      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (SecureEl1Interrupt),      "Secure EL1 Interrupt", 0},
    720      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (SecureEl1Flags),          "EL1 Flags (decoded below)", DT_FLAG},
    721      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT_FLAG_OFFSET (SecureEl1Flags,0),   "Trigger Mode", 0},
    722      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT_FLAG_OFFSET (SecureEl1Flags,0),   "Polarity", 0},
    723      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT_FLAG_OFFSET (SecureEl1Flags,0),   "Always On", 0},
    724      1.1  christos     ACPI_DMT_NEW_LINE,
    725      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (NonSecureEl1Interrupt),   "Non-Secure EL1 Interrupt", 0},
    726      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (NonSecureEl1Flags),       "NEL1 Flags (decoded below)", DT_FLAG},
    727      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl1Flags,0),"Trigger Mode", 0},
    728      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl1Flags,0),"Polarity", 0},
    729      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl1Flags,0),"Always On", 0},
    730      1.1  christos     ACPI_DMT_NEW_LINE,
    731      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (VirtualTimerInterrupt),   "Virtual Timer Interrupt", 0},
    732      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (VirtualTimerFlags),       "VT Flags (decoded below)", DT_FLAG},
    733      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT_FLAG_OFFSET (VirtualTimerFlags,0),"Trigger Mode", 0},
    734      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT_FLAG_OFFSET (VirtualTimerFlags,0),"Polarity", 0},
    735      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT_FLAG_OFFSET (VirtualTimerFlags,0),"Always On", 0},
    736      1.1  christos     ACPI_DMT_NEW_LINE,
    737      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (NonSecureEl2Interrupt),   "Non-Secure EL2 Interrupt", 0},
    738      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (NonSecureEl2Flags),       "NEL2 Flags (decoded below)", DT_FLAG},
    739      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl2Flags,0),"Trigger Mode", 0},
    740      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl2Flags,0),"Polarity", 0},
    741      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl2Flags,0),"Always On", 0},
    742      1.1  christos     {ACPI_DMT_UINT64,   ACPI_GTDT_OFFSET (CounterReadBlockAddress), "Counter Read Block Address", 0},
    743      1.1  christos     ACPI_DMT_NEW_LINE,
    744      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (PlatformTimerCount),      "Platform Timer Count", 0},
    745      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (PlatformTimerOffset),     "Platform Timer Offset", 0},
    746      1.1  christos     ACPI_DMT_TERMINATOR
    747      1.1  christos };
    748      1.1  christos 
    749  1.1.1.2  christos /* GDTD EL2 timer info. This table is appended to AcpiDmTableInfoGtdt for rev 3 and later */
    750  1.1.1.2  christos 
    751  1.1.1.2  christos ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtEl2[] =
    752  1.1.1.2  christos {
    753  1.1.1.2  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_EL2_OFFSET (VirtualEL2TimerGsiv),  "Virtual EL2 Timer GSIV", 0},
    754  1.1.1.2  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_EL2_OFFSET (VirtualEL2TimerFlags), "Virtual EL2 Timer Flags", 0},
    755  1.1.1.2  christos     ACPI_DMT_TERMINATOR
    756  1.1.1.2  christos };
    757  1.1.1.2  christos 
    758      1.1  christos /* GTDT Subtable header (one per Subtable) */
    759      1.1  christos 
    760      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdtHdr[] =
    761      1.1  christos {
    762      1.1  christos     {ACPI_DMT_GTDT,     ACPI_GTDTH_OFFSET (Type),                   "Subtable Type", 0},
    763      1.1  christos     {ACPI_DMT_UINT16,   ACPI_GTDTH_OFFSET (Length),                 "Length", DT_LENGTH},
    764      1.1  christos     ACPI_DMT_TERMINATOR
    765      1.1  christos };
    766      1.1  christos 
    767      1.1  christos /* GTDT Subtables */
    768      1.1  christos 
    769      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdt0[] =
    770      1.1  christos {
    771      1.1  christos     {ACPI_DMT_UINT8,    ACPI_GTDT0_OFFSET (Reserved),               "Reserved", 0},
    772      1.1  christos     {ACPI_DMT_UINT64,   ACPI_GTDT0_OFFSET (BlockAddress),           "Block Address", 0},
    773      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0_OFFSET (TimerCount),             "Timer Count", 0},
    774      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0_OFFSET (TimerOffset),            "Timer Offset", 0},
    775      1.1  christos     ACPI_DMT_TERMINATOR
    776      1.1  christos };
    777      1.1  christos 
    778      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdt0a[] =
    779      1.1  christos {
    780      1.1  christos     {ACPI_DMT_UINT8 ,   ACPI_GTDT0a_OFFSET (FrameNumber),               "Frame Number", 0},
    781      1.1  christos     {ACPI_DMT_UINT24,   ACPI_GTDT0a_OFFSET (Reserved[0]),               "Reserved", 0},
    782      1.1  christos     {ACPI_DMT_UINT64,   ACPI_GTDT0a_OFFSET (BaseAddress),               "Base Address", 0},
    783      1.1  christos     {ACPI_DMT_UINT64,   ACPI_GTDT0a_OFFSET (El0BaseAddress),            "EL0 Base Address", 0},
    784      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (TimerInterrupt),            "Timer Interrupt", 0},
    785      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (TimerFlags),                "Timer Flags (decoded below)", 0},
    786      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT0a_FLAG_OFFSET (TimerFlags,0),         "Trigger Mode", 0},
    787      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT0a_FLAG_OFFSET (TimerFlags,0),         "Polarity", 0},
    788      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (VirtualTimerInterrupt),     "Virtual Timer Interrupt", 0},
    789      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (VirtualTimerFlags),         "Virtual Timer Flags (decoded below)", 0},
    790      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT0a_FLAG_OFFSET (VirtualTimerFlags,0),  "Trigger Mode", 0},
    791      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT0a_FLAG_OFFSET (VirtualTimerFlags,0),  "Polarity", 0},
    792      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (CommonFlags),               "Common Flags (decoded below)", 0},
    793      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT0a_FLAG_OFFSET (CommonFlags,0),        "Secure", 0},
    794      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT0a_FLAG_OFFSET (CommonFlags,0),        "Always On", 0},
    795      1.1  christos     ACPI_DMT_TERMINATOR
    796      1.1  christos };
    797      1.1  christos 
    798      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdt1[] =
    799      1.1  christos {
    800      1.1  christos     {ACPI_DMT_UINT8,    ACPI_GTDT1_OFFSET (Reserved),               "Reserved", 0},
    801      1.1  christos     {ACPI_DMT_UINT64,   ACPI_GTDT1_OFFSET (RefreshFrameAddress),    "Refresh Frame Address", 0},
    802      1.1  christos     {ACPI_DMT_UINT64,   ACPI_GTDT1_OFFSET (ControlFrameAddress),    "Control Frame Address", 0},
    803      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT1_OFFSET (TimerInterrupt),         "Timer Interrupt", 0},
    804      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT1_OFFSET (TimerFlags),             "Timer Flags (decoded below)", DT_FLAG},
    805      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT1_FLAG_OFFSET (TimerFlags,0),      "Trigger Mode", 0},
    806      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT1_FLAG_OFFSET (TimerFlags,0),      "Polarity", 0},
    807      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT1_FLAG_OFFSET (TimerFlags,0),      "Security", 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  * HEST - Hardware Error Source table
    815      1.1  christos  *
    816      1.1  christos  ******************************************************************************/
    817      1.1  christos 
    818      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest[] =
    819      1.1  christos {
    820      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST_OFFSET (ErrorSourceCount),        "Error Source Count", 0},
    821      1.1  christos     ACPI_DMT_TERMINATOR
    822      1.1  christos };
    823      1.1  christos 
    824      1.1  christos /* Common HEST structures for subtables */
    825      1.1  christos 
    826      1.1  christos #define ACPI_DM_HEST_HEADER \
    827      1.1  christos     {ACPI_DMT_HEST,     ACPI_HEST0_OFFSET (Header.Type),            "Subtable Type", 0}, \
    828      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST0_OFFSET (Header.SourceId),        "Source Id", 0}
    829      1.1  christos 
    830      1.1  christos #define ACPI_DM_HEST_AER \
    831      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Reserved1),              "Reserved", 0}, \
    832      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST6_OFFSET (Aer.Flags),                  "Flags (decoded below)", DT_FLAG}, \
    833      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_HEST6_FLAG_OFFSET (Aer.Flags,0),           "Firmware First", 0}, \
    834      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_HEST6_FLAG_OFFSET (Aer.Flags,0),           "Global", 0}, \
    835      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST6_OFFSET (Aer.Enabled),                "Enabled", 0}, \
    836      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.RecordsToPreallocate),   "Records To Preallocate", 0}, \
    837      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.MaxSectionsPerRecord),   "Max Sections Per Record", 0}, \
    838      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.Bus),                    "Bus", 0}, \
    839      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Device),                 "Device", 0}, \
    840      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Function),               "Function", 0}, \
    841      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.DeviceControl),          "DeviceControl", 0}, \
    842      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Reserved2),              "Reserved", 0}, \
    843      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.UncorrectableMask),      "Uncorrectable Mask", 0}, \
    844      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.UncorrectableSeverity),  "Uncorrectable Severity", 0}, \
    845      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.CorrectableMask),        "Correctable Mask", 0}, \
    846      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.AdvancedCapabilities),   "Advanced Capabilities", 0}
    847      1.1  christos 
    848      1.1  christos 
    849      1.1  christos /* HEST Subtables */
    850      1.1  christos 
    851      1.1  christos /* 0: IA32 Machine Check Exception */
    852      1.1  christos 
    853      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest0[] =
    854      1.1  christos {
    855      1.1  christos     ACPI_DM_HEST_HEADER,
    856      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST0_OFFSET (Reserved1),              "Reserved1", 0},
    857      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST0_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
    858      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_HEST0_FLAG_OFFSET (Flags,0),           "Firmware First", 0},
    859      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_HEST0_FLAG_OFFSET (Flags,0),           "GHES Assist", 0},
    860      1.1  christos 
    861      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST0_OFFSET (Enabled),                "Enabled", 0},
    862      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST0_OFFSET (RecordsToPreallocate),   "Records To Preallocate", 0},
    863      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST0_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record", 0},
    864      1.1  christos     {ACPI_DMT_UINT64,   ACPI_HEST0_OFFSET (GlobalCapabilityData),   "Global Capability Data", 0},
    865      1.1  christos     {ACPI_DMT_UINT64,   ACPI_HEST0_OFFSET (GlobalControlData),      "Global Control Data", 0},
    866      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST0_OFFSET (NumHardwareBanks),       "Num Hardware Banks", 0},
    867      1.1  christos     {ACPI_DMT_UINT56,   ACPI_HEST0_OFFSET (Reserved3[0]),           "Reserved2", 0},
    868      1.1  christos     ACPI_DMT_TERMINATOR
    869      1.1  christos };
    870      1.1  christos 
    871      1.1  christos /* 1: IA32 Corrected Machine Check */
    872      1.1  christos 
    873      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest1[] =
    874      1.1  christos {
    875      1.1  christos     ACPI_DM_HEST_HEADER,
    876      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST1_OFFSET (Reserved1),              "Reserved1", 0},
    877      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST1_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
    878      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_HEST1_FLAG_OFFSET (Flags,0),           "Firmware First", 0},
    879      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_HEST1_FLAG_OFFSET (Flags,0),           "GHES Assist", 0},
    880      1.1  christos 
    881      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST1_OFFSET (Enabled),                "Enabled", 0},
    882      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST1_OFFSET (RecordsToPreallocate),   "Records To Preallocate", 0},
    883      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST1_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record", 0},
    884      1.1  christos     {ACPI_DMT_HESTNTFY, ACPI_HEST1_OFFSET (Notify),                 "Notify", 0},
    885      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST1_OFFSET (NumHardwareBanks),       "Num Hardware Banks", 0},
    886      1.1  christos     {ACPI_DMT_UINT24,   ACPI_HEST1_OFFSET (Reserved2[0]),           "Reserved2", 0},
    887      1.1  christos     ACPI_DMT_TERMINATOR
    888      1.1  christos };
    889      1.1  christos 
    890      1.1  christos /* 2: IA32 Non-Maskable Interrupt */
    891      1.1  christos 
    892      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest2[] =
    893      1.1  christos {
    894      1.1  christos     ACPI_DM_HEST_HEADER,
    895      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST2_OFFSET (Reserved),               "Reserved", 0},
    896      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST2_OFFSET (RecordsToPreallocate),   "Records To Preallocate", 0},
    897      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST2_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record", 0},
    898      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST2_OFFSET (MaxRawDataLength),       "Max Raw Data Length", 0},
    899      1.1  christos     ACPI_DMT_TERMINATOR
    900      1.1  christos };
    901      1.1  christos 
    902      1.1  christos /* 6: PCI Express Root Port AER */
    903      1.1  christos 
    904      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest6[] =
    905      1.1  christos {
    906      1.1  christos     ACPI_DM_HEST_HEADER,
    907      1.1  christos     ACPI_DM_HEST_AER,
    908      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (RootErrorCommand),       "Root Error Command", 0},
    909      1.1  christos     ACPI_DMT_TERMINATOR
    910      1.1  christos };
    911      1.1  christos 
    912      1.1  christos /* 7: PCI Express AER (AER Endpoint) */
    913      1.1  christos 
    914      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest7[] =
    915      1.1  christos {
    916      1.1  christos     ACPI_DM_HEST_HEADER,
    917      1.1  christos     ACPI_DM_HEST_AER,
    918      1.1  christos     ACPI_DMT_TERMINATOR
    919      1.1  christos };
    920      1.1  christos 
    921      1.1  christos /* 8: PCI Express/PCI-X Bridge AER */
    922      1.1  christos 
    923      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest8[] =
    924      1.1  christos {
    925      1.1  christos     ACPI_DM_HEST_HEADER,
    926      1.1  christos     ACPI_DM_HEST_AER,
    927      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST8_OFFSET (UncorrectableMask2),     "2nd Uncorrectable Mask", 0},
    928      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST8_OFFSET (UncorrectableSeverity2), "2nd Uncorrectable Severity", 0},
    929      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST8_OFFSET (AdvancedCapabilities2),  "2nd Advanced Capabilities", 0},
    930      1.1  christos     ACPI_DMT_TERMINATOR
    931      1.1  christos };
    932      1.1  christos 
    933      1.1  christos /* 9: Generic Hardware Error Source */
    934      1.1  christos 
    935      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest9[] =
    936      1.1  christos {
    937      1.1  christos     ACPI_DM_HEST_HEADER,
    938      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST9_OFFSET (RelatedSourceId),        "Related Source Id", 0},
    939      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST9_OFFSET (Reserved),               "Reserved", 0},
    940      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST9_OFFSET (Enabled),                "Enabled", 0},
    941      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (RecordsToPreallocate),   "Records To Preallocate", 0},
    942      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record", 0},
    943      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (MaxRawDataLength),       "Max Raw Data Length", 0},
    944      1.1  christos     {ACPI_DMT_GAS,      ACPI_HEST9_OFFSET (ErrorStatusAddress),     "Error Status Address", 0},
    945      1.1  christos     {ACPI_DMT_HESTNTFY, ACPI_HEST9_OFFSET (Notify),                 "Notify", 0},
    946      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (ErrorBlockLength),       "Error Status Block Length", 0},
    947      1.1  christos     ACPI_DMT_TERMINATOR
    948      1.1  christos };
    949      1.1  christos 
    950      1.1  christos /* 10: Generic Hardware Error Source - Version 2 */
    951      1.1  christos 
    952      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest10[] =
    953      1.1  christos {
    954      1.1  christos     ACPI_DM_HEST_HEADER,
    955      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST10_OFFSET (RelatedSourceId),       "Related Source Id", 0},
    956      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST10_OFFSET (Reserved),              "Reserved", 0},
    957      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST10_OFFSET (Enabled),               "Enabled", 0},
    958      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST10_OFFSET (RecordsToPreallocate),  "Records To Preallocate", 0},
    959      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST10_OFFSET (MaxSectionsPerRecord),  "Max Sections Per Record", 0},
    960      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST10_OFFSET (MaxRawDataLength),      "Max Raw Data Length", 0},
    961      1.1  christos     {ACPI_DMT_GAS,      ACPI_HEST10_OFFSET (ErrorStatusAddress),    "Error Status Address", 0},
    962      1.1  christos     {ACPI_DMT_HESTNTFY, ACPI_HEST10_OFFSET (Notify),                "Notify", 0},
    963      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST10_OFFSET (ErrorBlockLength),      "Error Status Block Length", 0},
    964      1.1  christos     {ACPI_DMT_GAS,      ACPI_HEST10_OFFSET (ReadAckRegister),       "Read Ack Register", 0},
    965      1.1  christos     {ACPI_DMT_UINT64,   ACPI_HEST10_OFFSET (ReadAckPreserve),       "Read Ack Preserve", 0},
    966      1.1  christos     {ACPI_DMT_UINT64,   ACPI_HEST10_OFFSET (ReadAckWrite),          "Read Ack Write", 0},
    967      1.1  christos     ACPI_DMT_TERMINATOR
    968      1.1  christos };
    969      1.1  christos 
    970      1.1  christos /* 11: IA32 Deferred Machine Check */
    971      1.1  christos 
    972      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest11[] =
    973      1.1  christos {
    974      1.1  christos     ACPI_DM_HEST_HEADER,
    975      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST11_OFFSET (Reserved1),             "Reserved1", 0},
    976      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST11_OFFSET (Flags),                 "Flags (decoded below)", DT_FLAG},
    977      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_HEST11_FLAG_OFFSET (Flags,0),          "Firmware First", 0},
    978      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_HEST11_FLAG_OFFSET (Flags,0),          "GHES Assist", 0},
    979      1.1  christos 
    980      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST11_OFFSET (Enabled),               "Enabled", 0},
    981      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST11_OFFSET (RecordsToPreallocate),  "Records To Preallocate", 0},
    982      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST11_OFFSET (MaxSectionsPerRecord),  "Max Sections Per Record", 0},
    983      1.1  christos     {ACPI_DMT_HESTNTFY, ACPI_HEST11_OFFSET (Notify),                "Notify", 0},
    984      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST11_OFFSET (NumHardwareBanks),      "Num Hardware Banks", 0},
    985      1.1  christos     {ACPI_DMT_UINT24,   ACPI_HEST11_OFFSET (Reserved2[0]),          "Reserved2", 0},
    986      1.1  christos     ACPI_DMT_TERMINATOR
    987      1.1  christos };
    988      1.1  christos 
    989      1.1  christos /* Notification Structure */
    990      1.1  christos 
    991      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHestNotify[] =
    992      1.1  christos {
    993      1.1  christos     {ACPI_DMT_HESTNTYP, ACPI_HESTN_OFFSET (Type),                   "Notify Type", 0},
    994      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HESTN_OFFSET (Length),                 "Notify Length", DT_LENGTH},
    995      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HESTN_OFFSET (ConfigWriteEnable),      "Configuration Write Enable", 0},
    996      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (PollInterval),           "PollInterval", 0},
    997      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (Vector),                 "Vector", 0},
    998      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (PollingThresholdValue),  "Polling Threshold Value", 0},
    999      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (PollingThresholdWindow), "Polling Threshold Window", 0},
   1000      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (ErrorThresholdValue),    "Error Threshold Value", 0},
   1001      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (ErrorThresholdWindow),   "Error Threshold Window", 0},
   1002      1.1  christos     ACPI_DMT_TERMINATOR
   1003      1.1  christos };
   1004      1.1  christos 
   1005      1.1  christos 
   1006      1.1  christos /*
   1007      1.1  christos  * IA32 Error Bank(s) - Follows the ACPI_HEST_IA_MACHINE_CHECK and
   1008      1.1  christos  * ACPI_HEST_IA_CORRECTED structures.
   1009      1.1  christos  */
   1010      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHestBank[] =
   1011      1.1  christos {
   1012      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HESTB_OFFSET (BankNumber),             "Bank Number", 0},
   1013      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HESTB_OFFSET (ClearStatusOnInit),      "Clear Status On Init", 0},
   1014      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HESTB_OFFSET (StatusFormat),           "Status Format", 0},
   1015      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HESTB_OFFSET (Reserved),               "Reserved", 0},
   1016      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTB_OFFSET (ControlRegister),        "Control Register", 0},
   1017      1.1  christos     {ACPI_DMT_UINT64,   ACPI_HESTB_OFFSET (ControlData),            "Control Data", 0},
   1018      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTB_OFFSET (StatusRegister),         "Status Register", 0},
   1019      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTB_OFFSET (AddressRegister),        "Address Register", 0},
   1020      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTB_OFFSET (MiscRegister),           "Misc Register", 0},
   1021      1.1  christos     ACPI_DMT_TERMINATOR
   1022      1.1  christos };
   1023      1.1  christos 
   1024      1.1  christos 
   1025      1.1  christos /*******************************************************************************
   1026      1.1  christos  *
   1027      1.1  christos  * HMAT - Heterogeneous Memory Attributes Table
   1028      1.1  christos  *
   1029      1.1  christos  ******************************************************************************/
   1030      1.1  christos 
   1031      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat[] =
   1032      1.1  christos {
   1033      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HMAT_OFFSET (Reserved),                "Reserved", 0},
   1034      1.1  christos     ACPI_DMT_TERMINATOR
   1035      1.1  christos };
   1036      1.1  christos 
   1037      1.1  christos /* Common HMAT structure header (one per Subtable) */
   1038      1.1  christos 
   1039      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmatHdr[] =
   1040      1.1  christos {
   1041      1.1  christos     {ACPI_DMT_HMAT,     ACPI_HMATH_OFFSET (Type),                   "Structure Type", 0},
   1042      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HMATH_OFFSET (Reserved),               "Reserved", 0},
   1043      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HMATH_OFFSET (Length),                 "Length", 0},
   1044      1.1  christos     ACPI_DMT_TERMINATOR
   1045      1.1  christos };
   1046      1.1  christos 
   1047      1.1  christos /* HMAT subtables */
   1048      1.1  christos 
   1049  1.1.1.2  christos /* 0x00: Memory proximity domain attributes */
   1050      1.1  christos 
   1051      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat0[] =
   1052      1.1  christos {
   1053      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HMAT0_OFFSET (Flags),                  "Flags (decoded below)", 0},
   1054      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_HMAT0_FLAG_OFFSET (Flags,0),           "Processor Proximity Domain Valid", 0},
   1055      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HMAT0_OFFSET (Reserved1),              "Reserved1", 0},
   1056  1.1.1.4  christos     {ACPI_DMT_UINT32,   ACPI_HMAT0_OFFSET (InitiatorPD),            "Attached Initiator Proximity Domain", 0},
   1057      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HMAT0_OFFSET (MemoryPD),               "Memory Proximity Domain", 0},
   1058      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HMAT0_OFFSET (Reserved2),              "Reserved2", 0},
   1059  1.1.1.2  christos     {ACPI_DMT_UINT64,   ACPI_HMAT0_OFFSET (Reserved3),              "Reserved3", 0},
   1060  1.1.1.2  christos     {ACPI_DMT_UINT64,   ACPI_HMAT0_OFFSET (Reserved4),              "Reserved4", 0},
   1061      1.1  christos     ACPI_DMT_TERMINATOR
   1062      1.1  christos };
   1063      1.1  christos 
   1064      1.1  christos /* 0x01: System Locality Latency and Bandwidth Information */
   1065      1.1  christos 
   1066      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat1[] =
   1067      1.1  christos {
   1068      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HMAT1_OFFSET (Flags),                  "Flags (decoded below)", 0},
   1069  1.1.1.5  christos     {ACPI_DMT_FLAGS4_0, ACPI_HMAT1_FLAG_OFFSET (Flags,0),           "Memory Hierarchy", 0},         /* First 4 bits */
   1070  1.1.1.5  christos     {ACPI_DMT_FLAG4,    ACPI_HMAT1_FLAG_OFFSET (Flags,0),           "Use Minimum Transfer Size", 0},
   1071  1.1.1.5  christos     {ACPI_DMT_FLAG5,    ACPI_HMAT1_FLAG_OFFSET (Flags,0),           "Non-sequential Transfers", 0},
   1072      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HMAT1_OFFSET (DataType),               "Data Type", 0},
   1073  1.1.1.5  christos     {ACPI_DMT_UINT8,    ACPI_HMAT1_OFFSET (MinTransferSize),        "Minimum Transfer Size", 0},
   1074  1.1.1.5  christos     {ACPI_DMT_UINT8,    ACPI_HMAT1_OFFSET (Reserved1),              "Reserved1", 0},
   1075      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HMAT1_OFFSET (NumberOfInitiatorPDs),   "Initiator Proximity Domains #", 0},
   1076      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HMAT1_OFFSET (NumberOfTargetPDs),      "Target Proximity Domains #", 0},
   1077      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HMAT1_OFFSET (Reserved2),              "Reserved2", 0},
   1078      1.1  christos     {ACPI_DMT_UINT64,   ACPI_HMAT1_OFFSET (EntryBaseUnit),          "Entry Base Unit", 0},
   1079      1.1  christos     ACPI_DMT_TERMINATOR
   1080      1.1  christos };
   1081      1.1  christos 
   1082      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat1a[] =
   1083      1.1  christos {
   1084      1.1  christos     {ACPI_DMT_UINT32,   0,                                          "Initiator Proximity Domain List", DT_OPTIONAL},
   1085      1.1  christos     ACPI_DMT_TERMINATOR
   1086      1.1  christos };
   1087      1.1  christos 
   1088      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat1b[] =
   1089      1.1  christos {
   1090      1.1  christos     {ACPI_DMT_UINT32,   0,                                          "Target Proximity Domain List", DT_OPTIONAL},
   1091      1.1  christos     ACPI_DMT_TERMINATOR
   1092      1.1  christos };
   1093      1.1  christos 
   1094      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat1c[] =
   1095      1.1  christos {
   1096      1.1  christos     {ACPI_DMT_UINT16,   0,                                          "Entry", DT_OPTIONAL},
   1097      1.1  christos     ACPI_DMT_TERMINATOR
   1098      1.1  christos };
   1099      1.1  christos 
   1100      1.1  christos /* 0x02: Memory Side Cache Information */
   1101      1.1  christos 
   1102      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat2[] =
   1103      1.1  christos {
   1104      1.1  christos     {ACPI_DMT_UINT32,       ACPI_HMAT2_OFFSET (MemoryPD),               "Memory Proximity Domain", 0},
   1105      1.1  christos     {ACPI_DMT_UINT32,       ACPI_HMAT2_OFFSET (Reserved1),              "Reserved1", 0},
   1106      1.1  christos     {ACPI_DMT_UINT64,       ACPI_HMAT2_OFFSET (CacheSize),              "Memory Side Cache Size", 0},
   1107      1.1  christos     {ACPI_DMT_UINT32,       ACPI_HMAT2_OFFSET (CacheAttributes),        "Cache Attributes (decoded below)", 0},
   1108      1.1  christos     {ACPI_DMT_FLAGS4_0,     ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Total Cache Levels", 0},
   1109      1.1  christos     {ACPI_DMT_FLAGS4_4,     ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Cache Level", 0},
   1110      1.1  christos     {ACPI_DMT_FLAGS4_8,     ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Cache Associativity", 0},
   1111      1.1  christos     {ACPI_DMT_FLAGS4_12,    ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Write Policy", 0},
   1112      1.1  christos     {ACPI_DMT_FLAGS16_16,   ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Cache Line Size", 0},
   1113      1.1  christos     {ACPI_DMT_UINT16,       ACPI_HMAT2_OFFSET (Reserved2),              "Reserved2", 0},
   1114      1.1  christos     {ACPI_DMT_UINT16,       ACPI_HMAT2_OFFSET (NumberOfSMBIOSHandles),  "SMBIOS Handle #", 0},
   1115      1.1  christos     ACPI_DMT_TERMINATOR
   1116      1.1  christos };
   1117      1.1  christos 
   1118      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat2a[] =
   1119      1.1  christos {
   1120      1.1  christos     {ACPI_DMT_UINT16,   0,                                          "SMBIOS Handle", DT_OPTIONAL},
   1121      1.1  christos     ACPI_DMT_TERMINATOR
   1122      1.1  christos };
   1123      1.1  christos 
   1124      1.1  christos 
   1125      1.1  christos /*******************************************************************************
   1126      1.1  christos  *
   1127      1.1  christos  * HPET - High Precision Event Timer table
   1128      1.1  christos  *
   1129      1.1  christos  ******************************************************************************/
   1130      1.1  christos 
   1131      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHpet[] =
   1132      1.1  christos {
   1133      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HPET_OFFSET (Id),                      "Hardware Block ID", 0},
   1134      1.1  christos     {ACPI_DMT_GAS,      ACPI_HPET_OFFSET (Address),                 "Timer Block Register", 0},
   1135      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HPET_OFFSET (Sequence),                "Sequence Number", 0},
   1136      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HPET_OFFSET (MinimumTick),             "Minimum Clock Ticks", 0},
   1137      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HPET_OFFSET (Flags),                   "Flags (decoded below)", DT_FLAG},
   1138      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_HPET_FLAG_OFFSET (Flags,0),            "4K Page Protect", 0},
   1139      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_HPET_FLAG_OFFSET (Flags,0),            "64K Page Protect", 0},
   1140      1.1  christos     ACPI_DMT_TERMINATOR
   1141      1.1  christos };
   1142      1.1  christos /*! [End] no source code translation !*/
   1143