1 /****************************************************************************** 2 * 3 * Name: acdisasm.h - AML disassembler 4 * 5 *****************************************************************************/ 6 7 /* 8 * Copyright (C) 2000 - 2012, 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 AcpiDmTableInfoDbg2[]; 241 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Device[]; 242 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Addr[]; 243 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Size[]; 244 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Name[]; 245 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[]; 246 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[]; 247 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[]; 248 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[]; 249 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[]; 250 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[]; 251 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[]; 252 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[]; 253 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[]; 254 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[]; 255 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[]; 256 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[]; 257 extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[]; 258 extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[]; 259 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[]; 260 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[]; 261 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[]; 262 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[]; 263 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[]; 264 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt[]; 265 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdtHdr[]; 266 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt0[]; 267 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[]; 268 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[]; 269 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[]; 270 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[]; 271 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[]; 272 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[]; 273 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[]; 274 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[]; 275 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[]; 276 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[]; 277 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[]; 278 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[]; 279 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[]; 280 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[]; 281 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[]; 282 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; 283 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[]; 284 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[]; 285 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; 286 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; 287 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; 288 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; 289 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[]; 290 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; 291 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; 292 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[]; 293 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[]; 294 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[]; 295 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[]; 296 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[]; 297 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[]; 298 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[]; 299 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[]; 300 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[]; 301 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[]; 302 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[]; 303 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[]; 304 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; 305 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; 306 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; 307 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[]; 308 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[]; 309 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[]; 310 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[]; 311 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[]; 312 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[]; 313 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[]; 314 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[]; 315 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[]; 316 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[]; 317 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[]; 318 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[]; 319 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1a[]; 320 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[]; 321 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[]; 322 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[]; 323 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[]; 324 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; 325 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; 326 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[]; 327 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3ptHdr[]; 328 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt0[]; 329 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt1[]; 330 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[]; 331 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlicHdr[]; 332 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic0[]; 333 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic1[]; 334 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[]; 335 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[]; 336 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[]; 337 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[]; 338 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[]; 339 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[]; 340 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[]; 341 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[]; 342 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpa[]; 343 extern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[]; 344 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[]; 345 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[]; 346 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[]; 347 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[]; 348 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[]; 349 350 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2]; 351 352 353 /* 354 * dmtable 355 */ 356 extern ACPI_DMTABLE_DATA AcpiDmTableData[]; 357 358 UINT8 359 AcpiDmGenerateChecksum ( 360 void *Table, 361 UINT32 Length, 362 UINT8 OriginalChecksum); 363 364 ACPI_DMTABLE_DATA * 365 AcpiDmGetTableData ( 366 char *Signature); 367 368 void 369 AcpiDmDumpDataTable ( 370 ACPI_TABLE_HEADER *Table); 371 372 ACPI_STATUS 373 AcpiDmDumpTable ( 374 UINT32 TableLength, 375 UINT32 TableOffset, 376 void *Table, 377 UINT32 SubTableLength, 378 ACPI_DMTABLE_INFO *Info); 379 380 void 381 AcpiDmLineHeader ( 382 UINT32 Offset, 383 UINT32 ByteLength, 384 char *Name); 385 386 void 387 AcpiDmLineHeader2 ( 388 UINT32 Offset, 389 UINT32 ByteLength, 390 char *Name, 391 UINT32 Value); 392 393 394 /* 395 * dmtbdump 396 */ 397 void 398 AcpiDmDumpAsf ( 399 ACPI_TABLE_HEADER *Table); 400 401 void 402 AcpiDmDumpCpep ( 403 ACPI_TABLE_HEADER *Table); 404 405 void 406 AcpiDmDumpCsrt ( 407 ACPI_TABLE_HEADER *Table); 408 409 void 410 AcpiDmDumpDbg2 ( 411 ACPI_TABLE_HEADER *Table); 412 413 void 414 AcpiDmDumpDmar ( 415 ACPI_TABLE_HEADER *Table); 416 417 void 418 AcpiDmDumpEinj ( 419 ACPI_TABLE_HEADER *Table); 420 421 void 422 AcpiDmDumpErst ( 423 ACPI_TABLE_HEADER *Table); 424 425 void 426 AcpiDmDumpFadt ( 427 ACPI_TABLE_HEADER *Table); 428 429 void 430 AcpiDmDumpFpdt ( 431 ACPI_TABLE_HEADER *Table); 432 433 void 434 AcpiDmDumpHest ( 435 ACPI_TABLE_HEADER *Table); 436 437 void 438 AcpiDmDumpIvrs ( 439 ACPI_TABLE_HEADER *Table); 440 441 void 442 AcpiDmDumpMadt ( 443 ACPI_TABLE_HEADER *Table); 444 445 void 446 AcpiDmDumpMcfg ( 447 ACPI_TABLE_HEADER *Table); 448 449 void 450 AcpiDmDumpMpst ( 451 ACPI_TABLE_HEADER *Table); 452 453 void 454 AcpiDmDumpMsct ( 455 ACPI_TABLE_HEADER *Table); 456 457 void 458 AcpiDmDumpPcct ( 459 ACPI_TABLE_HEADER *Table); 460 461 void 462 AcpiDmDumpPmtt ( 463 ACPI_TABLE_HEADER *Table); 464 465 UINT32 466 AcpiDmDumpRsdp ( 467 ACPI_TABLE_HEADER *Table); 468 469 void 470 AcpiDmDumpRsdt ( 471 ACPI_TABLE_HEADER *Table); 472 473 UINT32 474 AcpiDmDumpS3pt ( 475 ACPI_TABLE_HEADER *Table); 476 477 void 478 AcpiDmDumpSlic ( 479 ACPI_TABLE_HEADER *Table); 480 481 void 482 AcpiDmDumpSlit ( 483 ACPI_TABLE_HEADER *Table); 484 485 void 486 AcpiDmDumpSrat ( 487 ACPI_TABLE_HEADER *Table); 488 489 void 490 AcpiDmDumpWdat ( 491 ACPI_TABLE_HEADER *Table); 492 493 void 494 AcpiDmDumpXsdt ( 495 ACPI_TABLE_HEADER *Table); 496 497 498 /* 499 * dmwalk 500 */ 501 void 502 AcpiDmDisassemble ( 503 ACPI_WALK_STATE *WalkState, 504 ACPI_PARSE_OBJECT *Origin, 505 UINT32 NumOpcodes); 506 507 void 508 AcpiDmWalkParseTree ( 509 ACPI_PARSE_OBJECT *Op, 510 ASL_WALK_CALLBACK DescendingCallback, 511 ASL_WALK_CALLBACK AscendingCallback, 512 void *Context); 513 514 515 /* 516 * dmopcode 517 */ 518 void 519 AcpiDmDisassembleOneOp ( 520 ACPI_WALK_STATE *WalkState, 521 ACPI_OP_WALK_INFO *Info, 522 ACPI_PARSE_OBJECT *Op); 523 524 void 525 AcpiDmDecodeInternalObject ( 526 ACPI_OPERAND_OBJECT *ObjDesc); 527 528 UINT32 529 AcpiDmListType ( 530 ACPI_PARSE_OBJECT *Op); 531 532 void 533 AcpiDmMethodFlags ( 534 ACPI_PARSE_OBJECT *Op); 535 536 void 537 AcpiDmPredefinedDescription ( 538 ACPI_PARSE_OBJECT *Op); 539 540 void 541 AcpiDmFieldPredefinedDescription ( 542 ACPI_PARSE_OBJECT *Op); 543 544 void 545 AcpiDmFieldFlags ( 546 ACPI_PARSE_OBJECT *Op); 547 548 void 549 AcpiDmAddressSpace ( 550 UINT8 SpaceId); 551 552 void 553 AcpiDmRegionFlags ( 554 ACPI_PARSE_OBJECT *Op); 555 556 void 557 AcpiDmMatchOp ( 558 ACPI_PARSE_OBJECT *Op); 559 560 561 /* 562 * dmnames 563 */ 564 UINT32 565 AcpiDmDumpName ( 566 UINT32 Name); 567 568 ACPI_STATUS 569 AcpiPsDisplayObjectPathname ( 570 ACPI_WALK_STATE *WalkState, 571 ACPI_PARSE_OBJECT *Op); 572 573 void 574 AcpiDmNamestring ( 575 char *Name); 576 577 578 /* 579 * dmobject 580 */ 581 void 582 AcpiDmDisplayInternalObject ( 583 ACPI_OPERAND_OBJECT *ObjDesc, 584 ACPI_WALK_STATE *WalkState); 585 586 void 587 AcpiDmDisplayArguments ( 588 ACPI_WALK_STATE *WalkState); 589 590 void 591 AcpiDmDisplayLocals ( 592 ACPI_WALK_STATE *WalkState); 593 594 void 595 AcpiDmDumpMethodInfo ( 596 ACPI_STATUS Status, 597 ACPI_WALK_STATE *WalkState, 598 ACPI_PARSE_OBJECT *Op); 599 600 601 /* 602 * dmbuffer 603 */ 604 void 605 AcpiDmDisasmByteList ( 606 UINT32 Level, 607 UINT8 *ByteData, 608 UINT32 ByteCount); 609 610 void 611 AcpiDmByteList ( 612 ACPI_OP_WALK_INFO *Info, 613 ACPI_PARSE_OBJECT *Op); 614 615 void 616 AcpiDmIsEisaId ( 617 ACPI_PARSE_OBJECT *Op); 618 619 void 620 AcpiDmEisaId ( 621 UINT32 EncodedId); 622 623 BOOLEAN 624 AcpiDmIsUnicodeBuffer ( 625 ACPI_PARSE_OBJECT *Op); 626 627 BOOLEAN 628 AcpiDmIsStringBuffer ( 629 ACPI_PARSE_OBJECT *Op); 630 631 BOOLEAN 632 AcpiDmIsPldBuffer ( 633 ACPI_PARSE_OBJECT *Op); 634 635 636 /* 637 * dmdeferred 638 */ 639 ACPI_STATUS 640 AcpiDmParseDeferredOps ( 641 ACPI_PARSE_OBJECT *Root); 642 643 644 /* 645 * dmextern 646 */ 647 ACPI_STATUS 648 AcpiDmAddToExternalFileList ( 649 char *PathList); 650 651 void 652 AcpiDmClearExternalFileList ( 653 void); 654 655 void 656 AcpiDmAddToExternalList ( 657 ACPI_PARSE_OBJECT *Op, 658 char *Path, 659 UINT8 Type, 660 UINT32 Value); 661 662 void 663 AcpiDmAddExternalsToNamespace ( 664 void); 665 666 UINT32 667 AcpiDmGetExternalMethodCount ( 668 void); 669 670 void 671 AcpiDmClearExternalList ( 672 void); 673 674 void 675 AcpiDmEmitExternals ( 676 void); 677 678 679 /* 680 * dmresrc 681 */ 682 void 683 AcpiDmDumpInteger8 ( 684 UINT8 Value, 685 char *Name); 686 687 void 688 AcpiDmDumpInteger16 ( 689 UINT16 Value, 690 char *Name); 691 692 void 693 AcpiDmDumpInteger32 ( 694 UINT32 Value, 695 char *Name); 696 697 void 698 AcpiDmDumpInteger64 ( 699 UINT64 Value, 700 char *Name); 701 702 void 703 AcpiDmResourceTemplate ( 704 ACPI_OP_WALK_INFO *Info, 705 ACPI_PARSE_OBJECT *Op, 706 UINT8 *ByteData, 707 UINT32 ByteCount); 708 709 ACPI_STATUS 710 AcpiDmIsResourceTemplate ( 711 ACPI_WALK_STATE *WalkState, 712 ACPI_PARSE_OBJECT *Op); 713 714 void 715 AcpiDmBitList ( 716 UINT16 Mask); 717 718 void 719 AcpiDmDescriptorName ( 720 void); 721 722 723 /* 724 * dmresrcl 725 */ 726 void 727 AcpiDmWordDescriptor ( 728 AML_RESOURCE *Resource, 729 UINT32 Length, 730 UINT32 Level); 731 732 void 733 AcpiDmDwordDescriptor ( 734 AML_RESOURCE *Resource, 735 UINT32 Length, 736 UINT32 Level); 737 738 void 739 AcpiDmExtendedDescriptor ( 740 AML_RESOURCE *Resource, 741 UINT32 Length, 742 UINT32 Level); 743 744 void 745 AcpiDmQwordDescriptor ( 746 AML_RESOURCE *Resource, 747 UINT32 Length, 748 UINT32 Level); 749 750 void 751 AcpiDmMemory24Descriptor ( 752 AML_RESOURCE *Resource, 753 UINT32 Length, 754 UINT32 Level); 755 756 void 757 AcpiDmMemory32Descriptor ( 758 AML_RESOURCE *Resource, 759 UINT32 Length, 760 UINT32 Level); 761 762 void 763 AcpiDmFixedMemory32Descriptor ( 764 AML_RESOURCE *Resource, 765 UINT32 Length, 766 UINT32 Level); 767 768 void 769 AcpiDmGenericRegisterDescriptor ( 770 AML_RESOURCE *Resource, 771 UINT32 Length, 772 UINT32 Level); 773 774 void 775 AcpiDmInterruptDescriptor ( 776 AML_RESOURCE *Resource, 777 UINT32 Length, 778 UINT32 Level); 779 780 void 781 AcpiDmVendorLargeDescriptor ( 782 AML_RESOURCE *Resource, 783 UINT32 Length, 784 UINT32 Level); 785 786 void 787 AcpiDmGpioDescriptor ( 788 AML_RESOURCE *Resource, 789 UINT32 Length, 790 UINT32 Level); 791 792 void 793 AcpiDmSerialBusDescriptor ( 794 AML_RESOURCE *Resource, 795 UINT32 Length, 796 UINT32 Level); 797 798 void 799 AcpiDmVendorCommon ( 800 char *Name, 801 UINT8 *ByteData, 802 UINT32 Length, 803 UINT32 Level); 804 805 806 /* 807 * dmresrcs 808 */ 809 void 810 AcpiDmIrqDescriptor ( 811 AML_RESOURCE *Resource, 812 UINT32 Length, 813 UINT32 Level); 814 815 void 816 AcpiDmDmaDescriptor ( 817 AML_RESOURCE *Resource, 818 UINT32 Length, 819 UINT32 Level); 820 821 void 822 AcpiDmFixedDmaDescriptor ( 823 AML_RESOURCE *Resource, 824 UINT32 Length, 825 UINT32 Level); 826 827 void 828 AcpiDmIoDescriptor ( 829 AML_RESOURCE *Resource, 830 UINT32 Length, 831 UINT32 Level); 832 833 void 834 AcpiDmFixedIoDescriptor ( 835 AML_RESOURCE *Resource, 836 UINT32 Length, 837 UINT32 Level); 838 839 void 840 AcpiDmStartDependentDescriptor ( 841 AML_RESOURCE *Resource, 842 UINT32 Length, 843 UINT32 Level); 844 845 void 846 AcpiDmEndDependentDescriptor ( 847 AML_RESOURCE *Resource, 848 UINT32 Length, 849 UINT32 Level); 850 851 void 852 AcpiDmVendorSmallDescriptor ( 853 AML_RESOURCE *Resource, 854 UINT32 Length, 855 UINT32 Level); 856 857 858 /* 859 * dmutils 860 */ 861 void 862 AcpiDmDecodeAttribute ( 863 UINT8 Attribute); 864 865 void 866 AcpiDmIndent ( 867 UINT32 Level); 868 869 BOOLEAN 870 AcpiDmCommaIfListMember ( 871 ACPI_PARSE_OBJECT *Op); 872 873 void 874 AcpiDmCommaIfFieldMember ( 875 ACPI_PARSE_OBJECT *Op); 876 877 878 /* 879 * dmrestag 880 */ 881 void 882 AcpiDmFindResources ( 883 ACPI_PARSE_OBJECT *Root); 884 885 void 886 AcpiDmCheckResourceReference ( 887 ACPI_PARSE_OBJECT *Op, 888 ACPI_WALK_STATE *WalkState); 889 890 891 /* 892 * acdisasm 893 */ 894 void 895 AdDisassemblerHeader ( 896 char *Filename); 897 898 899 #endif /* __ACDISASM_H__ */ 900