1100966Siwasaki/****************************************************************************** 2100966Siwasaki * 3100966Siwasaki * Name: acdisasm.h - AML disassembler 4100966Siwasaki * 5100966Siwasaki *****************************************************************************/ 6100966Siwasaki 7217365Sjkim/* 8245582Sjkim * Copyright (C) 2000 - 2013, 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; 66229989Sjkim UINT16 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, 111252279Sjkim ACPI_DMT_BUF10, 112228110Sjkim ACPI_DMT_BUF16, 113228110Sjkim ACPI_DMT_BUF128, 114228110Sjkim ACPI_DMT_SIG, 115228110Sjkim ACPI_DMT_STRING, 116228110Sjkim ACPI_DMT_NAME4, 117228110Sjkim ACPI_DMT_NAME6, 118228110Sjkim ACPI_DMT_NAME8, 119228110Sjkim 120228110Sjkim /* Types that are decoded to strings and miscellaneous */ 121228110Sjkim 122228110Sjkim ACPI_DMT_ACCWIDTH, 123228110Sjkim ACPI_DMT_CHKSUM, 124228110Sjkim ACPI_DMT_GAS, 125228110Sjkim ACPI_DMT_SPACEID, 126228110Sjkim ACPI_DMT_UNICODE, 127228110Sjkim ACPI_DMT_UUID, 128228110Sjkim 129228110Sjkim /* Types used only for the Data Table Compiler */ 130228110Sjkim 131228110Sjkim ACPI_DMT_BUFFER, 132228110Sjkim ACPI_DMT_DEVICE_PATH, 133228110Sjkim ACPI_DMT_LABEL, 134228110Sjkim ACPI_DMT_PCI_PATH, 135228110Sjkim 136228110Sjkim /* Types that are specific to particular ACPI tables */ 137228110Sjkim 138228110Sjkim ACPI_DMT_ASF, 139228110Sjkim ACPI_DMT_DMAR, 140228110Sjkim ACPI_DMT_EINJACT, 141228110Sjkim ACPI_DMT_EINJINST, 142228110Sjkim ACPI_DMT_ERSTACT, 143228110Sjkim ACPI_DMT_ERSTINST, 144228110Sjkim ACPI_DMT_FADTPM, 145228110Sjkim ACPI_DMT_HEST, 146228110Sjkim ACPI_DMT_HESTNTFY, 147228110Sjkim ACPI_DMT_HESTNTYP, 148228110Sjkim ACPI_DMT_IVRS, 149228110Sjkim ACPI_DMT_MADT, 150228110Sjkim ACPI_DMT_PMTT, 151228110Sjkim ACPI_DMT_SLIC, 152228110Sjkim ACPI_DMT_SRAT, 153228110Sjkim 154228110Sjkim /* Special opcodes */ 155228110Sjkim 156228110Sjkim ACPI_DMT_EXTRA_TEXT, 157228110Sjkim ACPI_DMT_EXIT 158228110Sjkim 159228110Sjkim} ACPI_ENTRY_TYPES; 160228110Sjkim 161167802Sjkimtypedef 162193267Sjkimvoid (*ACPI_DMTABLE_HANDLER) ( 163167802Sjkim ACPI_TABLE_HEADER *Table); 164167802Sjkim 165209746Sjkimtypedef 166209746SjkimACPI_STATUS (*ACPI_CMTABLE_HANDLER) ( 167209746Sjkim void **PFieldList); 168209746Sjkim 169167802Sjkimtypedef struct acpi_dmtable_data 170167802Sjkim{ 171167802Sjkim char *Signature; 172193267Sjkim ACPI_DMTABLE_INFO *TableInfo; 173193267Sjkim ACPI_DMTABLE_HANDLER TableHandler; 174209746Sjkim ACPI_CMTABLE_HANDLER CmTableHandler; 175209746Sjkim const unsigned char *Template; 176167802Sjkim char *Name; 177167802Sjkim 178167802Sjkim} ACPI_DMTABLE_DATA; 179167802Sjkim 180167802Sjkim 181100966Siwasakitypedef struct acpi_op_walk_info 182100966Siwasaki{ 183100966Siwasaki UINT32 Level; 184167802Sjkim UINT32 LastLevel; 185167802Sjkim UINT32 Count; 186100966Siwasaki UINT32 BitOffset; 187167802Sjkim UINT32 Flags; 188151937Sjkim ACPI_WALK_STATE *WalkState; 189100966Siwasaki 190100966Siwasaki} ACPI_OP_WALK_INFO; 191100966Siwasaki 192209746Sjkim/* 193209746Sjkim * TBD - another copy of this is in asltypes.h, fix 194209746Sjkim */ 195209746Sjkim#ifndef ASL_WALK_CALLBACK_DEFINED 196100966Siwasakitypedef 197100966SiwasakiACPI_STATUS (*ASL_WALK_CALLBACK) ( 198100966Siwasaki ACPI_PARSE_OBJECT *Op, 199100966Siwasaki UINT32 Level, 200100966Siwasaki void *Context); 201209746Sjkim#define ASL_WALK_CALLBACK_DEFINED 202209746Sjkim#endif 203100966Siwasaki 204228110Sjkimtypedef 205228110Sjkimvoid (*ACPI_RESOURCE_HANDLER) ( 206228110Sjkim AML_RESOURCE *Resource, 207228110Sjkim UINT32 Length, 208228110Sjkim UINT32 Level); 209209746Sjkim 210167802Sjkimtypedef struct acpi_resource_tag 211167802Sjkim{ 212167802Sjkim UINT32 BitIndex; 213167802Sjkim char *Tag; 214100966Siwasaki 215167802Sjkim} ACPI_RESOURCE_TAG; 216167802Sjkim 217167802Sjkim/* Strings used for decoding flags to ASL keywords */ 218167802Sjkim 219167802Sjkimextern const char *AcpiGbl_WordDecode[]; 220167802Sjkimextern const char *AcpiGbl_IrqDecode[]; 221167802Sjkimextern const char *AcpiGbl_LockRule[]; 222167802Sjkimextern const char *AcpiGbl_AccessTypes[]; 223167802Sjkimextern const char *AcpiGbl_UpdateRules[]; 224167802Sjkimextern const char *AcpiGbl_MatchOps[]; 225167802Sjkim 226167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[]; 227167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[]; 228167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[]; 229167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[]; 230167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[]; 231167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; 232167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; 233167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; 234167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; 235193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; 236228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[]; 237167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[]; 238167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[]; 239239340Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[]; 240239340Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt1[]; 241245582Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2[]; 242239340Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2[]; 243239340Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Device[]; 244239340Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Addr[]; 245239340Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Size[]; 246239340Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Name[]; 247167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[]; 248167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[]; 249167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[]; 250167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[]; 251167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[]; 252167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[]; 253193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[]; 254197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[]; 255228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[]; 256167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[]; 257193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[]; 258193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[]; 259193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[]; 260209746Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[]; 261167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[]; 262167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[]; 263167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[]; 264193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[]; 265228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[]; 266228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt[]; 267228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdtHdr[]; 268228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt0[]; 269228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[]; 270167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[]; 271228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[]; 272167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[]; 273193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[]; 274193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[]; 275193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[]; 276197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[]; 277193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[]; 278193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[]; 279193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[]; 280193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[]; 281193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[]; 282197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[]; 283167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[]; 284197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; 285197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[]; 286197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[]; 287197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; 288197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; 289197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; 290197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; 291197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[]; 292167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; 293167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; 294167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[]; 295167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[]; 296167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[]; 297167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[]; 298167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[]; 299167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[]; 300167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[]; 301167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[]; 302193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[]; 303193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[]; 304228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[]; 305228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[]; 306167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; 307167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; 308167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; 309204773Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[]; 310228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[]; 311228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[]; 312228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[]; 313228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[]; 314228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[]; 315228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[]; 316197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[]; 317197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[]; 318246849Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMtmr[]; 319246849Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMtmr0[]; 320228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[]; 321228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[]; 322228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[]; 323228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1a[]; 324228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[]; 325228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[]; 326228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[]; 327228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[]; 328167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; 329167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; 330228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[]; 331228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoS3ptHdr[]; 332228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt0[]; 333228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt1[]; 334167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[]; 335219707Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSlicHdr[]; 336219707Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic0[]; 337219707Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic1[]; 338167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[]; 339167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[]; 340167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[]; 341167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[]; 342193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[]; 343167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[]; 344167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[]; 345193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[]; 346167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpa[]; 347245582Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm2[]; 348197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[]; 349246849Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoVrtc[]; 350246849Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoVrtc0[]; 351197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[]; 352197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[]; 353197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[]; 354209746Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[]; 355167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[]; 356167802Sjkim 357217365Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2]; 358167802Sjkim 359217365Sjkim 360100966Siwasaki/* 361167802Sjkim * dmtable 362167802Sjkim */ 363209746Sjkimextern ACPI_DMTABLE_DATA AcpiDmTableData[]; 364209746Sjkim 365209746SjkimUINT8 366209746SjkimAcpiDmGenerateChecksum ( 367209746Sjkim void *Table, 368209746Sjkim UINT32 Length, 369209746Sjkim UINT8 OriginalChecksum); 370209746Sjkim 371209746SjkimACPI_DMTABLE_DATA * 372209746SjkimAcpiDmGetTableData ( 373209746Sjkim char *Signature); 374209746Sjkim 375167802Sjkimvoid 376167802SjkimAcpiDmDumpDataTable ( 377167802Sjkim ACPI_TABLE_HEADER *Table); 378167802Sjkim 379193267SjkimACPI_STATUS 380167802SjkimAcpiDmDumpTable ( 381167802Sjkim UINT32 TableLength, 382167802Sjkim UINT32 TableOffset, 383167802Sjkim void *Table, 384167802Sjkim UINT32 SubTableLength, 385167802Sjkim ACPI_DMTABLE_INFO *Info); 386167802Sjkim 387167802Sjkimvoid 388167802SjkimAcpiDmLineHeader ( 389167802Sjkim UINT32 Offset, 390167802Sjkim UINT32 ByteLength, 391167802Sjkim char *Name); 392167802Sjkim 393167802Sjkimvoid 394167802SjkimAcpiDmLineHeader2 ( 395167802Sjkim UINT32 Offset, 396167802Sjkim UINT32 ByteLength, 397167802Sjkim char *Name, 398167802Sjkim UINT32 Value); 399167802Sjkim 400167802Sjkim 401167802Sjkim/* 402167802Sjkim * dmtbdump 403167802Sjkim */ 404167802Sjkimvoid 405167802SjkimAcpiDmDumpAsf ( 406167802Sjkim ACPI_TABLE_HEADER *Table); 407167802Sjkim 408167802Sjkimvoid 409167802SjkimAcpiDmDumpCpep ( 410167802Sjkim ACPI_TABLE_HEADER *Table); 411167802Sjkim 412167802Sjkimvoid 413239340SjkimAcpiDmDumpCsrt ( 414239340Sjkim ACPI_TABLE_HEADER *Table); 415239340Sjkim 416239340Sjkimvoid 417239340SjkimAcpiDmDumpDbg2 ( 418239340Sjkim ACPI_TABLE_HEADER *Table); 419239340Sjkim 420239340Sjkimvoid 421167802SjkimAcpiDmDumpDmar ( 422167802Sjkim ACPI_TABLE_HEADER *Table); 423167802Sjkim 424167802Sjkimvoid 425193267SjkimAcpiDmDumpEinj ( 426193267Sjkim ACPI_TABLE_HEADER *Table); 427193267Sjkim 428193267Sjkimvoid 429193267SjkimAcpiDmDumpErst ( 430193267Sjkim ACPI_TABLE_HEADER *Table); 431193267Sjkim 432193267Sjkimvoid 433167802SjkimAcpiDmDumpFadt ( 434167802Sjkim ACPI_TABLE_HEADER *Table); 435167802Sjkim 436167802Sjkimvoid 437228110SjkimAcpiDmDumpFpdt ( 438228110Sjkim ACPI_TABLE_HEADER *Table); 439228110Sjkim 440228110Sjkimvoid 441193267SjkimAcpiDmDumpHest ( 442167802Sjkim ACPI_TABLE_HEADER *Table); 443167802Sjkim 444167802Sjkimvoid 445197104SjkimAcpiDmDumpIvrs ( 446197104Sjkim ACPI_TABLE_HEADER *Table); 447197104Sjkim 448197104Sjkimvoid 449228110SjkimAcpiDmDumpMadt ( 450228110Sjkim ACPI_TABLE_HEADER *Table); 451228110Sjkim 452228110Sjkimvoid 453167802SjkimAcpiDmDumpMcfg ( 454167802Sjkim ACPI_TABLE_HEADER *Table); 455167802Sjkim 456167802Sjkimvoid 457228110SjkimAcpiDmDumpMpst ( 458167802Sjkim ACPI_TABLE_HEADER *Table); 459167802Sjkim 460197104Sjkimvoid 461197104SjkimAcpiDmDumpMsct ( 462197104Sjkim ACPI_TABLE_HEADER *Table); 463197104Sjkim 464228110Sjkimvoid 465246849SjkimAcpiDmDumpMtmr ( 466246849Sjkim ACPI_TABLE_HEADER *Table); 467246849Sjkim 468246849Sjkimvoid 469228110SjkimAcpiDmDumpPcct ( 470228110Sjkim ACPI_TABLE_HEADER *Table); 471228110Sjkim 472228110Sjkimvoid 473228110SjkimAcpiDmDumpPmtt ( 474228110Sjkim ACPI_TABLE_HEADER *Table); 475228110Sjkim 476167802SjkimUINT32 477167802SjkimAcpiDmDumpRsdp ( 478167802Sjkim ACPI_TABLE_HEADER *Table); 479167802Sjkim 480167802Sjkimvoid 481167802SjkimAcpiDmDumpRsdt ( 482167802Sjkim ACPI_TABLE_HEADER *Table); 483167802Sjkim 484228110SjkimUINT32 485228110SjkimAcpiDmDumpS3pt ( 486228110Sjkim ACPI_TABLE_HEADER *Table); 487228110Sjkim 488167802Sjkimvoid 489219707SjkimAcpiDmDumpSlic ( 490219707Sjkim ACPI_TABLE_HEADER *Table); 491219707Sjkim 492219707Sjkimvoid 493167802SjkimAcpiDmDumpSlit ( 494167802Sjkim ACPI_TABLE_HEADER *Table); 495167802Sjkim 496167802Sjkimvoid 497193267SjkimAcpiDmDumpSrat ( 498193267Sjkim ACPI_TABLE_HEADER *Table); 499193267Sjkim 500193267Sjkimvoid 501246849SjkimAcpiDmDumpVrtc ( 502246849Sjkim ACPI_TABLE_HEADER *Table); 503246849Sjkim 504246849Sjkimvoid 505197104SjkimAcpiDmDumpWdat ( 506197104Sjkim ACPI_TABLE_HEADER *Table); 507197104Sjkim 508197104Sjkimvoid 509167802SjkimAcpiDmDumpXsdt ( 510167802Sjkim ACPI_TABLE_HEADER *Table); 511167802Sjkim 512167802Sjkim 513167802Sjkim/* 514100966Siwasaki * dmwalk 515100966Siwasaki */ 516100966Siwasakivoid 517100966SiwasakiAcpiDmDisassemble ( 518100966Siwasaki ACPI_WALK_STATE *WalkState, 519100966Siwasaki ACPI_PARSE_OBJECT *Origin, 520100966Siwasaki UINT32 NumOpcodes); 521100966Siwasaki 522167802Sjkimvoid 523167802SjkimAcpiDmWalkParseTree ( 524167802Sjkim ACPI_PARSE_OBJECT *Op, 525167802Sjkim ASL_WALK_CALLBACK DescendingCallback, 526167802Sjkim ASL_WALK_CALLBACK AscendingCallback, 527167802Sjkim void *Context); 528100966Siwasaki 529167802Sjkim 530151937Sjkim/* 531151937Sjkim * dmopcode 532151937Sjkim */ 533100966Siwasakivoid 534100966SiwasakiAcpiDmDisassembleOneOp ( 535100966Siwasaki ACPI_WALK_STATE *WalkState, 536102550Siwasaki ACPI_OP_WALK_INFO *Info, 537100966Siwasaki ACPI_PARSE_OBJECT *Op); 538100966Siwasaki 539100966Siwasakivoid 540100966SiwasakiAcpiDmDecodeInternalObject ( 541100966Siwasaki ACPI_OPERAND_OBJECT *ObjDesc); 542100966Siwasaki 543100966SiwasakiUINT32 544100966SiwasakiAcpiDmListType ( 545100966Siwasaki ACPI_PARSE_OBJECT *Op); 546100966Siwasaki 547100966Siwasakivoid 548100966SiwasakiAcpiDmMethodFlags ( 549100966Siwasaki ACPI_PARSE_OBJECT *Op); 550100966Siwasaki 551100966Siwasakivoid 552237412SjkimAcpiDmPredefinedDescription ( 553237412Sjkim ACPI_PARSE_OBJECT *Op); 554237412Sjkim 555237412Sjkimvoid 556237412SjkimAcpiDmFieldPredefinedDescription ( 557237412Sjkim ACPI_PARSE_OBJECT *Op); 558237412Sjkim 559237412Sjkimvoid 560100966SiwasakiAcpiDmFieldFlags ( 561100966Siwasaki ACPI_PARSE_OBJECT *Op); 562100966Siwasaki 563100966Siwasakivoid 564100966SiwasakiAcpiDmAddressSpace ( 565100966Siwasaki UINT8 SpaceId); 566100966Siwasaki 567100966Siwasakivoid 568100966SiwasakiAcpiDmRegionFlags ( 569100966Siwasaki ACPI_PARSE_OBJECT *Op); 570100966Siwasaki 571100966Siwasakivoid 572100966SiwasakiAcpiDmMatchOp ( 573100966Siwasaki ACPI_PARSE_OBJECT *Op); 574100966Siwasaki 575100966Siwasaki 576102550Siwasaki/* 577151937Sjkim * dmnames 578117521Snjl */ 579151937SjkimUINT32 580151937SjkimAcpiDmDumpName ( 581193267Sjkim UINT32 Name); 582117521Snjl 583151937SjkimACPI_STATUS 584151937SjkimAcpiPsDisplayObjectPathname ( 585151937Sjkim ACPI_WALK_STATE *WalkState, 586151937Sjkim ACPI_PARSE_OBJECT *Op); 587151937Sjkim 588117521Snjlvoid 589151937SjkimAcpiDmNamestring ( 590151937Sjkim char *Name); 591117521Snjl 592151937Sjkim 593151937Sjkim/* 594151937Sjkim * dmobject 595151937Sjkim */ 596117521Snjlvoid 597117521SnjlAcpiDmDisplayInternalObject ( 598117521Snjl ACPI_OPERAND_OBJECT *ObjDesc, 599117521Snjl ACPI_WALK_STATE *WalkState); 600117521Snjl 601117521Snjlvoid 602117521SnjlAcpiDmDisplayArguments ( 603117521Snjl ACPI_WALK_STATE *WalkState); 604117521Snjl 605117521Snjlvoid 606117521SnjlAcpiDmDisplayLocals ( 607117521Snjl ACPI_WALK_STATE *WalkState); 608117521Snjl 609117521Snjlvoid 610117521SnjlAcpiDmDumpMethodInfo ( 611117521Snjl ACPI_STATUS Status, 612117521Snjl ACPI_WALK_STATE *WalkState, 613117521Snjl ACPI_PARSE_OBJECT *Op); 614117521Snjl 615117521Snjl 616117521Snjl/* 617100966Siwasaki * dmbuffer 618100966Siwasaki */ 619151937Sjkimvoid 620151937SjkimAcpiDmDisasmByteList ( 621151937Sjkim UINT32 Level, 622151937Sjkim UINT8 *ByteData, 623151937Sjkim UINT32 ByteCount); 624100966Siwasaki 625100966Siwasakivoid 626151937SjkimAcpiDmByteList ( 627151937Sjkim ACPI_OP_WALK_INFO *Info, 628100966Siwasaki ACPI_PARSE_OBJECT *Op); 629100966Siwasaki 630100966Siwasakivoid 631151937SjkimAcpiDmIsEisaId ( 632151937Sjkim ACPI_PARSE_OBJECT *Op); 633151937Sjkim 634151937Sjkimvoid 635100966SiwasakiAcpiDmEisaId ( 636100966Siwasaki UINT32 EncodedId); 637100966Siwasaki 638100966SiwasakiBOOLEAN 639100966SiwasakiAcpiDmIsUnicodeBuffer ( 640100966Siwasaki ACPI_PARSE_OBJECT *Op); 641100966Siwasaki 642100966SiwasakiBOOLEAN 643100966SiwasakiAcpiDmIsStringBuffer ( 644100966Siwasaki ACPI_PARSE_OBJECT *Op); 645100966Siwasaki 646239340SjkimBOOLEAN 647239340SjkimAcpiDmIsPldBuffer ( 648239340Sjkim ACPI_PARSE_OBJECT *Op); 649100966Siwasaki 650239340Sjkim 651100966Siwasaki/* 652243347Sjkim * dmdeferred 653243347Sjkim */ 654243347SjkimACPI_STATUS 655243347SjkimAcpiDmParseDeferredOps ( 656243347Sjkim ACPI_PARSE_OBJECT *Root); 657243347Sjkim 658243347Sjkim 659243347Sjkim/* 660198237Sjkim * dmextern 661198237Sjkim */ 662210976SjkimACPI_STATUS 663210976SjkimAcpiDmAddToExternalFileList ( 664210976Sjkim char *PathList); 665210976Sjkim 666198237Sjkimvoid 667210976SjkimAcpiDmClearExternalFileList ( 668210976Sjkim void); 669210976Sjkim 670210976Sjkimvoid 671198237SjkimAcpiDmAddToExternalList ( 672198237Sjkim ACPI_PARSE_OBJECT *Op, 673198237Sjkim char *Path, 674198237Sjkim UINT8 Type, 675198237Sjkim UINT32 Value); 676198237Sjkim 677198237Sjkimvoid 678198237SjkimAcpiDmAddExternalsToNamespace ( 679198237Sjkim void); 680198237Sjkim 681198237SjkimUINT32 682198237SjkimAcpiDmGetExternalMethodCount ( 683198237Sjkim void); 684198237Sjkim 685198237Sjkimvoid 686198237SjkimAcpiDmClearExternalList ( 687198237Sjkim void); 688198237Sjkim 689198237Sjkimvoid 690198237SjkimAcpiDmEmitExternals ( 691198237Sjkim void); 692198237Sjkim 693246849Sjkimvoid 694246849SjkimAcpiDmUnresolvedWarning ( 695246849Sjkim UINT8 Type); 696198237Sjkim 697254745Sjkimvoid 698254745SjkimAcpiDmGetExternalsFromFile ( 699254745Sjkim void); 700246849Sjkim 701198237Sjkim/* 702100966Siwasaki * dmresrc 703100966Siwasaki */ 704151937Sjkimvoid 705151937SjkimAcpiDmDumpInteger8 ( 706151937Sjkim UINT8 Value, 707151937Sjkim char *Name); 708100966Siwasaki 709100966Siwasakivoid 710151937SjkimAcpiDmDumpInteger16 ( 711151937Sjkim UINT16 Value, 712151937Sjkim char *Name); 713100966Siwasaki 714100966Siwasakivoid 715151937SjkimAcpiDmDumpInteger32 ( 716151937Sjkim UINT32 Value, 717151937Sjkim char *Name); 718100966Siwasaki 719100966Siwasakivoid 720151937SjkimAcpiDmDumpInteger64 ( 721151937Sjkim UINT64 Value, 722151937Sjkim char *Name); 723151937Sjkim 724151937Sjkimvoid 725151937SjkimAcpiDmResourceTemplate ( 726102550Siwasaki ACPI_OP_WALK_INFO *Info, 727167802Sjkim ACPI_PARSE_OBJECT *Op, 728100966Siwasaki UINT8 *ByteData, 729100966Siwasaki UINT32 ByteCount); 730100966Siwasaki 731167802SjkimACPI_STATUS 732151937SjkimAcpiDmIsResourceTemplate ( 733243347Sjkim ACPI_WALK_STATE *WalkState, 734100966Siwasaki ACPI_PARSE_OBJECT *Op); 735100966Siwasaki 736100966Siwasakivoid 737100966SiwasakiAcpiDmBitList ( 738100966Siwasaki UINT16 Mask); 739100966Siwasaki 740107325Siwasakivoid 741167802SjkimAcpiDmDescriptorName ( 742167802Sjkim void); 743151937Sjkim 744167802Sjkim 745100966Siwasaki/* 746100966Siwasaki * dmresrcl 747100966Siwasaki */ 748100966Siwasakivoid 749100966SiwasakiAcpiDmWordDescriptor ( 750151937Sjkim AML_RESOURCE *Resource, 751100966Siwasaki UINT32 Length, 752100966Siwasaki UINT32 Level); 753100966Siwasaki 754100966Siwasakivoid 755100966SiwasakiAcpiDmDwordDescriptor ( 756151937Sjkim AML_RESOURCE *Resource, 757100966Siwasaki UINT32 Length, 758100966Siwasaki UINT32 Level); 759100966Siwasaki 760100966Siwasakivoid 761151937SjkimAcpiDmExtendedDescriptor ( 762151937Sjkim AML_RESOURCE *Resource, 763151937Sjkim UINT32 Length, 764151937Sjkim UINT32 Level); 765151937Sjkim 766151937Sjkimvoid 767100966SiwasakiAcpiDmQwordDescriptor ( 768151937Sjkim AML_RESOURCE *Resource, 769100966Siwasaki UINT32 Length, 770100966Siwasaki UINT32 Level); 771100966Siwasaki 772100966Siwasakivoid 773100966SiwasakiAcpiDmMemory24Descriptor ( 774151937Sjkim AML_RESOURCE *Resource, 775100966Siwasaki UINT32 Length, 776100966Siwasaki UINT32 Level); 777100966Siwasaki 778100966Siwasakivoid 779100966SiwasakiAcpiDmMemory32Descriptor ( 780151937Sjkim AML_RESOURCE *Resource, 781100966Siwasaki UINT32 Length, 782100966Siwasaki UINT32 Level); 783100966Siwasaki 784100966Siwasakivoid 785151937SjkimAcpiDmFixedMemory32Descriptor ( 786151937Sjkim AML_RESOURCE *Resource, 787100966Siwasaki UINT32 Length, 788100966Siwasaki UINT32 Level); 789100966Siwasaki 790100966Siwasakivoid 791100966SiwasakiAcpiDmGenericRegisterDescriptor ( 792151937Sjkim AML_RESOURCE *Resource, 793100966Siwasaki UINT32 Length, 794100966Siwasaki UINT32 Level); 795100966Siwasaki 796100966Siwasakivoid 797100966SiwasakiAcpiDmInterruptDescriptor ( 798151937Sjkim AML_RESOURCE *Resource, 799100966Siwasaki UINT32 Length, 800100966Siwasaki UINT32 Level); 801100966Siwasaki 802100966Siwasakivoid 803100966SiwasakiAcpiDmVendorLargeDescriptor ( 804151937Sjkim AML_RESOURCE *Resource, 805100966Siwasaki UINT32 Length, 806100966Siwasaki UINT32 Level); 807100966Siwasaki 808151937Sjkimvoid 809228110SjkimAcpiDmGpioDescriptor ( 810228110Sjkim AML_RESOURCE *Resource, 811228110Sjkim UINT32 Length, 812228110Sjkim UINT32 Level); 813228110Sjkim 814228110Sjkimvoid 815228110SjkimAcpiDmSerialBusDescriptor ( 816228110Sjkim AML_RESOURCE *Resource, 817228110Sjkim UINT32 Length, 818228110Sjkim UINT32 Level); 819228110Sjkim 820228110Sjkimvoid 821151937SjkimAcpiDmVendorCommon ( 822151937Sjkim char *Name, 823151937Sjkim UINT8 *ByteData, 824151937Sjkim UINT32 Length, 825151937Sjkim UINT32 Level); 826100966Siwasaki 827151937Sjkim 828100966Siwasaki/* 829100966Siwasaki * dmresrcs 830100966Siwasaki */ 831100966Siwasakivoid 832100966SiwasakiAcpiDmIrqDescriptor ( 833151937Sjkim AML_RESOURCE *Resource, 834100966Siwasaki UINT32 Length, 835100966Siwasaki UINT32 Level); 836100966Siwasaki 837100966Siwasakivoid 838100966SiwasakiAcpiDmDmaDescriptor ( 839151937Sjkim AML_RESOURCE *Resource, 840100966Siwasaki UINT32 Length, 841100966Siwasaki UINT32 Level); 842100966Siwasaki 843100966Siwasakivoid 844228110SjkimAcpiDmFixedDmaDescriptor ( 845228110Sjkim AML_RESOURCE *Resource, 846228110Sjkim UINT32 Length, 847228110Sjkim UINT32 Level); 848228110Sjkim 849228110Sjkimvoid 850100966SiwasakiAcpiDmIoDescriptor ( 851151937Sjkim AML_RESOURCE *Resource, 852100966Siwasaki UINT32 Length, 853100966Siwasaki UINT32 Level); 854100966Siwasaki 855100966Siwasakivoid 856100966SiwasakiAcpiDmFixedIoDescriptor ( 857151937Sjkim AML_RESOURCE *Resource, 858100966Siwasaki UINT32 Length, 859100966Siwasaki UINT32 Level); 860100966Siwasaki 861100966Siwasakivoid 862100966SiwasakiAcpiDmStartDependentDescriptor ( 863151937Sjkim AML_RESOURCE *Resource, 864100966Siwasaki UINT32 Length, 865100966Siwasaki UINT32 Level); 866100966Siwasaki 867100966Siwasakivoid 868100966SiwasakiAcpiDmEndDependentDescriptor ( 869151937Sjkim AML_RESOURCE *Resource, 870100966Siwasaki UINT32 Length, 871100966Siwasaki UINT32 Level); 872100966Siwasaki 873100966Siwasakivoid 874100966SiwasakiAcpiDmVendorSmallDescriptor ( 875151937Sjkim AML_RESOURCE *Resource, 876100966Siwasaki UINT32 Length, 877100966Siwasaki UINT32 Level); 878100966Siwasaki 879100966Siwasaki 880128212Snjl/* 881128212Snjl * dmutils 882128212Snjl */ 883128212Snjlvoid 884198237SjkimAcpiDmDecodeAttribute ( 885198237Sjkim UINT8 Attribute); 886128212Snjl 887198237Sjkimvoid 888198237SjkimAcpiDmIndent ( 889198237Sjkim UINT32 Level); 890198237Sjkim 891198237SjkimBOOLEAN 892198237SjkimAcpiDmCommaIfListMember ( 893198237Sjkim ACPI_PARSE_OBJECT *Op); 894198237Sjkim 895198237Sjkimvoid 896198237SjkimAcpiDmCommaIfFieldMember ( 897198237Sjkim ACPI_PARSE_OBJECT *Op); 898198237Sjkim 899198237Sjkim 900167802Sjkim/* 901167802Sjkim * dmrestag 902167802Sjkim */ 903167802Sjkimvoid 904167802SjkimAcpiDmFindResources ( 905167802Sjkim ACPI_PARSE_OBJECT *Root); 906167802Sjkim 907167802Sjkimvoid 908167802SjkimAcpiDmCheckResourceReference ( 909167802Sjkim ACPI_PARSE_OBJECT *Op, 910167802Sjkim ACPI_WALK_STATE *WalkState); 911167802Sjkim 912209746Sjkim 913209746Sjkim/* 914209746Sjkim * acdisasm 915209746Sjkim */ 916209746Sjkimvoid 917209746SjkimAdDisassemblerHeader ( 918209746Sjkim char *Filename); 919209746Sjkim 920209746Sjkim 921100966Siwasaki#endif /* __ACDISASM_H__ */ 922