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