acdisasm.h revision 167802
1185089Sraj/******************************************************************************
2209131Sraj *
3209131Sraj * Name: acdisasm.h - AML disassembler
4240489Sgber *       $Revision: 1.39 $
5185089Sraj *
6185089Sraj *****************************************************************************/
7185089Sraj
8185089Sraj/******************************************************************************
9209131Sraj *
10209131Sraj * 1. Copyright Notice
11209131Sraj *
12185089Sraj * Some or all of this work - Copyright (c) 1999 - 2007, Intel Corp.
13185089Sraj * All rights reserved.
14185089Sraj *
15185089Sraj * 2. License
16185089Sraj *
17185089Sraj * 2.1. This is your license from Intel Corp. under its intellectual property
18185089Sraj * rights.  You may have additional license terms from the party that provided
19185089Sraj * you this software, covering your right to use that party's intellectual
20185089Sraj * property rights.
21185089Sraj *
22185089Sraj * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
23185089Sraj * copy of the source code appearing in this file ("Covered Code") an
24185089Sraj * irrevocable, perpetual, worldwide license under Intel's copyrights in the
25185089Sraj * base code distributed originally by Intel ("Original Intel Code") to copy,
26185089Sraj * make derivatives, distribute, use and display any portion of the Covered
27185089Sraj * Code in any form, with the right to sublicense such rights; and
28185089Sraj *
29185089Sraj * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
30185089Sraj * license (with the right to sublicense), under only those claims of Intel
31185089Sraj * patents that are infringed by the Original Intel Code, to make, use, sell,
32185089Sraj * offer to sell, and import the Covered Code and derivative works thereof
33185089Sraj * solely to the minimum extent necessary to exercise the above copyright
34185089Sraj * license, and in no event shall the patent license extend to any additions
35185089Sraj * to or modifications of the Original Intel Code.  No other license or right
36185089Sraj * is granted directly or by implication, estoppel or otherwise;
37185089Sraj *
38185089Sraj * The above copyright and patent license is granted only if the following
39185089Sraj * conditions are met:
40185089Sraj *
41185089Sraj * 3. Conditions
42185089Sraj *
43185089Sraj * 3.1. Redistribution of Source with Rights to Further Distribute Source.
44185089Sraj * Redistribution of source code of any substantial portion of the Covered
45185089Sraj * Code or modification with rights to further distribute source must include
46185089Sraj * the above Copyright Notice, the above License, this list of Conditions,
47185089Sraj * and the following Disclaimer and Export Compliance provision.  In addition,
48185089Sraj * Licensee must cause all Covered Code to which Licensee contributes to
49185089Sraj * contain a file documenting the changes Licensee made to create that Covered
50185089Sraj * Code and the date of any change.  Licensee must include in that file the
51185089Sraj * documentation of any changes made by any predecessor Licensee.  Licensee
52185089Sraj * must include a prominent statement that the modification is derived,
53185089Sraj * directly or indirectly, from Original Intel Code.
54185089Sraj *
55185089Sraj * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
56260327Snwhitehorn * Redistribution of source code of any substantial portion of the Covered
57240493Sgber * Code or modification without rights to further distribute source must
58240493Sgber * include the following Disclaimer and Export Compliance provision in the
59185089Sraj * documentation and/or other materials provided with distribution.  In
60185089Sraj * addition, Licensee may not authorize further sublicense of source of any
61185089Sraj * portion of the Covered Code, and must include terms to the effect that the
62209131Sraj * license from Licensee to its licensee is limited to the intellectual
63209131Sraj * property embodied in the software Licensee provides to its licensee, and
64259484Snwhitehorn * not to intellectual property embodied in modifications its licensee may
65209131Sraj * make.
66185089Sraj *
67185089Sraj * 3.3. Redistribution of Executable. Redistribution in executable form of any
68185089Sraj * substantial portion of the Covered Code or modification must reproduce the
69185089Sraj * above Copyright Notice, and the following Disclaimer and Export Compliance
70209131Sraj * provision in the documentation and/or other materials provided with the
71185089Sraj * distribution.
72185089Sraj *
73260340Sian * 3.4. Intel retains all right, title, and interest in and to the Original
74185089Sraj * Intel Code.
75185089Sraj *
76185089Sraj * 3.5. Neither the name Intel nor any other trademark owned or controlled by
77185089Sraj * Intel shall be used in advertising or otherwise to promote the sale, use or
78185089Sraj * other dealings in products derived from or relating to the Covered Code
79209131Sraj * without prior written authorization from Intel.
80185089Sraj *
81240493Sgber * 4. Disclaimer and Export Compliance
82240493Sgber *
83240493Sgber * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
84240493Sgber * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
85240493Sgber * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
86240493Sgber * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
87260340Sian * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
88260340Sian * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
89260340Sian * PARTICULAR PURPOSE.
90260340Sian *
91260340Sian * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
92260340Sian * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
93260340Sian * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
94260340Sian * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
95260340Sian * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
96260340Sian * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
97260340Sian * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
98260340Sian * LIMITED REMEDY.
99260340Sian *
100260340Sian * 4.3. Licensee shall not export, either directly or indirectly, any of this
101260340Sian * software or system incorporating such software without first obtaining any
102260340Sian * required license or other approval from the U. S. Department of Commerce or
103260340Sian * any other agency or department of the United States Government.  In the
104260340Sian * event Licensee exports any such software from the United States or
105260340Sian * re-exports any such software from a foreign destination, Licensee shall
106260340Sian * ensure that the distribution and export/re-export of the software is in
107260340Sian * compliance with all laws, regulations, orders, or other restrictions of the
108260340Sian * U.S. Export Administration Regulations. Licensee agrees that neither it nor
109260340Sian * any of its subsidiaries will export/re-export any technical data, process,
110260340Sian * software, or service, directly or indirectly, to any country for which the
111260340Sian * United States government or any agency thereof requires an export license,
112260340Sian * other governmental approval, or letter of assurance, without first obtaining
113260340Sian * such license, approval or letter.
114260340Sian *
115260340Sian *****************************************************************************/
116260340Sian
117260340Sian#ifndef __ACDISASM_H__
118260340Sian#define __ACDISASM_H__
119260340Sian
120260340Sian#include <contrib/dev/acpica/amlresrc.h>
121260340Sian
122260340Sian
123260340Sian#define BLOCK_NONE              0
124260340Sian#define BLOCK_PAREN             1
125260340Sian#define BLOCK_BRACE             2
126260340Sian#define BLOCK_COMMA_LIST        4
127260340Sian#define ACPI_DEFAULT_RESNAME    *(UINT32 *) "__RD"
128260340Sian
129260340Siantypedef struct acpi_external_list
130260340Sian{
131260340Sian    char                        *Path;
132260340Sian    char                        *InternalPath;
133260340Sian    struct acpi_external_list   *Next;
134260340Sian    UINT32                      Value;
135260340Sian    UINT16                      Length;
136260340Sian    UINT8                       Type;
137260340Sian
138260340Sian} ACPI_EXTERNAL_LIST;
139260340Sian
140260340Sianextern ACPI_EXTERNAL_LIST       *AcpiGbl_ExternalList;
141260340Sian
142260340Siantypedef const struct acpi_dmtable_info
143260340Sian{
144260340Sian    UINT8                       Opcode;
145260340Sian    UINT8                       Offset;
146260340Sian    char                        *Name;
147260340Sian
148260340Sian} ACPI_DMTABLE_INFO;
149260340Sian
150260340Sian/*
151260340Sian * Values for Opcode above.
152260340Sian * Note: 0-7 must not change, used as a flag shift value
153260340Sian */
154260340Sian#define ACPI_DMT_FLAG0                  0
155260340Sian#define ACPI_DMT_FLAG1                  1
156260340Sian#define ACPI_DMT_FLAG2                  2
157260340Sian#define ACPI_DMT_FLAG3                  3
158260340Sian#define ACPI_DMT_FLAG4                  4
159260340Sian#define ACPI_DMT_FLAG5                  5
160260340Sian#define ACPI_DMT_FLAG6                  6
161260340Sian#define ACPI_DMT_FLAG7                  7
162260340Sian#define ACPI_DMT_FLAGS0                 8
163260340Sian#define ACPI_DMT_FLAGS2                 9
164260340Sian#define ACPI_DMT_UINT8                  10
165260340Sian#define ACPI_DMT_UINT16                 11
166260340Sian#define ACPI_DMT_UINT24                 12
167260340Sian#define ACPI_DMT_UINT32                 13
168260340Sian#define ACPI_DMT_UINT56                 14
169260340Sian#define ACPI_DMT_UINT64                 15
170260340Sian#define ACPI_DMT_STRING                 16
171260340Sian#define ACPI_DMT_NAME4                  17
172260340Sian#define ACPI_DMT_NAME6                  18
173260340Sian#define ACPI_DMT_NAME8                  19
174260340Sian#define ACPI_DMT_CHKSUM                 20
175260340Sian#define ACPI_DMT_SPACEID                21
176260340Sian#define ACPI_DMT_GAS                    22
177260340Sian#define ACPI_DMT_DMAR                   23
178260340Sian#define ACPI_DMT_MADT                   24
179260340Sian#define ACPI_DMT_SRAT                   25
180260340Sian#define ACPI_DMT_EXIT                   26
181260340Sian#define ACPI_DMT_SIG                    27
182260340Sian
183260340Siantypedef
184260340Sianvoid (*ACPI_TABLE_HANDLER) (
185260340Sian    ACPI_TABLE_HEADER       *Table);
186260340Sian
187260340Siantypedef struct acpi_dmtable_data
188260340Sian{
189260340Sian    char                    *Signature;
190260340Sian    ACPI_DMTABLE_INFO        *TableInfo;
191260340Sian    ACPI_TABLE_HANDLER      TableHandler;
192260340Sian    char                    *Name;
193260340Sian
194260340Sian} ACPI_DMTABLE_DATA;
195260340Sian
196260340Sian
197260340Siantypedef struct acpi_op_walk_info
198260340Sian{
199260340Sian    UINT32                  Level;
200260340Sian    UINT32                  LastLevel;
201260340Sian    UINT32                  Count;
202260340Sian    UINT32                  BitOffset;
203260340Sian    UINT32                  Flags;
204260340Sian    ACPI_WALK_STATE         *WalkState;
205260340Sian
206260340Sian} ACPI_OP_WALK_INFO;
207260340Sian
208260340Siantypedef
209260340SianACPI_STATUS (*ASL_WALK_CALLBACK) (
210260340Sian    ACPI_PARSE_OBJECT           *Op,
211260340Sian    UINT32                      Level,
212260340Sian    void                        *Context);
213260340Sian
214260340Siantypedef struct acpi_resource_tag
215260340Sian{
216260340Sian    UINT32                  BitIndex;
217260340Sian    char                    *Tag;
218260340Sian
219260340Sian} ACPI_RESOURCE_TAG;
220260340Sian
221260340Sian/* Strings used for decoding flags to ASL keywords */
222260340Sian
223260340Sianextern const char               *AcpiGbl_WordDecode[];
224260340Sianextern const char               *AcpiGbl_IrqDecode[];
225260340Sianextern const char               *AcpiGbl_LockRule[];
226260340Sianextern const char               *AcpiGbl_AccessTypes[];
227260340Sianextern const char               *AcpiGbl_UpdateRules[];
228260340Sianextern const char               *AcpiGbl_MatchOps[];
229260340Sian
230260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
231260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
232260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
233260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
234260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
235260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
236260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
237260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
238260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
239260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
240260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
241260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
242260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
243260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
244260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
245260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
246260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
247260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
248260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
249260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
250260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
251260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
252260340Sianextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
253258780Seadlerextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
254185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
255185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
256185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
257185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
258185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
259185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
260185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
261185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
262185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
263185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
264185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
265185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
266185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
267185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
268185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
269240489Sgberextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
270240489Sgberextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
271185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
272240489Sgberextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
273185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
274240489Sgberextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
275240489Sgberextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
276185089Srajextern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
277240489Sgberextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
278240489Sgber
279240489Sgber
280240489Sgber/*
281240489Sgber * dmtable
282240489Sgber */
283209131Srajvoid
284185089SrajAcpiDmDumpDataTable (
285185089Sraj    ACPI_TABLE_HEADER       *Table);
286209131Sraj
287209131Srajvoid
288209131SrajAcpiDmDumpTable (
289240489Sgber    UINT32                  TableLength,
290240489Sgber    UINT32                  TableOffset,
291240489Sgber    void                    *Table,
292209131Sraj    UINT32                  SubTableLength,
293185089Sraj    ACPI_DMTABLE_INFO        *Info);
294209131Sraj
295209131Srajvoid
296209131SrajAcpiDmLineHeader (
297240489Sgber    UINT32                  Offset,
298240489Sgber    UINT32                  ByteLength,
299209131Sraj    char                    *Name);
300185089Sraj
301185089Srajvoid
302185089SrajAcpiDmLineHeader2 (
303185089Sraj    UINT32                  Offset,
304185089Sraj    UINT32                  ByteLength,
305185089Sraj    char                    *Name,
306240493Sgber    UINT32                  Value);
307240493Sgber
308240493Sgber
309185089Sraj/*
310185089Sraj * dmtbdump
311209131Sraj */
312240489Sgbervoid
313185089SrajAcpiDmDumpAsf (
314259484Snwhitehorn    ACPI_TABLE_HEADER       *Table);
315185089Sraj
316185089Srajvoid
317209131SrajAcpiDmDumpCpep (
318209131Sraj    ACPI_TABLE_HEADER       *Table);
319209131Sraj
320209131Srajvoid
321209131SrajAcpiDmDumpDmar (
322209131Sraj    ACPI_TABLE_HEADER       *Table);
323209131Sraj
324209131Srajvoid
325209131SrajAcpiDmDumpFadt (
326209131Sraj    ACPI_TABLE_HEADER       *Table);
327209131Sraj
328240489Sgbervoid
329240489SgberAcpiDmDumpSrat (
330185089Sraj    ACPI_TABLE_HEADER       *Table);
331209131Sraj
332209131Srajvoid
333209131SrajAcpiDmDumpMcfg (
334209131Sraj    ACPI_TABLE_HEADER       *Table);
335209131Sraj
336185089Srajvoid
337209131SrajAcpiDmDumpMadt (
338185089Sraj    ACPI_TABLE_HEADER       *Table);
339209131Sraj
340209131SrajUINT32
341185089SrajAcpiDmDumpRsdp (
342209131Sraj    ACPI_TABLE_HEADER       *Table);
343209131Sraj
344209131Srajvoid
345185089SrajAcpiDmDumpRsdt (
346209131Sraj    ACPI_TABLE_HEADER       *Table);
347240493Sgber
348240493Sgbervoid
349240493SgberAcpiDmDumpSlit (
350240493Sgber    ACPI_TABLE_HEADER       *Table);
351240493Sgber
352185089Srajvoid
353185089SrajAcpiDmDumpXsdt (
354185089Sraj    ACPI_TABLE_HEADER       *Table);
355185089Sraj
356209131Sraj
357185089Sraj/*
358209131Sraj * dmwalk
359209131Sraj */
360185089Srajvoid
361185089SrajAcpiDmDisassemble (
362209131Sraj    ACPI_WALK_STATE         *WalkState,
363209131Sraj    ACPI_PARSE_OBJECT       *Origin,
364209131Sraj    UINT32                  NumOpcodes);
365209131Sraj
366185089Srajvoid
367185089SrajAcpiDmWalkParseTree (
368185089Sraj    ACPI_PARSE_OBJECT       *Op,
369185089Sraj    ASL_WALK_CALLBACK       DescendingCallback,
370185089Sraj    ASL_WALK_CALLBACK       AscendingCallback,
371185089Sraj    void                    *Context);
372209131Sraj
373209131Sraj
374209131Sraj/*
375209131Sraj * dmopcode
376240493Sgber */
377240493Sgbervoid
378240493SgberAcpiDmDisassembleOneOp (
379240493Sgber    ACPI_WALK_STATE         *WalkState,
380240493Sgber    ACPI_OP_WALK_INFO       *Info,
381240493Sgber    ACPI_PARSE_OBJECT       *Op);
382240493Sgber
383209131Srajvoid
384209131SrajAcpiDmDecodeInternalObject (
385209131Sraj    ACPI_OPERAND_OBJECT     *ObjDesc);
386209131Sraj
387209131SrajUINT32
388209131SrajAcpiDmListType (
389209131Sraj    ACPI_PARSE_OBJECT       *Op);
390227843Smarius
391185089Srajvoid
392185089SrajAcpiDmMethodFlags (
393209131Sraj    ACPI_PARSE_OBJECT       *Op);
394185089Sraj
395209131Srajvoid
396209131SrajAcpiDmFieldFlags (
397185089Sraj    ACPI_PARSE_OBJECT       *Op);
398185089Sraj
399185089Srajvoid
400185089SrajAcpiDmAddressSpace (
401257702Snwhitehorn    UINT8                   SpaceId);
402185089Sraj
403185089Srajvoid
404185089SrajAcpiDmRegionFlags (
405185089Sraj    ACPI_PARSE_OBJECT       *Op);
406209131Sraj
407185089Srajvoid
408218228SmarcelAcpiDmMatchOp (
409185089Sraj    ACPI_PARSE_OBJECT       *Op);
410218228Smarcel
411218228SmarcelBOOLEAN
412209131SrajAcpiDmCommaIfListMember (
413218228Smarcel    ACPI_PARSE_OBJECT       *Op);
414259484Snwhitehorn
415259484Snwhitehornvoid
416209131SrajAcpiDmCommaIfFieldMember (
417185089Sraj    ACPI_PARSE_OBJECT       *Op);
418209131Sraj
419209131Sraj
420185089Sraj/*
421185089Sraj * dmnames
422185089Sraj */
423209131SrajUINT32
424185089SrajAcpiDmDumpName (
425209131Sraj    char                    *Name);
426209131Sraj
427240489SgberACPI_STATUS
428209131SrajAcpiPsDisplayObjectPathname (
429185089Sraj    ACPI_WALK_STATE         *WalkState,
430185089Sraj    ACPI_PARSE_OBJECT       *Op);
431209131Sraj
432240489Sgbervoid
433185089SrajAcpiDmNamestring (
434240489Sgber    char                    *Name);
435218228Smarcel
436218228Smarcel
437218228Smarcel/*
438209131Sraj * dmobject
439240489Sgber */
440240489Sgbervoid
441240489SgberAcpiDmDisplayInternalObject (
442218228Smarcel    ACPI_OPERAND_OBJECT     *ObjDesc,
443209131Sraj    ACPI_WALK_STATE         *WalkState);
444240489Sgber
445209131Srajvoid
446209131SrajAcpiDmDisplayArguments (
447209131Sraj    ACPI_WALK_STATE         *WalkState);
448185089Sraj
449185089Srajvoid
450209131SrajAcpiDmDisplayLocals (
451209131Sraj    ACPI_WALK_STATE         *WalkState);
452209131Sraj
453185089Srajvoid
454185089SrajAcpiDmDumpMethodInfo (
455185089Sraj    ACPI_STATUS             Status,
456185089Sraj    ACPI_WALK_STATE         *WalkState,
457209131Sraj    ACPI_PARSE_OBJECT       *Op);
458185089Sraj
459185089Sraj
460185089Sraj/*
461185089Sraj * dmbuffer
462185089Sraj */
463240489Sgbervoid
464240489SgberAcpiDmDisasmByteList (
465240489Sgber    UINT32                  Level,
466240489Sgber    UINT8                   *ByteData,
467209131Sraj    UINT32                  ByteCount);
468240489Sgber
469240489Sgbervoid
470259484SnwhitehornAcpiDmByteList (
471259484Snwhitehorn    ACPI_OP_WALK_INFO       *Info,
472240489Sgber    ACPI_PARSE_OBJECT       *Op);
473240489Sgber
474209131Srajvoid
475209131SrajAcpiDmIsEisaId (
476209131Sraj    ACPI_PARSE_OBJECT       *Op);
477209131Sraj
478209131Srajvoid
479209131SrajAcpiDmEisaId (
480209131Sraj    UINT32                  EncodedId);
481209131Sraj
482240489SgberBOOLEAN
483209131SrajAcpiDmIsUnicodeBuffer (
484240489Sgber    ACPI_PARSE_OBJECT       *Op);
485185089Sraj
486240489SgberBOOLEAN
487240489SgberAcpiDmIsStringBuffer (
488240489Sgber    ACPI_PARSE_OBJECT       *Op);
489240489Sgber
490240489Sgber
491240489Sgber/*
492185089Sraj * dmresrc
493240489Sgber */
494240489Sgbervoid
495240489SgberAcpiDmDumpInteger8 (
496240489Sgber    UINT8                   Value,
497240489Sgber    char                    *Name);
498240489Sgber
499240489Sgbervoid
500240489SgberAcpiDmDumpInteger16 (
501240489Sgber    UINT16                  Value,
502240489Sgber    char                    *Name);
503240489Sgber
504240489Sgbervoid
505240489SgberAcpiDmDumpInteger32 (
506240489Sgber    UINT32                  Value,
507240493Sgber    char                    *Name);
508240489Sgber
509240489Sgbervoid
510240489SgberAcpiDmDumpInteger64 (
511240489Sgber    UINT64                  Value,
512240489Sgber    char                    *Name);
513240489Sgber
514240489Sgbervoid
515240489SgberAcpiDmResourceTemplate (
516240489Sgber    ACPI_OP_WALK_INFO       *Info,
517240489Sgber    ACPI_PARSE_OBJECT       *Op,
518240489Sgber    UINT8                   *ByteData,
519240489Sgber    UINT32                  ByteCount);
520240489Sgber
521240489SgberACPI_STATUS
522240489SgberAcpiDmIsResourceTemplate (
523240489Sgber    ACPI_PARSE_OBJECT       *Op);
524240489Sgber
525240489Sgbervoid
526240489SgberAcpiDmIndent (
527240489Sgber    UINT32                  Level);
528240489Sgber
529240489Sgbervoid
530240489SgberAcpiDmBitList (
531240489Sgber    UINT16                  Mask);
532240489Sgber
533240489Sgbervoid
534240489SgberAcpiDmDecodeAttribute (
535240489Sgber    UINT8                   Attribute);
536240489Sgber
537240489Sgbervoid
538240489SgberAcpiDmDescriptorName (
539240489Sgber    void);
540240489Sgber
541240489Sgber
542240489Sgber/*
543240489Sgber * dmresrcl
544240489Sgber */
545240489Sgbervoid
546240489SgberAcpiDmWordDescriptor (
547240489Sgber    AML_RESOURCE            *Resource,
548240489Sgber    UINT32                  Length,
549240489Sgber    UINT32                  Level);
550240489Sgber
551240489Sgbervoid
552240489SgberAcpiDmDwordDescriptor (
553240489Sgber    AML_RESOURCE            *Resource,
554240489Sgber    UINT32                  Length,
555240489Sgber    UINT32                  Level);
556240489Sgber
557240489Sgbervoid
558240489SgberAcpiDmExtendedDescriptor (
559240489Sgber    AML_RESOURCE            *Resource,
560240489Sgber    UINT32                  Length,
561240489Sgber    UINT32                  Level);
562240489Sgber
563240489Sgbervoid
564209131SrajAcpiDmQwordDescriptor (
565209131Sraj    AML_RESOURCE            *Resource,
566186932Sraj    UINT32                  Length,
567186932Sraj    UINT32                  Level);
568186932Sraj
569209131Srajvoid
570209131SrajAcpiDmMemory24Descriptor (
571186932Sraj    AML_RESOURCE            *Resource,
572209131Sraj    UINT32                  Length,
573186932Sraj    UINT32                  Level);
574186932Sraj
575186932Srajvoid
576209131SrajAcpiDmMemory32Descriptor (
577209131Sraj    AML_RESOURCE            *Resource,
578186932Sraj    UINT32                  Length,
579186932Sraj    UINT32                  Level);
580186932Sraj
581209131Srajvoid
582209131SrajAcpiDmFixedMemory32Descriptor (
583186932Sraj    AML_RESOURCE            *Resource,
584186932Sraj    UINT32                  Length,
585186932Sraj    UINT32                  Level);
586240489Sgber
587185089Srajvoid
588186932SrajAcpiDmGenericRegisterDescriptor (
589209131Sraj    AML_RESOURCE            *Resource,
590209131Sraj    UINT32                  Length,
591240489Sgber    UINT32                  Level);
592186932Sraj
593185089Srajvoid
594185089SrajAcpiDmInterruptDescriptor (
595240489Sgber    AML_RESOURCE            *Resource,
596240489Sgber    UINT32                  Length,
597240489Sgber    UINT32                  Level);
598240489Sgber
599240489Sgbervoid
600240489SgberAcpiDmVendorLargeDescriptor (
601240489Sgber    AML_RESOURCE            *Resource,
602240489Sgber    UINT32                  Length,
603240489Sgber    UINT32                  Level);
604240489Sgber
605240489Sgbervoid
606240489SgberAcpiDmVendorCommon (
607240489Sgber    char                    *Name,
608240489Sgber    UINT8                   *ByteData,
609240489Sgber    UINT32                  Length,
610240489Sgber    UINT32                  Level);
611240489Sgber
612240489Sgber
613240489Sgber/*
614240489Sgber * dmresrcs
615240489Sgber */
616240489Sgbervoid
617240489SgberAcpiDmIrqDescriptor (
618240489Sgber    AML_RESOURCE            *Resource,
619240489Sgber    UINT32                  Length,
620240489Sgber    UINT32                  Level);
621240489Sgber
622240489Sgbervoid
623240489SgberAcpiDmDmaDescriptor (
624240489Sgber    AML_RESOURCE            *Resource,
625240489Sgber    UINT32                  Length,
626240489Sgber    UINT32                  Level);
627240489Sgber
628240489Sgbervoid
629240489SgberAcpiDmIoDescriptor (
630240489Sgber    AML_RESOURCE            *Resource,
631240489Sgber    UINT32                  Length,
632240489Sgber    UINT32                  Level);
633240489Sgber
634240489Sgbervoid
635240489SgberAcpiDmFixedIoDescriptor (
636240489Sgber    AML_RESOURCE            *Resource,
637240489Sgber    UINT32                  Length,
638240489Sgber    UINT32                  Level);
639240489Sgber
640240489Sgbervoid
641240489SgberAcpiDmStartDependentDescriptor (
642240489Sgber    AML_RESOURCE            *Resource,
643240489Sgber    UINT32                  Length,
644240489Sgber    UINT32                  Level);
645240489Sgber
646240489Sgbervoid
647240489SgberAcpiDmEndDependentDescriptor (
648240489Sgber    AML_RESOURCE            *Resource,
649240489Sgber    UINT32                  Length,
650240489Sgber    UINT32                  Level);
651240489Sgber
652240489Sgbervoid
653240489SgberAcpiDmVendorSmallDescriptor (
654240489Sgber    AML_RESOURCE            *Resource,
655240489Sgber    UINT32                  Length,
656240489Sgber    UINT32                  Level);
657240489Sgber
658240489Sgber
659240489Sgber/*
660240489Sgber * dmutils
661240489Sgber */
662240489Sgbervoid
663240489SgberAcpiDmAddToExternalList (
664240489Sgber    char                    *Path,
665240489Sgber    UINT8                   Type,
666240489Sgber    UINT32                  Value);
667240489Sgber
668240489Sgber/*
669240489Sgber * dmrestag
670240489Sgber */
671240489Sgbervoid
672185089SrajAcpiDmFindResources (
673209131Sraj    ACPI_PARSE_OBJECT       *Root);
674185089Sraj
675185089Srajvoid
676240489SgberAcpiDmCheckResourceReference (
677185089Sraj    ACPI_PARSE_OBJECT       *Op,
678185089Sraj    ACPI_WALK_STATE         *WalkState);
679185089Sraj
680240489Sgber#endif  /* __ACDISASM_H__ */
681240489Sgber