acdisasm.h revision 228110
1100966Siwasaki/****************************************************************************** 2100966Siwasaki * 3100966Siwasaki * Name: acdisasm.h - AML disassembler 4100966Siwasaki * 5100966Siwasaki *****************************************************************************/ 6100966Siwasaki 7217365Sjkim/* 8217365Sjkim * Copyright (C) 2000 - 2011, Intel Corp. 9100966Siwasaki * All rights reserved. 10100966Siwasaki * 11217365Sjkim * Redistribution and use in source and binary forms, with or without 12217365Sjkim * modification, are permitted provided that the following conditions 13217365Sjkim * are met: 14217365Sjkim * 1. Redistributions of source code must retain the above copyright 15217365Sjkim * notice, this list of conditions, and the following disclaimer, 16217365Sjkim * without modification. 17217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18217365Sjkim * substantially similar to the "NO WARRANTY" disclaimer below 19217365Sjkim * ("Disclaimer") and any redistribution must be conditioned upon 20217365Sjkim * including a substantially similar Disclaimer requirement for further 21217365Sjkim * binary redistribution. 22217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names 23217365Sjkim * of any contributors may be used to endorse or promote products derived 24217365Sjkim * from this software without specific prior written permission. 25100966Siwasaki * 26217365Sjkim * Alternatively, this software may be distributed under the terms of the 27217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free 28217365Sjkim * Software Foundation. 29100966Siwasaki * 30217365Sjkim * NO WARRANTY 31217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41217365Sjkim * POSSIBILITY OF SUCH DAMAGES. 42217365Sjkim */ 43100966Siwasaki 44100966Siwasaki#ifndef __ACDISASM_H__ 45100966Siwasaki#define __ACDISASM_H__ 46100966Siwasaki 47193341Sjkim#include <contrib/dev/acpica/include/amlresrc.h> 48100966Siwasaki 49100966Siwasaki 50100966Siwasaki#define BLOCK_NONE 0 51100966Siwasaki#define BLOCK_PAREN 1 52100966Siwasaki#define BLOCK_BRACE 2 53100966Siwasaki#define BLOCK_COMMA_LIST 4 54167802Sjkim#define ACPI_DEFAULT_RESNAME *(UINT32 *) "__RD" 55100966Siwasaki 56217365Sjkim/* 57217365Sjkim * Raw table data header. Used by disassembler and data table compiler. 58217365Sjkim * Do not change. 59217365Sjkim */ 60217365Sjkim#define ACPI_RAW_TABLE_DATA_HEADER "Raw Table Data" 61128212Snjl 62217365Sjkim 63167802Sjkimtypedef const struct acpi_dmtable_info 64167802Sjkim{ 65167802Sjkim UINT8 Opcode; 66167802Sjkim UINT8 Offset; 67167802Sjkim char *Name; 68209746Sjkim UINT8 Flags; 69100966Siwasaki 70167802Sjkim} ACPI_DMTABLE_INFO; 71100966Siwasaki 72209746Sjkim#define DT_LENGTH 0x01 /* Field is a subtable length */ 73209746Sjkim#define DT_FLAG 0x02 /* Field is a flag value */ 74209746Sjkim#define DT_NON_ZERO 0x04 /* Field must be non-zero */ 75209746Sjkim 76209746Sjkim/* TBD: Not used at this time */ 77209746Sjkim 78209746Sjkim#define DT_OPTIONAL 0x08 79209746Sjkim#define DT_COUNT 0x10 80209746Sjkim 81167802Sjkim/* 82167802Sjkim * Values for Opcode above. 83228110Sjkim * Note: 0-7 must not change, they are used as a flag shift value. Other 84228110Sjkim * than those, new values can be added wherever appropriate. 85167802Sjkim */ 86228110Sjkimtypedef enum 87228110Sjkim{ 88228110Sjkim /* Simple Data Types */ 89167802Sjkim 90228110Sjkim ACPI_DMT_FLAG0 = 0, 91228110Sjkim ACPI_DMT_FLAG1 = 1, 92228110Sjkim ACPI_DMT_FLAG2 = 2, 93228110Sjkim ACPI_DMT_FLAG3 = 3, 94228110Sjkim ACPI_DMT_FLAG4 = 4, 95228110Sjkim ACPI_DMT_FLAG5 = 5, 96228110Sjkim ACPI_DMT_FLAG6 = 6, 97228110Sjkim ACPI_DMT_FLAG7 = 7, 98228110Sjkim ACPI_DMT_FLAGS0, 99228110Sjkim ACPI_DMT_FLAGS1, 100228110Sjkim ACPI_DMT_FLAGS2, 101228110Sjkim ACPI_DMT_FLAGS4, 102228110Sjkim ACPI_DMT_UINT8, 103228110Sjkim ACPI_DMT_UINT16, 104228110Sjkim ACPI_DMT_UINT24, 105228110Sjkim ACPI_DMT_UINT32, 106228110Sjkim ACPI_DMT_UINT40, 107228110Sjkim ACPI_DMT_UINT48, 108228110Sjkim ACPI_DMT_UINT56, 109228110Sjkim ACPI_DMT_UINT64, 110228110Sjkim ACPI_DMT_BUF7, 111228110Sjkim ACPI_DMT_BUF16, 112228110Sjkim ACPI_DMT_BUF128, 113228110Sjkim ACPI_DMT_SIG, 114228110Sjkim ACPI_DMT_STRING, 115228110Sjkim ACPI_DMT_NAME4, 116228110Sjkim ACPI_DMT_NAME6, 117228110Sjkim ACPI_DMT_NAME8, 118228110Sjkim 119228110Sjkim /* Types that are decoded to strings and miscellaneous */ 120228110Sjkim 121228110Sjkim ACPI_DMT_ACCWIDTH, 122228110Sjkim ACPI_DMT_CHKSUM, 123228110Sjkim ACPI_DMT_GAS, 124228110Sjkim ACPI_DMT_SPACEID, 125228110Sjkim ACPI_DMT_UNICODE, 126228110Sjkim ACPI_DMT_UUID, 127228110Sjkim 128228110Sjkim /* Types used only for the Data Table Compiler */ 129228110Sjkim 130228110Sjkim ACPI_DMT_BUFFER, 131228110Sjkim ACPI_DMT_DEVICE_PATH, 132228110Sjkim ACPI_DMT_LABEL, 133228110Sjkim ACPI_DMT_PCI_PATH, 134228110Sjkim 135228110Sjkim /* Types that are specific to particular ACPI tables */ 136228110Sjkim 137228110Sjkim ACPI_DMT_ASF, 138228110Sjkim ACPI_DMT_DMAR, 139228110Sjkim ACPI_DMT_EINJACT, 140228110Sjkim ACPI_DMT_EINJINST, 141228110Sjkim ACPI_DMT_ERSTACT, 142228110Sjkim ACPI_DMT_ERSTINST, 143228110Sjkim ACPI_DMT_FADTPM, 144228110Sjkim ACPI_DMT_HEST, 145228110Sjkim ACPI_DMT_HESTNTFY, 146228110Sjkim ACPI_DMT_HESTNTYP, 147228110Sjkim ACPI_DMT_IVRS, 148228110Sjkim ACPI_DMT_MADT, 149228110Sjkim ACPI_DMT_PMTT, 150228110Sjkim ACPI_DMT_SLIC, 151228110Sjkim ACPI_DMT_SRAT, 152228110Sjkim 153228110Sjkim /* Special opcodes */ 154228110Sjkim 155228110Sjkim ACPI_DMT_EXTRA_TEXT, 156228110Sjkim ACPI_DMT_EXIT 157228110Sjkim 158228110Sjkim} ACPI_ENTRY_TYPES; 159228110Sjkim 160167802Sjkimtypedef 161193267Sjkimvoid (*ACPI_DMTABLE_HANDLER) ( 162167802Sjkim ACPI_TABLE_HEADER *Table); 163167802Sjkim 164209746Sjkimtypedef 165209746SjkimACPI_STATUS (*ACPI_CMTABLE_HANDLER) ( 166209746Sjkim void **PFieldList); 167209746Sjkim 168167802Sjkimtypedef struct acpi_dmtable_data 169167802Sjkim{ 170167802Sjkim char *Signature; 171193267Sjkim ACPI_DMTABLE_INFO *TableInfo; 172193267Sjkim ACPI_DMTABLE_HANDLER TableHandler; 173209746Sjkim ACPI_CMTABLE_HANDLER CmTableHandler; 174209746Sjkim const unsigned char *Template; 175167802Sjkim char *Name; 176167802Sjkim 177167802Sjkim} ACPI_DMTABLE_DATA; 178167802Sjkim 179167802Sjkim 180100966Siwasakitypedef struct acpi_op_walk_info 181100966Siwasaki{ 182100966Siwasaki UINT32 Level; 183167802Sjkim UINT32 LastLevel; 184167802Sjkim UINT32 Count; 185100966Siwasaki UINT32 BitOffset; 186167802Sjkim UINT32 Flags; 187151937Sjkim ACPI_WALK_STATE *WalkState; 188100966Siwasaki 189100966Siwasaki} ACPI_OP_WALK_INFO; 190100966Siwasaki 191209746Sjkim/* 192209746Sjkim * TBD - another copy of this is in asltypes.h, fix 193209746Sjkim */ 194209746Sjkim#ifndef ASL_WALK_CALLBACK_DEFINED 195100966Siwasakitypedef 196100966SiwasakiACPI_STATUS (*ASL_WALK_CALLBACK) ( 197100966Siwasaki ACPI_PARSE_OBJECT *Op, 198100966Siwasaki UINT32 Level, 199100966Siwasaki void *Context); 200209746Sjkim#define ASL_WALK_CALLBACK_DEFINED 201209746Sjkim#endif 202100966Siwasaki 203228110Sjkimtypedef 204228110Sjkimvoid (*ACPI_RESOURCE_HANDLER) ( 205228110Sjkim AML_RESOURCE *Resource, 206228110Sjkim UINT32 Length, 207228110Sjkim UINT32 Level); 208209746Sjkim 209167802Sjkimtypedef struct acpi_resource_tag 210167802Sjkim{ 211167802Sjkim UINT32 BitIndex; 212167802Sjkim char *Tag; 213100966Siwasaki 214167802Sjkim} ACPI_RESOURCE_TAG; 215167802Sjkim 216167802Sjkim/* Strings used for decoding flags to ASL keywords */ 217167802Sjkim 218167802Sjkimextern const char *AcpiGbl_WordDecode[]; 219167802Sjkimextern const char *AcpiGbl_IrqDecode[]; 220167802Sjkimextern const char *AcpiGbl_LockRule[]; 221167802Sjkimextern const char *AcpiGbl_AccessTypes[]; 222167802Sjkimextern const char *AcpiGbl_UpdateRules[]; 223167802Sjkimextern const char *AcpiGbl_MatchOps[]; 224167802Sjkim 225167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[]; 226167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[]; 227167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[]; 228167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[]; 229167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[]; 230167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; 231167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; 232167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; 233167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; 234193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; 235228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[]; 236167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[]; 237167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[]; 238167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[]; 239167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[]; 240167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[]; 241167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[]; 242167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[]; 243167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[]; 244193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[]; 245197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[]; 246228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[]; 247167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[]; 248193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[]; 249193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[]; 250193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[]; 251209746Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[]; 252167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[]; 253167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[]; 254167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[]; 255193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[]; 256228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[]; 257228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt[]; 258228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdtHdr[]; 259228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt0[]; 260228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[]; 261167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[]; 262228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[]; 263167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[]; 264193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[]; 265193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[]; 266193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[]; 267197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[]; 268193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[]; 269193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[]; 270193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[]; 271193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[]; 272193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[]; 273197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[]; 274167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[]; 275197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; 276197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[]; 277197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[]; 278197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; 279197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; 280197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; 281197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; 282197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[]; 283167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; 284167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; 285167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[]; 286167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[]; 287167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[]; 288167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[]; 289167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[]; 290167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[]; 291167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[]; 292167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[]; 293193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[]; 294193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[]; 295228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[]; 296228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[]; 297167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; 298167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; 299167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; 300204773Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[]; 301228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[]; 302228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[]; 303228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[]; 304228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[]; 305228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[]; 306228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[]; 307197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[]; 308197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[]; 309228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[]; 310228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[]; 311228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[]; 312228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1a[]; 313228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[]; 314228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[]; 315228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[]; 316228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[]; 317167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; 318167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; 319228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[]; 320228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoS3ptHdr[]; 321228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt0[]; 322228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt1[]; 323167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[]; 324219707Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSlicHdr[]; 325219707Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic0[]; 326219707Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic1[]; 327167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[]; 328167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[]; 329167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[]; 330167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[]; 331193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[]; 332167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[]; 333167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[]; 334193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[]; 335167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpa[]; 336197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[]; 337197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[]; 338197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[]; 339197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[]; 340209746Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[]; 341167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[]; 342167802Sjkim 343217365Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2]; 344167802Sjkim 345217365Sjkim 346100966Siwasaki/* 347167802Sjkim * dmtable 348167802Sjkim */ 349209746Sjkimextern ACPI_DMTABLE_DATA AcpiDmTableData[]; 350209746Sjkim 351209746SjkimUINT8 352209746SjkimAcpiDmGenerateChecksum ( 353209746Sjkim void *Table, 354209746Sjkim UINT32 Length, 355209746Sjkim UINT8 OriginalChecksum); 356209746Sjkim 357209746SjkimACPI_DMTABLE_DATA * 358209746SjkimAcpiDmGetTableData ( 359209746Sjkim char *Signature); 360209746Sjkim 361167802Sjkimvoid 362167802SjkimAcpiDmDumpDataTable ( 363167802Sjkim ACPI_TABLE_HEADER *Table); 364167802Sjkim 365193267SjkimACPI_STATUS 366167802SjkimAcpiDmDumpTable ( 367167802Sjkim UINT32 TableLength, 368167802Sjkim UINT32 TableOffset, 369167802Sjkim void *Table, 370167802Sjkim UINT32 SubTableLength, 371167802Sjkim ACPI_DMTABLE_INFO *Info); 372167802Sjkim 373167802Sjkimvoid 374167802SjkimAcpiDmLineHeader ( 375167802Sjkim UINT32 Offset, 376167802Sjkim UINT32 ByteLength, 377167802Sjkim char *Name); 378167802Sjkim 379167802Sjkimvoid 380167802SjkimAcpiDmLineHeader2 ( 381167802Sjkim UINT32 Offset, 382167802Sjkim UINT32 ByteLength, 383167802Sjkim char *Name, 384167802Sjkim UINT32 Value); 385167802Sjkim 386167802Sjkim 387167802Sjkim/* 388167802Sjkim * dmtbdump 389167802Sjkim */ 390167802Sjkimvoid 391167802SjkimAcpiDmDumpAsf ( 392167802Sjkim ACPI_TABLE_HEADER *Table); 393167802Sjkim 394167802Sjkimvoid 395167802SjkimAcpiDmDumpCpep ( 396167802Sjkim ACPI_TABLE_HEADER *Table); 397167802Sjkim 398167802Sjkimvoid 399167802SjkimAcpiDmDumpDmar ( 400167802Sjkim ACPI_TABLE_HEADER *Table); 401167802Sjkim 402167802Sjkimvoid 403193267SjkimAcpiDmDumpEinj ( 404193267Sjkim ACPI_TABLE_HEADER *Table); 405193267Sjkim 406193267Sjkimvoid 407193267SjkimAcpiDmDumpErst ( 408193267Sjkim ACPI_TABLE_HEADER *Table); 409193267Sjkim 410193267Sjkimvoid 411167802SjkimAcpiDmDumpFadt ( 412167802Sjkim ACPI_TABLE_HEADER *Table); 413167802Sjkim 414167802Sjkimvoid 415228110SjkimAcpiDmDumpFpdt ( 416228110Sjkim ACPI_TABLE_HEADER *Table); 417228110Sjkim 418228110Sjkimvoid 419193267SjkimAcpiDmDumpHest ( 420167802Sjkim ACPI_TABLE_HEADER *Table); 421167802Sjkim 422167802Sjkimvoid 423197104SjkimAcpiDmDumpIvrs ( 424197104Sjkim ACPI_TABLE_HEADER *Table); 425197104Sjkim 426197104Sjkimvoid 427228110SjkimAcpiDmDumpMadt ( 428228110Sjkim ACPI_TABLE_HEADER *Table); 429228110Sjkim 430228110Sjkimvoid 431167802SjkimAcpiDmDumpMcfg ( 432167802Sjkim ACPI_TABLE_HEADER *Table); 433167802Sjkim 434167802Sjkimvoid 435228110SjkimAcpiDmDumpMpst ( 436167802Sjkim ACPI_TABLE_HEADER *Table); 437167802Sjkim 438197104Sjkimvoid 439197104SjkimAcpiDmDumpMsct ( 440197104Sjkim ACPI_TABLE_HEADER *Table); 441197104Sjkim 442228110Sjkimvoid 443228110SjkimAcpiDmDumpPcct ( 444228110Sjkim ACPI_TABLE_HEADER *Table); 445228110Sjkim 446228110Sjkimvoid 447228110SjkimAcpiDmDumpPmtt ( 448228110Sjkim ACPI_TABLE_HEADER *Table); 449228110Sjkim 450167802SjkimUINT32 451167802SjkimAcpiDmDumpRsdp ( 452167802Sjkim ACPI_TABLE_HEADER *Table); 453167802Sjkim 454167802Sjkimvoid 455167802SjkimAcpiDmDumpRsdt ( 456167802Sjkim ACPI_TABLE_HEADER *Table); 457167802Sjkim 458228110SjkimUINT32 459228110SjkimAcpiDmDumpS3pt ( 460228110Sjkim ACPI_TABLE_HEADER *Table); 461228110Sjkim 462167802Sjkimvoid 463219707SjkimAcpiDmDumpSlic ( 464219707Sjkim ACPI_TABLE_HEADER *Table); 465219707Sjkim 466219707Sjkimvoid 467167802SjkimAcpiDmDumpSlit ( 468167802Sjkim ACPI_TABLE_HEADER *Table); 469167802Sjkim 470167802Sjkimvoid 471193267SjkimAcpiDmDumpSrat ( 472193267Sjkim ACPI_TABLE_HEADER *Table); 473193267Sjkim 474193267Sjkimvoid 475197104SjkimAcpiDmDumpWdat ( 476197104Sjkim ACPI_TABLE_HEADER *Table); 477197104Sjkim 478197104Sjkimvoid 479167802SjkimAcpiDmDumpXsdt ( 480167802Sjkim ACPI_TABLE_HEADER *Table); 481167802Sjkim 482167802Sjkim 483167802Sjkim/* 484100966Siwasaki * dmwalk 485100966Siwasaki */ 486100966Siwasakivoid 487100966SiwasakiAcpiDmDisassemble ( 488100966Siwasaki ACPI_WALK_STATE *WalkState, 489100966Siwasaki ACPI_PARSE_OBJECT *Origin, 490100966Siwasaki UINT32 NumOpcodes); 491100966Siwasaki 492167802Sjkimvoid 493167802SjkimAcpiDmWalkParseTree ( 494167802Sjkim ACPI_PARSE_OBJECT *Op, 495167802Sjkim ASL_WALK_CALLBACK DescendingCallback, 496167802Sjkim ASL_WALK_CALLBACK AscendingCallback, 497167802Sjkim void *Context); 498100966Siwasaki 499167802Sjkim 500151937Sjkim/* 501151937Sjkim * dmopcode 502151937Sjkim */ 503100966Siwasakivoid 504100966SiwasakiAcpiDmDisassembleOneOp ( 505100966Siwasaki ACPI_WALK_STATE *WalkState, 506102550Siwasaki ACPI_OP_WALK_INFO *Info, 507100966Siwasaki ACPI_PARSE_OBJECT *Op); 508100966Siwasaki 509100966Siwasakivoid 510100966SiwasakiAcpiDmDecodeInternalObject ( 511100966Siwasaki ACPI_OPERAND_OBJECT *ObjDesc); 512100966Siwasaki 513100966SiwasakiUINT32 514100966SiwasakiAcpiDmListType ( 515100966Siwasaki ACPI_PARSE_OBJECT *Op); 516100966Siwasaki 517100966Siwasakivoid 518100966SiwasakiAcpiDmMethodFlags ( 519100966Siwasaki ACPI_PARSE_OBJECT *Op); 520100966Siwasaki 521100966Siwasakivoid 522100966SiwasakiAcpiDmFieldFlags ( 523100966Siwasaki ACPI_PARSE_OBJECT *Op); 524100966Siwasaki 525100966Siwasakivoid 526100966SiwasakiAcpiDmAddressSpace ( 527100966Siwasaki UINT8 SpaceId); 528100966Siwasaki 529100966Siwasakivoid 530100966SiwasakiAcpiDmRegionFlags ( 531100966Siwasaki ACPI_PARSE_OBJECT *Op); 532100966Siwasaki 533100966Siwasakivoid 534100966SiwasakiAcpiDmMatchOp ( 535100966Siwasaki ACPI_PARSE_OBJECT *Op); 536100966Siwasaki 537100966Siwasaki 538102550Siwasaki/* 539151937Sjkim * dmnames 540117521Snjl */ 541151937SjkimUINT32 542151937SjkimAcpiDmDumpName ( 543193267Sjkim UINT32 Name); 544117521Snjl 545151937SjkimACPI_STATUS 546151937SjkimAcpiPsDisplayObjectPathname ( 547151937Sjkim ACPI_WALK_STATE *WalkState, 548151937Sjkim ACPI_PARSE_OBJECT *Op); 549151937Sjkim 550117521Snjlvoid 551151937SjkimAcpiDmNamestring ( 552151937Sjkim char *Name); 553117521Snjl 554151937Sjkim 555151937Sjkim/* 556151937Sjkim * dmobject 557151937Sjkim */ 558117521Snjlvoid 559117521SnjlAcpiDmDisplayInternalObject ( 560117521Snjl ACPI_OPERAND_OBJECT *ObjDesc, 561117521Snjl ACPI_WALK_STATE *WalkState); 562117521Snjl 563117521Snjlvoid 564117521SnjlAcpiDmDisplayArguments ( 565117521Snjl ACPI_WALK_STATE *WalkState); 566117521Snjl 567117521Snjlvoid 568117521SnjlAcpiDmDisplayLocals ( 569117521Snjl ACPI_WALK_STATE *WalkState); 570117521Snjl 571117521Snjlvoid 572117521SnjlAcpiDmDumpMethodInfo ( 573117521Snjl ACPI_STATUS Status, 574117521Snjl ACPI_WALK_STATE *WalkState, 575117521Snjl ACPI_PARSE_OBJECT *Op); 576117521Snjl 577117521Snjl 578117521Snjl/* 579100966Siwasaki * dmbuffer 580100966Siwasaki */ 581151937Sjkimvoid 582151937SjkimAcpiDmDisasmByteList ( 583151937Sjkim UINT32 Level, 584151937Sjkim UINT8 *ByteData, 585151937Sjkim UINT32 ByteCount); 586100966Siwasaki 587100966Siwasakivoid 588151937SjkimAcpiDmByteList ( 589151937Sjkim ACPI_OP_WALK_INFO *Info, 590100966Siwasaki ACPI_PARSE_OBJECT *Op); 591100966Siwasaki 592100966Siwasakivoid 593151937SjkimAcpiDmIsEisaId ( 594151937Sjkim ACPI_PARSE_OBJECT *Op); 595151937Sjkim 596151937Sjkimvoid 597100966SiwasakiAcpiDmEisaId ( 598100966Siwasaki UINT32 EncodedId); 599100966Siwasaki 600100966SiwasakiBOOLEAN 601100966SiwasakiAcpiDmIsUnicodeBuffer ( 602100966Siwasaki ACPI_PARSE_OBJECT *Op); 603100966Siwasaki 604100966SiwasakiBOOLEAN 605100966SiwasakiAcpiDmIsStringBuffer ( 606100966Siwasaki ACPI_PARSE_OBJECT *Op); 607100966Siwasaki 608100966Siwasaki 609100966Siwasaki/* 610198237Sjkim * dmextern 611198237Sjkim */ 612210976Sjkim 613210976SjkimACPI_STATUS 614210976SjkimAcpiDmAddToExternalFileList ( 615210976Sjkim char *PathList); 616210976Sjkim 617198237Sjkimvoid 618210976SjkimAcpiDmClearExternalFileList ( 619210976Sjkim void); 620210976Sjkim 621210976Sjkimvoid 622198237SjkimAcpiDmAddToExternalList ( 623198237Sjkim ACPI_PARSE_OBJECT *Op, 624198237Sjkim char *Path, 625198237Sjkim UINT8 Type, 626198237Sjkim UINT32 Value); 627198237Sjkim 628198237Sjkimvoid 629198237SjkimAcpiDmAddExternalsToNamespace ( 630198237Sjkim void); 631198237Sjkim 632198237SjkimUINT32 633198237SjkimAcpiDmGetExternalMethodCount ( 634198237Sjkim void); 635198237Sjkim 636198237Sjkimvoid 637198237SjkimAcpiDmClearExternalList ( 638198237Sjkim void); 639198237Sjkim 640198237Sjkimvoid 641198237SjkimAcpiDmEmitExternals ( 642198237Sjkim void); 643198237Sjkim 644198237Sjkim 645198237Sjkim/* 646100966Siwasaki * dmresrc 647100966Siwasaki */ 648151937Sjkimvoid 649151937SjkimAcpiDmDumpInteger8 ( 650151937Sjkim UINT8 Value, 651151937Sjkim char *Name); 652100966Siwasaki 653100966Siwasakivoid 654151937SjkimAcpiDmDumpInteger16 ( 655151937Sjkim UINT16 Value, 656151937Sjkim char *Name); 657100966Siwasaki 658100966Siwasakivoid 659151937SjkimAcpiDmDumpInteger32 ( 660151937Sjkim UINT32 Value, 661151937Sjkim char *Name); 662100966Siwasaki 663100966Siwasakivoid 664151937SjkimAcpiDmDumpInteger64 ( 665151937Sjkim UINT64 Value, 666151937Sjkim char *Name); 667151937Sjkim 668151937Sjkimvoid 669151937SjkimAcpiDmResourceTemplate ( 670102550Siwasaki ACPI_OP_WALK_INFO *Info, 671167802Sjkim ACPI_PARSE_OBJECT *Op, 672100966Siwasaki UINT8 *ByteData, 673100966Siwasaki UINT32 ByteCount); 674100966Siwasaki 675167802SjkimACPI_STATUS 676151937SjkimAcpiDmIsResourceTemplate ( 677100966Siwasaki ACPI_PARSE_OBJECT *Op); 678100966Siwasaki 679100966Siwasakivoid 680100966SiwasakiAcpiDmBitList ( 681100966Siwasaki UINT16 Mask); 682100966Siwasaki 683107325Siwasakivoid 684167802SjkimAcpiDmDescriptorName ( 685167802Sjkim void); 686151937Sjkim 687167802Sjkim 688100966Siwasaki/* 689100966Siwasaki * dmresrcl 690100966Siwasaki */ 691100966Siwasakivoid 692100966SiwasakiAcpiDmWordDescriptor ( 693151937Sjkim AML_RESOURCE *Resource, 694100966Siwasaki UINT32 Length, 695100966Siwasaki UINT32 Level); 696100966Siwasaki 697100966Siwasakivoid 698100966SiwasakiAcpiDmDwordDescriptor ( 699151937Sjkim AML_RESOURCE *Resource, 700100966Siwasaki UINT32 Length, 701100966Siwasaki UINT32 Level); 702100966Siwasaki 703100966Siwasakivoid 704151937SjkimAcpiDmExtendedDescriptor ( 705151937Sjkim AML_RESOURCE *Resource, 706151937Sjkim UINT32 Length, 707151937Sjkim UINT32 Level); 708151937Sjkim 709151937Sjkimvoid 710100966SiwasakiAcpiDmQwordDescriptor ( 711151937Sjkim AML_RESOURCE *Resource, 712100966Siwasaki UINT32 Length, 713100966Siwasaki UINT32 Level); 714100966Siwasaki 715100966Siwasakivoid 716100966SiwasakiAcpiDmMemory24Descriptor ( 717151937Sjkim AML_RESOURCE *Resource, 718100966Siwasaki UINT32 Length, 719100966Siwasaki UINT32 Level); 720100966Siwasaki 721100966Siwasakivoid 722100966SiwasakiAcpiDmMemory32Descriptor ( 723151937Sjkim AML_RESOURCE *Resource, 724100966Siwasaki UINT32 Length, 725100966Siwasaki UINT32 Level); 726100966Siwasaki 727100966Siwasakivoid 728151937SjkimAcpiDmFixedMemory32Descriptor ( 729151937Sjkim AML_RESOURCE *Resource, 730100966Siwasaki UINT32 Length, 731100966Siwasaki UINT32 Level); 732100966Siwasaki 733100966Siwasakivoid 734100966SiwasakiAcpiDmGenericRegisterDescriptor ( 735151937Sjkim AML_RESOURCE *Resource, 736100966Siwasaki UINT32 Length, 737100966Siwasaki UINT32 Level); 738100966Siwasaki 739100966Siwasakivoid 740100966SiwasakiAcpiDmInterruptDescriptor ( 741151937Sjkim AML_RESOURCE *Resource, 742100966Siwasaki UINT32 Length, 743100966Siwasaki UINT32 Level); 744100966Siwasaki 745100966Siwasakivoid 746100966SiwasakiAcpiDmVendorLargeDescriptor ( 747151937Sjkim AML_RESOURCE *Resource, 748100966Siwasaki UINT32 Length, 749100966Siwasaki UINT32 Level); 750100966Siwasaki 751151937Sjkimvoid 752228110SjkimAcpiDmGpioDescriptor ( 753228110Sjkim AML_RESOURCE *Resource, 754228110Sjkim UINT32 Length, 755228110Sjkim UINT32 Level); 756228110Sjkim 757228110Sjkimvoid 758228110SjkimAcpiDmSerialBusDescriptor ( 759228110Sjkim AML_RESOURCE *Resource, 760228110Sjkim UINT32 Length, 761228110Sjkim UINT32 Level); 762228110Sjkim 763228110Sjkimvoid 764151937SjkimAcpiDmVendorCommon ( 765151937Sjkim char *Name, 766151937Sjkim UINT8 *ByteData, 767151937Sjkim UINT32 Length, 768151937Sjkim UINT32 Level); 769100966Siwasaki 770151937Sjkim 771100966Siwasaki/* 772100966Siwasaki * dmresrcs 773100966Siwasaki */ 774100966Siwasakivoid 775100966SiwasakiAcpiDmIrqDescriptor ( 776151937Sjkim AML_RESOURCE *Resource, 777100966Siwasaki UINT32 Length, 778100966Siwasaki UINT32 Level); 779100966Siwasaki 780100966Siwasakivoid 781100966SiwasakiAcpiDmDmaDescriptor ( 782151937Sjkim AML_RESOURCE *Resource, 783100966Siwasaki UINT32 Length, 784100966Siwasaki UINT32 Level); 785100966Siwasaki 786100966Siwasakivoid 787228110SjkimAcpiDmFixedDmaDescriptor ( 788228110Sjkim AML_RESOURCE *Resource, 789228110Sjkim UINT32 Length, 790228110Sjkim UINT32 Level); 791228110Sjkim 792228110Sjkimvoid 793100966SiwasakiAcpiDmIoDescriptor ( 794151937Sjkim AML_RESOURCE *Resource, 795100966Siwasaki UINT32 Length, 796100966Siwasaki UINT32 Level); 797100966Siwasaki 798100966Siwasakivoid 799100966SiwasakiAcpiDmFixedIoDescriptor ( 800151937Sjkim AML_RESOURCE *Resource, 801100966Siwasaki UINT32 Length, 802100966Siwasaki UINT32 Level); 803100966Siwasaki 804100966Siwasakivoid 805100966SiwasakiAcpiDmStartDependentDescriptor ( 806151937Sjkim AML_RESOURCE *Resource, 807100966Siwasaki UINT32 Length, 808100966Siwasaki UINT32 Level); 809100966Siwasaki 810100966Siwasakivoid 811100966SiwasakiAcpiDmEndDependentDescriptor ( 812151937Sjkim AML_RESOURCE *Resource, 813100966Siwasaki UINT32 Length, 814100966Siwasaki UINT32 Level); 815100966Siwasaki 816100966Siwasakivoid 817100966SiwasakiAcpiDmVendorSmallDescriptor ( 818151937Sjkim AML_RESOURCE *Resource, 819100966Siwasaki UINT32 Length, 820100966Siwasaki UINT32 Level); 821100966Siwasaki 822100966Siwasaki 823128212Snjl/* 824128212Snjl * dmutils 825128212Snjl */ 826128212Snjlvoid 827198237SjkimAcpiDmDecodeAttribute ( 828198237Sjkim UINT8 Attribute); 829128212Snjl 830198237Sjkimvoid 831198237SjkimAcpiDmIndent ( 832198237Sjkim UINT32 Level); 833198237Sjkim 834198237SjkimBOOLEAN 835198237SjkimAcpiDmCommaIfListMember ( 836198237Sjkim ACPI_PARSE_OBJECT *Op); 837198237Sjkim 838198237Sjkimvoid 839198237SjkimAcpiDmCommaIfFieldMember ( 840198237Sjkim ACPI_PARSE_OBJECT *Op); 841198237Sjkim 842198237Sjkim 843167802Sjkim/* 844167802Sjkim * dmrestag 845167802Sjkim */ 846167802Sjkimvoid 847167802SjkimAcpiDmFindResources ( 848167802Sjkim ACPI_PARSE_OBJECT *Root); 849167802Sjkim 850167802Sjkimvoid 851167802SjkimAcpiDmCheckResourceReference ( 852167802Sjkim ACPI_PARSE_OBJECT *Op, 853167802Sjkim ACPI_WALK_STATE *WalkState); 854167802Sjkim 855209746Sjkim 856209746Sjkim/* 857209746Sjkim * acdisasm 858209746Sjkim */ 859209746Sjkimvoid 860209746SjkimAdDisassemblerHeader ( 861209746Sjkim char *Filename); 862209746Sjkim 863209746Sjkim 864100966Siwasaki#endif /* __ACDISASM_H__ */ 865