1 /****************************************************************************** 2 * 3 * Name: acdisasm.h - AML disassembler 4 * 5 *****************************************************************************/ 6 7 /* 8 * Copyright (C) 2000 - 2014, 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 *(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_DEVICE_PATH, 133 ACPI_DMT_LABEL, 134 ACPI_DMT_PCI_PATH, 135 136 /* Types that are specific to particular ACPI tables */ 137 138 ACPI_DMT_ASF, 139 ACPI_DMT_DMAR, 140 ACPI_DMT_DMAR_SCOPE, 141 ACPI_DMT_EINJACT, 142 ACPI_DMT_EINJINST, 143 ACPI_DMT_ERSTACT, 144 ACPI_DMT_ERSTINST, 145 ACPI_DMT_FADTPM, 146 ACPI_DMT_GTDT, 147 ACPI_DMT_HEST, 148 ACPI_DMT_HESTNTFY, 149 ACPI_DMT_HESTNTYP, 150 ACPI_DMT_IVRS, 151 ACPI_DMT_LPIT, 152 ACPI_DMT_MADT, 153 ACPI_DMT_PCCT, 154 ACPI_DMT_PMTT, 155 ACPI_DMT_SLIC, 156 ACPI_DMT_SRAT, 157 158 /* Special opcodes */ 159 160 ACPI_DMT_EXTRA_TEXT, 161 ACPI_DMT_EXIT 162 163 } ACPI_ENTRY_TYPES; 164 165 typedef 166 void (*ACPI_DMTABLE_HANDLER) ( 167 ACPI_TABLE_HEADER *Table); 168 169 typedef 170 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) ( 171 void **PFieldList); 172 173 typedef struct acpi_dmtable_data 174 { 175 char *Signature; 176 ACPI_DMTABLE_INFO *TableInfo; 177 ACPI_DMTABLE_HANDLER TableHandler; 178 ACPI_CMTABLE_HANDLER CmTableHandler; 179 const unsigned char *Template; 180 char *Name; 181 182 } ACPI_DMTABLE_DATA; 183 184 185 typedef struct acpi_op_walk_info 186 { 187 UINT32 Level; 188 UINT32 LastLevel; 189 UINT32 Count; 190 UINT32 BitOffset; 191 UINT32 Flags; 192 ACPI_WALK_STATE *WalkState; 193 194 } ACPI_OP_WALK_INFO; 195 196 /* 197 * TBD - another copy of this is in asltypes.h, fix 198 */ 199 #ifndef ASL_WALK_CALLBACK_DEFINED 200 typedef 201 ACPI_STATUS (*ASL_WALK_CALLBACK) ( 202 ACPI_PARSE_OBJECT *Op, 203 UINT32 Level, 204 void *Context); 205 #define ASL_WALK_CALLBACK_DEFINED 206 #endif 207 208 typedef 209 void (*ACPI_RESOURCE_HANDLER) ( 210 AML_RESOURCE *Resource, 211 UINT32 Length, 212 UINT32 Level); 213 214 typedef struct acpi_resource_tag 215 { 216 UINT32 BitIndex; 217 char *Tag; 218 219 } ACPI_RESOURCE_TAG; 220 221 /* Strings used for decoding flags to ASL keywords */ 222 223 extern const char *AcpiGbl_WordDecode[]; 224 extern const char *AcpiGbl_IrqDecode[]; 225 extern const char *AcpiGbl_LockRule[]; 226 extern const char *AcpiGbl_AccessTypes[]; 227 extern const char *AcpiGbl_UpdateRules[]; 228 extern const char *AcpiGbl_MatchOps[]; 229 230 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[]; 231 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[]; 232 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[]; 233 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[]; 234 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[]; 235 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; 236 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; 237 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; 238 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; 239 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; 240 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[]; 241 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[]; 242 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[]; 243 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[]; 244 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt1[]; 245 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2[]; 246 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2[]; 247 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Device[]; 248 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Addr[]; 249 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Size[]; 250 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Name[]; 251 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2OemData[]; 252 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[]; 253 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[]; 254 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[]; 255 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[]; 256 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[]; 257 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[]; 258 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[]; 259 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[]; 260 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[]; 261 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[]; 262 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[]; 263 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[]; 264 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[]; 265 extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[]; 266 extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[]; 267 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[]; 268 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[]; 269 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[]; 270 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[]; 271 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[]; 272 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt[]; 273 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdtHdr[]; 274 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt0[]; 275 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[]; 276 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[]; 277 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[]; 278 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtHdr[]; 279 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0[]; 280 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0a[]; 281 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt1[]; 282 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[]; 283 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[]; 284 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[]; 285 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[]; 286 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[]; 287 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[]; 288 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[]; 289 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[]; 290 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[]; 291 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[]; 292 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[]; 293 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[]; 294 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpitHdr[]; 295 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpit0[]; 296 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpit1[]; 297 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; 298 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[]; 299 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[]; 300 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; 301 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; 302 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; 303 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; 304 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[]; 305 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; 306 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; 307 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[]; 308 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[]; 309 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[]; 310 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[]; 311 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[]; 312 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[]; 313 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[]; 314 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[]; 315 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[]; 316 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[]; 317 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[]; 318 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[]; 319 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt13[]; 320 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[]; 321 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; 322 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; 323 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; 324 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[]; 325 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[]; 326 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[]; 327 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[]; 328 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[]; 329 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[]; 330 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[]; 331 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[]; 332 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[]; 333 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMtmr[]; 334 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMtmr0[]; 335 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[]; 336 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[]; 337 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[]; 338 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1a[]; 339 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[]; 340 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[]; 341 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[]; 342 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcctHdr[]; 343 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[]; 344 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct1[]; 345 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; 346 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; 347 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[]; 348 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3ptHdr[]; 349 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt0[]; 350 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt1[]; 351 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[]; 352 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlicHdr[]; 353 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic0[]; 354 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic1[]; 355 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[]; 356 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[]; 357 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[]; 358 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[]; 359 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[]; 360 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[]; 361 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[]; 362 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[]; 363 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat3[]; 364 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpa[]; 365 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm2[]; 366 extern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[]; 367 extern ACPI_DMTABLE_INFO AcpiDmTableInfoVrtc[]; 368 extern ACPI_DMTABLE_INFO AcpiDmTableInfoVrtc0[]; 369 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[]; 370 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[]; 371 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[]; 372 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[]; 373 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[]; 374 375 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2]; 376 377 378 /* 379 * dmtable 380 */ 381 extern ACPI_DMTABLE_DATA AcpiDmTableData[]; 382 383 UINT8 384 AcpiDmGenerateChecksum ( 385 void *Table, 386 UINT32 Length, 387 UINT8 OriginalChecksum); 388 389 ACPI_DMTABLE_DATA * 390 AcpiDmGetTableData ( 391 char *Signature); 392 393 void 394 AcpiDmDumpDataTable ( 395 ACPI_TABLE_HEADER *Table); 396 397 ACPI_STATUS 398 AcpiDmDumpTable ( 399 UINT32 TableLength, 400 UINT32 TableOffset, 401 void *Table, 402 UINT32 SubTableLength, 403 ACPI_DMTABLE_INFO *Info); 404 405 void 406 AcpiDmLineHeader ( 407 UINT32 Offset, 408 UINT32 ByteLength, 409 char *Name); 410 411 void 412 AcpiDmLineHeader2 ( 413 UINT32 Offset, 414 UINT32 ByteLength, 415 char *Name, 416 UINT32 Value); 417 418 419 /* 420 * dmtbdump 421 */ 422 void 423 AcpiDmDumpAsf ( 424 ACPI_TABLE_HEADER *Table); 425 426 void 427 AcpiDmDumpCpep ( 428 ACPI_TABLE_HEADER *Table); 429 430 void 431 AcpiDmDumpCsrt ( 432 ACPI_TABLE_HEADER *Table); 433 434 void 435 AcpiDmDumpDbg2 ( 436 ACPI_TABLE_HEADER *Table); 437 438 void 439 AcpiDmDumpDmar ( 440 ACPI_TABLE_HEADER *Table); 441 442 void 443 AcpiDmDumpEinj ( 444 ACPI_TABLE_HEADER *Table); 445 446 void 447 AcpiDmDumpErst ( 448 ACPI_TABLE_HEADER *Table); 449 450 void 451 AcpiDmDumpFadt ( 452 ACPI_TABLE_HEADER *Table); 453 454 void 455 AcpiDmDumpFpdt ( 456 ACPI_TABLE_HEADER *Table); 457 458 void 459 AcpiDmDumpGtdt ( 460 ACPI_TABLE_HEADER *Table); 461 462 void 463 AcpiDmDumpHest ( 464 ACPI_TABLE_HEADER *Table); 465 466 void 467 AcpiDmDumpIvrs ( 468 ACPI_TABLE_HEADER *Table); 469 470 void 471 AcpiDmDumpLpit ( 472 ACPI_TABLE_HEADER *Table); 473 474 void 475 AcpiDmDumpMadt ( 476 ACPI_TABLE_HEADER *Table); 477 478 void 479 AcpiDmDumpMcfg ( 480 ACPI_TABLE_HEADER *Table); 481 482 void 483 AcpiDmDumpMpst ( 484 ACPI_TABLE_HEADER *Table); 485 486 void 487 AcpiDmDumpMsct ( 488 ACPI_TABLE_HEADER *Table); 489 490 void 491 AcpiDmDumpMtmr ( 492 ACPI_TABLE_HEADER *Table); 493 494 void 495 AcpiDmDumpPcct ( 496 ACPI_TABLE_HEADER *Table); 497 498 void 499 AcpiDmDumpPmtt ( 500 ACPI_TABLE_HEADER *Table); 501 502 UINT32 503 AcpiDmDumpRsdp ( 504 ACPI_TABLE_HEADER *Table); 505 506 void 507 AcpiDmDumpRsdt ( 508 ACPI_TABLE_HEADER *Table); 509 510 UINT32 511 AcpiDmDumpS3pt ( 512 ACPI_TABLE_HEADER *Table); 513 514 void 515 AcpiDmDumpSlic ( 516 ACPI_TABLE_HEADER *Table); 517 518 void 519 AcpiDmDumpSlit ( 520 ACPI_TABLE_HEADER *Table); 521 522 void 523 AcpiDmDumpSrat ( 524 ACPI_TABLE_HEADER *Table); 525 526 void 527 AcpiDmDumpVrtc ( 528 ACPI_TABLE_HEADER *Table); 529 530 void 531 AcpiDmDumpWdat ( 532 ACPI_TABLE_HEADER *Table); 533 534 void 535 AcpiDmDumpXsdt ( 536 ACPI_TABLE_HEADER *Table); 537 538 539 /* 540 * dmwalk 541 */ 542 void 543 AcpiDmDisassemble ( 544 ACPI_WALK_STATE *WalkState, 545 ACPI_PARSE_OBJECT *Origin, 546 UINT32 NumOpcodes); 547 548 void 549 AcpiDmWalkParseTree ( 550 ACPI_PARSE_OBJECT *Op, 551 ASL_WALK_CALLBACK DescendingCallback, 552 ASL_WALK_CALLBACK AscendingCallback, 553 void *Context); 554 555 556 /* 557 * dmopcode 558 */ 559 void 560 AcpiDmDisassembleOneOp ( 561 ACPI_WALK_STATE *WalkState, 562 ACPI_OP_WALK_INFO *Info, 563 ACPI_PARSE_OBJECT *Op); 564 565 void 566 AcpiDmDecodeInternalObject ( 567 ACPI_OPERAND_OBJECT *ObjDesc); 568 569 UINT32 570 AcpiDmListType ( 571 ACPI_PARSE_OBJECT *Op); 572 573 void 574 AcpiDmMethodFlags ( 575 ACPI_PARSE_OBJECT *Op); 576 577 void 578 AcpiDmDisplayTargetPathname ( 579 ACPI_PARSE_OBJECT *Op); 580 581 void 582 AcpiDmNotifyDescription ( 583 ACPI_PARSE_OBJECT *Op); 584 585 void 586 AcpiDmPredefinedDescription ( 587 ACPI_PARSE_OBJECT *Op); 588 589 void 590 AcpiDmFieldPredefinedDescription ( 591 ACPI_PARSE_OBJECT *Op); 592 593 void 594 AcpiDmFieldFlags ( 595 ACPI_PARSE_OBJECT *Op); 596 597 void 598 AcpiDmAddressSpace ( 599 UINT8 SpaceId); 600 601 void 602 AcpiDmRegionFlags ( 603 ACPI_PARSE_OBJECT *Op); 604 605 void 606 AcpiDmMatchOp ( 607 ACPI_PARSE_OBJECT *Op); 608 609 610 /* 611 * dmnames 612 */ 613 UINT32 614 AcpiDmDumpName ( 615 UINT32 Name); 616 617 ACPI_STATUS 618 AcpiPsDisplayObjectPathname ( 619 ACPI_WALK_STATE *WalkState, 620 ACPI_PARSE_OBJECT *Op); 621 622 void 623 AcpiDmNamestring ( 624 char *Name); 625 626 627 /* 628 * dmobject 629 */ 630 void 631 AcpiDmDisplayInternalObject ( 632 ACPI_OPERAND_OBJECT *ObjDesc, 633 ACPI_WALK_STATE *WalkState); 634 635 void 636 AcpiDmDisplayArguments ( 637 ACPI_WALK_STATE *WalkState); 638 639 void 640 AcpiDmDisplayLocals ( 641 ACPI_WALK_STATE *WalkState); 642 643 void 644 AcpiDmDumpMethodInfo ( 645 ACPI_STATUS Status, 646 ACPI_WALK_STATE *WalkState, 647 ACPI_PARSE_OBJECT *Op); 648 649 650 /* 651 * dmbuffer 652 */ 653 void 654 AcpiDmDisasmByteList ( 655 UINT32 Level, 656 UINT8 *ByteData, 657 UINT32 ByteCount); 658 659 void 660 AcpiDmByteList ( 661 ACPI_OP_WALK_INFO *Info, 662 ACPI_PARSE_OBJECT *Op); 663 664 void 665 AcpiDmCheckForHardwareId ( 666 ACPI_PARSE_OBJECT *Op); 667 668 void 669 AcpiDmDecompressEisaId ( 670 UINT32 EncodedId); 671 672 BOOLEAN 673 AcpiDmIsUuidBuffer ( 674 ACPI_PARSE_OBJECT *Op); 675 676 BOOLEAN 677 AcpiDmIsUnicodeBuffer ( 678 ACPI_PARSE_OBJECT *Op); 679 680 BOOLEAN 681 AcpiDmIsStringBuffer ( 682 ACPI_PARSE_OBJECT *Op); 683 684 BOOLEAN 685 AcpiDmIsPldBuffer ( 686 ACPI_PARSE_OBJECT *Op); 687 688 689 /* 690 * dmdeferred 691 */ 692 ACPI_STATUS 693 AcpiDmParseDeferredOps ( 694 ACPI_PARSE_OBJECT *Root); 695 696 697 /* 698 * dmextern 699 */ 700 ACPI_STATUS 701 AcpiDmAddToExternalFileList ( 702 char *PathList); 703 704 void 705 AcpiDmClearExternalFileList ( 706 void); 707 708 void 709 AcpiDmAddOpToExternalList ( 710 ACPI_PARSE_OBJECT *Op, 711 char *Path, 712 UINT8 Type, 713 UINT32 Value, 714 UINT16 Flags); 715 716 void 717 AcpiDmAddNodeToExternalList ( 718 ACPI_NAMESPACE_NODE *Node, 719 UINT8 Type, 720 UINT32 Value, 721 UINT16 Flags); 722 723 void 724 AcpiDmAddExternalsToNamespace ( 725 void); 726 727 UINT32 728 AcpiDmGetExternalMethodCount ( 729 void); 730 731 void 732 AcpiDmClearExternalList ( 733 void); 734 735 void 736 AcpiDmEmitExternals ( 737 void); 738 739 void 740 AcpiDmUnresolvedWarning ( 741 UINT8 Type); 742 743 void 744 AcpiDmGetExternalsFromFile ( 745 void); 746 747 /* 748 * dmresrc 749 */ 750 void 751 AcpiDmDumpInteger8 ( 752 UINT8 Value, 753 char *Name); 754 755 void 756 AcpiDmDumpInteger16 ( 757 UINT16 Value, 758 char *Name); 759 760 void 761 AcpiDmDumpInteger32 ( 762 UINT32 Value, 763 char *Name); 764 765 void 766 AcpiDmDumpInteger64 ( 767 UINT64 Value, 768 char *Name); 769 770 void 771 AcpiDmResourceTemplate ( 772 ACPI_OP_WALK_INFO *Info, 773 ACPI_PARSE_OBJECT *Op, 774 UINT8 *ByteData, 775 UINT32 ByteCount); 776 777 ACPI_STATUS 778 AcpiDmIsResourceTemplate ( 779 ACPI_WALK_STATE *WalkState, 780 ACPI_PARSE_OBJECT *Op); 781 782 void 783 AcpiDmBitList ( 784 UINT16 Mask); 785 786 void 787 AcpiDmDescriptorName ( 788 void); 789 790 791 /* 792 * dmresrcl 793 */ 794 void 795 AcpiDmWordDescriptor ( 796 AML_RESOURCE *Resource, 797 UINT32 Length, 798 UINT32 Level); 799 800 void 801 AcpiDmDwordDescriptor ( 802 AML_RESOURCE *Resource, 803 UINT32 Length, 804 UINT32 Level); 805 806 void 807 AcpiDmExtendedDescriptor ( 808 AML_RESOURCE *Resource, 809 UINT32 Length, 810 UINT32 Level); 811 812 void 813 AcpiDmQwordDescriptor ( 814 AML_RESOURCE *Resource, 815 UINT32 Length, 816 UINT32 Level); 817 818 void 819 AcpiDmMemory24Descriptor ( 820 AML_RESOURCE *Resource, 821 UINT32 Length, 822 UINT32 Level); 823 824 void 825 AcpiDmMemory32Descriptor ( 826 AML_RESOURCE *Resource, 827 UINT32 Length, 828 UINT32 Level); 829 830 void 831 AcpiDmFixedMemory32Descriptor ( 832 AML_RESOURCE *Resource, 833 UINT32 Length, 834 UINT32 Level); 835 836 void 837 AcpiDmGenericRegisterDescriptor ( 838 AML_RESOURCE *Resource, 839 UINT32 Length, 840 UINT32 Level); 841 842 void 843 AcpiDmInterruptDescriptor ( 844 AML_RESOURCE *Resource, 845 UINT32 Length, 846 UINT32 Level); 847 848 void 849 AcpiDmVendorLargeDescriptor ( 850 AML_RESOURCE *Resource, 851 UINT32 Length, 852 UINT32 Level); 853 854 void 855 AcpiDmGpioDescriptor ( 856 AML_RESOURCE *Resource, 857 UINT32 Length, 858 UINT32 Level); 859 860 void 861 AcpiDmSerialBusDescriptor ( 862 AML_RESOURCE *Resource, 863 UINT32 Length, 864 UINT32 Level); 865 866 void 867 AcpiDmVendorCommon ( 868 char *Name, 869 UINT8 *ByteData, 870 UINT32 Length, 871 UINT32 Level); 872 873 874 /* 875 * dmresrcs 876 */ 877 void 878 AcpiDmIrqDescriptor ( 879 AML_RESOURCE *Resource, 880 UINT32 Length, 881 UINT32 Level); 882 883 void 884 AcpiDmDmaDescriptor ( 885 AML_RESOURCE *Resource, 886 UINT32 Length, 887 UINT32 Level); 888 889 void 890 AcpiDmFixedDmaDescriptor ( 891 AML_RESOURCE *Resource, 892 UINT32 Length, 893 UINT32 Level); 894 895 void 896 AcpiDmIoDescriptor ( 897 AML_RESOURCE *Resource, 898 UINT32 Length, 899 UINT32 Level); 900 901 void 902 AcpiDmFixedIoDescriptor ( 903 AML_RESOURCE *Resource, 904 UINT32 Length, 905 UINT32 Level); 906 907 void 908 AcpiDmStartDependentDescriptor ( 909 AML_RESOURCE *Resource, 910 UINT32 Length, 911 UINT32 Level); 912 913 void 914 AcpiDmEndDependentDescriptor ( 915 AML_RESOURCE *Resource, 916 UINT32 Length, 917 UINT32 Level); 918 919 void 920 AcpiDmVendorSmallDescriptor ( 921 AML_RESOURCE *Resource, 922 UINT32 Length, 923 UINT32 Level); 924 925 926 /* 927 * dmutils 928 */ 929 void 930 AcpiDmDecodeAttribute ( 931 UINT8 Attribute); 932 933 void 934 AcpiDmIndent ( 935 UINT32 Level); 936 937 BOOLEAN 938 AcpiDmCommaIfListMember ( 939 ACPI_PARSE_OBJECT *Op); 940 941 void 942 AcpiDmCommaIfFieldMember ( 943 ACPI_PARSE_OBJECT *Op); 944 945 946 /* 947 * dmrestag 948 */ 949 void 950 AcpiDmFindResources ( 951 ACPI_PARSE_OBJECT *Root); 952 953 void 954 AcpiDmCheckResourceReference ( 955 ACPI_PARSE_OBJECT *Op, 956 ACPI_WALK_STATE *WalkState); 957 958 959 /* 960 * acdisasm 961 */ 962 void 963 AdDisassemblerHeader ( 964 char *Filename); 965 966 967 #endif /* __ACDISASM_H__ */ 968