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