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