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_CDAT, 264 ACPI_DMT_CEDT, 265 ACPI_DMT_DMAR, 266 ACPI_DMT_DMAR_SCOPE, 267 ACPI_DMT_EINJACT, 268 ACPI_DMT_EINJINST, 269 ACPI_DMT_ERSTACT, 270 ACPI_DMT_ERSTINST, 271 ACPI_DMT_FADTPM, 272 ACPI_DMT_GTDT, 273 ACPI_DMT_HEST, 274 ACPI_DMT_HESTNTFY, 275 ACPI_DMT_HESTNTYP, 276 ACPI_DMT_HMAT, 277 ACPI_DMT_IORTMEM, 278 ACPI_DMT_IVRS, 279 ACPI_DMT_IVRS_DE, 280 ACPI_DMT_IVRS_UNTERMINATED_STRING, 281 ACPI_DMT_LPIT, 282 ACPI_DMT_MADT, 283 ACPI_DMT_NFIT, 284 ACPI_DMT_NHLT1, 285 ACPI_DMT_NHLT1a, 286 ACPI_DMT_NHLT1b, 287 ACPI_DMT_NHLT1c, 288 ACPI_DMT_NHLT1d, 289 ACPI_DMT_NHLT1e, 290 ACPI_DMT_NHLT1f, 291 ACPI_DMT_PCCT, 292 ACPI_DMT_PHAT, 293 ACPI_DMT_PMTT, 294 ACPI_DMT_PMTT_VENDOR, 295 ACPI_DMT_PPTT, 296 ACPI_DMT_RGRT, 297 ACPI_DMT_SDEI, 298 ACPI_DMT_SDEV, 299 ACPI_DMT_SLIC, 300 ACPI_DMT_SRAT, 301 ACPI_DMT_TPM2, 302 ACPI_DMT_VIOT, 303 ACPI_DMT_WPBT_UNICODE, 304 305 /* Special opcodes */ 306 307 ACPI_DMT_EXTRA_TEXT, 308 ACPI_DMT_EXIT 309 310 } ACPI_ENTRY_TYPES; 311 312 typedef 313 void (*ACPI_DMTABLE_HANDLER) ( 314 ACPI_TABLE_HEADER *Table); 315 316 typedef 317 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) ( 318 void **PFieldList); 319 320 typedef struct acpi_dmtable_data 321 { 322 char *Signature; 323 ACPI_DMTABLE_INFO *TableInfo; 324 ACPI_DMTABLE_HANDLER TableHandler; 325 ACPI_CMTABLE_HANDLER CmTableHandler; 326 const unsigned char *Template; 327 328 } ACPI_DMTABLE_DATA; 329 330 331 typedef struct acpi_op_walk_info 332 { 333 ACPI_WALK_STATE *WalkState; 334 ACPI_PARSE_OBJECT *MappingOp; 335 UINT8 *PreviousAml; 336 UINT8 *StartAml; 337 UINT32 Level; 338 UINT32 LastLevel; 339 UINT32 Count; 340 UINT32 BitOffset; 341 UINT32 Flags; 342 UINT32 AmlOffset; 343 344 } ACPI_OP_WALK_INFO; 345 346 /* 347 * TBD - another copy of this is in asltypes.h, fix 348 */ 349 #ifndef ASL_WALK_CALLBACK_DEFINED 350 typedef 351 ACPI_STATUS (*ASL_WALK_CALLBACK) ( 352 ACPI_PARSE_OBJECT *Op, 353 UINT32 Level, 354 void *Context); 355 #define ASL_WALK_CALLBACK_DEFINED 356 #endif 357 358 typedef 359 void (*ACPI_RESOURCE_HANDLER) ( 360 ACPI_OP_WALK_INFO *Info, 361 AML_RESOURCE *Resource, 362 UINT32 Length, 363 UINT32 Level); 364 365 typedef struct acpi_resource_tag 366 { 367 UINT32 BitIndex; 368 char *Tag; 369 370 } ACPI_RESOURCE_TAG; 371 372 /* Strings used for decoding flags to ASL keywords */ 373 374 extern const char *AcpiGbl_WordDecode[]; 375 extern const char *AcpiGbl_IrqDecode[]; 376 extern const char *AcpiGbl_LockRule[]; 377 extern const char *AcpiGbl_AccessTypes[]; 378 extern const char *AcpiGbl_UpdateRules[]; 379 extern const char *AcpiGbl_MatchOps[]; 380 381 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestHdr[]; 382 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestProcError[]; 383 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestCacheRsrc[]; 384 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestTlbRsrc[]; 385 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGenRsrc[]; 386 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestMemError[]; 387 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestSmmuError[]; 388 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorError[]; 389 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGicError[]; 390 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface[]; 391 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXrupt[]; 392 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAgdi[]; 393 extern ACPI_DMTABLE_INFO AcpiDmTableInfoApmtNode[]; 394 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[]; 395 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[]; 396 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[]; 397 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[]; 398 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[]; 399 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; 400 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; 401 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; 402 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBdat[]; 403 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; 404 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; 405 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[]; 406 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCcel[]; 407 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdatTableHdr[]; 408 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdatHeader[]; 409 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat0[]; 410 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat1[]; 411 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat2[]; 412 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat3[]; 413 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat4[]; 414 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat5[]; 415 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdatEntries[]; 416 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[]; 417 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[]; 418 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1[]; 419 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1_te[]; 420 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[]; 421 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[]; 422 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[]; 423 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt1[]; 424 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2[]; 425 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2a[]; 426 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2[]; 427 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Device[]; 428 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Addr[]; 429 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Size[]; 430 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Name[]; 431 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2OemData[]; 432 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[]; 433 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[]; 434 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[]; 435 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[]; 436 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[]; 437 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[]; 438 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[]; 439 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[]; 440 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[]; 441 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar5[]; 442 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[]; 443 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0[]; 444 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0a[]; 445 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1[]; 446 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1a[]; 447 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm2[]; 448 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[]; 449 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[]; 450 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[]; 451 extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[]; 452 extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[]; 453 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[]; 454 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[]; 455 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[]; 456 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[]; 457 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[]; 458 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt6[]; 459 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt[]; 460 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdtHdr[]; 461 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt0[]; 462 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[]; 463 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[]; 464 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[]; 465 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtHdr[]; 466 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtEl2[]; 467 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0[]; 468 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0a[]; 469 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt1[]; 470 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[]; 471 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[]; 472 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[]; 473 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[]; 474 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[]; 475 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[]; 476 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[]; 477 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[]; 478 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[]; 479 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest10[]; 480 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest11[]; 481 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[]; 482 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[]; 483 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[]; 484 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpitHdr[]; 485 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpit0[]; 486 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpit1[]; 487 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat[]; 488 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat0[]; 489 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1[]; 490 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1a[]; 491 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1b[]; 492 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1c[]; 493 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat2[]; 494 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmat2a[]; 495 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHmatHdr[]; 496 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort[]; 497 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort0[]; 498 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort0a[]; 499 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort1[]; 500 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort1a[]; 501 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort2[]; 502 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3[]; 503 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3a[]; 504 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3b[]; 505 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3c[]; 506 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort4[]; 507 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort5[]; 508 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort6[]; 509 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort6a[]; 510 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortAcc[]; 511 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr[]; 512 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr3[]; 513 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortMap[]; 514 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortPad[]; 515 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; 516 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware1[]; 517 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware23[]; 518 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsMemory[]; 519 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; 520 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; 521 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; 522 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; 523 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsCidString[]; 524 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsCidInteger[]; 525 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHid[]; 526 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsUidString[]; 527 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsUidInteger[]; 528 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHidString[]; 529 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHidInteger[]; 530 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; 531 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; 532 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[]; 533 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[]; 534 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[]; 535 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[]; 536 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[]; 537 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[]; 538 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[]; 539 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[]; 540 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[]; 541 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[]; 542 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[]; 543 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[]; 544 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt13[]; 545 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[]; 546 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[]; 547 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[]; 548 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt17[]; 549 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; 550 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; 551 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; 552 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[]; 553 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[]; 554 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[]; 555 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[]; 556 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[]; 557 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[]; 558 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[]; 559 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[]; 560 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[]; 561 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit[]; 562 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfitHdr[]; 563 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit0[]; 564 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit1[]; 565 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit2[]; 566 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit2a[]; 567 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit3[]; 568 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit3a[]; 569 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit4[]; 570 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit5[]; 571 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6[]; 572 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6a[]; 573 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit7[]; 574 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt[]; 575 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt0[]; 576 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt1[]; 577 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt2[]; 578 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3[]; 579 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3a[]; 580 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt4[]; 581 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5[]; 582 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5a[]; 583 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5b[]; 584 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5c[]; 585 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6[]; 586 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6a[]; 587 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6b[]; 588 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7[]; 589 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7a[]; 590 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7b[]; 591 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt9[]; 592 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhatHdr[]; 593 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0[]; 594 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0a[]; 595 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1[]; 596 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1a[]; 597 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1b[]; 598 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[]; 599 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[]; 600 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[]; 601 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[]; 602 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttVendor[]; 603 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[]; 604 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[]; 605 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcctHdr[]; 606 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[]; 607 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct1[]; 608 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct2[]; 609 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct3[]; 610 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct4[]; 611 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct5[]; 612 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt[]; 613 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt0[]; 614 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0[]; 615 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0a[]; 616 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1[]; 617 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1a[]; 618 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt2[]; 619 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPpttHdr[]; 620 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHdr[]; 621 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtModule[]; 622 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHandler[]; 623 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[]; 624 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt[]; 625 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[]; 626 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; 627 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; 628 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[]; 629 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3ptHdr[]; 630 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt0[]; 631 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt1[]; 632 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[]; 633 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdei[]; 634 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev[]; 635 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevHdr[]; 636 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0[]; 637 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0a[]; 638 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0b[]; 639 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompHdr[]; 640 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompId[]; 641 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompMem[]; 642 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1[]; 643 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1a[]; 644 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1b[]; 645 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic[]; 646 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[]; 647 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[]; 648 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[]; 649 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[]; 650 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[]; 651 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[]; 652 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[]; 653 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[]; 654 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat3[]; 655 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat4[]; 656 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat5[]; 657 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat6[]; 658 extern ACPI_DMTABLE_INFO AcpiDmTableInfoStao[]; 659 extern ACPI_DMTABLE_INFO AcpiDmTableInfoStaoStr[]; 660 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl[]; 661 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl0[]; 662 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaHdr[]; 663 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaClient[]; 664 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaServer[]; 665 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTdel[]; 666 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm2[]; 667 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm2a[]; 668 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm211[]; 669 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm23[]; 670 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm23a[]; 671 extern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[]; 672 extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot[]; 673 extern ACPI_DMTABLE_INFO AcpiDmTableInfoViotHeader[]; 674 extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot1[]; 675 extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot2[]; 676 extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot3[]; 677 extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot4[]; 678 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[]; 679 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[]; 680 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[]; 681 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[]; 682 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[]; 683 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWpbt[]; 684 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWpbt0[]; 685 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWsmt[]; 686 extern ACPI_DMTABLE_INFO AcpiDmTableInfoXenv[]; 687 688 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2]; 689 690 /* 691 * dmtable and ahtable 692 */ 693 extern const ACPI_DMTABLE_DATA AcpiDmTableData[]; 694 extern const AH_TABLE AcpiGbl_SupportedTables[]; 695 696 UINT8 697 AcpiDmGenerateChecksum ( 698 void *Table, 699 UINT32 Length, 700 UINT8 OriginalChecksum); 701 702 const ACPI_DMTABLE_DATA * 703 AcpiDmGetTableData ( 704 char *Signature); 705 706 void 707 AcpiDmDumpDataTable ( 708 ACPI_TABLE_HEADER *Table); 709 710 ACPI_STATUS 711 AcpiDmDumpTable ( 712 UINT32 TableLength, 713 UINT32 TableOffset, 714 void *Table, 715 UINT32 SubtableLength, 716 ACPI_DMTABLE_INFO *Info); 717 718 void 719 AcpiDmLineHeader ( 720 UINT32 Offset, 721 UINT32 ByteLength, 722 char *Name); 723 724 void 725 AcpiDmLineHeader2 ( 726 UINT32 Offset, 727 UINT32 ByteLength, 728 char *Name, 729 UINT32 Value); 730 731 732 /* 733 * dmtbdump 734 */ 735 void 736 AcpiDmDumpBuffer ( 737 void *Table, 738 UINT32 BufferOffset, 739 UINT32 Length, 740 UINT32 AbsoluteOffset, 741 char *Header); 742 743 void 744 AcpiDmDumpUnicode ( 745 void *Table, 746 UINT32 BufferOffset, 747 UINT32 ByteLength); 748 749 void 750 AcpiDmDumpAest ( 751 ACPI_TABLE_HEADER *Table); 752 753 void 754 AcpiDmDumpApmt ( 755 ACPI_TABLE_HEADER *Table); 756 757 void 758 AcpiDmDumpAsf ( 759 ACPI_TABLE_HEADER *Table); 760 761 void 762 AcpiDmDumpCcel ( 763 ACPI_TABLE_HEADER *Table); 764 765 void 766 AcpiDmDumpCdat ( 767 ACPI_TABLE_HEADER *Table); 768 769 void 770 AcpiDmDumpCedt ( 771 ACPI_TABLE_HEADER *Table); 772 773 void 774 AcpiDmDumpCpep ( 775 ACPI_TABLE_HEADER *Table); 776 777 void 778 AcpiDmDumpCsrt ( 779 ACPI_TABLE_HEADER *Table); 780 781 void 782 AcpiDmDumpDbg2 ( 783 ACPI_TABLE_HEADER *Table); 784 785 void 786 AcpiDmDumpDmar ( 787 ACPI_TABLE_HEADER *Table); 788 789 void 790 AcpiDmDumpDrtm ( 791 ACPI_TABLE_HEADER *Table); 792 793 void 794 AcpiDmDumpEinj ( 795 ACPI_TABLE_HEADER *Table); 796 797 void 798 AcpiDmDumpErst ( 799 ACPI_TABLE_HEADER *Table); 800 801 void 802 AcpiDmDumpFadt ( 803 ACPI_TABLE_HEADER *Table); 804 805 void 806 AcpiDmDumpFpdt ( 807 ACPI_TABLE_HEADER *Table); 808 809 void 810 AcpiDmDumpGtdt ( 811 ACPI_TABLE_HEADER *Table); 812 813 void 814 AcpiDmDumpHest ( 815 ACPI_TABLE_HEADER *Table); 816 817 void 818 AcpiDmDumpHmat ( 819 ACPI_TABLE_HEADER *Table); 820 821 void 822 AcpiDmDumpIort ( 823 ACPI_TABLE_HEADER *Table); 824 825 void 826 AcpiDmDumpIvrs ( 827 ACPI_TABLE_HEADER *Table); 828 829 void 830 AcpiDmDumpLpit ( 831 ACPI_TABLE_HEADER *Table); 832 833 void 834 AcpiDmDumpMadt ( 835 ACPI_TABLE_HEADER *Table); 836 837 void 838 AcpiDmDumpMcfg ( 839 ACPI_TABLE_HEADER *Table); 840 841 void 842 AcpiDmDumpMpst ( 843 ACPI_TABLE_HEADER *Table); 844 845 void 846 AcpiDmDumpMsct ( 847 ACPI_TABLE_HEADER *Table); 848 849 void 850 AcpiDmDumpNfit ( 851 ACPI_TABLE_HEADER *Table); 852 853 void 854 AcpiDmDumpNhlt ( 855 ACPI_TABLE_HEADER *Table); 856 857 void 858 AcpiDmDumpPcct ( 859 ACPI_TABLE_HEADER *Table); 860 861 void 862 AcpiDmDumpPdtt ( 863 ACPI_TABLE_HEADER *Table); 864 865 void 866 AcpiDmDumpPhat ( 867 ACPI_TABLE_HEADER *Table); 868 869 void 870 AcpiDmDumpPmtt ( 871 ACPI_TABLE_HEADER *Table); 872 873 void 874 AcpiDmDumpPptt ( 875 ACPI_TABLE_HEADER *Table); 876 877 void 878 AcpiDmDumpPrmt ( 879 ACPI_TABLE_HEADER *Table); 880 881 void 882 AcpiDmDumpRgrt ( 883 ACPI_TABLE_HEADER *Table); 884 885 UINT32 886 AcpiDmDumpRsdp ( 887 ACPI_TABLE_HEADER *Table); 888 889 void 890 AcpiDmDumpRsdt ( 891 ACPI_TABLE_HEADER *Table); 892 893 UINT32 894 AcpiDmDumpS3pt ( 895 ACPI_TABLE_HEADER *Table); 896 897 void 898 AcpiDmDumpSdev ( 899 ACPI_TABLE_HEADER *Table); 900 901 void 902 AcpiDmDumpSlic ( 903 ACPI_TABLE_HEADER *Table); 904 905 void 906 AcpiDmDumpSlit ( 907 ACPI_TABLE_HEADER *Table); 908 909 void 910 AcpiDmDumpSrat ( 911 ACPI_TABLE_HEADER *Table); 912 913 void 914 AcpiDmDumpStao ( 915 ACPI_TABLE_HEADER *Table); 916 917 void 918 AcpiDmDumpSvkl ( 919 ACPI_TABLE_HEADER *Table); 920 921 void 922 AcpiDmDumpTcpa ( 923 ACPI_TABLE_HEADER *Table); 924 925 void 926 AcpiDmDumpTdel ( 927 ACPI_TABLE_HEADER *Table); 928 929 void 930 AcpiDmDumpTpm2 ( 931 ACPI_TABLE_HEADER *Table); 932 933 void 934 AcpiDmDumpViot ( 935 ACPI_TABLE_HEADER *Table); 936 937 void 938 AcpiDmDumpWdat ( 939 ACPI_TABLE_HEADER *Table); 940 941 void 942 AcpiDmDumpWpbt ( 943 ACPI_TABLE_HEADER *Table); 944 945 void 946 AcpiDmDumpXsdt ( 947 ACPI_TABLE_HEADER *Table); 948 949 950 /* 951 * dmwalk 952 */ 953 void 954 AcpiDmDisassemble ( 955 ACPI_WALK_STATE *WalkState, 956 ACPI_PARSE_OBJECT *Origin, 957 UINT32 NumOpcodes); 958 959 void 960 AcpiDmWalkParseTree ( 961 ACPI_PARSE_OBJECT *Op, 962 ASL_WALK_CALLBACK DescendingCallback, 963 ASL_WALK_CALLBACK AscendingCallback, 964 void *Context); 965 966 967 /* 968 * dmopcode 969 */ 970 void 971 AcpiDmDisassembleOneOp ( 972 ACPI_WALK_STATE *WalkState, 973 ACPI_OP_WALK_INFO *Info, 974 ACPI_PARSE_OBJECT *Op); 975 976 UINT32 977 AcpiDmListType ( 978 ACPI_PARSE_OBJECT *Op); 979 980 void 981 AcpiDmMethodFlags ( 982 ACPI_PARSE_OBJECT *Op); 983 984 void 985 AcpiDmDisplayTargetPathname ( 986 ACPI_PARSE_OBJECT *Op); 987 988 void 989 AcpiDmNotifyDescription ( 990 ACPI_PARSE_OBJECT *Op); 991 992 void 993 AcpiDmPredefinedDescription ( 994 ACPI_PARSE_OBJECT *Op); 995 996 void 997 AcpiDmFieldPredefinedDescription ( 998 ACPI_PARSE_OBJECT *Op); 999 1000 void 1001 AcpiDmFieldFlags ( 1002 ACPI_PARSE_OBJECT *Op); 1003 1004 void 1005 AcpiDmAddressSpace ( 1006 UINT8 SpaceId); 1007 1008 void 1009 AcpiDmRegionFlags ( 1010 ACPI_PARSE_OBJECT *Op); 1011 1012 void 1013 AcpiDmMatchOp ( 1014 ACPI_PARSE_OBJECT *Op); 1015 1016 1017 /* 1018 * dmnames 1019 */ 1020 UINT32 1021 AcpiDmDumpName ( 1022 UINT32 Name); 1023 1024 ACPI_STATUS 1025 AcpiPsDisplayObjectPathname ( 1026 ACPI_WALK_STATE *WalkState, 1027 ACPI_PARSE_OBJECT *Op); 1028 1029 void 1030 AcpiDmNamestring ( 1031 char *Name); 1032 1033 1034 /* 1035 * dmbuffer 1036 */ 1037 void 1038 AcpiDmDisasmByteList ( 1039 UINT32 Level, 1040 UINT8 *ByteData, 1041 UINT32 ByteCount); 1042 1043 void 1044 AcpiDmByteList ( 1045 ACPI_OP_WALK_INFO *Info, 1046 ACPI_PARSE_OBJECT *Op); 1047 1048 void 1049 AcpiDmCheckForHardwareId ( 1050 ACPI_PARSE_OBJECT *Op); 1051 1052 void 1053 AcpiDmDecompressEisaId ( 1054 UINT32 EncodedId); 1055 1056 BOOLEAN 1057 AcpiDmIsUuidBuffer ( 1058 ACPI_PARSE_OBJECT *Op); 1059 1060 BOOLEAN 1061 AcpiDmIsUnicodeBuffer ( 1062 ACPI_PARSE_OBJECT *Op); 1063 1064 BOOLEAN 1065 AcpiDmIsStringBuffer ( 1066 ACPI_PARSE_OBJECT *Op); 1067 1068 BOOLEAN 1069 AcpiDmIsPldBuffer ( 1070 ACPI_PARSE_OBJECT *Op); 1071 1072 1073 /* 1074 * dmdeferred 1075 */ 1076 ACPI_STATUS 1077 AcpiDmParseDeferredOps ( 1078 ACPI_PARSE_OBJECT *Root); 1079 1080 1081 /* 1082 * dmextern 1083 */ 1084 ACPI_STATUS 1085 AcpiDmAddToExternalFileList ( 1086 char *PathList); 1087 1088 void 1089 AcpiDmClearExternalFileList ( 1090 void); 1091 1092 void 1093 AcpiDmAddOpToExternalList ( 1094 ACPI_PARSE_OBJECT *Op, 1095 char *Path, 1096 UINT8 Type, 1097 UINT32 Value, 1098 UINT16 Flags); 1099 1100 void 1101 AcpiDmCreateSubobjectForExternal ( 1102 UINT8 Type, 1103 ACPI_NAMESPACE_NODE **Node, 1104 UINT32 Value); 1105 1106 void 1107 AcpiDmAddNodeToExternalList ( 1108 ACPI_NAMESPACE_NODE *Node, 1109 UINT8 Type, 1110 UINT32 Value, 1111 UINT16 Flags); 1112 1113 void 1114 AcpiDmAddExternalListToNamespace ( 1115 void); 1116 1117 void 1118 AcpiDmAddOneExternalToNamespace ( 1119 char *Path, 1120 UINT8 Type, 1121 UINT32 Value); 1122 1123 UINT32 1124 AcpiDmGetUnresolvedExternalMethodCount ( 1125 void); 1126 1127 void 1128 AcpiDmClearExternalList ( 1129 void); 1130 1131 void 1132 AcpiDmEmitExternals ( 1133 void); 1134 1135 void 1136 AcpiDmEmitExternal ( 1137 ACPI_PARSE_OBJECT *NameOp, 1138 ACPI_PARSE_OBJECT *TypeOp); 1139 1140 void 1141 AcpiDmUnresolvedWarning ( 1142 UINT8 Type); 1143 1144 void 1145 AcpiDmGetExternalsFromFile ( 1146 void); 1147 1148 void 1149 AcpiDmMarkExternalConflict ( 1150 ACPI_NAMESPACE_NODE *Node); 1151 1152 1153 /* 1154 * dmresrc 1155 */ 1156 void 1157 AcpiDmDumpInteger8 ( 1158 UINT8 Value, 1159 const char *Name); 1160 1161 void 1162 AcpiDmDumpInteger16 ( 1163 UINT16 Value, 1164 const char *Name); 1165 1166 void 1167 AcpiDmDumpInteger32 ( 1168 UINT32 Value, 1169 const char *Name); 1170 1171 void 1172 AcpiDmDumpInteger64 ( 1173 UINT64 Value, 1174 const char *Name); 1175 1176 void 1177 AcpiDmResourceTemplate ( 1178 ACPI_OP_WALK_INFO *Info, 1179 ACPI_PARSE_OBJECT *Op, 1180 UINT8 *ByteData, 1181 UINT32 ByteCount); 1182 1183 ACPI_STATUS 1184 AcpiDmIsResourceTemplate ( 1185 ACPI_WALK_STATE *WalkState, 1186 ACPI_PARSE_OBJECT *Op); 1187 1188 void 1189 AcpiDmBitList ( 1190 UINT16 Mask); 1191 1192 void 1193 AcpiDmDescriptorName ( 1194 void); 1195 1196 1197 /* 1198 * dmresrcl 1199 */ 1200 void 1201 AcpiDmWordDescriptor ( 1202 ACPI_OP_WALK_INFO *Info, 1203 AML_RESOURCE *Resource, 1204 UINT32 Length, 1205 UINT32 Level); 1206 1207 void 1208 AcpiDmDwordDescriptor ( 1209 ACPI_OP_WALK_INFO *Info, 1210 AML_RESOURCE *Resource, 1211 UINT32 Length, 1212 UINT32 Level); 1213 1214 void 1215 AcpiDmExtendedDescriptor ( 1216 ACPI_OP_WALK_INFO *Info, 1217 AML_RESOURCE *Resource, 1218 UINT32 Length, 1219 UINT32 Level); 1220 1221 void 1222 AcpiDmQwordDescriptor ( 1223 ACPI_OP_WALK_INFO *Info, 1224 AML_RESOURCE *Resource, 1225 UINT32 Length, 1226 UINT32 Level); 1227 1228 void 1229 AcpiDmMemory24Descriptor ( 1230 ACPI_OP_WALK_INFO *Info, 1231 AML_RESOURCE *Resource, 1232 UINT32 Length, 1233 UINT32 Level); 1234 1235 void 1236 AcpiDmMemory32Descriptor ( 1237 ACPI_OP_WALK_INFO *Info, 1238 AML_RESOURCE *Resource, 1239 UINT32 Length, 1240 UINT32 Level); 1241 1242 void 1243 AcpiDmFixedMemory32Descriptor ( 1244 ACPI_OP_WALK_INFO *Info, 1245 AML_RESOURCE *Resource, 1246 UINT32 Length, 1247 UINT32 Level); 1248 1249 void 1250 AcpiDmGenericRegisterDescriptor ( 1251 ACPI_OP_WALK_INFO *Info, 1252 AML_RESOURCE *Resource, 1253 UINT32 Length, 1254 UINT32 Level); 1255 1256 void 1257 AcpiDmInterruptDescriptor ( 1258 ACPI_OP_WALK_INFO *Info, 1259 AML_RESOURCE *Resource, 1260 UINT32 Length, 1261 UINT32 Level); 1262 1263 void 1264 AcpiDmVendorLargeDescriptor ( 1265 ACPI_OP_WALK_INFO *Info, 1266 AML_RESOURCE *Resource, 1267 UINT32 Length, 1268 UINT32 Level); 1269 1270 void 1271 AcpiDmGpioDescriptor ( 1272 ACPI_OP_WALK_INFO *Info, 1273 AML_RESOURCE *Resource, 1274 UINT32 Length, 1275 UINT32 Level); 1276 1277 void 1278 AcpiDmPinFunctionDescriptor ( 1279 ACPI_OP_WALK_INFO *Info, 1280 AML_RESOURCE *Resource, 1281 UINT32 Length, 1282 UINT32 Level); 1283 1284 void 1285 AcpiDmPinConfigDescriptor ( 1286 ACPI_OP_WALK_INFO *Info, 1287 AML_RESOURCE *Resource, 1288 UINT32 Length, 1289 UINT32 Level); 1290 1291 void 1292 AcpiDmPinGroupDescriptor ( 1293 ACPI_OP_WALK_INFO *Info, 1294 AML_RESOURCE *Resource, 1295 UINT32 Length, 1296 UINT32 Level); 1297 1298 void 1299 AcpiDmPinGroupFunctionDescriptor ( 1300 ACPI_OP_WALK_INFO *Info, 1301 AML_RESOURCE *Resource, 1302 UINT32 Length, 1303 UINT32 Level); 1304 1305 void 1306 AcpiDmPinGroupConfigDescriptor ( 1307 ACPI_OP_WALK_INFO *Info, 1308 AML_RESOURCE *Resource, 1309 UINT32 Length, 1310 UINT32 Level); 1311 1312 void 1313 AcpiDmSerialBusDescriptor ( 1314 ACPI_OP_WALK_INFO *Info, 1315 AML_RESOURCE *Resource, 1316 UINT32 Length, 1317 UINT32 Level); 1318 1319 void 1320 AcpiDmVendorCommon ( 1321 const char *Name, 1322 UINT8 *ByteData, 1323 UINT32 Length, 1324 UINT32 Level); 1325 1326 1327 /* 1328 * dmresrcs 1329 */ 1330 void 1331 AcpiDmIrqDescriptor ( 1332 ACPI_OP_WALK_INFO *Info, 1333 AML_RESOURCE *Resource, 1334 UINT32 Length, 1335 UINT32 Level); 1336 1337 void 1338 AcpiDmDmaDescriptor ( 1339 ACPI_OP_WALK_INFO *Info, 1340 AML_RESOURCE *Resource, 1341 UINT32 Length, 1342 UINT32 Level); 1343 1344 void 1345 AcpiDmFixedDmaDescriptor ( 1346 ACPI_OP_WALK_INFO *Info, 1347 AML_RESOURCE *Resource, 1348 UINT32 Length, 1349 UINT32 Level); 1350 1351 void 1352 AcpiDmIoDescriptor ( 1353 ACPI_OP_WALK_INFO *Info, 1354 AML_RESOURCE *Resource, 1355 UINT32 Length, 1356 UINT32 Level); 1357 1358 void 1359 AcpiDmFixedIoDescriptor ( 1360 ACPI_OP_WALK_INFO *Info, 1361 AML_RESOURCE *Resource, 1362 UINT32 Length, 1363 UINT32 Level); 1364 1365 void 1366 AcpiDmStartDependentDescriptor ( 1367 ACPI_OP_WALK_INFO *Info, 1368 AML_RESOURCE *Resource, 1369 UINT32 Length, 1370 UINT32 Level); 1371 1372 void 1373 AcpiDmEndDependentDescriptor ( 1374 ACPI_OP_WALK_INFO *Info, 1375 AML_RESOURCE *Resource, 1376 UINT32 Length, 1377 UINT32 Level); 1378 1379 void 1380 AcpiDmVendorSmallDescriptor ( 1381 ACPI_OP_WALK_INFO *Info, 1382 AML_RESOURCE *Resource, 1383 UINT32 Length, 1384 UINT32 Level); 1385 1386 1387 /* 1388 * dmutils 1389 */ 1390 void 1391 AcpiDmDecodeAttribute ( 1392 UINT8 Attribute); 1393 1394 void 1395 AcpiDmIndent ( 1396 UINT32 Level); 1397 1398 BOOLEAN 1399 AcpiDmCommaIfListMember ( 1400 ACPI_PARSE_OBJECT *Op); 1401 1402 void 1403 AcpiDmCommaIfFieldMember ( 1404 ACPI_PARSE_OBJECT *Op); 1405 1406 1407 /* 1408 * dmrestag 1409 */ 1410 void 1411 AcpiDmFindResources ( 1412 ACPI_PARSE_OBJECT *Root); 1413 1414 void 1415 AcpiDmCheckResourceReference ( 1416 ACPI_PARSE_OBJECT *Op, 1417 ACPI_WALK_STATE *WalkState); 1418 1419 1420 /* 1421 * dmcstyle 1422 */ 1423 BOOLEAN 1424 AcpiDmCheckForSymbolicOpcode ( 1425 ACPI_PARSE_OBJECT *Op, 1426 ACPI_OP_WALK_INFO *Info); 1427 1428 void 1429 AcpiDmCloseOperator ( 1430 ACPI_PARSE_OBJECT *Op); 1431 1432 1433 /* 1434 * dmtables 1435 */ 1436 ACPI_STATUS 1437 AcpiDmProcessSwitch ( 1438 ACPI_PARSE_OBJECT *Op); 1439 1440 void 1441 AcpiDmClearTempList( 1442 void); 1443 1444 /* 1445 * dmtables 1446 */ 1447 void 1448 AdDisassemblerHeader ( 1449 char *Filename, 1450 UINT8 TableType); 1451 1452 #define ACPI_IS_AML_TABLE 0 1453 #define ACPI_IS_DATA_TABLE 1 1454 1455 1456 /* 1457 * adisasm 1458 */ 1459 ACPI_STATUS 1460 AdAmlDisassemble ( 1461 BOOLEAN OutToFile, 1462 char *Filename, 1463 char *Prefix, 1464 char **OutFilename); 1465 1466 ACPI_STATUS 1467 AdGetLocalTables ( 1468 void); 1469 1470 ACPI_STATUS 1471 AdParseTable ( 1472 ACPI_TABLE_HEADER *Table, 1473 ACPI_OWNER_ID *OwnerId, 1474 BOOLEAN LoadTable, 1475 BOOLEAN External); 1476 1477 ACPI_STATUS 1478 AdDisplayTables ( 1479 char *Filename, 1480 ACPI_TABLE_HEADER *Table); 1481 1482 ACPI_STATUS 1483 AdDisplayStatistics ( 1484 void); 1485 1486 1487 /* 1488 * dmwalk 1489 */ 1490 UINT32 1491 AcpiDmBlockType ( 1492 ACPI_PARSE_OBJECT *Op); 1493 1494 1495 #endif /* __ACDISASM_H__ */ 1496