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