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 - 2022, 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 * Alternatively, you may choose to be licensed under the terms of the 117 * following license: 118 * 119 * Redistribution and use in source and binary forms, with or without 120 * modification, are permitted provided that the following conditions 121 * are met: 122 * 1. Redistributions of source code must retain the above copyright 123 * notice, this list of conditions, and the following disclaimer, 124 * without modification. 125 * 2. Redistributions in binary form must reproduce at minimum a disclaimer 126 * substantially similar to the "NO WARRANTY" disclaimer below 127 * ("Disclaimer") and any redistribution must be conditioned upon 128 * including a substantially similar Disclaimer requirement for further 129 * binary redistribution. 130 * 3. Neither the names of the above-listed copyright holders nor the names 131 * of any contributors may be used to endorse or promote products derived 132 * from this software without specific prior written permission. 133 * 134 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 135 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 136 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 137 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 138 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 139 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 140 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 141 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 142 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 143 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 144 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 145 * 146 * Alternatively, you may choose to be licensed under the terms of the 147 * GNU General Public License ("GPL") version 2 as published by the Free 148 * Software Foundation. 149 * 150 *****************************************************************************/ 151 152 #ifndef __ACDISASM_H__ 153 #define __ACDISASM_H__ 154 155 #include <contrib/dev/acpica/include/amlresrc.h> 156 157 158 #define BLOCK_NONE 0 159 #define BLOCK_PAREN 1 160 #define BLOCK_BRACE 2 161 #define BLOCK_COMMA_LIST 4 162 #define ACPI_DEFAULT_RESNAME *(UINT32 *) "__RD" 163 164 /* 165 * Raw table data header. Used by disassembler and data table compiler. 166 * Do not change. 167 */ 168 #define ACPI_RAW_TABLE_DATA_HEADER "Raw Table Data" 169 170 171 typedef struct acpi_dmtable_info 172 { 173 UINT8 Opcode; 174 UINT16 Offset; 175 char *Name; 176 UINT8 Flags; 177 178 } ACPI_DMTABLE_INFO; 179 180 /* Values for Flags field above */ 181 182 #define DT_LENGTH 0x01 /* Field is a subtable length */ 183 #define DT_FLAG 0x02 /* Field is a flag value */ 184 #define DT_NON_ZERO 0x04 /* Field must be non-zero */ 185 #define DT_OPTIONAL 0x08 /* Field is optional */ 186 #define DT_DESCRIBES_OPTIONAL 0x10 /* Field describes an optional field (length, etc.) */ 187 #define DT_COUNT 0x20 /* Currently not used */ 188 189 /* 190 * Values for Opcode above. 191 * Note: 0-7 must not change, they are used as a flag shift value. Other 192 * than those, new values can be added wherever appropriate. 193 */ 194 typedef enum 195 { 196 /* Simple Data Types */ 197 198 ACPI_DMT_FLAG0 = 0, 199 ACPI_DMT_FLAG1 = 1, 200 ACPI_DMT_FLAG2 = 2, 201 ACPI_DMT_FLAG3 = 3, 202 ACPI_DMT_FLAG4 = 4, 203 ACPI_DMT_FLAG5 = 5, 204 ACPI_DMT_FLAG6 = 6, 205 ACPI_DMT_FLAG7 = 7, 206 ACPI_DMT_FLAGS0, 207 ACPI_DMT_FLAGS1, 208 ACPI_DMT_FLAGS2, 209 ACPI_DMT_FLAGS8_2, 210 ACPI_DMT_FLAGS4, 211 ACPI_DMT_FLAGS4_0, 212 ACPI_DMT_FLAGS4_4, 213 ACPI_DMT_FLAGS4_8, 214 ACPI_DMT_FLAGS4_12, 215 ACPI_DMT_FLAGS16_16, 216 ACPI_DMT_UINT8, 217 ACPI_DMT_UINT16, 218 ACPI_DMT_UINT24, 219 ACPI_DMT_UINT32, 220 ACPI_DMT_UINT40, 221 ACPI_DMT_UINT48, 222 ACPI_DMT_UINT56, 223 ACPI_DMT_UINT64, 224 ACPI_DMT_BUF7, 225 ACPI_DMT_BUF10, 226 ACPI_DMT_BUF12, 227 ACPI_DMT_BUF16, 228 ACPI_DMT_BUF18, 229 ACPI_DMT_BUF128, 230 ACPI_DMT_SIG, 231 ACPI_DMT_STRING, 232 ACPI_DMT_NAME4, 233 ACPI_DMT_NAME6, 234 ACPI_DMT_NAME8, 235 236 /* Types that are decoded to strings and miscellaneous */ 237 238 ACPI_DMT_ACCWIDTH, 239 ACPI_DMT_CHKSUM, 240 ACPI_DMT_GAS, 241 ACPI_DMT_SPACEID, 242 ACPI_DMT_UNICODE, 243 ACPI_DMT_UUID, 244 245 /* Types used only for the Data Table Compiler */ 246 247 ACPI_DMT_BUFFER, 248 ACPI_DMT_RAW_BUFFER, /* Large, multiple line buffer */ 249 ACPI_DMT_DEVICE_PATH, 250 ACPI_DMT_LABEL, 251 ACPI_DMT_PCI_PATH, 252 253 /* Types that are specific to particular ACPI tables */ 254 255 ACPI_DMT_AEST, 256 ACPI_DMT_AEST_CACHE, 257 ACPI_DMT_AEST_GIC, 258 ACPI_DMT_AEST_RES, 259 ACPI_DMT_AEST_XFACE, 260 ACPI_DMT_AEST_XRUPT, 261 ACPI_DMT_AGDI, 262 ACPI_DMT_ASF, 263 ACPI_DMT_CEDT, 264 ACPI_DMT_DMAR, 265 ACPI_DMT_DMAR_SCOPE, 266 ACPI_DMT_EINJACT, 267 ACPI_DMT_EINJINST, 268 ACPI_DMT_ERSTACT, 269 ACPI_DMT_ERSTINST, 270 ACPI_DMT_FADTPM, 271 ACPI_DMT_GTDT, 272 ACPI_DMT_HEST, 273 ACPI_DMT_HESTNTFY, 274 ACPI_DMT_HESTNTYP, 275 ACPI_DMT_HMAT, 276 ACPI_DMT_IORTMEM, 277 ACPI_DMT_IVRS, 278 ACPI_DMT_IVRS_DE, 279 ACPI_DMT_IVRS_UNTERMINATED_STRING, 280 ACPI_DMT_LPIT, 281 ACPI_DMT_MADT, 282 ACPI_DMT_NFIT, 283 ACPI_DMT_NHLT1, 284 ACPI_DMT_NHLT1a, 285 ACPI_DMT_NHLT1b, 286 ACPI_DMT_NHLT1c, 287 ACPI_DMT_NHLT1d, 288 ACPI_DMT_NHLT1e, 289 ACPI_DMT_NHLT1f, 290 ACPI_DMT_PCCT, 291 ACPI_DMT_PHAT, 292 ACPI_DMT_PMTT, 293 ACPI_DMT_PMTT_VENDOR, 294 ACPI_DMT_PPTT, 295 ACPI_DMT_RGRT, 296 ACPI_DMT_SDEI, 297 ACPI_DMT_SDEV, 298 ACPI_DMT_SLIC, 299 ACPI_DMT_SRAT, 300 ACPI_DMT_TPM2, 301 ACPI_DMT_VIOT, 302 ACPI_DMT_WPBT_UNICODE, 303 304 /* Special opcodes */ 305 306 ACPI_DMT_EXTRA_TEXT, 307 ACPI_DMT_EXIT 308 309 } ACPI_ENTRY_TYPES; 310 311 typedef 312 void (*ACPI_DMTABLE_HANDLER) ( 313 ACPI_TABLE_HEADER *Table); 314 315 typedef 316 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) ( 317 void **PFieldList); 318 319 typedef struct acpi_dmtable_data 320 { 321 char *Signature; 322 ACPI_DMTABLE_INFO *TableInfo; 323 ACPI_DMTABLE_HANDLER TableHandler; 324 ACPI_CMTABLE_HANDLER CmTableHandler; 325 const unsigned char *Template; 326 327 } ACPI_DMTABLE_DATA; 328 329 330 typedef struct acpi_op_walk_info 331 { 332 ACPI_WALK_STATE *WalkState; 333 ACPI_PARSE_OBJECT *MappingOp; 334 UINT8 *PreviousAml; 335 UINT8 *StartAml; 336 UINT32 Level; 337 UINT32 LastLevel; 338 UINT32 Count; 339 UINT32 BitOffset; 340 UINT32 Flags; 341 UINT32 AmlOffset; 342 343 } ACPI_OP_WALK_INFO; 344 345 /* 346 * TBD - another copy of this is in asltypes.h, fix 347 */ 348 #ifndef ASL_WALK_CALLBACK_DEFINED 349 typedef 350 ACPI_STATUS (*ASL_WALK_CALLBACK) ( 351 ACPI_PARSE_OBJECT *Op, 352 UINT32 Level, 353 void *Context); 354 #define ASL_WALK_CALLBACK_DEFINED 355 #endif 356 357 typedef 358 void (*ACPI_RESOURCE_HANDLER) ( 359 ACPI_OP_WALK_INFO *Info, 360 AML_RESOURCE *Resource, 361 UINT32 Length, 362 UINT32 Level); 363 364 typedef struct acpi_resource_tag 365 { 366 UINT32 BitIndex; 367 char *Tag; 368 369 } ACPI_RESOURCE_TAG; 370 371 /* Strings used for decoding flags to ASL keywords */ 372 373 extern const char *AcpiGbl_WordDecode[]; 374 extern const char *AcpiGbl_IrqDecode[]; 375 extern const char *AcpiGbl_LockRule[]; 376 extern const char *AcpiGbl_AccessTypes[]; 377 extern const char *AcpiGbl_UpdateRules[]; 378 extern const char *AcpiGbl_MatchOps[]; 379 380 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestHdr[]; 381 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestProcError[]; 382 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestCacheRsrc[]; 383 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestTlbRsrc[]; 384 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGenRsrc[]; 385 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestMemError[]; 386 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestSmmuError[]; 387 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorError[]; 388 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGicError[]; 389 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface[]; 390 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXrupt[]; 391 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAgdi[]; 392 extern ACPI_DMTABLE_INFO AcpiDmTableInfoApmtNode[]; 393 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[]; 394 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[]; 395 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[]; 396 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[]; 397 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[]; 398 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; 399 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; 400 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; 401 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBdat[]; 402 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; 403 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; 404 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[]; 405 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[]; 406 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[]; 407 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1[]; 408 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1_te[]; 409 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[]; 410 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[]; 411 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[]; 412 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt1[]; 413 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2[]; 414 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2a[]; 415 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2[]; 416 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Device[]; 417 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Addr[]; 418 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Size[]; 419 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Name[]; 420 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2OemData[]; 421 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[]; 422 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[]; 423 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[]; 424 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[]; 425 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[]; 426 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[]; 427 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[]; 428 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[]; 429 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[]; 430 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar5[]; 431 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[]; 432 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0[]; 433 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0a[]; 434 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1[]; 435 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1a[]; 436 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm2[]; 437 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[]; 438 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[]; 439 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[]; 440 extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[]; 441 extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[]; 442 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[]; 443 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[]; 444 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[]; 445 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[]; 446 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[]; 447 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt6[]; 448 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt[]; 449 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdtHdr[]; 450 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt0[]; 451 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[]; 452 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[]; 453 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[]; 454 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtHdr[]; 455 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtEl2[]; 456 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0[]; 457 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0a[]; 458 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt1[]; 459 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[]; 460 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[]; 461 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[]; 462 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[]; 463 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[]; 464 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[]; 465 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[]; 466 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[]; 467 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[]; 468 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest10[]; 469 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest11[]; 470 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[]; 471 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[]; 472 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[]; 473 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpitHdr[]; 474 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpit0[]; 475 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpit1[]; 476 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat[]; 477 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat0[]; 478 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1[]; 479 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1a[]; 480 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1b[]; 481 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1c[]; 482 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat2[]; 483 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat2a[]; 484 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmatHdr[]; 485 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort[]; 486 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort0[]; 487 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort0a[]; 488 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort1[]; 489 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort1a[]; 490 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort2[]; 491 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3[]; 492 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3a[]; 493 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3b[]; 494 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3c[]; 495 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort4[]; 496 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort5[]; 497 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort6[]; 498 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort6a[]; 499 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortAcc[]; 500 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr[]; 501 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr3[]; 502 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortMap[]; 503 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortPad[]; 504 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; 505 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware1[]; 506 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware23[]; 507 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsMemory[]; 508 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; 509 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; 510 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; 511 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; 512 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsCidString[]; 513 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsCidInteger[]; 514 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHid[]; 515 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsUidString[]; 516 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsUidInteger[]; 517 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHidString[]; 518 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHidInteger[]; 519 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; 520 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; 521 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[]; 522 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[]; 523 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[]; 524 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[]; 525 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[]; 526 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[]; 527 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[]; 528 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[]; 529 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[]; 530 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[]; 531 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[]; 532 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[]; 533 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt13[]; 534 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[]; 535 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[]; 536 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[]; 537 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt17[]; 538 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; 539 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; 540 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; 541 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[]; 542 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[]; 543 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[]; 544 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[]; 545 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[]; 546 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[]; 547 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[]; 548 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[]; 549 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[]; 550 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit[]; 551 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfitHdr[]; 552 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit0[]; 553 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit1[]; 554 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit2[]; 555 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit2a[]; 556 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit3[]; 557 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit3a[]; 558 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit4[]; 559 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit5[]; 560 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6[]; 561 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6a[]; 562 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit7[]; 563 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt[]; 564 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt0[]; 565 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt1[]; 566 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt2[]; 567 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3[]; 568 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3a[]; 569 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt4[]; 570 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5[]; 571 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5a[]; 572 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5b[]; 573 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5c[]; 574 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6[]; 575 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6a[]; 576 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6b[]; 577 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7[]; 578 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7a[]; 579 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7b[]; 580 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt9[]; 581 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhatHdr[]; 582 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0[]; 583 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0a[]; 584 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1[]; 585 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1a[]; 586 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1b[]; 587 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[]; 588 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[]; 589 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[]; 590 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[]; 591 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttVendor[]; 592 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[]; 593 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[]; 594 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcctHdr[]; 595 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[]; 596 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct1[]; 597 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct2[]; 598 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct3[]; 599 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct4[]; 600 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct5[]; 601 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt[]; 602 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt0[]; 603 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0[]; 604 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0a[]; 605 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1[]; 606 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1a[]; 607 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt2[]; 608 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPpttHdr[]; 609 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHdr[]; 610 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtModule[]; 611 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHandler[]; 612 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[]; 613 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt[]; 614 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[]; 615 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; 616 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; 617 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[]; 618 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3ptHdr[]; 619 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt0[]; 620 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt1[]; 621 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[]; 622 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdei[]; 623 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev[]; 624 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevHdr[]; 625 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0[]; 626 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0a[]; 627 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0b[]; 628 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompHdr[]; 629 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompId[]; 630 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompMem[]; 631 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1[]; 632 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1a[]; 633 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1b[]; 634 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic[]; 635 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[]; 636 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[]; 637 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[]; 638 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[]; 639 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[]; 640 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[]; 641 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[]; 642 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[]; 643 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat3[]; 644 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat4[]; 645 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat5[]; 646 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat6[]; 647 extern ACPI_DMTABLE_INFO AcpiDmTableInfoStao[]; 648 extern ACPI_DMTABLE_INFO AcpiDmTableInfoStaoStr[]; 649 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl[]; 650 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl0[]; 651 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaHdr[]; 652 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaClient[]; 653 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaServer[]; 654 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTdel[]; 655 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm2[]; 656 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm2a[]; 657 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm211[]; 658 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm23[]; 659 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm23a[]; 660 extern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[]; 661 extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot[]; 662 extern ACPI_DMTABLE_INFO AcpiDmTableInfoViotHeader[]; 663 extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot1[]; 664 extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot2[]; 665 extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot3[]; 666 extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot4[]; 667 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[]; 668 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[]; 669 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[]; 670 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[]; 671 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[]; 672 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWpbt[]; 673 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWpbt0[]; 674 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWsmt[]; 675 extern ACPI_DMTABLE_INFO AcpiDmTableInfoXenv[]; 676 677 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2]; 678 679 /* 680 * dmtable and ahtable 681 */ 682 extern const ACPI_DMTABLE_DATA AcpiDmTableData[]; 683 extern const AH_TABLE AcpiGbl_SupportedTables[]; 684 685 UINT8 686 AcpiDmGenerateChecksum ( 687 void *Table, 688 UINT32 Length, 689 UINT8 OriginalChecksum); 690 691 const ACPI_DMTABLE_DATA * 692 AcpiDmGetTableData ( 693 char *Signature); 694 695 void 696 AcpiDmDumpDataTable ( 697 ACPI_TABLE_HEADER *Table); 698 699 ACPI_STATUS 700 AcpiDmDumpTable ( 701 UINT32 TableLength, 702 UINT32 TableOffset, 703 void *Table, 704 UINT32 SubtableLength, 705 ACPI_DMTABLE_INFO *Info); 706 707 void 708 AcpiDmLineHeader ( 709 UINT32 Offset, 710 UINT32 ByteLength, 711 char *Name); 712 713 void 714 AcpiDmLineHeader2 ( 715 UINT32 Offset, 716 UINT32 ByteLength, 717 char *Name, 718 UINT32 Value); 719 720 721 /* 722 * dmtbdump 723 */ 724 void 725 AcpiDmDumpBuffer ( 726 void *Table, 727 UINT32 BufferOffset, 728 UINT32 Length, 729 UINT32 AbsoluteOffset, 730 char *Header); 731 732 void 733 AcpiDmDumpUnicode ( 734 void *Table, 735 UINT32 BufferOffset, 736 UINT32 ByteLength); 737 738 void 739 AcpiDmDumpAest ( 740 ACPI_TABLE_HEADER *Table); 741 742 void 743 AcpiDmDumpApmt ( 744 ACPI_TABLE_HEADER *Table); 745 746 void 747 AcpiDmDumpAsf ( 748 ACPI_TABLE_HEADER *Table); 749 750 void 751 AcpiDmDumpCedt ( 752 ACPI_TABLE_HEADER *Table); 753 754 void 755 AcpiDmDumpCpep ( 756 ACPI_TABLE_HEADER *Table); 757 758 void 759 AcpiDmDumpCsrt ( 760 ACPI_TABLE_HEADER *Table); 761 762 void 763 AcpiDmDumpDbg2 ( 764 ACPI_TABLE_HEADER *Table); 765 766 void 767 AcpiDmDumpDmar ( 768 ACPI_TABLE_HEADER *Table); 769 770 void 771 AcpiDmDumpDrtm ( 772 ACPI_TABLE_HEADER *Table); 773 774 void 775 AcpiDmDumpEinj ( 776 ACPI_TABLE_HEADER *Table); 777 778 void 779 AcpiDmDumpErst ( 780 ACPI_TABLE_HEADER *Table); 781 782 void 783 AcpiDmDumpFadt ( 784 ACPI_TABLE_HEADER *Table); 785 786 void 787 AcpiDmDumpFpdt ( 788 ACPI_TABLE_HEADER *Table); 789 790 void 791 AcpiDmDumpGtdt ( 792 ACPI_TABLE_HEADER *Table); 793 794 void 795 AcpiDmDumpHest ( 796 ACPI_TABLE_HEADER *Table); 797 798 void 799 AcpiDmDumpHmat ( 800 ACPI_TABLE_HEADER *Table); 801 802 void 803 AcpiDmDumpIort ( 804 ACPI_TABLE_HEADER *Table); 805 806 void 807 AcpiDmDumpIvrs ( 808 ACPI_TABLE_HEADER *Table); 809 810 void 811 AcpiDmDumpLpit ( 812 ACPI_TABLE_HEADER *Table); 813 814 void 815 AcpiDmDumpMadt ( 816 ACPI_TABLE_HEADER *Table); 817 818 void 819 AcpiDmDumpMcfg ( 820 ACPI_TABLE_HEADER *Table); 821 822 void 823 AcpiDmDumpMpst ( 824 ACPI_TABLE_HEADER *Table); 825 826 void 827 AcpiDmDumpMsct ( 828 ACPI_TABLE_HEADER *Table); 829 830 void 831 AcpiDmDumpNfit ( 832 ACPI_TABLE_HEADER *Table); 833 834 void 835 AcpiDmDumpNhlt ( 836 ACPI_TABLE_HEADER *Table); 837 838 void 839 AcpiDmDumpPcct ( 840 ACPI_TABLE_HEADER *Table); 841 842 void 843 AcpiDmDumpPdtt ( 844 ACPI_TABLE_HEADER *Table); 845 846 void 847 AcpiDmDumpPhat ( 848 ACPI_TABLE_HEADER *Table); 849 850 void 851 AcpiDmDumpPmtt ( 852 ACPI_TABLE_HEADER *Table); 853 854 void 855 AcpiDmDumpPptt ( 856 ACPI_TABLE_HEADER *Table); 857 858 void 859 AcpiDmDumpPrmt ( 860 ACPI_TABLE_HEADER *Table); 861 862 void 863 AcpiDmDumpRgrt ( 864 ACPI_TABLE_HEADER *Table); 865 866 UINT32 867 AcpiDmDumpRsdp ( 868 ACPI_TABLE_HEADER *Table); 869 870 void 871 AcpiDmDumpRsdt ( 872 ACPI_TABLE_HEADER *Table); 873 874 UINT32 875 AcpiDmDumpS3pt ( 876 ACPI_TABLE_HEADER *Table); 877 878 void 879 AcpiDmDumpSdev ( 880 ACPI_TABLE_HEADER *Table); 881 882 void 883 AcpiDmDumpSlic ( 884 ACPI_TABLE_HEADER *Table); 885 886 void 887 AcpiDmDumpSlit ( 888 ACPI_TABLE_HEADER *Table); 889 890 void 891 AcpiDmDumpSrat ( 892 ACPI_TABLE_HEADER *Table); 893 894 void 895 AcpiDmDumpStao ( 896 ACPI_TABLE_HEADER *Table); 897 898 void 899 AcpiDmDumpSvkl ( 900 ACPI_TABLE_HEADER *Table); 901 902 void 903 AcpiDmDumpTcpa ( 904 ACPI_TABLE_HEADER *Table); 905 906 void 907 AcpiDmDumpTdel ( 908 ACPI_TABLE_HEADER *Table); 909 910 void 911 AcpiDmDumpTpm2 ( 912 ACPI_TABLE_HEADER *Table); 913 914 void 915 AcpiDmDumpViot ( 916 ACPI_TABLE_HEADER *Table); 917 918 void 919 AcpiDmDumpWdat ( 920 ACPI_TABLE_HEADER *Table); 921 922 void 923 AcpiDmDumpWpbt ( 924 ACPI_TABLE_HEADER *Table); 925 926 void 927 AcpiDmDumpXsdt ( 928 ACPI_TABLE_HEADER *Table); 929 930 931 /* 932 * dmwalk 933 */ 934 void 935 AcpiDmDisassemble ( 936 ACPI_WALK_STATE *WalkState, 937 ACPI_PARSE_OBJECT *Origin, 938 UINT32 NumOpcodes); 939 940 void 941 AcpiDmWalkParseTree ( 942 ACPI_PARSE_OBJECT *Op, 943 ASL_WALK_CALLBACK DescendingCallback, 944 ASL_WALK_CALLBACK AscendingCallback, 945 void *Context); 946 947 948 /* 949 * dmopcode 950 */ 951 void 952 AcpiDmDisassembleOneOp ( 953 ACPI_WALK_STATE *WalkState, 954 ACPI_OP_WALK_INFO *Info, 955 ACPI_PARSE_OBJECT *Op); 956 957 UINT32 958 AcpiDmListType ( 959 ACPI_PARSE_OBJECT *Op); 960 961 void 962 AcpiDmMethodFlags ( 963 ACPI_PARSE_OBJECT *Op); 964 965 void 966 AcpiDmDisplayTargetPathname ( 967 ACPI_PARSE_OBJECT *Op); 968 969 void 970 AcpiDmNotifyDescription ( 971 ACPI_PARSE_OBJECT *Op); 972 973 void 974 AcpiDmPredefinedDescription ( 975 ACPI_PARSE_OBJECT *Op); 976 977 void 978 AcpiDmFieldPredefinedDescription ( 979 ACPI_PARSE_OBJECT *Op); 980 981 void 982 AcpiDmFieldFlags ( 983 ACPI_PARSE_OBJECT *Op); 984 985 void 986 AcpiDmAddressSpace ( 987 UINT8 SpaceId); 988 989 void 990 AcpiDmRegionFlags ( 991 ACPI_PARSE_OBJECT *Op); 992 993 void 994 AcpiDmMatchOp ( 995 ACPI_PARSE_OBJECT *Op); 996 997 998 /* 999 * dmnames 1000 */ 1001 UINT32 1002 AcpiDmDumpName ( 1003 UINT32 Name); 1004 1005 ACPI_STATUS 1006 AcpiPsDisplayObjectPathname ( 1007 ACPI_WALK_STATE *WalkState, 1008 ACPI_PARSE_OBJECT *Op); 1009 1010 void 1011 AcpiDmNamestring ( 1012 char *Name); 1013 1014 1015 /* 1016 * dmbuffer 1017 */ 1018 void 1019 AcpiDmDisasmByteList ( 1020 UINT32 Level, 1021 UINT8 *ByteData, 1022 UINT32 ByteCount); 1023 1024 void 1025 AcpiDmByteList ( 1026 ACPI_OP_WALK_INFO *Info, 1027 ACPI_PARSE_OBJECT *Op); 1028 1029 void 1030 AcpiDmCheckForHardwareId ( 1031 ACPI_PARSE_OBJECT *Op); 1032 1033 void 1034 AcpiDmDecompressEisaId ( 1035 UINT32 EncodedId); 1036 1037 BOOLEAN 1038 AcpiDmIsUuidBuffer ( 1039 ACPI_PARSE_OBJECT *Op); 1040 1041 BOOLEAN 1042 AcpiDmIsUnicodeBuffer ( 1043 ACPI_PARSE_OBJECT *Op); 1044 1045 BOOLEAN 1046 AcpiDmIsStringBuffer ( 1047 ACPI_PARSE_OBJECT *Op); 1048 1049 BOOLEAN 1050 AcpiDmIsPldBuffer ( 1051 ACPI_PARSE_OBJECT *Op); 1052 1053 1054 /* 1055 * dmdeferred 1056 */ 1057 ACPI_STATUS 1058 AcpiDmParseDeferredOps ( 1059 ACPI_PARSE_OBJECT *Root); 1060 1061 1062 /* 1063 * dmextern 1064 */ 1065 ACPI_STATUS 1066 AcpiDmAddToExternalFileList ( 1067 char *PathList); 1068 1069 void 1070 AcpiDmClearExternalFileList ( 1071 void); 1072 1073 void 1074 AcpiDmAddOpToExternalList ( 1075 ACPI_PARSE_OBJECT *Op, 1076 char *Path, 1077 UINT8 Type, 1078 UINT32 Value, 1079 UINT16 Flags); 1080 1081 void 1082 AcpiDmCreateSubobjectForExternal ( 1083 UINT8 Type, 1084 ACPI_NAMESPACE_NODE **Node, 1085 UINT32 Value); 1086 1087 void 1088 AcpiDmAddNodeToExternalList ( 1089 ACPI_NAMESPACE_NODE *Node, 1090 UINT8 Type, 1091 UINT32 Value, 1092 UINT16 Flags); 1093 1094 void 1095 AcpiDmAddExternalListToNamespace ( 1096 void); 1097 1098 void 1099 AcpiDmAddOneExternalToNamespace ( 1100 char *Path, 1101 UINT8 Type, 1102 UINT32 Value); 1103 1104 UINT32 1105 AcpiDmGetUnresolvedExternalMethodCount ( 1106 void); 1107 1108 void 1109 AcpiDmClearExternalList ( 1110 void); 1111 1112 void 1113 AcpiDmEmitExternals ( 1114 void); 1115 1116 void 1117 AcpiDmEmitExternal ( 1118 ACPI_PARSE_OBJECT *NameOp, 1119 ACPI_PARSE_OBJECT *TypeOp); 1120 1121 void 1122 AcpiDmUnresolvedWarning ( 1123 UINT8 Type); 1124 1125 void 1126 AcpiDmGetExternalsFromFile ( 1127 void); 1128 1129 void 1130 AcpiDmMarkExternalConflict ( 1131 ACPI_NAMESPACE_NODE *Node); 1132 1133 1134 /* 1135 * dmresrc 1136 */ 1137 void 1138 AcpiDmDumpInteger8 ( 1139 UINT8 Value, 1140 const char *Name); 1141 1142 void 1143 AcpiDmDumpInteger16 ( 1144 UINT16 Value, 1145 const char *Name); 1146 1147 void 1148 AcpiDmDumpInteger32 ( 1149 UINT32 Value, 1150 const char *Name); 1151 1152 void 1153 AcpiDmDumpInteger64 ( 1154 UINT64 Value, 1155 const char *Name); 1156 1157 void 1158 AcpiDmResourceTemplate ( 1159 ACPI_OP_WALK_INFO *Info, 1160 ACPI_PARSE_OBJECT *Op, 1161 UINT8 *ByteData, 1162 UINT32 ByteCount); 1163 1164 ACPI_STATUS 1165 AcpiDmIsResourceTemplate ( 1166 ACPI_WALK_STATE *WalkState, 1167 ACPI_PARSE_OBJECT *Op); 1168 1169 void 1170 AcpiDmBitList ( 1171 UINT16 Mask); 1172 1173 void 1174 AcpiDmDescriptorName ( 1175 void); 1176 1177 1178 /* 1179 * dmresrcl 1180 */ 1181 void 1182 AcpiDmWordDescriptor ( 1183 ACPI_OP_WALK_INFO *Info, 1184 AML_RESOURCE *Resource, 1185 UINT32 Length, 1186 UINT32 Level); 1187 1188 void 1189 AcpiDmDwordDescriptor ( 1190 ACPI_OP_WALK_INFO *Info, 1191 AML_RESOURCE *Resource, 1192 UINT32 Length, 1193 UINT32 Level); 1194 1195 void 1196 AcpiDmExtendedDescriptor ( 1197 ACPI_OP_WALK_INFO *Info, 1198 AML_RESOURCE *Resource, 1199 UINT32 Length, 1200 UINT32 Level); 1201 1202 void 1203 AcpiDmQwordDescriptor ( 1204 ACPI_OP_WALK_INFO *Info, 1205 AML_RESOURCE *Resource, 1206 UINT32 Length, 1207 UINT32 Level); 1208 1209 void 1210 AcpiDmMemory24Descriptor ( 1211 ACPI_OP_WALK_INFO *Info, 1212 AML_RESOURCE *Resource, 1213 UINT32 Length, 1214 UINT32 Level); 1215 1216 void 1217 AcpiDmMemory32Descriptor ( 1218 ACPI_OP_WALK_INFO *Info, 1219 AML_RESOURCE *Resource, 1220 UINT32 Length, 1221 UINT32 Level); 1222 1223 void 1224 AcpiDmFixedMemory32Descriptor ( 1225 ACPI_OP_WALK_INFO *Info, 1226 AML_RESOURCE *Resource, 1227 UINT32 Length, 1228 UINT32 Level); 1229 1230 void 1231 AcpiDmGenericRegisterDescriptor ( 1232 ACPI_OP_WALK_INFO *Info, 1233 AML_RESOURCE *Resource, 1234 UINT32 Length, 1235 UINT32 Level); 1236 1237 void 1238 AcpiDmInterruptDescriptor ( 1239 ACPI_OP_WALK_INFO *Info, 1240 AML_RESOURCE *Resource, 1241 UINT32 Length, 1242 UINT32 Level); 1243 1244 void 1245 AcpiDmVendorLargeDescriptor ( 1246 ACPI_OP_WALK_INFO *Info, 1247 AML_RESOURCE *Resource, 1248 UINT32 Length, 1249 UINT32 Level); 1250 1251 void 1252 AcpiDmGpioDescriptor ( 1253 ACPI_OP_WALK_INFO *Info, 1254 AML_RESOURCE *Resource, 1255 UINT32 Length, 1256 UINT32 Level); 1257 1258 void 1259 AcpiDmPinFunctionDescriptor ( 1260 ACPI_OP_WALK_INFO *Info, 1261 AML_RESOURCE *Resource, 1262 UINT32 Length, 1263 UINT32 Level); 1264 1265 void 1266 AcpiDmPinConfigDescriptor ( 1267 ACPI_OP_WALK_INFO *Info, 1268 AML_RESOURCE *Resource, 1269 UINT32 Length, 1270 UINT32 Level); 1271 1272 void 1273 AcpiDmPinGroupDescriptor ( 1274 ACPI_OP_WALK_INFO *Info, 1275 AML_RESOURCE *Resource, 1276 UINT32 Length, 1277 UINT32 Level); 1278 1279 void 1280 AcpiDmPinGroupFunctionDescriptor ( 1281 ACPI_OP_WALK_INFO *Info, 1282 AML_RESOURCE *Resource, 1283 UINT32 Length, 1284 UINT32 Level); 1285 1286 void 1287 AcpiDmPinGroupConfigDescriptor ( 1288 ACPI_OP_WALK_INFO *Info, 1289 AML_RESOURCE *Resource, 1290 UINT32 Length, 1291 UINT32 Level); 1292 1293 void 1294 AcpiDmSerialBusDescriptor ( 1295 ACPI_OP_WALK_INFO *Info, 1296 AML_RESOURCE *Resource, 1297 UINT32 Length, 1298 UINT32 Level); 1299 1300 void 1301 AcpiDmVendorCommon ( 1302 const char *Name, 1303 UINT8 *ByteData, 1304 UINT32 Length, 1305 UINT32 Level); 1306 1307 1308 /* 1309 * dmresrcs 1310 */ 1311 void 1312 AcpiDmIrqDescriptor ( 1313 ACPI_OP_WALK_INFO *Info, 1314 AML_RESOURCE *Resource, 1315 UINT32 Length, 1316 UINT32 Level); 1317 1318 void 1319 AcpiDmDmaDescriptor ( 1320 ACPI_OP_WALK_INFO *Info, 1321 AML_RESOURCE *Resource, 1322 UINT32 Length, 1323 UINT32 Level); 1324 1325 void 1326 AcpiDmFixedDmaDescriptor ( 1327 ACPI_OP_WALK_INFO *Info, 1328 AML_RESOURCE *Resource, 1329 UINT32 Length, 1330 UINT32 Level); 1331 1332 void 1333 AcpiDmIoDescriptor ( 1334 ACPI_OP_WALK_INFO *Info, 1335 AML_RESOURCE *Resource, 1336 UINT32 Length, 1337 UINT32 Level); 1338 1339 void 1340 AcpiDmFixedIoDescriptor ( 1341 ACPI_OP_WALK_INFO *Info, 1342 AML_RESOURCE *Resource, 1343 UINT32 Length, 1344 UINT32 Level); 1345 1346 void 1347 AcpiDmStartDependentDescriptor ( 1348 ACPI_OP_WALK_INFO *Info, 1349 AML_RESOURCE *Resource, 1350 UINT32 Length, 1351 UINT32 Level); 1352 1353 void 1354 AcpiDmEndDependentDescriptor ( 1355 ACPI_OP_WALK_INFO *Info, 1356 AML_RESOURCE *Resource, 1357 UINT32 Length, 1358 UINT32 Level); 1359 1360 void 1361 AcpiDmVendorSmallDescriptor ( 1362 ACPI_OP_WALK_INFO *Info, 1363 AML_RESOURCE *Resource, 1364 UINT32 Length, 1365 UINT32 Level); 1366 1367 1368 /* 1369 * dmutils 1370 */ 1371 void 1372 AcpiDmDecodeAttribute ( 1373 UINT8 Attribute); 1374 1375 void 1376 AcpiDmIndent ( 1377 UINT32 Level); 1378 1379 BOOLEAN 1380 AcpiDmCommaIfListMember ( 1381 ACPI_PARSE_OBJECT *Op); 1382 1383 void 1384 AcpiDmCommaIfFieldMember ( 1385 ACPI_PARSE_OBJECT *Op); 1386 1387 1388 /* 1389 * dmrestag 1390 */ 1391 void 1392 AcpiDmFindResources ( 1393 ACPI_PARSE_OBJECT *Root); 1394 1395 void 1396 AcpiDmCheckResourceReference ( 1397 ACPI_PARSE_OBJECT *Op, 1398 ACPI_WALK_STATE *WalkState); 1399 1400 1401 /* 1402 * dmcstyle 1403 */ 1404 BOOLEAN 1405 AcpiDmCheckForSymbolicOpcode ( 1406 ACPI_PARSE_OBJECT *Op, 1407 ACPI_OP_WALK_INFO *Info); 1408 1409 void 1410 AcpiDmCloseOperator ( 1411 ACPI_PARSE_OBJECT *Op); 1412 1413 1414 /* 1415 * dmtables 1416 */ 1417 ACPI_STATUS 1418 AcpiDmProcessSwitch ( 1419 ACPI_PARSE_OBJECT *Op); 1420 1421 void 1422 AcpiDmClearTempList( 1423 void); 1424 1425 /* 1426 * dmtables 1427 */ 1428 void 1429 AdDisassemblerHeader ( 1430 char *Filename, 1431 UINT8 TableType); 1432 1433 #define ACPI_IS_AML_TABLE 0 1434 #define ACPI_IS_DATA_TABLE 1 1435 1436 1437 /* 1438 * adisasm 1439 */ 1440 ACPI_STATUS 1441 AdAmlDisassemble ( 1442 BOOLEAN OutToFile, 1443 char *Filename, 1444 char *Prefix, 1445 char **OutFilename); 1446 1447 ACPI_STATUS 1448 AdGetLocalTables ( 1449 void); 1450 1451 ACPI_STATUS 1452 AdParseTable ( 1453 ACPI_TABLE_HEADER *Table, 1454 ACPI_OWNER_ID *OwnerId, 1455 BOOLEAN LoadTable, 1456 BOOLEAN External); 1457 1458 ACPI_STATUS 1459 AdDisplayTables ( 1460 char *Filename, 1461 ACPI_TABLE_HEADER *Table); 1462 1463 ACPI_STATUS 1464 AdDisplayStatistics ( 1465 void); 1466 1467 1468 /* 1469 * dmwalk 1470 */ 1471 UINT32 1472 AcpiDmBlockType ( 1473 ACPI_PARSE_OBJECT *Op); 1474 1475 1476 #endif /* __ACDISASM_H__ */ 1477