Home | History | Annotate | Line # | Download | only in include
acdisasm.h revision 1.6.2.1
      1 /******************************************************************************
      2  *
      3  * Name: acdisasm.h - AML disassembler
      4  *
      5  *****************************************************************************/
      6 
      7 /*
      8  * Copyright (C) 2000 - 2015, Intel Corp.
      9  * All rights reserved.
     10  *
     11  * Redistribution and use in source and binary forms, with or without
     12  * modification, are permitted provided that the following conditions
     13  * are met:
     14  * 1. Redistributions of source code must retain the above copyright
     15  *    notice, this list of conditions, and the following disclaimer,
     16  *    without modification.
     17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     18  *    substantially similar to the "NO WARRANTY" disclaimer below
     19  *    ("Disclaimer") and any redistribution must be conditioned upon
     20  *    including a substantially similar Disclaimer requirement for further
     21  *    binary redistribution.
     22  * 3. Neither the names of the above-listed copyright holders nor the names
     23  *    of any contributors may be used to endorse or promote products derived
     24  *    from this software without specific prior written permission.
     25  *
     26  * Alternatively, this software may be distributed under the terms of the
     27  * GNU General Public License ("GPL") version 2 as published by the Free
     28  * Software Foundation.
     29  *
     30  * NO WARRANTY
     31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
     34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     41  * POSSIBILITY OF SUCH DAMAGES.
     42  */
     43 
     44 #ifndef __ACDISASM_H__
     45 #define __ACDISASM_H__
     46 
     47 #include "amlresrc.h"
     48 
     49 
     50 #define BLOCK_NONE              0
     51 #define BLOCK_PAREN             1
     52 #define BLOCK_BRACE             2
     53 #define BLOCK_COMMA_LIST        4
     54 #define ACPI_DEFAULT_RESNAME    *(const UINT32 *) "__RD"
     55 
     56 /*
     57  * Raw table data header. Used by disassembler and data table compiler.
     58  * Do not change.
     59  */
     60 #define ACPI_RAW_TABLE_DATA_HEADER      "Raw Table Data"
     61 
     62 
     63 typedef const struct acpi_dmtable_info
     64 {
     65     UINT8                       Opcode;
     66     UINT16                      Offset;
     67     char                        *Name;
     68     UINT8                       Flags;
     69 
     70 } ACPI_DMTABLE_INFO;
     71 
     72 /* Values for Flags field above */
     73 
     74 #define DT_LENGTH                       0x01    /* Field is a subtable length */
     75 #define DT_FLAG                         0x02    /* Field is a flag value */
     76 #define DT_NON_ZERO                     0x04    /* Field must be non-zero */
     77 #define DT_OPTIONAL                     0x08    /* Field is optional */
     78 #define DT_DESCRIBES_OPTIONAL           0x10    /* Field describes an optional field (length, etc.) */
     79 #define DT_COUNT                        0x20    /* Currently not used */
     80 
     81 /*
     82  * Values for Opcode above.
     83  * Note: 0-7 must not change, they are used as a flag shift value. Other
     84  * than those, new values can be added wherever appropriate.
     85  */
     86 typedef enum
     87 {
     88     /* Simple Data Types */
     89 
     90     ACPI_DMT_FLAG0          = 0,
     91     ACPI_DMT_FLAG1          = 1,
     92     ACPI_DMT_FLAG2          = 2,
     93     ACPI_DMT_FLAG3          = 3,
     94     ACPI_DMT_FLAG4          = 4,
     95     ACPI_DMT_FLAG5          = 5,
     96     ACPI_DMT_FLAG6          = 6,
     97     ACPI_DMT_FLAG7          = 7,
     98     ACPI_DMT_FLAGS0,
     99     ACPI_DMT_FLAGS1,
    100     ACPI_DMT_FLAGS2,
    101     ACPI_DMT_FLAGS4,
    102     ACPI_DMT_UINT8,
    103     ACPI_DMT_UINT16,
    104     ACPI_DMT_UINT24,
    105     ACPI_DMT_UINT32,
    106     ACPI_DMT_UINT40,
    107     ACPI_DMT_UINT48,
    108     ACPI_DMT_UINT56,
    109     ACPI_DMT_UINT64,
    110     ACPI_DMT_BUF7,
    111     ACPI_DMT_BUF10,
    112     ACPI_DMT_BUF16,
    113     ACPI_DMT_BUF128,
    114     ACPI_DMT_SIG,
    115     ACPI_DMT_STRING,
    116     ACPI_DMT_NAME4,
    117     ACPI_DMT_NAME6,
    118     ACPI_DMT_NAME8,
    119 
    120     /* Types that are decoded to strings and miscellaneous */
    121 
    122     ACPI_DMT_ACCWIDTH,
    123     ACPI_DMT_CHKSUM,
    124     ACPI_DMT_GAS,
    125     ACPI_DMT_SPACEID,
    126     ACPI_DMT_UNICODE,
    127     ACPI_DMT_UUID,
    128 
    129     /* Types used only for the Data Table Compiler */
    130 
    131     ACPI_DMT_BUFFER,
    132     ACPI_DMT_RAW_BUFFER,  /* Large, multiple line buffer */
    133     ACPI_DMT_DEVICE_PATH,
    134     ACPI_DMT_LABEL,
    135     ACPI_DMT_PCI_PATH,
    136 
    137     /* Types that are specific to particular ACPI tables */
    138 
    139     ACPI_DMT_ASF,
    140     ACPI_DMT_DMAR,
    141     ACPI_DMT_DMAR_SCOPE,
    142     ACPI_DMT_EINJACT,
    143     ACPI_DMT_EINJINST,
    144     ACPI_DMT_ERSTACT,
    145     ACPI_DMT_ERSTINST,
    146     ACPI_DMT_FADTPM,
    147     ACPI_DMT_GTDT,
    148     ACPI_DMT_HEST,
    149     ACPI_DMT_HESTNTFY,
    150     ACPI_DMT_HESTNTYP,
    151     ACPI_DMT_IVRS,
    152     ACPI_DMT_LPIT,
    153     ACPI_DMT_MADT,
    154     ACPI_DMT_PCCT,
    155     ACPI_DMT_PMTT,
    156     ACPI_DMT_SLIC,
    157     ACPI_DMT_SRAT,
    158 
    159     /* Special opcodes */
    160 
    161     ACPI_DMT_EXTRA_TEXT,
    162     ACPI_DMT_EXIT
    163 
    164 } ACPI_ENTRY_TYPES;
    165 
    166 typedef
    167 void (*ACPI_DMTABLE_HANDLER) (
    168     ACPI_TABLE_HEADER       *Table);
    169 
    170 typedef
    171 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
    172     void                    **PFieldList);
    173 
    174 typedef struct acpi_dmtable_data
    175 {
    176     char                    *Signature;
    177     ACPI_DMTABLE_INFO       *TableInfo;
    178     ACPI_DMTABLE_HANDLER    TableHandler;
    179     ACPI_CMTABLE_HANDLER    CmTableHandler;
    180     const unsigned char     *Template;
    181     char                    *Name;
    182 
    183 } ACPI_DMTABLE_DATA;
    184 
    185 
    186 typedef struct acpi_op_walk_info
    187 {
    188     UINT32                  Level;
    189     UINT32                  LastLevel;
    190     UINT32                  Count;
    191     UINT32                  BitOffset;
    192     UINT32                  Flags;
    193     ACPI_WALK_STATE         *WalkState;
    194     ACPI_PARSE_OBJECT       *MappingOp;
    195 
    196 } ACPI_OP_WALK_INFO;
    197 
    198 /*
    199  * TBD - another copy of this is in asltypes.h, fix
    200  */
    201 #ifndef ASL_WALK_CALLBACK_DEFINED
    202 typedef
    203 ACPI_STATUS (*ASL_WALK_CALLBACK) (
    204     ACPI_PARSE_OBJECT           *Op,
    205     UINT32                      Level,
    206     void                        *Context);
    207 #define ASL_WALK_CALLBACK_DEFINED
    208 #endif
    209 
    210 typedef
    211 void (*ACPI_RESOURCE_HANDLER) (
    212     ACPI_OP_WALK_INFO       *Info,
    213     AML_RESOURCE            *Resource,
    214     UINT32                  Length,
    215     UINT32                  Level);
    216 
    217 typedef struct acpi_resource_tag
    218 {
    219     UINT32                  BitIndex;
    220     char                    *Tag;
    221 
    222 } ACPI_RESOURCE_TAG;
    223 
    224 /* Strings used for decoding flags to ASL keywords */
    225 
    226 extern const char               *AcpiGbl_WordDecode[];
    227 extern const char               *AcpiGbl_IrqDecode[];
    228 extern const char               *AcpiGbl_LockRule[];
    229 extern const char               *AcpiGbl_AccessTypes[];
    230 extern const char               *AcpiGbl_UpdateRules[];
    231 extern const char               *AcpiGbl_MatchOps[];
    232 
    233 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
    234 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
    235 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
    236 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
    237 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
    238 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
    239 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
    240 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
    241 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
    242 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
    243 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBgrt[];
    244 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
    245 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
    246 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt0[];
    247 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt1[];
    248 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2[];
    249 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2[];
    250 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Device[];
    251 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Addr[];
    252 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Size[];
    253 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Name[];
    254 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2OemData[];
    255 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
    256 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
    257 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
    258 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
    259 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
    260 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
    261 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
    262 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
    263 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar4[];
    264 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
    265 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
    266 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
    267 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
    268 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
    269 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
    270 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
    271 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
    272 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
    273 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
    274 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
    275 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
    276 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
    277 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
    278 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
    279 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
    280 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
    281 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtHdr[];
    282 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0[];
    283 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0a[];
    284 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt1[];
    285 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
    286 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
    287 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
    288 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
    289 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
    290 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
    291 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
    292 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
    293 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
    294 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
    295 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
    296 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
    297 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpitHdr[];
    298 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit0[];
    299 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit1[];
    300 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
    301 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
    302 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
    303 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
    304 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
    305 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
    306 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
    307 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
    308 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
    309 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
    310 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
    311 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
    312 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
    313 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
    314 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
    315 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
    316 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
    317 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
    318 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
    319 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
    320 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
    321 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
    322 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt13[];
    323 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt14[];
    324 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
    325 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
    326 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
    327 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
    328 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
    329 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
    330 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
    331 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
    332 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
    333 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
    334 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
    335 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
    336 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMtmr[];
    337 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMtmr0[];
    338 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
    339 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
    340 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
    341 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1a[];
    342 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
    343 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
    344 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
    345 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcctHdr[];
    346 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
    347 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct1[];
    348 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
    349 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
    350 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
    351 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
    352 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
    353 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
    354 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
    355 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
    356 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
    357 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
    358 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
    359 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
    360 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
    361 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
    362 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
    363 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
    364 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat3[];
    365 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
    366 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2[];
    367 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
    368 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc[];
    369 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc0[];
    370 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
    371 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
    372 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
    373 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
    374 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
    375 
    376 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
    377 
    378 
    379 /*
    380  * dmtable
    381  */
    382 extern ACPI_DMTABLE_DATA        AcpiDmTableData[];
    383 
    384 UINT8
    385 AcpiDmGenerateChecksum (
    386     void                    *Table,
    387     UINT32                  Length,
    388     UINT8                   OriginalChecksum);
    389 
    390 ACPI_DMTABLE_DATA *
    391 AcpiDmGetTableData (
    392     char                    *Signature);
    393 
    394 void
    395 AcpiDmDumpDataTable (
    396     ACPI_TABLE_HEADER       *Table);
    397 
    398 ACPI_STATUS
    399 AcpiDmDumpTable (
    400     UINT32                  TableLength,
    401     UINT32                  TableOffset,
    402     void                    *Table,
    403     UINT32                  SubTableLength,
    404     ACPI_DMTABLE_INFO        *Info);
    405 
    406 void
    407 AcpiDmLineHeader (
    408     UINT32                  Offset,
    409     UINT32                  ByteLength,
    410     char                    *Name);
    411 
    412 void
    413 AcpiDmLineHeader2 (
    414     UINT32                  Offset,
    415     UINT32                  ByteLength,
    416     char                    *Name,
    417     UINT32                  Value);
    418 
    419 
    420 /*
    421  * dmtbdump
    422  */
    423 void
    424 AcpiDmDumpBuffer (
    425     void                    *Table,
    426     UINT32                  BufferOffset,
    427     UINT32                  Length,
    428     UINT32                  AbsoluteOffset,
    429     char                    *Header,
    430     BOOLEAN                 MultiLine);
    431 
    432 void
    433 AcpiDmDumpAsf (
    434     ACPI_TABLE_HEADER       *Table);
    435 
    436 void
    437 AcpiDmDumpCpep (
    438     ACPI_TABLE_HEADER       *Table);
    439 
    440 void
    441 AcpiDmDumpCsrt (
    442     ACPI_TABLE_HEADER       *Table);
    443 
    444 void
    445 AcpiDmDumpDbg2 (
    446     ACPI_TABLE_HEADER       *Table);
    447 
    448 void
    449 AcpiDmDumpDmar (
    450     ACPI_TABLE_HEADER       *Table);
    451 
    452 void
    453 AcpiDmDumpEinj (
    454     ACPI_TABLE_HEADER       *Table);
    455 
    456 void
    457 AcpiDmDumpErst (
    458     ACPI_TABLE_HEADER       *Table);
    459 
    460 void
    461 AcpiDmDumpFadt (
    462     ACPI_TABLE_HEADER       *Table);
    463 
    464 void
    465 AcpiDmDumpFpdt (
    466     ACPI_TABLE_HEADER       *Table);
    467 
    468 void
    469 AcpiDmDumpGtdt (
    470     ACPI_TABLE_HEADER       *Table);
    471 
    472 void
    473 AcpiDmDumpHest (
    474     ACPI_TABLE_HEADER       *Table);
    475 
    476 void
    477 AcpiDmDumpIvrs (
    478     ACPI_TABLE_HEADER       *Table);
    479 
    480 void
    481 AcpiDmDumpLpit (
    482     ACPI_TABLE_HEADER       *Table);
    483 
    484 void
    485 AcpiDmDumpMadt (
    486     ACPI_TABLE_HEADER       *Table);
    487 
    488 void
    489 AcpiDmDumpMcfg (
    490     ACPI_TABLE_HEADER       *Table);
    491 
    492 void
    493 AcpiDmDumpMpst (
    494     ACPI_TABLE_HEADER       *Table);
    495 
    496 void
    497 AcpiDmDumpMsct (
    498     ACPI_TABLE_HEADER       *Table);
    499 
    500 void
    501 AcpiDmDumpMtmr (
    502     ACPI_TABLE_HEADER       *Table);
    503 
    504 void
    505 AcpiDmDumpPcct (
    506     ACPI_TABLE_HEADER       *Table);
    507 
    508 void
    509 AcpiDmDumpPmtt (
    510     ACPI_TABLE_HEADER       *Table);
    511 
    512 UINT32
    513 AcpiDmDumpRsdp (
    514     ACPI_TABLE_HEADER       *Table);
    515 
    516 void
    517 AcpiDmDumpRsdt (
    518     ACPI_TABLE_HEADER       *Table);
    519 
    520 UINT32
    521 AcpiDmDumpS3pt (
    522     ACPI_TABLE_HEADER       *Table);
    523 
    524 void
    525 AcpiDmDumpSlic (
    526     ACPI_TABLE_HEADER       *Table);
    527 
    528 void
    529 AcpiDmDumpSlit (
    530     ACPI_TABLE_HEADER       *Table);
    531 
    532 void
    533 AcpiDmDumpSrat (
    534     ACPI_TABLE_HEADER       *Table);
    535 
    536 void
    537 AcpiDmDumpVrtc (
    538     ACPI_TABLE_HEADER       *Table);
    539 
    540 void
    541 AcpiDmDumpWdat (
    542     ACPI_TABLE_HEADER       *Table);
    543 
    544 void
    545 AcpiDmDumpXsdt (
    546     ACPI_TABLE_HEADER       *Table);
    547 
    548 
    549 /*
    550  * dmwalk
    551  */
    552 void
    553 AcpiDmDisassemble (
    554     ACPI_WALK_STATE         *WalkState,
    555     ACPI_PARSE_OBJECT       *Origin,
    556     UINT32                  NumOpcodes);
    557 
    558 void
    559 AcpiDmWalkParseTree (
    560     ACPI_PARSE_OBJECT       *Op,
    561     ASL_WALK_CALLBACK       DescendingCallback,
    562     ASL_WALK_CALLBACK       AscendingCallback,
    563     void                    *Context);
    564 
    565 
    566 /*
    567  * dmopcode
    568  */
    569 void
    570 AcpiDmDisassembleOneOp (
    571     ACPI_WALK_STATE         *WalkState,
    572     ACPI_OP_WALK_INFO       *Info,
    573     ACPI_PARSE_OBJECT       *Op);
    574 
    575 void
    576 AcpiDmDecodeInternalObject (
    577     ACPI_OPERAND_OBJECT     *ObjDesc);
    578 
    579 UINT32
    580 AcpiDmListType (
    581     ACPI_PARSE_OBJECT       *Op);
    582 
    583 void
    584 AcpiDmMethodFlags (
    585     ACPI_PARSE_OBJECT       *Op);
    586 
    587 void
    588 AcpiDmDisplayTargetPathname (
    589     ACPI_PARSE_OBJECT       *Op);
    590 
    591 void
    592 AcpiDmNotifyDescription (
    593     ACPI_PARSE_OBJECT       *Op);
    594 
    595 void
    596 AcpiDmPredefinedDescription (
    597     ACPI_PARSE_OBJECT       *Op);
    598 
    599 void
    600 AcpiDmFieldPredefinedDescription (
    601     ACPI_PARSE_OBJECT       *Op);
    602 
    603 void
    604 AcpiDmFieldFlags (
    605     ACPI_PARSE_OBJECT       *Op);
    606 
    607 void
    608 AcpiDmAddressSpace (
    609     UINT8                   SpaceId);
    610 
    611 void
    612 AcpiDmRegionFlags (
    613     ACPI_PARSE_OBJECT       *Op);
    614 
    615 void
    616 AcpiDmMatchOp (
    617     ACPI_PARSE_OBJECT       *Op);
    618 
    619 
    620 /*
    621  * dmnames
    622  */
    623 UINT32
    624 AcpiDmDumpName (
    625     UINT32                  Name);
    626 
    627 ACPI_STATUS
    628 AcpiPsDisplayObjectPathname (
    629     ACPI_WALK_STATE         *WalkState,
    630     ACPI_PARSE_OBJECT       *Op);
    631 
    632 void
    633 AcpiDmNamestring (
    634     char                    *Name);
    635 
    636 
    637 /*
    638  * dmobject
    639  */
    640 void
    641 AcpiDmDisplayInternalObject (
    642     ACPI_OPERAND_OBJECT     *ObjDesc,
    643     ACPI_WALK_STATE         *WalkState);
    644 
    645 void
    646 AcpiDmDisplayArguments (
    647     ACPI_WALK_STATE         *WalkState);
    648 
    649 void
    650 AcpiDmDisplayLocals (
    651     ACPI_WALK_STATE         *WalkState);
    652 
    653 void
    654 AcpiDmDumpMethodInfo (
    655     ACPI_STATUS             Status,
    656     ACPI_WALK_STATE         *WalkState,
    657     ACPI_PARSE_OBJECT       *Op);
    658 
    659 
    660 /*
    661  * dmbuffer
    662  */
    663 void
    664 AcpiDmDisasmByteList (
    665     UINT32                  Level,
    666     UINT8                   *ByteData,
    667     UINT32                  ByteCount);
    668 
    669 void
    670 AcpiDmByteList (
    671     ACPI_OP_WALK_INFO       *Info,
    672     ACPI_PARSE_OBJECT       *Op);
    673 
    674 void
    675 AcpiDmCheckForHardwareId (
    676     ACPI_PARSE_OBJECT       *Op);
    677 
    678 void
    679 AcpiDmDecompressEisaId (
    680     UINT32                  EncodedId);
    681 
    682 BOOLEAN
    683 AcpiDmIsUuidBuffer (
    684     ACPI_PARSE_OBJECT       *Op);
    685 
    686 BOOLEAN
    687 AcpiDmIsUnicodeBuffer (
    688     ACPI_PARSE_OBJECT       *Op);
    689 
    690 BOOLEAN
    691 AcpiDmIsStringBuffer (
    692     ACPI_PARSE_OBJECT       *Op);
    693 
    694 BOOLEAN
    695 AcpiDmIsPldBuffer (
    696     ACPI_PARSE_OBJECT       *Op);
    697 
    698 
    699 /*
    700  * dmdeferred
    701  */
    702 ACPI_STATUS
    703 AcpiDmParseDeferredOps (
    704     ACPI_PARSE_OBJECT       *Root);
    705 
    706 
    707 /*
    708  * dmextern
    709  */
    710 ACPI_STATUS
    711 AcpiDmAddToExternalFileList (
    712     char                    *PathList);
    713 
    714 void
    715 AcpiDmClearExternalFileList (
    716     void);
    717 
    718 void
    719 AcpiDmAddOpToExternalList (
    720     ACPI_PARSE_OBJECT       *Op,
    721     char                    *Path,
    722     UINT8                   Type,
    723     UINT32                  Value,
    724     UINT16                  Flags);
    725 
    726 void
    727 AcpiDmAddNodeToExternalList (
    728     ACPI_NAMESPACE_NODE     *Node,
    729     UINT8                   Type,
    730     UINT32                  Value,
    731     UINT16                  Flags);
    732 
    733 void
    734 AcpiDmAddExternalsToNamespace (
    735     void);
    736 
    737 UINT32
    738 AcpiDmGetExternalMethodCount (
    739     void);
    740 
    741 void
    742 AcpiDmClearExternalList (
    743     void);
    744 
    745 void
    746 AcpiDmEmitExternals (
    747     void);
    748 
    749 void
    750 AcpiDmUnresolvedWarning (
    751     UINT8                   Type);
    752 
    753 void
    754 AcpiDmGetExternalsFromFile (
    755     void);
    756 
    757 /*
    758  * dmresrc
    759  */
    760 void
    761 AcpiDmDumpInteger8 (
    762     UINT8                   Value,
    763     const char              *Name);
    764 
    765 void
    766 AcpiDmDumpInteger16 (
    767     UINT16                  Value,
    768     const char              *Name);
    769 
    770 void
    771 AcpiDmDumpInteger32 (
    772     UINT32                  Value,
    773     const char              *Name);
    774 
    775 void
    776 AcpiDmDumpInteger64 (
    777     UINT64                  Value,
    778     const char              *Name);
    779 
    780 void
    781 AcpiDmResourceTemplate (
    782     ACPI_OP_WALK_INFO       *Info,
    783     ACPI_PARSE_OBJECT       *Op,
    784     UINT8                   *ByteData,
    785     UINT32                  ByteCount);
    786 
    787 ACPI_STATUS
    788 AcpiDmIsResourceTemplate (
    789     ACPI_WALK_STATE         *WalkState,
    790     ACPI_PARSE_OBJECT       *Op);
    791 
    792 void
    793 AcpiDmBitList (
    794     UINT16                  Mask);
    795 
    796 void
    797 AcpiDmDescriptorName (
    798     void);
    799 
    800 
    801 /*
    802  * dmresrcl
    803  */
    804 void
    805 AcpiDmWordDescriptor (
    806     ACPI_OP_WALK_INFO       *Info,
    807     AML_RESOURCE            *Resource,
    808     UINT32                  Length,
    809     UINT32                  Level);
    810 
    811 void
    812 AcpiDmDwordDescriptor (
    813     ACPI_OP_WALK_INFO       *Info,
    814     AML_RESOURCE            *Resource,
    815     UINT32                  Length,
    816     UINT32                  Level);
    817 
    818 void
    819 AcpiDmExtendedDescriptor (
    820     ACPI_OP_WALK_INFO       *Info,
    821     AML_RESOURCE            *Resource,
    822     UINT32                  Length,
    823     UINT32                  Level);
    824 
    825 void
    826 AcpiDmQwordDescriptor (
    827     ACPI_OP_WALK_INFO       *Info,
    828     AML_RESOURCE            *Resource,
    829     UINT32                  Length,
    830     UINT32                  Level);
    831 
    832 void
    833 AcpiDmMemory24Descriptor (
    834     ACPI_OP_WALK_INFO       *Info,
    835     AML_RESOURCE            *Resource,
    836     UINT32                  Length,
    837     UINT32                  Level);
    838 
    839 void
    840 AcpiDmMemory32Descriptor (
    841     ACPI_OP_WALK_INFO       *Info,
    842     AML_RESOURCE            *Resource,
    843     UINT32                  Length,
    844     UINT32                  Level);
    845 
    846 void
    847 AcpiDmFixedMemory32Descriptor (
    848     ACPI_OP_WALK_INFO       *Info,
    849     AML_RESOURCE            *Resource,
    850     UINT32                  Length,
    851     UINT32                  Level);
    852 
    853 void
    854 AcpiDmGenericRegisterDescriptor (
    855     ACPI_OP_WALK_INFO       *Info,
    856     AML_RESOURCE            *Resource,
    857     UINT32                  Length,
    858     UINT32                  Level);
    859 
    860 void
    861 AcpiDmInterruptDescriptor (
    862     ACPI_OP_WALK_INFO       *Info,
    863     AML_RESOURCE            *Resource,
    864     UINT32                  Length,
    865     UINT32                  Level);
    866 
    867 void
    868 AcpiDmVendorLargeDescriptor (
    869     ACPI_OP_WALK_INFO       *Info,
    870     AML_RESOURCE            *Resource,
    871     UINT32                  Length,
    872     UINT32                  Level);
    873 
    874 void
    875 AcpiDmGpioDescriptor (
    876     ACPI_OP_WALK_INFO       *Info,
    877     AML_RESOURCE            *Resource,
    878     UINT32                  Length,
    879     UINT32                  Level);
    880 
    881 void
    882 AcpiDmSerialBusDescriptor (
    883     ACPI_OP_WALK_INFO       *Info,
    884     AML_RESOURCE            *Resource,
    885     UINT32                  Length,
    886     UINT32                  Level);
    887 
    888 void
    889 AcpiDmVendorCommon (
    890     const char              *Name,
    891     UINT8                   *ByteData,
    892     UINT32                  Length,
    893     UINT32                  Level);
    894 
    895 
    896 /*
    897  * dmresrcs
    898  */
    899 void
    900 AcpiDmIrqDescriptor (
    901     ACPI_OP_WALK_INFO       *Info,
    902     AML_RESOURCE            *Resource,
    903     UINT32                  Length,
    904     UINT32                  Level);
    905 
    906 void
    907 AcpiDmDmaDescriptor (
    908     ACPI_OP_WALK_INFO       *Info,
    909     AML_RESOURCE            *Resource,
    910     UINT32                  Length,
    911     UINT32                  Level);
    912 
    913 void
    914 AcpiDmFixedDmaDescriptor (
    915     ACPI_OP_WALK_INFO       *Info,
    916     AML_RESOURCE            *Resource,
    917     UINT32                  Length,
    918     UINT32                  Level);
    919 
    920 void
    921 AcpiDmIoDescriptor (
    922     ACPI_OP_WALK_INFO       *Info,
    923     AML_RESOURCE            *Resource,
    924     UINT32                  Length,
    925     UINT32                  Level);
    926 
    927 void
    928 AcpiDmFixedIoDescriptor (
    929     ACPI_OP_WALK_INFO       *Info,
    930     AML_RESOURCE            *Resource,
    931     UINT32                  Length,
    932     UINT32                  Level);
    933 
    934 void
    935 AcpiDmStartDependentDescriptor (
    936     ACPI_OP_WALK_INFO       *Info,
    937     AML_RESOURCE            *Resource,
    938     UINT32                  Length,
    939     UINT32                  Level);
    940 
    941 void
    942 AcpiDmEndDependentDescriptor (
    943     ACPI_OP_WALK_INFO       *Info,
    944     AML_RESOURCE            *Resource,
    945     UINT32                  Length,
    946     UINT32                  Level);
    947 
    948 void
    949 AcpiDmVendorSmallDescriptor (
    950     ACPI_OP_WALK_INFO       *Info,
    951     AML_RESOURCE            *Resource,
    952     UINT32                  Length,
    953     UINT32                  Level);
    954 
    955 
    956 /*
    957  * dmutils
    958  */
    959 void
    960 AcpiDmDecodeAttribute (
    961     UINT8                   Attribute);
    962 
    963 void
    964 AcpiDmIndent (
    965     UINT32                  Level);
    966 
    967 BOOLEAN
    968 AcpiDmCommaIfListMember (
    969     ACPI_PARSE_OBJECT       *Op);
    970 
    971 void
    972 AcpiDmCommaIfFieldMember (
    973     ACPI_PARSE_OBJECT       *Op);
    974 
    975 
    976 /*
    977  * dmrestag
    978  */
    979 void
    980 AcpiDmFindResources (
    981     ACPI_PARSE_OBJECT       *Root);
    982 
    983 void
    984 AcpiDmCheckResourceReference (
    985     ACPI_PARSE_OBJECT       *Op,
    986     ACPI_WALK_STATE         *WalkState);
    987 
    988 
    989 /*
    990  * dmcstyle
    991  */
    992 BOOLEAN
    993 AcpiDmCheckForSymbolicOpcode (
    994     ACPI_PARSE_OBJECT       *Op,
    995     ACPI_OP_WALK_INFO       *Info);
    996 
    997 void
    998 AcpiDmCloseOperator (
    999     ACPI_PARSE_OBJECT       *Op);
   1000 
   1001 
   1002 /*
   1003  * acdisasm
   1004  */
   1005 void
   1006 AdDisassemblerHeader (
   1007     char                    *Filename,
   1008     UINT8                   TableType);
   1009 
   1010 #define ACPI_IS_AML_TABLE   0
   1011 #define ACPI_IS_DATA_TABLE  1
   1012 
   1013 #endif  /* __ACDISASM_H__ */
   1014