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