1/****************************************************************************** 2 * 3 * Name: acdisasm.h - AML disassembler 4 * 5 *****************************************************************************/ 6 7/* 8 * Copyright (C) 2000 - 2023, 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 MERCHANTABILITY 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 63typedef 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 */ 86typedef 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_FLAGS8_2, 102 ACPI_DMT_FLAGS4, 103 ACPI_DMT_FLAGS4_0, 104 ACPI_DMT_FLAGS4_4, 105 ACPI_DMT_FLAGS4_8, 106 ACPI_DMT_FLAGS4_12, 107 ACPI_DMT_FLAGS16_16, 108 ACPI_DMT_UINT8, 109 ACPI_DMT_UINT16, 110 ACPI_DMT_UINT24, 111 ACPI_DMT_UINT32, 112 ACPI_DMT_UINT40, 113 ACPI_DMT_UINT48, 114 ACPI_DMT_UINT56, 115 ACPI_DMT_UINT64, 116 ACPI_DMT_BUF7, 117 ACPI_DMT_BUF10, 118 ACPI_DMT_BUF12, 119 ACPI_DMT_BUF16, 120 ACPI_DMT_BUF18, 121 ACPI_DMT_BUF128, 122 ACPI_DMT_SIG, 123 ACPI_DMT_STRING, 124 ACPI_DMT_NAME4, 125 ACPI_DMT_NAME6, 126 ACPI_DMT_NAME8, 127 128 /* Types that are decoded to strings and miscellaneous */ 129 130 ACPI_DMT_ACCWIDTH, 131 ACPI_DMT_CHKSUM, 132 ACPI_DMT_GAS, 133 ACPI_DMT_SPACEID, 134 ACPI_DMT_UNICODE, 135 ACPI_DMT_UUID, 136 137 /* Types used only for the Data Table Compiler */ 138 139 ACPI_DMT_BUFFER, 140 ACPI_DMT_RAW_BUFFER, /* Large, multiple line buffer */ 141 ACPI_DMT_DEVICE_PATH, 142 ACPI_DMT_LABEL, 143 ACPI_DMT_PCI_PATH, 144 145 /* Types that are specific to particular ACPI tables */ 146 147 ACPI_DMT_AEST, 148 ACPI_DMT_AEST_CACHE, 149 ACPI_DMT_AEST_GIC, 150 ACPI_DMT_AEST_RES, 151 ACPI_DMT_AEST_XFACE, 152 ACPI_DMT_AEST_XRUPT, 153 ACPI_DMT_AGDI, 154 ACPI_DMT_ASF, 155 ACPI_DMT_ASPT, 156 ACPI_DMT_CDAT, 157 ACPI_DMT_CEDT, 158 ACPI_DMT_DMAR, 159 ACPI_DMT_DMAR_SCOPE, 160 ACPI_DMT_EINJACT, 161 ACPI_DMT_EINJINST, 162 ACPI_DMT_ERSTACT, 163 ACPI_DMT_ERSTINST, 164 ACPI_DMT_FADTPM, 165 ACPI_DMT_GTDT, 166 ACPI_DMT_HEST, 167 ACPI_DMT_HESTNTFY, 168 ACPI_DMT_HESTNTYP, 169 ACPI_DMT_HMAT, 170 ACPI_DMT_IORTMEM, 171 ACPI_DMT_IVRS, 172 ACPI_DMT_IVRS_DE, 173 ACPI_DMT_IVRS_UNTERMINATED_STRING, 174 ACPI_DMT_LPIT, 175 ACPI_DMT_MADT, 176 ACPI_DMT_MPAM_LOCATOR, 177 ACPI_DMT_NFIT, 178 ACPI_DMT_NHLT1, 179 ACPI_DMT_NHLT1a, 180 ACPI_DMT_NHLT1b, 181 ACPI_DMT_NHLT1c, 182 ACPI_DMT_NHLT1d, 183 ACPI_DMT_NHLT1e, 184 ACPI_DMT_NHLT1f, 185 ACPI_DMT_PCCT, 186 ACPI_DMT_PHAT, 187 ACPI_DMT_PMTT, 188 ACPI_DMT_PMTT_VENDOR, 189 ACPI_DMT_PPTT, 190 ACPI_DMT_RGRT, 191 ACPI_DMT_RHCT, 192 ACPI_DMT_SDEI, 193 ACPI_DMT_SDEV, 194 ACPI_DMT_SLIC, 195 ACPI_DMT_SRAT, 196 ACPI_DMT_TPM2, 197 ACPI_DMT_VIOT, 198 ACPI_DMT_WPBT_UNICODE, 199 200 /* Special opcodes */ 201 202 ACPI_DMT_EXTRA_TEXT, 203 ACPI_DMT_EXIT 204 205} ACPI_ENTRY_TYPES; 206 207typedef 208void (*ACPI_DMTABLE_HANDLER) ( 209 ACPI_TABLE_HEADER *Table); 210 211typedef 212ACPI_STATUS (*ACPI_CMTABLE_HANDLER) ( 213 void **PFieldList); 214 215typedef struct acpi_dmtable_data 216{ 217 char *Signature; 218 ACPI_DMTABLE_INFO *TableInfo; 219 ACPI_DMTABLE_HANDLER TableHandler; 220 ACPI_CMTABLE_HANDLER CmTableHandler; 221 const unsigned char *Template; 222 223} ACPI_DMTABLE_DATA; 224 225 226typedef struct acpi_op_walk_info 227{ 228 ACPI_WALK_STATE *WalkState; 229 ACPI_PARSE_OBJECT *MappingOp; 230 UINT8 *PreviousAml; 231 UINT8 *StartAml; 232 UINT32 Level; 233 UINT32 LastLevel; 234 UINT32 Count; 235 UINT32 BitOffset; 236 UINT32 Flags; 237 UINT32 AmlOffset; 238 239} ACPI_OP_WALK_INFO; 240 241/* 242 * TBD - another copy of this is in asltypes.h, fix 243 */ 244#ifndef ASL_WALK_CALLBACK_DEFINED 245typedef 246ACPI_STATUS (*ASL_WALK_CALLBACK) ( 247 ACPI_PARSE_OBJECT *Op, 248 UINT32 Level, 249 void *Context); 250#define ASL_WALK_CALLBACK_DEFINED 251#endif 252 253typedef 254void (*ACPI_RESOURCE_HANDLER) ( 255 ACPI_OP_WALK_INFO *Info, 256 AML_RESOURCE *Resource, 257 UINT32 Length, 258 UINT32 Level); 259 260typedef struct acpi_resource_tag 261{ 262 UINT32 BitIndex; 263 char *Tag; 264 265} ACPI_RESOURCE_TAG; 266 267/* Strings used for decoding flags to ASL keywords */ 268 269extern const char *AcpiGbl_WordDecode[]; 270extern const char *AcpiGbl_IrqDecode[]; 271extern const char *AcpiGbl_LockRule[]; 272extern const char *AcpiGbl_AccessTypes[]; 273extern const char *AcpiGbl_UpdateRules[]; 274extern const char *AcpiGbl_MatchOps[]; 275 276extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestHdr[]; 277extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestProcError[]; 278extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestCacheRsrc[]; 279extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestTlbRsrc[]; 280extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGenRsrc[]; 281extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestMemError[]; 282extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestSmmuError[]; 283extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorError[]; 284extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGicError[]; 285extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface[]; 286extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXrupt[]; 287extern ACPI_DMTABLE_INFO AcpiDmTableInfoAgdi[]; 288extern ACPI_DMTABLE_INFO AcpiDmTableInfoApmtNode[]; 289extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[]; 290extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[]; 291extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[]; 292extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[]; 293extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[]; 294extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; 295extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; 296extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; 297extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt[]; 298extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsptHdr[]; 299extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt0[]; 300extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt1[]; 301extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt2[]; 302extern ACPI_DMTABLE_INFO AcpiDmTableInfoBdat[]; 303extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; 304extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; 305extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[]; 306extern ACPI_DMTABLE_INFO AcpiDmTableInfoCcel[]; 307extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdatTableHdr[]; 308extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdatHeader[]; 309extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat0[]; 310extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat1[]; 311extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat2[]; 312extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat3[]; 313extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat4[]; 314extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat5[]; 315extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdatEntries[]; 316extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[]; 317extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[]; 318extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1[]; 319extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1_te[]; 320extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[]; 321extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[]; 322extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[]; 323extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt1[]; 324extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2[]; 325extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2a[]; 326extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2[]; 327extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Device[]; 328extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Addr[]; 329extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Size[]; 330extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Name[]; 331extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2OemData[]; 332extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[]; 333extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[]; 334extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[]; 335extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[]; 336extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[]; 337extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[]; 338extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[]; 339extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[]; 340extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[]; 341extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar5[]; 342extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[]; 343extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0[]; 344extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0a[]; 345extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1[]; 346extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1a[]; 347extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm2[]; 348extern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[]; 349extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[]; 350extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[]; 351extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[]; 352extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[]; 353extern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[]; 354extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[]; 355extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[]; 356extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[]; 357extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[]; 358extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt6[]; 359extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt[]; 360extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdtHdr[]; 361extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt0[]; 362extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[]; 363extern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[]; 364extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[]; 365extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtHdr[]; 366extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtEl2[]; 367extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0[]; 368extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0a[]; 369extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt1[]; 370extern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[]; 371extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[]; 372extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[]; 373extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[]; 374extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[]; 375extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[]; 376extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[]; 377extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[]; 378extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[]; 379extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest10[]; 380extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest11[]; 381extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[]; 382extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[]; 383extern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[]; 384extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpitHdr[]; 385extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpit0[]; 386extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpit1[]; 387extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat[]; 388extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat0[]; 389extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1[]; 390extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1a[]; 391extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1b[]; 392extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1c[]; 393extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat2[]; 394extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat2a[]; 395extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmatHdr[]; 396extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort[]; 397extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort0[]; 398extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort0a[]; 399extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort1[]; 400extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort1a[]; 401extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort2[]; 402extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3[]; 403extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3a[]; 404extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3b[]; 405extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3c[]; 406extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort4[]; 407extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort5[]; 408extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort6[]; 409extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort6a[]; 410extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortAcc[]; 411extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr[]; 412extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr3[]; 413extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortMap[]; 414extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortPad[]; 415extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; 416extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware1[]; 417extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware23[]; 418extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsMemory[]; 419extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; 420extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; 421extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; 422extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; 423extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsCidString[]; 424extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsCidInteger[]; 425extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHid[]; 426extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsUidString[]; 427extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsUidInteger[]; 428extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHidString[]; 429extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHidInteger[]; 430extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; 431extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; 432extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[]; 433extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[]; 434extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[]; 435extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[]; 436extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[]; 437extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[]; 438extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[]; 439extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[]; 440extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[]; 441extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[]; 442extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[]; 443extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[]; 444extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt13[]; 445extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[]; 446extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[]; 447extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[]; 448extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt17[]; 449extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt18[]; 450extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt19[]; 451extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt20[]; 452extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt21[]; 453extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt22[]; 454extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt23[]; 455extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt24[]; 456extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt25[]; 457extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt26[]; 458extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt27[]; 459extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt128[]; 460extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; 461extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; 462extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; 463extern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[]; 464extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam0[]; 465extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1[]; 466extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1A[]; 467extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1B[]; 468extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1C[]; 469extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1D[]; 470extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1E[]; 471extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1F[]; 472extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1G[]; 473extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1Deps[]; 474extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam2[]; 475extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[]; 476extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[]; 477extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[]; 478extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[]; 479extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[]; 480extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[]; 481extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[]; 482extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[]; 483extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit[]; 484extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfitHdr[]; 485extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit0[]; 486extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit1[]; 487extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit2[]; 488extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit2a[]; 489extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit3[]; 490extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit3a[]; 491extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit4[]; 492extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit5[]; 493extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6[]; 494extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6a[]; 495extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit7[]; 496extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt[]; 497extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt0[]; 498extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt1[]; 499extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt2[]; 500extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3[]; 501extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3a[]; 502extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt4[]; 503extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5[]; 504extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5a[]; 505extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5b[]; 506extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5c[]; 507extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6[]; 508extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6a[]; 509extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6b[]; 510extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7[]; 511extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7a[]; 512extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7b[]; 513extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt9[]; 514extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhatHdr[]; 515extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0[]; 516extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0a[]; 517extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1[]; 518extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1a[]; 519extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1b[]; 520extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[]; 521extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[]; 522extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[]; 523extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[]; 524extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttVendor[]; 525extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[]; 526extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[]; 527extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcctHdr[]; 528extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[]; 529extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct1[]; 530extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct2[]; 531extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct3[]; 532extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct4[]; 533extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct5[]; 534extern ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt[]; 535extern ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt0[]; 536extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0[]; 537extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0a[]; 538extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1[]; 539extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1a[]; 540extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt2[]; 541extern ACPI_DMTABLE_INFO AcpiDmTableInfoPpttHdr[]; 542extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHdr[]; 543extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtModule[]; 544extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHandler[]; 545extern ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[]; 546extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt[]; 547extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[]; 548extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[]; 549extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctNodeHdr[]; 550extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsa1[]; 551extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsaPad[]; 552extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctCmo1[]; 553extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctMmu1[]; 554extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo1[]; 555extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo2[]; 556extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; 557extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; 558extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[]; 559extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3ptHdr[]; 560extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt0[]; 561extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt1[]; 562extern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[]; 563extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdei[]; 564extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev[]; 565extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevHdr[]; 566extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0[]; 567extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0a[]; 568extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0b[]; 569extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompHdr[]; 570extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompId[]; 571extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompMem[]; 572extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1[]; 573extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1a[]; 574extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1b[]; 575extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic[]; 576extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[]; 577extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[]; 578extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[]; 579extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[]; 580extern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[]; 581extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[]; 582extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[]; 583extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[]; 584extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat3[]; 585extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat4[]; 586extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat5[]; 587extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat6[]; 588extern ACPI_DMTABLE_INFO AcpiDmTableInfoStao[]; 589extern ACPI_DMTABLE_INFO AcpiDmTableInfoStaoStr[]; 590extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl[]; 591extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl0[]; 592extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaHdr[]; 593extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaClient[]; 594extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaServer[]; 595extern ACPI_DMTABLE_INFO AcpiDmTableInfoTdel[]; 596extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm2[]; 597extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm2a[]; 598extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm211[]; 599extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm23[]; 600extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm23a[]; 601extern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[]; 602extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot[]; 603extern ACPI_DMTABLE_INFO AcpiDmTableInfoViotHeader[]; 604extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot1[]; 605extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot2[]; 606extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot3[]; 607extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot4[]; 608extern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[]; 609extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[]; 610extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[]; 611extern ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[]; 612extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[]; 613extern ACPI_DMTABLE_INFO AcpiDmTableInfoWpbt[]; 614extern ACPI_DMTABLE_INFO AcpiDmTableInfoWpbt0[]; 615extern ACPI_DMTABLE_INFO AcpiDmTableInfoWsmt[]; 616extern ACPI_DMTABLE_INFO AcpiDmTableInfoXenv[]; 617 618extern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2]; 619 620/* 621 * dmtable and ahtable 622 */ 623extern const ACPI_DMTABLE_DATA AcpiDmTableData[]; 624extern const AH_TABLE AcpiGbl_SupportedTables[]; 625 626UINT8 627AcpiDmGenerateChecksum ( 628 void *Table, 629 UINT32 Length, 630 UINT8 OriginalChecksum); 631 632const ACPI_DMTABLE_DATA * 633AcpiDmGetTableData ( 634 char *Signature); 635 636void 637AcpiDmDumpDataTable ( 638 ACPI_TABLE_HEADER *Table); 639 640ACPI_STATUS 641AcpiDmDumpTable ( 642 UINT32 TableLength, 643 UINT32 TableOffset, 644 void *Table, 645 UINT32 SubtableLength, 646 ACPI_DMTABLE_INFO *Info); 647 648void 649AcpiDmLineHeader ( 650 UINT32 Offset, 651 UINT32 ByteLength, 652 char *Name); 653 654void 655AcpiDmLineHeader2 ( 656 UINT32 Offset, 657 UINT32 ByteLength, 658 char *Name, 659 UINT32 Value); 660 661 662/* 663 * dmtbdump 664 */ 665void 666AcpiDmDumpBuffer ( 667 void *Table, 668 UINT32 BufferOffset, 669 UINT32 Length, 670 UINT32 AbsoluteOffset, 671 char *Header); 672 673void 674AcpiDmDumpUnicode ( 675 void *Table, 676 UINT32 BufferOffset, 677 UINT32 ByteLength); 678 679void 680AcpiDmDumpAest ( 681 ACPI_TABLE_HEADER *Table); 682 683void 684AcpiDmDumpApmt ( 685 ACPI_TABLE_HEADER *Table); 686 687void 688AcpiDmDumpAsf ( 689 ACPI_TABLE_HEADER *Table); 690 691void 692AcpiDmDumpAspt ( 693 ACPI_TABLE_HEADER *Table); 694 695void 696AcpiDmDumpCcel ( 697 ACPI_TABLE_HEADER *Table); 698 699void 700AcpiDmDumpCdat ( 701 ACPI_TABLE_HEADER *Table); 702 703void 704AcpiDmDumpCedt ( 705 ACPI_TABLE_HEADER *Table); 706 707void 708AcpiDmDumpCpep ( 709 ACPI_TABLE_HEADER *Table); 710 711void 712AcpiDmDumpCsrt ( 713 ACPI_TABLE_HEADER *Table); 714 715void 716AcpiDmDumpDbg2 ( 717 ACPI_TABLE_HEADER *Table); 718 719void 720AcpiDmDumpDmar ( 721 ACPI_TABLE_HEADER *Table); 722 723void 724AcpiDmDumpDrtm ( 725 ACPI_TABLE_HEADER *Table); 726 727void 728AcpiDmDumpEinj ( 729 ACPI_TABLE_HEADER *Table); 730 731void 732AcpiDmDumpErst ( 733 ACPI_TABLE_HEADER *Table); 734 735void 736AcpiDmDumpFadt ( 737 ACPI_TABLE_HEADER *Table); 738 739void 740AcpiDmDumpFpdt ( 741 ACPI_TABLE_HEADER *Table); 742 743void 744AcpiDmDumpGtdt ( 745 ACPI_TABLE_HEADER *Table); 746 747void 748AcpiDmDumpHest ( 749 ACPI_TABLE_HEADER *Table); 750 751void 752AcpiDmDumpHmat ( 753 ACPI_TABLE_HEADER *Table); 754 755void 756AcpiDmDumpIort ( 757 ACPI_TABLE_HEADER *Table); 758 759void 760AcpiDmDumpIvrs ( 761 ACPI_TABLE_HEADER *Table); 762 763void 764AcpiDmDumpLpit ( 765 ACPI_TABLE_HEADER *Table); 766 767void 768AcpiDmDumpMadt ( 769 ACPI_TABLE_HEADER *Table); 770 771void 772AcpiDmDumpMcfg ( 773 ACPI_TABLE_HEADER *Table); 774 775void 776AcpiDmDumpMpam ( 777 ACPI_TABLE_HEADER *Table); 778 779void 780AcpiDmDumpMpst ( 781 ACPI_TABLE_HEADER *Table); 782 783void 784AcpiDmDumpMsct ( 785 ACPI_TABLE_HEADER *Table); 786 787void 788AcpiDmDumpNfit ( 789 ACPI_TABLE_HEADER *Table); 790 791void 792AcpiDmDumpNhlt ( 793 ACPI_TABLE_HEADER *Table); 794 795void 796AcpiDmDumpPcct ( 797 ACPI_TABLE_HEADER *Table); 798 799void 800AcpiDmDumpPdtt ( 801 ACPI_TABLE_HEADER *Table); 802 803void 804AcpiDmDumpPhat ( 805 ACPI_TABLE_HEADER *Table); 806 807void 808AcpiDmDumpPmtt ( 809 ACPI_TABLE_HEADER *Table); 810 811void 812AcpiDmDumpPptt ( 813 ACPI_TABLE_HEADER *Table); 814 815void 816AcpiDmDumpPrmt ( 817 ACPI_TABLE_HEADER *Table); 818 819void 820AcpiDmDumpRgrt ( 821 ACPI_TABLE_HEADER *Table); 822 823void 824AcpiDmDumpRhct ( 825 ACPI_TABLE_HEADER *Table); 826 827UINT32 828AcpiDmDumpRsdp ( 829 ACPI_TABLE_HEADER *Table); 830 831void 832AcpiDmDumpRsdt ( 833 ACPI_TABLE_HEADER *Table); 834 835UINT32 836AcpiDmDumpS3pt ( 837 ACPI_TABLE_HEADER *Table); 838 839void 840AcpiDmDumpSdev ( 841 ACPI_TABLE_HEADER *Table); 842 843void 844AcpiDmDumpSlic ( 845 ACPI_TABLE_HEADER *Table); 846 847void 848AcpiDmDumpSlit ( 849 ACPI_TABLE_HEADER *Table); 850 851void 852AcpiDmDumpSrat ( 853 ACPI_TABLE_HEADER *Table); 854 855void 856AcpiDmDumpStao ( 857 ACPI_TABLE_HEADER *Table); 858 859void 860AcpiDmDumpSvkl ( 861 ACPI_TABLE_HEADER *Table); 862 863void 864AcpiDmDumpTcpa ( 865 ACPI_TABLE_HEADER *Table); 866 867void 868AcpiDmDumpTdel ( 869 ACPI_TABLE_HEADER *Table); 870 871void 872AcpiDmDumpTpm2 ( 873 ACPI_TABLE_HEADER *Table); 874 875void 876AcpiDmDumpViot ( 877 ACPI_TABLE_HEADER *Table); 878 879void 880AcpiDmDumpWdat ( 881 ACPI_TABLE_HEADER *Table); 882 883void 884AcpiDmDumpWpbt ( 885 ACPI_TABLE_HEADER *Table); 886 887void 888AcpiDmDumpXsdt ( 889 ACPI_TABLE_HEADER *Table); 890 891 892/* 893 * dmwalk 894 */ 895void 896AcpiDmDisassemble ( 897 ACPI_WALK_STATE *WalkState, 898 ACPI_PARSE_OBJECT *Origin, 899 UINT32 NumOpcodes); 900 901void 902AcpiDmWalkParseTree ( 903 ACPI_PARSE_OBJECT *Op, 904 ASL_WALK_CALLBACK DescendingCallback, 905 ASL_WALK_CALLBACK AscendingCallback, 906 void *Context); 907 908 909/* 910 * dmopcode 911 */ 912void 913AcpiDmDisassembleOneOp ( 914 ACPI_WALK_STATE *WalkState, 915 ACPI_OP_WALK_INFO *Info, 916 ACPI_PARSE_OBJECT *Op); 917 918UINT32 919AcpiDmListType ( 920 ACPI_PARSE_OBJECT *Op); 921 922void 923AcpiDmMethodFlags ( 924 ACPI_PARSE_OBJECT *Op); 925 926void 927AcpiDmDisplayTargetPathname ( 928 ACPI_PARSE_OBJECT *Op); 929 930void 931AcpiDmNotifyDescription ( 932 ACPI_PARSE_OBJECT *Op); 933 934void 935AcpiDmPredefinedDescription ( 936 ACPI_PARSE_OBJECT *Op); 937 938void 939AcpiDmFieldPredefinedDescription ( 940 ACPI_PARSE_OBJECT *Op); 941 942void 943AcpiDmFieldFlags ( 944 ACPI_PARSE_OBJECT *Op); 945 946void 947AcpiDmAddressSpace ( 948 UINT8 SpaceId); 949 950void 951AcpiDmRegionFlags ( 952 ACPI_PARSE_OBJECT *Op); 953 954void 955AcpiDmMatchOp ( 956 ACPI_PARSE_OBJECT *Op); 957 958 959/* 960 * dmnames 961 */ 962UINT32 963AcpiDmDumpName ( 964 UINT32 Name); 965 966ACPI_STATUS 967AcpiPsDisplayObjectPathname ( 968 ACPI_WALK_STATE *WalkState, 969 ACPI_PARSE_OBJECT *Op); 970 971void 972AcpiDmNamestring ( 973 char *Name); 974 975 976/* 977 * dmbuffer 978 */ 979void 980AcpiDmDisasmByteList ( 981 UINT32 Level, 982 UINT8 *ByteData, 983 UINT32 ByteCount); 984 985void 986AcpiDmByteList ( 987 ACPI_OP_WALK_INFO *Info, 988 ACPI_PARSE_OBJECT *Op); 989 990void 991AcpiDmCheckForHardwareId ( 992 ACPI_PARSE_OBJECT *Op); 993 994void 995AcpiDmDecompressEisaId ( 996 UINT32 EncodedId); 997 998BOOLEAN 999AcpiDmIsUuidBuffer ( 1000 ACPI_PARSE_OBJECT *Op); 1001 1002BOOLEAN 1003AcpiDmIsUnicodeBuffer ( 1004 ACPI_PARSE_OBJECT *Op); 1005 1006BOOLEAN 1007AcpiDmIsStringBuffer ( 1008 ACPI_PARSE_OBJECT *Op); 1009 1010BOOLEAN 1011AcpiDmIsPldBuffer ( 1012 ACPI_PARSE_OBJECT *Op); 1013 1014 1015/* 1016 * dmdeferred 1017 */ 1018ACPI_STATUS 1019AcpiDmParseDeferredOps ( 1020 ACPI_PARSE_OBJECT *Root); 1021 1022 1023/* 1024 * dmextern 1025 */ 1026ACPI_STATUS 1027AcpiDmAddToExternalFileList ( 1028 char *PathList); 1029 1030void 1031AcpiDmClearExternalFileList ( 1032 void); 1033 1034void 1035AcpiDmAddOpToExternalList ( 1036 ACPI_PARSE_OBJECT *Op, 1037 char *Path, 1038 UINT8 Type, 1039 UINT32 Value, 1040 UINT16 Flags); 1041 1042void 1043AcpiDmCreateSubobjectForExternal ( 1044 UINT8 Type, 1045 ACPI_NAMESPACE_NODE **Node, 1046 UINT32 Value); 1047 1048void 1049AcpiDmAddNodeToExternalList ( 1050 ACPI_NAMESPACE_NODE *Node, 1051 UINT8 Type, 1052 UINT32 Value, 1053 UINT16 Flags); 1054 1055void 1056AcpiDmAddExternalListToNamespace ( 1057 void); 1058 1059void 1060AcpiDmAddOneExternalToNamespace ( 1061 char *Path, 1062 UINT8 Type, 1063 UINT32 Value); 1064 1065UINT32 1066AcpiDmGetUnresolvedExternalMethodCount ( 1067 void); 1068 1069void 1070AcpiDmClearExternalList ( 1071 void); 1072 1073void 1074AcpiDmEmitExternals ( 1075 void); 1076 1077void 1078AcpiDmEmitExternal ( 1079 ACPI_PARSE_OBJECT *NameOp, 1080 ACPI_PARSE_OBJECT *TypeOp); 1081 1082void 1083AcpiDmUnresolvedWarning ( 1084 UINT8 Type); 1085 1086void 1087AcpiDmGetExternalsFromFile ( 1088 void); 1089 1090void 1091AcpiDmMarkExternalConflict ( 1092 ACPI_NAMESPACE_NODE *Node); 1093 1094 1095/* 1096 * dmresrc 1097 */ 1098void 1099AcpiDmDumpInteger8 ( 1100 UINT8 Value, 1101 const char *Name); 1102 1103void 1104AcpiDmDumpInteger16 ( 1105 UINT16 Value, 1106 const char *Name); 1107 1108void 1109AcpiDmDumpInteger32 ( 1110 UINT32 Value, 1111 const char *Name); 1112 1113void 1114AcpiDmDumpInteger64 ( 1115 UINT64 Value, 1116 const char *Name); 1117 1118void 1119AcpiDmResourceTemplate ( 1120 ACPI_OP_WALK_INFO *Info, 1121 ACPI_PARSE_OBJECT *Op, 1122 UINT8 *ByteData, 1123 UINT32 ByteCount); 1124 1125ACPI_STATUS 1126AcpiDmIsResourceTemplate ( 1127 ACPI_WALK_STATE *WalkState, 1128 ACPI_PARSE_OBJECT *Op); 1129 1130void 1131AcpiDmBitList ( 1132 UINT16 Mask); 1133 1134void 1135AcpiDmDescriptorName ( 1136 void); 1137 1138 1139/* 1140 * dmresrcl 1141 */ 1142void 1143AcpiDmWordDescriptor ( 1144 ACPI_OP_WALK_INFO *Info, 1145 AML_RESOURCE *Resource, 1146 UINT32 Length, 1147 UINT32 Level); 1148 1149void 1150AcpiDmDwordDescriptor ( 1151 ACPI_OP_WALK_INFO *Info, 1152 AML_RESOURCE *Resource, 1153 UINT32 Length, 1154 UINT32 Level); 1155 1156void 1157AcpiDmExtendedDescriptor ( 1158 ACPI_OP_WALK_INFO *Info, 1159 AML_RESOURCE *Resource, 1160 UINT32 Length, 1161 UINT32 Level); 1162 1163void 1164AcpiDmQwordDescriptor ( 1165 ACPI_OP_WALK_INFO *Info, 1166 AML_RESOURCE *Resource, 1167 UINT32 Length, 1168 UINT32 Level); 1169 1170void 1171AcpiDmMemory24Descriptor ( 1172 ACPI_OP_WALK_INFO *Info, 1173 AML_RESOURCE *Resource, 1174 UINT32 Length, 1175 UINT32 Level); 1176 1177void 1178AcpiDmMemory32Descriptor ( 1179 ACPI_OP_WALK_INFO *Info, 1180 AML_RESOURCE *Resource, 1181 UINT32 Length, 1182 UINT32 Level); 1183 1184void 1185AcpiDmFixedMemory32Descriptor ( 1186 ACPI_OP_WALK_INFO *Info, 1187 AML_RESOURCE *Resource, 1188 UINT32 Length, 1189 UINT32 Level); 1190 1191void 1192AcpiDmGenericRegisterDescriptor ( 1193 ACPI_OP_WALK_INFO *Info, 1194 AML_RESOURCE *Resource, 1195 UINT32 Length, 1196 UINT32 Level); 1197 1198void 1199AcpiDmInterruptDescriptor ( 1200 ACPI_OP_WALK_INFO *Info, 1201 AML_RESOURCE *Resource, 1202 UINT32 Length, 1203 UINT32 Level); 1204 1205void 1206AcpiDmVendorLargeDescriptor ( 1207 ACPI_OP_WALK_INFO *Info, 1208 AML_RESOURCE *Resource, 1209 UINT32 Length, 1210 UINT32 Level); 1211 1212void 1213AcpiDmGpioDescriptor ( 1214 ACPI_OP_WALK_INFO *Info, 1215 AML_RESOURCE *Resource, 1216 UINT32 Length, 1217 UINT32 Level); 1218 1219void 1220AcpiDmPinFunctionDescriptor ( 1221 ACPI_OP_WALK_INFO *Info, 1222 AML_RESOURCE *Resource, 1223 UINT32 Length, 1224 UINT32 Level); 1225 1226void 1227AcpiDmPinConfigDescriptor ( 1228 ACPI_OP_WALK_INFO *Info, 1229 AML_RESOURCE *Resource, 1230 UINT32 Length, 1231 UINT32 Level); 1232 1233void 1234AcpiDmPinGroupDescriptor ( 1235 ACPI_OP_WALK_INFO *Info, 1236 AML_RESOURCE *Resource, 1237 UINT32 Length, 1238 UINT32 Level); 1239 1240void 1241AcpiDmPinGroupFunctionDescriptor ( 1242 ACPI_OP_WALK_INFO *Info, 1243 AML_RESOURCE *Resource, 1244 UINT32 Length, 1245 UINT32 Level); 1246 1247void 1248AcpiDmPinGroupConfigDescriptor ( 1249 ACPI_OP_WALK_INFO *Info, 1250 AML_RESOURCE *Resource, 1251 UINT32 Length, 1252 UINT32 Level); 1253 1254void 1255AcpiDmSerialBusDescriptor ( 1256 ACPI_OP_WALK_INFO *Info, 1257 AML_RESOURCE *Resource, 1258 UINT32 Length, 1259 UINT32 Level); 1260 1261void 1262AcpiDmVendorCommon ( 1263 const char *Name, 1264 UINT8 *ByteData, 1265 UINT32 Length, 1266 UINT32 Level); 1267 1268void 1269AcpiDmClockInputDescriptor ( 1270 ACPI_OP_WALK_INFO *Info, 1271 AML_RESOURCE *Resource, 1272 UINT32 Length, 1273 UINT32 Level); 1274 1275/* 1276 * dmresrcs 1277 */ 1278void 1279AcpiDmIrqDescriptor ( 1280 ACPI_OP_WALK_INFO *Info, 1281 AML_RESOURCE *Resource, 1282 UINT32 Length, 1283 UINT32 Level); 1284 1285void 1286AcpiDmDmaDescriptor ( 1287 ACPI_OP_WALK_INFO *Info, 1288 AML_RESOURCE *Resource, 1289 UINT32 Length, 1290 UINT32 Level); 1291 1292void 1293AcpiDmFixedDmaDescriptor ( 1294 ACPI_OP_WALK_INFO *Info, 1295 AML_RESOURCE *Resource, 1296 UINT32 Length, 1297 UINT32 Level); 1298 1299void 1300AcpiDmIoDescriptor ( 1301 ACPI_OP_WALK_INFO *Info, 1302 AML_RESOURCE *Resource, 1303 UINT32 Length, 1304 UINT32 Level); 1305 1306void 1307AcpiDmFixedIoDescriptor ( 1308 ACPI_OP_WALK_INFO *Info, 1309 AML_RESOURCE *Resource, 1310 UINT32 Length, 1311 UINT32 Level); 1312 1313void 1314AcpiDmStartDependentDescriptor ( 1315 ACPI_OP_WALK_INFO *Info, 1316 AML_RESOURCE *Resource, 1317 UINT32 Length, 1318 UINT32 Level); 1319 1320void 1321AcpiDmEndDependentDescriptor ( 1322 ACPI_OP_WALK_INFO *Info, 1323 AML_RESOURCE *Resource, 1324 UINT32 Length, 1325 UINT32 Level); 1326 1327void 1328AcpiDmVendorSmallDescriptor ( 1329 ACPI_OP_WALK_INFO *Info, 1330 AML_RESOURCE *Resource, 1331 UINT32 Length, 1332 UINT32 Level); 1333 1334 1335/* 1336 * dmutils 1337 */ 1338void 1339AcpiDmDecodeAttribute ( 1340 UINT8 Attribute); 1341 1342void 1343AcpiDmIndent ( 1344 UINT32 Level); 1345 1346BOOLEAN 1347AcpiDmCommaIfListMember ( 1348 ACPI_PARSE_OBJECT *Op); 1349 1350void 1351AcpiDmCommaIfFieldMember ( 1352 ACPI_PARSE_OBJECT *Op); 1353 1354 1355/* 1356 * dmrestag 1357 */ 1358void 1359AcpiDmFindResources ( 1360 ACPI_PARSE_OBJECT *Root); 1361 1362void 1363AcpiDmCheckResourceReference ( 1364 ACPI_PARSE_OBJECT *Op, 1365 ACPI_WALK_STATE *WalkState); 1366 1367 1368/* 1369 * dmcstyle 1370 */ 1371BOOLEAN 1372AcpiDmCheckForSymbolicOpcode ( 1373 ACPI_PARSE_OBJECT *Op, 1374 ACPI_OP_WALK_INFO *Info); 1375 1376void 1377AcpiDmCloseOperator ( 1378 ACPI_PARSE_OBJECT *Op); 1379 1380 1381/* 1382 * dmtables 1383 */ 1384ACPI_STATUS 1385AcpiDmProcessSwitch ( 1386 ACPI_PARSE_OBJECT *Op); 1387 1388void 1389AcpiDmClearTempList( 1390 void); 1391 1392/* 1393 * dmtables 1394 */ 1395void 1396AdDisassemblerHeader ( 1397 char *Filename, 1398 UINT8 TableType); 1399 1400#define ACPI_IS_AML_TABLE 0 1401#define ACPI_IS_DATA_TABLE 1 1402 1403 1404/* 1405 * adisasm 1406 */ 1407ACPI_STATUS 1408AdAmlDisassemble ( 1409 BOOLEAN OutToFile, 1410 char *Filename, 1411 char *Prefix, 1412 char **OutFilename); 1413 1414ACPI_STATUS 1415AdGetLocalTables ( 1416 void); 1417 1418ACPI_STATUS 1419AdParseTable ( 1420 ACPI_TABLE_HEADER *Table, 1421 ACPI_OWNER_ID *OwnerId, 1422 BOOLEAN LoadTable, 1423 BOOLEAN External); 1424 1425ACPI_STATUS 1426AdDisplayTables ( 1427 char *Filename, 1428 ACPI_TABLE_HEADER *Table); 1429 1430ACPI_STATUS 1431AdDisplayStatistics ( 1432 void); 1433 1434 1435/* 1436 * dmwalk 1437 */ 1438UINT32 1439AcpiDmBlockType ( 1440 ACPI_PARSE_OBJECT *Op); 1441 1442 1443#endif /* __ACDISASM_H__ */ 1444