Home | History | Annotate | Line # | Download | only in include
acdisasm.h revision 1.3.2.2
      1 /******************************************************************************
      2  *
      3  * Name: acdisasm.h - AML disassembler
      4  *
      5  *****************************************************************************/
      6 
      7 /*
      8  * Copyright (C) 2000 - 2011, 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     UINT8                       Offset;
     67     char                        *Name;
     68     UINT8                       Flags;
     69 
     70 } ACPI_DMTABLE_INFO;
     71 
     72 #define DT_LENGTH                       0x01    /* Field is a subtable length */
     73 #define DT_FLAG                         0x02    /* Field is a flag value */
     74 #define DT_NON_ZERO                     0x04    /* Field must be non-zero */
     75 
     76 /* TBD: Not used at this time */
     77 
     78 #define DT_OPTIONAL                     0x08
     79 #define DT_COUNT                        0x10
     80 
     81 /*
     82  * Values for Opcode above.
     83  * Note: 0-7 must not change, used as a flag shift value
     84  */
     85 #define ACPI_DMT_FLAG0                  0
     86 #define ACPI_DMT_FLAG1                  1
     87 #define ACPI_DMT_FLAG2                  2
     88 #define ACPI_DMT_FLAG3                  3
     89 #define ACPI_DMT_FLAG4                  4
     90 #define ACPI_DMT_FLAG5                  5
     91 #define ACPI_DMT_FLAG6                  6
     92 #define ACPI_DMT_FLAG7                  7
     93 #define ACPI_DMT_FLAGS0                 8
     94 #define ACPI_DMT_FLAGS2                 9
     95 #define ACPI_DMT_UINT8                  10
     96 #define ACPI_DMT_UINT16                 11
     97 #define ACPI_DMT_UINT24                 12
     98 #define ACPI_DMT_UINT32                 13
     99 #define ACPI_DMT_UINT56                 14
    100 #define ACPI_DMT_UINT64                 15
    101 #define ACPI_DMT_STRING                 16
    102 #define ACPI_DMT_NAME4                  17
    103 #define ACPI_DMT_NAME6                  18
    104 #define ACPI_DMT_NAME8                  19
    105 #define ACPI_DMT_CHKSUM                 20
    106 #define ACPI_DMT_SPACEID                21
    107 #define ACPI_DMT_GAS                    22
    108 #define ACPI_DMT_ASF                    23
    109 #define ACPI_DMT_DMAR                   24
    110 #define ACPI_DMT_HEST                   25
    111 #define ACPI_DMT_HESTNTFY               26
    112 #define ACPI_DMT_HESTNTYP               27
    113 #define ACPI_DMT_MADT                   28
    114 #define ACPI_DMT_SRAT                   29
    115 #define ACPI_DMT_EXIT                   30
    116 #define ACPI_DMT_SIG                    31
    117 #define ACPI_DMT_FADTPM                 32
    118 #define ACPI_DMT_BUF16                  33
    119 #define ACPI_DMT_IVRS                   34
    120 #define ACPI_DMT_BUFFER                 35
    121 #define ACPI_DMT_PCI_PATH               36
    122 #define ACPI_DMT_EINJACT                37
    123 #define ACPI_DMT_EINJINST               38
    124 #define ACPI_DMT_ERSTACT                39
    125 #define ACPI_DMT_ERSTINST               40
    126 #define ACPI_DMT_ACCWIDTH               41
    127 #define ACPI_DMT_UNICODE                42
    128 #define ACPI_DMT_UUID                   43
    129 #define ACPI_DMT_DEVICE_PATH            44
    130 #define ACPI_DMT_LABEL                  45
    131 #define ACPI_DMT_BUF7                   46
    132 
    133 
    134 typedef
    135 void (*ACPI_DMTABLE_HANDLER) (
    136     ACPI_TABLE_HEADER       *Table);
    137 
    138 typedef
    139 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
    140     void                    **PFieldList);
    141 
    142 typedef struct acpi_dmtable_data
    143 {
    144     char                    *Signature;
    145     ACPI_DMTABLE_INFO       *TableInfo;
    146     ACPI_DMTABLE_HANDLER    TableHandler;
    147     ACPI_CMTABLE_HANDLER    CmTableHandler;
    148     const unsigned char     *Template;
    149     char                    *Name;
    150 
    151 } ACPI_DMTABLE_DATA;
    152 
    153 
    154 typedef struct acpi_op_walk_info
    155 {
    156     UINT32                  Level;
    157     UINT32                  LastLevel;
    158     UINT32                  Count;
    159     UINT32                  BitOffset;
    160     UINT32                  Flags;
    161     ACPI_WALK_STATE         *WalkState;
    162 
    163 } ACPI_OP_WALK_INFO;
    164 
    165 /*
    166  * TBD - another copy of this is in asltypes.h, fix
    167  */
    168 #ifndef ASL_WALK_CALLBACK_DEFINED
    169 typedef
    170 ACPI_STATUS (*ASL_WALK_CALLBACK) (
    171     ACPI_PARSE_OBJECT           *Op,
    172     UINT32                      Level,
    173     void                        *Context);
    174 #define ASL_WALK_CALLBACK_DEFINED
    175 #endif
    176 
    177 
    178 typedef struct acpi_resource_tag
    179 {
    180     UINT32                  BitIndex;
    181     char                    *Tag;
    182 
    183 } ACPI_RESOURCE_TAG;
    184 
    185 /* Strings used for decoding flags to ASL keywords */
    186 
    187 extern const char               *AcpiGbl_WordDecode[];
    188 extern const char               *AcpiGbl_IrqDecode[];
    189 extern const char               *AcpiGbl_LockRule[];
    190 extern const char               *AcpiGbl_AccessTypes[];
    191 extern const char               *AcpiGbl_UpdateRules[];
    192 extern const char               *AcpiGbl_MatchOps[];
    193 
    194 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
    195 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
    196 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
    197 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
    198 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
    199 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
    200 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
    201 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
    202 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
    203 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
    204 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
    205 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
    206 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
    207 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
    208 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
    209 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
    210 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
    211 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
    212 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
    213 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
    214 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
    215 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
    216 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
    217 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
    218 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
    219 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
    220 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
    221 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
    222 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
    223 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
    224 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
    225 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
    226 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
    227 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
    228 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
    229 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
    230 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
    231 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
    232 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
    233 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
    234 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
    235 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
    236 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
    237 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
    238 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
    239 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
    240 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
    241 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
    242 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
    243 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
    244 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
    245 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
    246 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
    247 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
    248 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
    249 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
    250 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
    251 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
    252 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
    253 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
    254 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
    255 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
    256 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
    257 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
    258 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
    259 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
    260 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
    261 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
    262 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
    263 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
    264 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
    265 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
    266 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
    267 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
    268 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
    269 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
    270 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
    271 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
    272 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
    273 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
    274 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
    275 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
    276 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
    277 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
    278 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
    279 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
    280 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
    281 
    282 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
    283 
    284 
    285 /*
    286  * dmtable
    287  */
    288 extern ACPI_DMTABLE_DATA        AcpiDmTableData[];
    289 
    290 UINT8
    291 AcpiDmGenerateChecksum (
    292     void                    *Table,
    293     UINT32                  Length,
    294     UINT8                   OriginalChecksum);
    295 
    296 ACPI_DMTABLE_DATA *
    297 AcpiDmGetTableData (
    298     char                    *Signature);
    299 
    300 void
    301 AcpiDmDumpDataTable (
    302     ACPI_TABLE_HEADER       *Table);
    303 
    304 ACPI_STATUS
    305 AcpiDmDumpTable (
    306     UINT32                  TableLength,
    307     UINT32                  TableOffset,
    308     void                    *Table,
    309     UINT32                  SubTableLength,
    310     ACPI_DMTABLE_INFO        *Info);
    311 
    312 void
    313 AcpiDmLineHeader (
    314     UINT32                  Offset,
    315     UINT32                  ByteLength,
    316     char                    *Name);
    317 
    318 void
    319 AcpiDmLineHeader2 (
    320     UINT32                  Offset,
    321     UINT32                  ByteLength,
    322     char                    *Name,
    323     UINT32                  Value);
    324 
    325 
    326 /*
    327  * dmtbdump
    328  */
    329 void
    330 AcpiDmDumpAsf (
    331     ACPI_TABLE_HEADER       *Table);
    332 
    333 void
    334 AcpiDmDumpCpep (
    335     ACPI_TABLE_HEADER       *Table);
    336 
    337 void
    338 AcpiDmDumpDmar (
    339     ACPI_TABLE_HEADER       *Table);
    340 
    341 void
    342 AcpiDmDumpEinj (
    343     ACPI_TABLE_HEADER       *Table);
    344 
    345 void
    346 AcpiDmDumpErst (
    347     ACPI_TABLE_HEADER       *Table);
    348 
    349 void
    350 AcpiDmDumpFadt (
    351     ACPI_TABLE_HEADER       *Table);
    352 
    353 void
    354 AcpiDmDumpHest (
    355     ACPI_TABLE_HEADER       *Table);
    356 
    357 void
    358 AcpiDmDumpIvrs (
    359     ACPI_TABLE_HEADER       *Table);
    360 
    361 void
    362 AcpiDmDumpMcfg (
    363     ACPI_TABLE_HEADER       *Table);
    364 
    365 void
    366 AcpiDmDumpMadt (
    367     ACPI_TABLE_HEADER       *Table);
    368 
    369 void
    370 AcpiDmDumpMsct (
    371     ACPI_TABLE_HEADER       *Table);
    372 
    373 UINT32
    374 AcpiDmDumpRsdp (
    375     ACPI_TABLE_HEADER       *Table);
    376 
    377 void
    378 AcpiDmDumpRsdt (
    379     ACPI_TABLE_HEADER       *Table);
    380 
    381 void
    382 AcpiDmDumpSlit (
    383     ACPI_TABLE_HEADER       *Table);
    384 
    385 void
    386 AcpiDmDumpSrat (
    387     ACPI_TABLE_HEADER       *Table);
    388 
    389 void
    390 AcpiDmDumpWdat (
    391     ACPI_TABLE_HEADER       *Table);
    392 
    393 void
    394 AcpiDmDumpXsdt (
    395     ACPI_TABLE_HEADER       *Table);
    396 
    397 
    398 /*
    399  * dmwalk
    400  */
    401 void
    402 AcpiDmDisassemble (
    403     ACPI_WALK_STATE         *WalkState,
    404     ACPI_PARSE_OBJECT       *Origin,
    405     UINT32                  NumOpcodes);
    406 
    407 void
    408 AcpiDmWalkParseTree (
    409     ACPI_PARSE_OBJECT       *Op,
    410     ASL_WALK_CALLBACK       DescendingCallback,
    411     ASL_WALK_CALLBACK       AscendingCallback,
    412     void                    *Context);
    413 
    414 
    415 /*
    416  * dmopcode
    417  */
    418 void
    419 AcpiDmDisassembleOneOp (
    420     ACPI_WALK_STATE         *WalkState,
    421     ACPI_OP_WALK_INFO       *Info,
    422     ACPI_PARSE_OBJECT       *Op);
    423 
    424 void
    425 AcpiDmDecodeInternalObject (
    426     ACPI_OPERAND_OBJECT     *ObjDesc);
    427 
    428 UINT32
    429 AcpiDmListType (
    430     ACPI_PARSE_OBJECT       *Op);
    431 
    432 void
    433 AcpiDmMethodFlags (
    434     ACPI_PARSE_OBJECT       *Op);
    435 
    436 void
    437 AcpiDmFieldFlags (
    438     ACPI_PARSE_OBJECT       *Op);
    439 
    440 void
    441 AcpiDmAddressSpace (
    442     UINT8                   SpaceId);
    443 
    444 void
    445 AcpiDmRegionFlags (
    446     ACPI_PARSE_OBJECT       *Op);
    447 
    448 void
    449 AcpiDmMatchOp (
    450     ACPI_PARSE_OBJECT       *Op);
    451 
    452 
    453 /*
    454  * dmnames
    455  */
    456 UINT32
    457 AcpiDmDumpName (
    458     UINT32                  Name);
    459 
    460 ACPI_STATUS
    461 AcpiPsDisplayObjectPathname (
    462     ACPI_WALK_STATE         *WalkState,
    463     ACPI_PARSE_OBJECT       *Op);
    464 
    465 void
    466 AcpiDmNamestring (
    467     char                    *Name);
    468 
    469 
    470 /*
    471  * dmobject
    472  */
    473 void
    474 AcpiDmDisplayInternalObject (
    475     ACPI_OPERAND_OBJECT     *ObjDesc,
    476     ACPI_WALK_STATE         *WalkState);
    477 
    478 void
    479 AcpiDmDisplayArguments (
    480     ACPI_WALK_STATE         *WalkState);
    481 
    482 void
    483 AcpiDmDisplayLocals (
    484     ACPI_WALK_STATE         *WalkState);
    485 
    486 void
    487 AcpiDmDumpMethodInfo (
    488     ACPI_STATUS             Status,
    489     ACPI_WALK_STATE         *WalkState,
    490     ACPI_PARSE_OBJECT       *Op);
    491 
    492 
    493 /*
    494  * dmbuffer
    495  */
    496 void
    497 AcpiDmDisasmByteList (
    498     UINT32                  Level,
    499     UINT8                   *ByteData,
    500     UINT32                  ByteCount);
    501 
    502 void
    503 AcpiDmByteList (
    504     ACPI_OP_WALK_INFO       *Info,
    505     ACPI_PARSE_OBJECT       *Op);
    506 
    507 void
    508 AcpiDmIsEisaId (
    509     ACPI_PARSE_OBJECT       *Op);
    510 
    511 void
    512 AcpiDmEisaId (
    513     UINT32                  EncodedId);
    514 
    515 BOOLEAN
    516 AcpiDmIsUnicodeBuffer (
    517     ACPI_PARSE_OBJECT       *Op);
    518 
    519 BOOLEAN
    520 AcpiDmIsStringBuffer (
    521     ACPI_PARSE_OBJECT       *Op);
    522 
    523 
    524 /*
    525  * dmextern
    526  */
    527 
    528 ACPI_STATUS
    529 AcpiDmAddToExternalFileList (
    530     char                    *PathList);
    531 
    532 void
    533 AcpiDmClearExternalFileList (
    534     void);
    535 
    536 void
    537 AcpiDmAddToExternalList (
    538     ACPI_PARSE_OBJECT       *Op,
    539     char                    *Path,
    540     UINT8                   Type,
    541     UINT32                  Value);
    542 
    543 void
    544 AcpiDmAddExternalsToNamespace (
    545     void);
    546 
    547 UINT32
    548 AcpiDmGetExternalMethodCount (
    549     void);
    550 
    551 void
    552 AcpiDmClearExternalList (
    553     void);
    554 
    555 void
    556 AcpiDmEmitExternals (
    557     void);
    558 
    559 
    560 /*
    561  * dmresrc
    562  */
    563 void
    564 AcpiDmDumpInteger8 (
    565     UINT8                   Value,
    566     const char              *Name);
    567 
    568 void
    569 AcpiDmDumpInteger16 (
    570     UINT16                  Value,
    571     const char              *Name);
    572 
    573 void
    574 AcpiDmDumpInteger32 (
    575     UINT32                  Value,
    576     const char              *Name);
    577 
    578 void
    579 AcpiDmDumpInteger64 (
    580     UINT64                  Value,
    581     const char              *Name);
    582 
    583 void
    584 AcpiDmResourceTemplate (
    585     ACPI_OP_WALK_INFO       *Info,
    586     ACPI_PARSE_OBJECT       *Op,
    587     UINT8                   *ByteData,
    588     UINT32                  ByteCount);
    589 
    590 ACPI_STATUS
    591 AcpiDmIsResourceTemplate (
    592     ACPI_PARSE_OBJECT       *Op);
    593 
    594 void
    595 AcpiDmBitList (
    596     UINT16                  Mask);
    597 
    598 void
    599 AcpiDmDescriptorName (
    600     void);
    601 
    602 
    603 /*
    604  * dmresrcl
    605  */
    606 void
    607 AcpiDmWordDescriptor (
    608     AML_RESOURCE            *Resource,
    609     UINT32                  Length,
    610     UINT32                  Level);
    611 
    612 void
    613 AcpiDmDwordDescriptor (
    614     AML_RESOURCE            *Resource,
    615     UINT32                  Length,
    616     UINT32                  Level);
    617 
    618 void
    619 AcpiDmExtendedDescriptor (
    620     AML_RESOURCE            *Resource,
    621     UINT32                  Length,
    622     UINT32                  Level);
    623 
    624 void
    625 AcpiDmQwordDescriptor (
    626     AML_RESOURCE            *Resource,
    627     UINT32                  Length,
    628     UINT32                  Level);
    629 
    630 void
    631 AcpiDmMemory24Descriptor (
    632     AML_RESOURCE            *Resource,
    633     UINT32                  Length,
    634     UINT32                  Level);
    635 
    636 void
    637 AcpiDmMemory32Descriptor (
    638     AML_RESOURCE            *Resource,
    639     UINT32                  Length,
    640     UINT32                  Level);
    641 
    642 void
    643 AcpiDmFixedMemory32Descriptor (
    644     AML_RESOURCE            *Resource,
    645     UINT32                  Length,
    646     UINT32                  Level);
    647 
    648 void
    649 AcpiDmGenericRegisterDescriptor (
    650     AML_RESOURCE            *Resource,
    651     UINT32                  Length,
    652     UINT32                  Level);
    653 
    654 void
    655 AcpiDmInterruptDescriptor (
    656     AML_RESOURCE            *Resource,
    657     UINT32                  Length,
    658     UINT32                  Level);
    659 
    660 void
    661 AcpiDmVendorLargeDescriptor (
    662     AML_RESOURCE            *Resource,
    663     UINT32                  Length,
    664     UINT32                  Level);
    665 
    666 void
    667 AcpiDmVendorCommon (
    668     const char              *Name,
    669     UINT8                   *ByteData,
    670     UINT32                  Length,
    671     UINT32                  Level);
    672 
    673 
    674 /*
    675  * dmresrcs
    676  */
    677 void
    678 AcpiDmIrqDescriptor (
    679     AML_RESOURCE            *Resource,
    680     UINT32                  Length,
    681     UINT32                  Level);
    682 
    683 void
    684 AcpiDmDmaDescriptor (
    685     AML_RESOURCE            *Resource,
    686     UINT32                  Length,
    687     UINT32                  Level);
    688 
    689 void
    690 AcpiDmIoDescriptor (
    691     AML_RESOURCE            *Resource,
    692     UINT32                  Length,
    693     UINT32                  Level);
    694 
    695 void
    696 AcpiDmFixedIoDescriptor (
    697     AML_RESOURCE            *Resource,
    698     UINT32                  Length,
    699     UINT32                  Level);
    700 
    701 void
    702 AcpiDmStartDependentDescriptor (
    703     AML_RESOURCE            *Resource,
    704     UINT32                  Length,
    705     UINT32                  Level);
    706 
    707 void
    708 AcpiDmEndDependentDescriptor (
    709     AML_RESOURCE            *Resource,
    710     UINT32                  Length,
    711     UINT32                  Level);
    712 
    713 void
    714 AcpiDmVendorSmallDescriptor (
    715     AML_RESOURCE            *Resource,
    716     UINT32                  Length,
    717     UINT32                  Level);
    718 
    719 
    720 /*
    721  * dmutils
    722  */
    723 void
    724 AcpiDmDecodeAttribute (
    725     UINT8                   Attribute);
    726 
    727 void
    728 AcpiDmIndent (
    729     UINT32                  Level);
    730 
    731 BOOLEAN
    732 AcpiDmCommaIfListMember (
    733     ACPI_PARSE_OBJECT       *Op);
    734 
    735 void
    736 AcpiDmCommaIfFieldMember (
    737     ACPI_PARSE_OBJECT       *Op);
    738 
    739 
    740 /*
    741  * dmrestag
    742  */
    743 void
    744 AcpiDmFindResources (
    745     ACPI_PARSE_OBJECT       *Root);
    746 
    747 void
    748 AcpiDmCheckResourceReference (
    749     ACPI_PARSE_OBJECT       *Op,
    750     ACPI_WALK_STATE         *WalkState);
    751 
    752 
    753 /*
    754  * acdisasm
    755  */
    756 void
    757 AdDisassemblerHeader (
    758     char                    *Filename);
    759 
    760 
    761 #endif  /* __ACDISASM_H__ */
    762