1 /****************************************************************************** 2 * 3 * Name: acdisasm.h - AML disassembler 4 * 5 *****************************************************************************/ 6 7 /****************************************************************************** 8 * 9 * 1. Copyright Notice 10 * 11 * Some or all of this work - Copyright (c) 1999 - 2012, Intel Corp. 12 * All rights reserved. 13 * 14 * 2. License 15 * 16 * 2.1. This is your license from Intel Corp. under its intellectual property 17 * rights. You may have additional license terms from the party that provided 18 * you this software, covering your right to use that party's intellectual 19 * property rights. 20 * 21 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 22 * copy of the source code appearing in this file ("Covered Code") an 23 * irrevocable, perpetual, worldwide license under Intel's copyrights in the 24 * base code distributed originally by Intel ("Original Intel Code") to copy, 25 * make derivatives, distribute, use and display any portion of the Covered 26 * Code in any form, with the right to sublicense such rights; and 27 * 28 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 29 * license (with the right to sublicense), under only those claims of Intel 30 * patents that are infringed by the Original Intel Code, to make, use, sell, 31 * offer to sell, and import the Covered Code and derivative works thereof 32 * solely to the minimum extent necessary to exercise the above copyright 33 * license, and in no event shall the patent license extend to any additions 34 * to or modifications of the Original Intel Code. No other license or right 35 * is granted directly or by implication, estoppel or otherwise; 36 * 37 * The above copyright and patent license is granted only if the following 38 * conditions are met: 39 * 40 * 3. Conditions 41 * 42 * 3.1. Redistribution of Source with Rights to Further Distribute Source. 43 * Redistribution of source code of any substantial portion of the Covered 44 * Code or modification with rights to further distribute source must include 45 * the above Copyright Notice, the above License, this list of Conditions, 46 * and the following Disclaimer and Export Compliance provision. In addition, 47 * Licensee must cause all Covered Code to which Licensee contributes to 48 * contain a file documenting the changes Licensee made to create that Covered 49 * Code and the date of any change. Licensee must include in that file the 50 * documentation of any changes made by any predecessor Licensee. Licensee 51 * must include a prominent statement that the modification is derived, 52 * directly or indirectly, from Original Intel Code. 53 * 54 * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 55 * Redistribution of source code of any substantial portion of the Covered 56 * Code or modification without rights to further distribute source must 57 * include the following Disclaimer and Export Compliance provision in the 58 * documentation and/or other materials provided with distribution. In 59 * addition, Licensee may not authorize further sublicense of source of any 60 * portion of the Covered Code, and must include terms to the effect that the 61 * license from Licensee to its licensee is limited to the intellectual 62 * property embodied in the software Licensee provides to its licensee, and 63 * not to intellectual property embodied in modifications its licensee may 64 * make. 65 * 66 * 3.3. Redistribution of Executable. Redistribution in executable form of any 67 * substantial portion of the Covered Code or modification must reproduce the 68 * above Copyright Notice, and the following Disclaimer and Export Compliance 69 * provision in the documentation and/or other materials provided with the 70 * distribution. 71 * 72 * 3.4. Intel retains all right, title, and interest in and to the Original 73 * Intel Code. 74 * 75 * 3.5. Neither the name Intel nor any other trademark owned or controlled by 76 * Intel shall be used in advertising or otherwise to promote the sale, use or 77 * other dealings in products derived from or relating to the Covered Code 78 * without prior written authorization from Intel. 79 * 80 * 4. Disclaimer and Export Compliance 81 * 82 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 83 * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 84 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 85 * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 86 * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 87 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 88 * PARTICULAR PURPOSE. 89 * 90 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 91 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 92 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 93 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 94 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 95 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 96 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 97 * LIMITED REMEDY. 98 * 99 * 4.3. Licensee shall not export, either directly or indirectly, any of this 100 * software or system incorporating such software without first obtaining any 101 * required license or other approval from the U. S. Department of Commerce or 102 * any other agency or department of the United States Government. In the 103 * event Licensee exports any such software from the United States or 104 * re-exports any such software from a foreign destination, Licensee shall 105 * ensure that the distribution and export/re-export of the software is in 106 * compliance with all laws, regulations, orders, or other restrictions of the 107 * U.S. Export Administration Regulations. Licensee agrees that neither it nor 108 * any of its subsidiaries will export/re-export any technical data, process, 109 * software, or service, directly or indirectly, to any country for which the 110 * United States government or any agency thereof requires an export license, 111 * other governmental approval, or letter of assurance, without first obtaining 112 * such license, approval or letter. 113 * 114 *****************************************************************************/ 115 116 #ifndef __ACDISASM_H__ 117 #define __ACDISASM_H__ 118 119 #include "amlresrc.h" 120 121 122 #define BLOCK_NONE 0 123 #define BLOCK_PAREN 1 124 #define BLOCK_BRACE 2 125 #define BLOCK_COMMA_LIST 4 126 #define ACPI_DEFAULT_RESNAME *(UINT32 *) "__RD" 127 128 /* 129 * Raw table data header. Used by disassembler and data table compiler. 130 * Do not change. 131 */ 132 #define ACPI_RAW_TABLE_DATA_HEADER "Raw Table Data" 133 134 135 typedef const struct acpi_dmtable_info 136 { 137 UINT8 Opcode; 138 UINT16 Offset; 139 char *Name; 140 UINT8 Flags; 141 142 } ACPI_DMTABLE_INFO; 143 144 #define DT_LENGTH 0x01 /* Field is a subtable length */ 145 #define DT_FLAG 0x02 /* Field is a flag value */ 146 #define DT_NON_ZERO 0x04 /* Field must be non-zero */ 147 148 /* TBD: Not used at this time */ 149 150 #define DT_OPTIONAL 0x08 151 #define DT_COUNT 0x10 152 153 /* 154 * Values for Opcode above. 155 * Note: 0-7 must not change, they are used as a flag shift value. Other 156 * than those, new values can be added wherever appropriate. 157 */ 158 typedef enum 159 { 160 /* Simple Data Types */ 161 162 ACPI_DMT_FLAG0 = 0, 163 ACPI_DMT_FLAG1 = 1, 164 ACPI_DMT_FLAG2 = 2, 165 ACPI_DMT_FLAG3 = 3, 166 ACPI_DMT_FLAG4 = 4, 167 ACPI_DMT_FLAG5 = 5, 168 ACPI_DMT_FLAG6 = 6, 169 ACPI_DMT_FLAG7 = 7, 170 ACPI_DMT_FLAGS0, 171 ACPI_DMT_FLAGS1, 172 ACPI_DMT_FLAGS2, 173 ACPI_DMT_FLAGS4, 174 ACPI_DMT_UINT8, 175 ACPI_DMT_UINT16, 176 ACPI_DMT_UINT24, 177 ACPI_DMT_UINT32, 178 ACPI_DMT_UINT40, 179 ACPI_DMT_UINT48, 180 ACPI_DMT_UINT56, 181 ACPI_DMT_UINT64, 182 ACPI_DMT_BUF7, 183 ACPI_DMT_BUF16, 184 ACPI_DMT_BUF128, 185 ACPI_DMT_SIG, 186 ACPI_DMT_STRING, 187 ACPI_DMT_NAME4, 188 ACPI_DMT_NAME6, 189 ACPI_DMT_NAME8, 190 191 /* Types that are decoded to strings and miscellaneous */ 192 193 ACPI_DMT_ACCWIDTH, 194 ACPI_DMT_CHKSUM, 195 ACPI_DMT_GAS, 196 ACPI_DMT_SPACEID, 197 ACPI_DMT_UNICODE, 198 ACPI_DMT_UUID, 199 200 /* Types used only for the Data Table Compiler */ 201 202 ACPI_DMT_BUFFER, 203 ACPI_DMT_DEVICE_PATH, 204 ACPI_DMT_LABEL, 205 ACPI_DMT_PCI_PATH, 206 207 /* Types that are specific to particular ACPI tables */ 208 209 ACPI_DMT_ASF, 210 ACPI_DMT_DMAR, 211 ACPI_DMT_EINJACT, 212 ACPI_DMT_EINJINST, 213 ACPI_DMT_ERSTACT, 214 ACPI_DMT_ERSTINST, 215 ACPI_DMT_FADTPM, 216 ACPI_DMT_HEST, 217 ACPI_DMT_HESTNTFY, 218 ACPI_DMT_HESTNTYP, 219 ACPI_DMT_IVRS, 220 ACPI_DMT_MADT, 221 ACPI_DMT_PMTT, 222 ACPI_DMT_SLIC, 223 ACPI_DMT_SRAT, 224 225 /* Special opcodes */ 226 227 ACPI_DMT_EXTRA_TEXT, 228 ACPI_DMT_EXIT 229 230 } ACPI_ENTRY_TYPES; 231 232 typedef 233 void (*ACPI_DMTABLE_HANDLER) ( 234 ACPI_TABLE_HEADER *Table); 235 236 typedef 237 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) ( 238 void **PFieldList); 239 240 typedef struct acpi_dmtable_data 241 { 242 char *Signature; 243 ACPI_DMTABLE_INFO *TableInfo; 244 ACPI_DMTABLE_HANDLER TableHandler; 245 ACPI_CMTABLE_HANDLER CmTableHandler; 246 const unsigned char *Template; 247 char *Name; 248 249 } ACPI_DMTABLE_DATA; 250 251 252 typedef struct acpi_op_walk_info 253 { 254 UINT32 Level; 255 UINT32 LastLevel; 256 UINT32 Count; 257 UINT32 BitOffset; 258 UINT32 Flags; 259 ACPI_WALK_STATE *WalkState; 260 261 } ACPI_OP_WALK_INFO; 262 263 /* 264 * TBD - another copy of this is in asltypes.h, fix 265 */ 266 #ifndef ASL_WALK_CALLBACK_DEFINED 267 typedef 268 ACPI_STATUS (*ASL_WALK_CALLBACK) ( 269 ACPI_PARSE_OBJECT *Op, 270 UINT32 Level, 271 void *Context); 272 #define ASL_WALK_CALLBACK_DEFINED 273 #endif 274 275 typedef 276 void (*ACPI_RESOURCE_HANDLER) ( 277 AML_RESOURCE *Resource, 278 UINT32 Length, 279 UINT32 Level); 280 281 typedef struct acpi_resource_tag 282 { 283 UINT32 BitIndex; 284 char *Tag; 285 286 } ACPI_RESOURCE_TAG; 287 288 /* Strings used for decoding flags to ASL keywords */ 289 290 extern const char *AcpiGbl_WordDecode[]; 291 extern const char *AcpiGbl_IrqDecode[]; 292 extern const char *AcpiGbl_LockRule[]; 293 extern const char *AcpiGbl_AccessTypes[]; 294 extern const char *AcpiGbl_UpdateRules[]; 295 extern const char *AcpiGbl_MatchOps[]; 296 297 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[]; 298 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[]; 299 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[]; 300 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[]; 301 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[]; 302 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; 303 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; 304 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; 305 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; 306 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; 307 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[]; 308 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[]; 309 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[]; 310 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[]; 311 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt1[]; 312 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2[]; 313 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Device[]; 314 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Addr[]; 315 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Size[]; 316 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Name[]; 317 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[]; 318 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[]; 319 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[]; 320 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[]; 321 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[]; 322 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[]; 323 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[]; 324 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[]; 325 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[]; 326 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[]; 327 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[]; 328 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[]; 329 extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[]; 330 extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[]; 331 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[]; 332 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[]; 333 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[]; 334 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[]; 335 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[]; 336 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt[]; 337 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdtHdr[]; 338 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt0[]; 339 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[]; 340 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[]; 341 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[]; 342 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[]; 343 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[]; 344 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[]; 345 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[]; 346 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[]; 347 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[]; 348 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[]; 349 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[]; 350 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[]; 351 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[]; 352 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[]; 353 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[]; 354 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; 355 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[]; 356 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[]; 357 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; 358 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; 359 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; 360 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; 361 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[]; 362 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; 363 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; 364 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[]; 365 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[]; 366 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[]; 367 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[]; 368 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[]; 369 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[]; 370 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[]; 371 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[]; 372 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[]; 373 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[]; 374 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[]; 375 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[]; 376 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; 377 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; 378 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; 379 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[]; 380 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[]; 381 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[]; 382 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[]; 383 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[]; 384 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[]; 385 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[]; 386 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[]; 387 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[]; 388 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[]; 389 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[]; 390 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[]; 391 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1a[]; 392 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[]; 393 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[]; 394 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[]; 395 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[]; 396 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; 397 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; 398 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[]; 399 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3ptHdr[]; 400 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt0[]; 401 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt1[]; 402 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[]; 403 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlicHdr[]; 404 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic0[]; 405 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic1[]; 406 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[]; 407 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[]; 408 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[]; 409 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[]; 410 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[]; 411 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[]; 412 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[]; 413 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[]; 414 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpa[]; 415 extern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[]; 416 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[]; 417 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[]; 418 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[]; 419 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[]; 420 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[]; 421 422 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2]; 423 424 425 /* 426 * dmtable 427 */ 428 extern ACPI_DMTABLE_DATA AcpiDmTableData[]; 429 430 UINT8 431 AcpiDmGenerateChecksum ( 432 void *Table, 433 UINT32 Length, 434 UINT8 OriginalChecksum); 435 436 ACPI_DMTABLE_DATA * 437 AcpiDmGetTableData ( 438 char *Signature); 439 440 void 441 AcpiDmDumpDataTable ( 442 ACPI_TABLE_HEADER *Table); 443 444 ACPI_STATUS 445 AcpiDmDumpTable ( 446 UINT32 TableLength, 447 UINT32 TableOffset, 448 void *Table, 449 UINT32 SubTableLength, 450 ACPI_DMTABLE_INFO *Info); 451 452 void 453 AcpiDmLineHeader ( 454 UINT32 Offset, 455 UINT32 ByteLength, 456 char *Name); 457 458 void 459 AcpiDmLineHeader2 ( 460 UINT32 Offset, 461 UINT32 ByteLength, 462 char *Name, 463 UINT32 Value); 464 465 466 /* 467 * dmtbdump 468 */ 469 void 470 AcpiDmDumpAsf ( 471 ACPI_TABLE_HEADER *Table); 472 473 void 474 AcpiDmDumpCpep ( 475 ACPI_TABLE_HEADER *Table); 476 477 void 478 AcpiDmDumpCsrt ( 479 ACPI_TABLE_HEADER *Table); 480 481 void 482 AcpiDmDumpDbg2 ( 483 ACPI_TABLE_HEADER *Table); 484 485 void 486 AcpiDmDumpDmar ( 487 ACPI_TABLE_HEADER *Table); 488 489 void 490 AcpiDmDumpEinj ( 491 ACPI_TABLE_HEADER *Table); 492 493 void 494 AcpiDmDumpErst ( 495 ACPI_TABLE_HEADER *Table); 496 497 void 498 AcpiDmDumpFadt ( 499 ACPI_TABLE_HEADER *Table); 500 501 void 502 AcpiDmDumpFpdt ( 503 ACPI_TABLE_HEADER *Table); 504 505 void 506 AcpiDmDumpHest ( 507 ACPI_TABLE_HEADER *Table); 508 509 void 510 AcpiDmDumpIvrs ( 511 ACPI_TABLE_HEADER *Table); 512 513 void 514 AcpiDmDumpMadt ( 515 ACPI_TABLE_HEADER *Table); 516 517 void 518 AcpiDmDumpMcfg ( 519 ACPI_TABLE_HEADER *Table); 520 521 void 522 AcpiDmDumpMpst ( 523 ACPI_TABLE_HEADER *Table); 524 525 void 526 AcpiDmDumpMsct ( 527 ACPI_TABLE_HEADER *Table); 528 529 void 530 AcpiDmDumpPcct ( 531 ACPI_TABLE_HEADER *Table); 532 533 void 534 AcpiDmDumpPmtt ( 535 ACPI_TABLE_HEADER *Table); 536 537 UINT32 538 AcpiDmDumpRsdp ( 539 ACPI_TABLE_HEADER *Table); 540 541 void 542 AcpiDmDumpRsdt ( 543 ACPI_TABLE_HEADER *Table); 544 545 UINT32 546 AcpiDmDumpS3pt ( 547 ACPI_TABLE_HEADER *Table); 548 549 void 550 AcpiDmDumpSlic ( 551 ACPI_TABLE_HEADER *Table); 552 553 void 554 AcpiDmDumpSlit ( 555 ACPI_TABLE_HEADER *Table); 556 557 void 558 AcpiDmDumpSrat ( 559 ACPI_TABLE_HEADER *Table); 560 561 void 562 AcpiDmDumpWdat ( 563 ACPI_TABLE_HEADER *Table); 564 565 void 566 AcpiDmDumpXsdt ( 567 ACPI_TABLE_HEADER *Table); 568 569 570 /* 571 * dmwalk 572 */ 573 void 574 AcpiDmDisassemble ( 575 ACPI_WALK_STATE *WalkState, 576 ACPI_PARSE_OBJECT *Origin, 577 UINT32 NumOpcodes); 578 579 void 580 AcpiDmWalkParseTree ( 581 ACPI_PARSE_OBJECT *Op, 582 ASL_WALK_CALLBACK DescendingCallback, 583 ASL_WALK_CALLBACK AscendingCallback, 584 void *Context); 585 586 587 /* 588 * dmopcode 589 */ 590 void 591 AcpiDmDisassembleOneOp ( 592 ACPI_WALK_STATE *WalkState, 593 ACPI_OP_WALK_INFO *Info, 594 ACPI_PARSE_OBJECT *Op); 595 596 void 597 AcpiDmDecodeInternalObject ( 598 ACPI_OPERAND_OBJECT *ObjDesc); 599 600 UINT32 601 AcpiDmListType ( 602 ACPI_PARSE_OBJECT *Op); 603 604 void 605 AcpiDmMethodFlags ( 606 ACPI_PARSE_OBJECT *Op); 607 608 void 609 AcpiDmPredefinedDescription ( 610 ACPI_PARSE_OBJECT *Op); 611 612 void 613 AcpiDmFieldPredefinedDescription ( 614 ACPI_PARSE_OBJECT *Op); 615 616 void 617 AcpiDmFieldFlags ( 618 ACPI_PARSE_OBJECT *Op); 619 620 void 621 AcpiDmAddressSpace ( 622 UINT8 SpaceId); 623 624 void 625 AcpiDmRegionFlags ( 626 ACPI_PARSE_OBJECT *Op); 627 628 void 629 AcpiDmMatchOp ( 630 ACPI_PARSE_OBJECT *Op); 631 632 633 /* 634 * dmnames 635 */ 636 UINT32 637 AcpiDmDumpName ( 638 UINT32 Name); 639 640 ACPI_STATUS 641 AcpiPsDisplayObjectPathname ( 642 ACPI_WALK_STATE *WalkState, 643 ACPI_PARSE_OBJECT *Op); 644 645 void 646 AcpiDmNamestring ( 647 char *Name); 648 649 650 /* 651 * dmobject 652 */ 653 void 654 AcpiDmDisplayInternalObject ( 655 ACPI_OPERAND_OBJECT *ObjDesc, 656 ACPI_WALK_STATE *WalkState); 657 658 void 659 AcpiDmDisplayArguments ( 660 ACPI_WALK_STATE *WalkState); 661 662 void 663 AcpiDmDisplayLocals ( 664 ACPI_WALK_STATE *WalkState); 665 666 void 667 AcpiDmDumpMethodInfo ( 668 ACPI_STATUS Status, 669 ACPI_WALK_STATE *WalkState, 670 ACPI_PARSE_OBJECT *Op); 671 672 673 /* 674 * dmbuffer 675 */ 676 void 677 AcpiDmDisasmByteList ( 678 UINT32 Level, 679 UINT8 *ByteData, 680 UINT32 ByteCount); 681 682 void 683 AcpiDmByteList ( 684 ACPI_OP_WALK_INFO *Info, 685 ACPI_PARSE_OBJECT *Op); 686 687 void 688 AcpiDmIsEisaId ( 689 ACPI_PARSE_OBJECT *Op); 690 691 void 692 AcpiDmEisaId ( 693 UINT32 EncodedId); 694 695 BOOLEAN 696 AcpiDmIsUnicodeBuffer ( 697 ACPI_PARSE_OBJECT *Op); 698 699 BOOLEAN 700 AcpiDmIsStringBuffer ( 701 ACPI_PARSE_OBJECT *Op); 702 703 BOOLEAN 704 AcpiDmIsPldBuffer ( 705 ACPI_PARSE_OBJECT *Op); 706 707 708 /* 709 * dmextern 710 */ 711 712 ACPI_STATUS 713 AcpiDmAddToExternalFileList ( 714 char *PathList); 715 716 void 717 AcpiDmClearExternalFileList ( 718 void); 719 720 void 721 AcpiDmAddToExternalList ( 722 ACPI_PARSE_OBJECT *Op, 723 char *Path, 724 UINT8 Type, 725 UINT32 Value); 726 727 void 728 AcpiDmAddExternalsToNamespace ( 729 void); 730 731 UINT32 732 AcpiDmGetExternalMethodCount ( 733 void); 734 735 void 736 AcpiDmClearExternalList ( 737 void); 738 739 void 740 AcpiDmEmitExternals ( 741 void); 742 743 744 /* 745 * dmresrc 746 */ 747 void 748 AcpiDmDumpInteger8 ( 749 UINT8 Value, 750 char *Name); 751 752 void 753 AcpiDmDumpInteger16 ( 754 UINT16 Value, 755 char *Name); 756 757 void 758 AcpiDmDumpInteger32 ( 759 UINT32 Value, 760 char *Name); 761 762 void 763 AcpiDmDumpInteger64 ( 764 UINT64 Value, 765 char *Name); 766 767 void 768 AcpiDmResourceTemplate ( 769 ACPI_OP_WALK_INFO *Info, 770 ACPI_PARSE_OBJECT *Op, 771 UINT8 *ByteData, 772 UINT32 ByteCount); 773 774 ACPI_STATUS 775 AcpiDmIsResourceTemplate ( 776 ACPI_PARSE_OBJECT *Op); 777 778 void 779 AcpiDmBitList ( 780 UINT16 Mask); 781 782 void 783 AcpiDmDescriptorName ( 784 void); 785 786 787 /* 788 * dmresrcl 789 */ 790 void 791 AcpiDmWordDescriptor ( 792 AML_RESOURCE *Resource, 793 UINT32 Length, 794 UINT32 Level); 795 796 void 797 AcpiDmDwordDescriptor ( 798 AML_RESOURCE *Resource, 799 UINT32 Length, 800 UINT32 Level); 801 802 void 803 AcpiDmExtendedDescriptor ( 804 AML_RESOURCE *Resource, 805 UINT32 Length, 806 UINT32 Level); 807 808 void 809 AcpiDmQwordDescriptor ( 810 AML_RESOURCE *Resource, 811 UINT32 Length, 812 UINT32 Level); 813 814 void 815 AcpiDmMemory24Descriptor ( 816 AML_RESOURCE *Resource, 817 UINT32 Length, 818 UINT32 Level); 819 820 void 821 AcpiDmMemory32Descriptor ( 822 AML_RESOURCE *Resource, 823 UINT32 Length, 824 UINT32 Level); 825 826 void 827 AcpiDmFixedMemory32Descriptor ( 828 AML_RESOURCE *Resource, 829 UINT32 Length, 830 UINT32 Level); 831 832 void 833 AcpiDmGenericRegisterDescriptor ( 834 AML_RESOURCE *Resource, 835 UINT32 Length, 836 UINT32 Level); 837 838 void 839 AcpiDmInterruptDescriptor ( 840 AML_RESOURCE *Resource, 841 UINT32 Length, 842 UINT32 Level); 843 844 void 845 AcpiDmVendorLargeDescriptor ( 846 AML_RESOURCE *Resource, 847 UINT32 Length, 848 UINT32 Level); 849 850 void 851 AcpiDmGpioDescriptor ( 852 AML_RESOURCE *Resource, 853 UINT32 Length, 854 UINT32 Level); 855 856 void 857 AcpiDmSerialBusDescriptor ( 858 AML_RESOURCE *Resource, 859 UINT32 Length, 860 UINT32 Level); 861 862 void 863 AcpiDmVendorCommon ( 864 char *Name, 865 UINT8 *ByteData, 866 UINT32 Length, 867 UINT32 Level); 868 869 870 /* 871 * dmresrcs 872 */ 873 void 874 AcpiDmIrqDescriptor ( 875 AML_RESOURCE *Resource, 876 UINT32 Length, 877 UINT32 Level); 878 879 void 880 AcpiDmDmaDescriptor ( 881 AML_RESOURCE *Resource, 882 UINT32 Length, 883 UINT32 Level); 884 885 void 886 AcpiDmFixedDmaDescriptor ( 887 AML_RESOURCE *Resource, 888 UINT32 Length, 889 UINT32 Level); 890 891 void 892 AcpiDmIoDescriptor ( 893 AML_RESOURCE *Resource, 894 UINT32 Length, 895 UINT32 Level); 896 897 void 898 AcpiDmFixedIoDescriptor ( 899 AML_RESOURCE *Resource, 900 UINT32 Length, 901 UINT32 Level); 902 903 void 904 AcpiDmStartDependentDescriptor ( 905 AML_RESOURCE *Resource, 906 UINT32 Length, 907 UINT32 Level); 908 909 void 910 AcpiDmEndDependentDescriptor ( 911 AML_RESOURCE *Resource, 912 UINT32 Length, 913 UINT32 Level); 914 915 void 916 AcpiDmVendorSmallDescriptor ( 917 AML_RESOURCE *Resource, 918 UINT32 Length, 919 UINT32 Level); 920 921 922 /* 923 * dmutils 924 */ 925 void 926 AcpiDmDecodeAttribute ( 927 UINT8 Attribute); 928 929 void 930 AcpiDmIndent ( 931 UINT32 Level); 932 933 BOOLEAN 934 AcpiDmCommaIfListMember ( 935 ACPI_PARSE_OBJECT *Op); 936 937 void 938 AcpiDmCommaIfFieldMember ( 939 ACPI_PARSE_OBJECT *Op); 940 941 942 /* 943 * dmrestag 944 */ 945 void 946 AcpiDmFindResources ( 947 ACPI_PARSE_OBJECT *Root); 948 949 void 950 AcpiDmCheckResourceReference ( 951 ACPI_PARSE_OBJECT *Op, 952 ACPI_WALK_STATE *WalkState); 953 954 955 /* 956 * acdisasm 957 */ 958 void 959 AdDisassemblerHeader ( 960 char *Filename); 961 962 963 #endif /* __ACDISASM_H__ */ 964