1 /******************************************************************************
2  *
3  * Name: acdisasm.h - AML disassembler
4  *
5  *****************************************************************************/
6 
7 /******************************************************************************
8  *
9  * 1. Copyright Notice
10  *
11  * Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp.
12  * All rights reserved.
13  *
14  * 2. License
15  *
16  * 2.1. This is your license from Intel Corp. under its intellectual property
17  * rights.  You may have additional license terms from the party that provided
18  * you this software, covering your right to use that party's intellectual
19  * property rights.
20  *
21  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22  * copy of the source code appearing in this file ("Covered Code") an
23  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24  * base code distributed originally by Intel ("Original Intel Code") to copy,
25  * make derivatives, distribute, use and display any portion of the Covered
26  * Code in any form, with the right to sublicense such rights; and
27  *
28  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29  * license (with the right to sublicense), under only those claims of Intel
30  * patents that are infringed by the Original Intel Code, to make, use, sell,
31  * offer to sell, and import the Covered Code and derivative works thereof
32  * solely to the minimum extent necessary to exercise the above copyright
33  * license, and in no event shall the patent license extend to any additions
34  * to or modifications of the Original Intel Code.  No other license or right
35  * is granted directly or by implication, estoppel or otherwise;
36  *
37  * The above copyright and patent license is granted only if the following
38  * conditions are met:
39  *
40  * 3. Conditions
41  *
42  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43  * Redistribution of source code of any substantial portion of the Covered
44  * Code or modification with rights to further distribute source must include
45  * the above Copyright Notice, the above License, this list of Conditions,
46  * and the following Disclaimer and Export Compliance provision.  In addition,
47  * Licensee must cause all Covered Code to which Licensee contributes to
48  * contain a file documenting the changes Licensee made to create that Covered
49  * Code and the date of any change.  Licensee must include in that file the
50  * documentation of any changes made by any predecessor Licensee.  Licensee
51  * must include a prominent statement that the modification is derived,
52  * directly or indirectly, from Original Intel Code.
53  *
54  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55  * Redistribution of source code of any substantial portion of the Covered
56  * Code or modification without rights to further distribute source must
57  * include the following Disclaimer and Export Compliance provision in the
58  * documentation and/or other materials provided with distribution.  In
59  * addition, Licensee may not authorize further sublicense of source of any
60  * portion of the Covered Code, and must include terms to the effect that the
61  * license from Licensee to its licensee is limited to the intellectual
62  * property embodied in the software Licensee provides to its licensee, and
63  * not to intellectual property embodied in modifications its licensee may
64  * make.
65  *
66  * 3.3. Redistribution of Executable. Redistribution in executable form of any
67  * substantial portion of the Covered Code or modification must reproduce the
68  * above Copyright Notice, and the following Disclaimer and Export Compliance
69  * provision in the documentation and/or other materials provided with the
70  * distribution.
71  *
72  * 3.4. Intel retains all right, title, and interest in and to the Original
73  * Intel Code.
74  *
75  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76  * Intel shall be used in advertising or otherwise to promote the sale, use or
77  * other dealings in products derived from or relating to the Covered Code
78  * without prior written authorization from Intel.
79  *
80  * 4. Disclaimer and Export Compliance
81  *
82  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83  * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
85  * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
86  * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
87  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
88  * PARTICULAR PURPOSE.
89  *
90  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
96  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
97  * LIMITED REMEDY.
98  *
99  * 4.3. Licensee shall not export, either directly or indirectly, any of this
100  * software or system incorporating such software without first obtaining any
101  * required license or other approval from the U. S. Department of Commerce or
102  * any other agency or department of the United States Government.  In the
103  * event Licensee exports any such software from the United States or
104  * re-exports any such software from a foreign destination, Licensee shall
105  * ensure that the distribution and export/re-export of the software is in
106  * compliance with all laws, regulations, orders, or other restrictions of the
107  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108  * any of its subsidiaries will export/re-export any technical data, process,
109  * software, or service, directly or indirectly, to any country for which the
110  * United States government or any agency thereof requires an export license,
111  * other governmental approval, or letter of assurance, without first obtaining
112  * such license, approval or letter.
113  *
114  *****************************************************************************/
115 
116 #ifndef __ACDISASM_H__
117 #define __ACDISASM_H__
118 
119 #include "amlresrc.h"
120 
121 
122 #define BLOCK_NONE              0
123 #define BLOCK_PAREN             1
124 #define BLOCK_BRACE             2
125 #define BLOCK_COMMA_LIST        4
126 #define ACPI_DEFAULT_RESNAME    *(UINT32 *) "__RD"
127 
128 
129 typedef const struct acpi_dmtable_info
130 {
131     UINT8                       Opcode;
132     UINT8                       Offset;
133     char                        *Name;
134     UINT8                       Flags;
135 
136 } ACPI_DMTABLE_INFO;
137 
138 #define DT_LENGTH                       0x01    /* Field is a subtable length */
139 #define DT_FLAG                         0x02    /* Field is a flag value */
140 #define DT_NON_ZERO                     0x04    /* Field must be non-zero */
141 
142 /* TBD: Not used at this time */
143 
144 #define DT_OPTIONAL                     0x08
145 #define DT_COUNT                        0x10
146 
147 /*
148  * Values for Opcode above.
149  * Note: 0-7 must not change, used as a flag shift value
150  */
151 #define ACPI_DMT_FLAG0                  0
152 #define ACPI_DMT_FLAG1                  1
153 #define ACPI_DMT_FLAG2                  2
154 #define ACPI_DMT_FLAG3                  3
155 #define ACPI_DMT_FLAG4                  4
156 #define ACPI_DMT_FLAG5                  5
157 #define ACPI_DMT_FLAG6                  6
158 #define ACPI_DMT_FLAG7                  7
159 #define ACPI_DMT_FLAGS0                 8
160 #define ACPI_DMT_FLAGS2                 9
161 #define ACPI_DMT_UINT8                  10
162 #define ACPI_DMT_UINT16                 11
163 #define ACPI_DMT_UINT24                 12
164 #define ACPI_DMT_UINT32                 13
165 #define ACPI_DMT_UINT56                 14
166 #define ACPI_DMT_UINT64                 15
167 #define ACPI_DMT_STRING                 16
168 #define ACPI_DMT_NAME4                  17
169 #define ACPI_DMT_NAME6                  18
170 #define ACPI_DMT_NAME8                  19
171 #define ACPI_DMT_CHKSUM                 20
172 #define ACPI_DMT_SPACEID                21
173 #define ACPI_DMT_GAS                    22
174 #define ACPI_DMT_ASF                    23
175 #define ACPI_DMT_DMAR                   24
176 #define ACPI_DMT_HEST                   25
177 #define ACPI_DMT_HESTNTFY               26
178 #define ACPI_DMT_HESTNTYP               27
179 #define ACPI_DMT_MADT                   28
180 #define ACPI_DMT_SRAT                   29
181 #define ACPI_DMT_EXIT                   30
182 #define ACPI_DMT_SIG                    31
183 #define ACPI_DMT_FADTPM                 32
184 #define ACPI_DMT_BUF16                  33
185 #define ACPI_DMT_IVRS                   34
186 #define ACPI_DMT_BUFFER                 35
187 #define ACPI_DMT_PCI_PATH               36
188 #define ACPI_DMT_EINJACT                37
189 #define ACPI_DMT_EINJINST               38
190 #define ACPI_DMT_ERSTACT                39
191 #define ACPI_DMT_ERSTINST               40
192 
193 
194 typedef
195 void (*ACPI_DMTABLE_HANDLER) (
196     ACPI_TABLE_HEADER       *Table);
197 
198 typedef
199 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
200     void                    **PFieldList);
201 
202 typedef struct acpi_dmtable_data
203 {
204     char                    *Signature;
205     ACPI_DMTABLE_INFO       *TableInfo;
206     ACPI_DMTABLE_HANDLER    TableHandler;
207     ACPI_CMTABLE_HANDLER    CmTableHandler;
208     const unsigned char     *Template;
209     char                    *Name;
210 
211 } ACPI_DMTABLE_DATA;
212 
213 
214 typedef struct acpi_op_walk_info
215 {
216     UINT32                  Level;
217     UINT32                  LastLevel;
218     UINT32                  Count;
219     UINT32                  BitOffset;
220     UINT32                  Flags;
221     ACPI_WALK_STATE         *WalkState;
222 
223 } ACPI_OP_WALK_INFO;
224 
225 /*
226  * TBD - another copy of this is in asltypes.h, fix
227  */
228 #ifndef ASL_WALK_CALLBACK_DEFINED
229 typedef
230 ACPI_STATUS (*ASL_WALK_CALLBACK) (
231     ACPI_PARSE_OBJECT           *Op,
232     UINT32                      Level,
233     void                        *Context);
234 #define ASL_WALK_CALLBACK_DEFINED
235 #endif
236 
237 
238 typedef struct acpi_resource_tag
239 {
240     UINT32                  BitIndex;
241     char                    *Tag;
242 
243 } ACPI_RESOURCE_TAG;
244 
245 /* Strings used for decoding flags to ASL keywords */
246 
247 extern const char               *AcpiGbl_WordDecode[];
248 extern const char               *AcpiGbl_IrqDecode[];
249 extern const char               *AcpiGbl_LockRule[];
250 extern const char               *AcpiGbl_AccessTypes[];
251 extern const char               *AcpiGbl_UpdateRules[];
252 extern const char               *AcpiGbl_MatchOps[];
253 
254 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
255 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
256 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
257 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
258 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
259 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
260 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
261 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
262 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
263 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
264 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
265 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
266 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
267 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
268 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
269 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
270 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
271 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
272 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
273 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
274 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
275 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
276 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
277 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
278 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
279 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
280 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
281 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
282 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
283 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
284 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
285 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
286 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
287 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
288 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
289 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
290 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
291 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
292 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
293 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
294 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
295 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
296 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
297 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
298 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
299 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
300 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
301 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
302 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
303 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
304 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
305 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
306 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
307 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
308 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
309 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
310 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
311 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
312 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
313 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
314 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
315 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
316 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
317 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
318 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
319 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
320 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
321 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
322 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
323 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
324 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
325 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
326 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
327 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
328 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
329 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
330 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
331 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
332 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
333 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
334 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
335 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
336 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
337 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
338 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
339 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
340 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
341 
342 
343 /*
344  * dmtable
345  */
346 extern ACPI_DMTABLE_DATA        AcpiDmTableData[];
347 
348 UINT8
349 AcpiDmGenerateChecksum (
350     void                    *Table,
351     UINT32                  Length,
352     UINT8                   OriginalChecksum);
353 
354 ACPI_DMTABLE_DATA *
355 AcpiDmGetTableData (
356     char                    *Signature);
357 
358 void
359 AcpiDmDumpDataTable (
360     ACPI_TABLE_HEADER       *Table);
361 
362 ACPI_STATUS
363 AcpiDmDumpTable (
364     UINT32                  TableLength,
365     UINT32                  TableOffset,
366     void                    *Table,
367     UINT32                  SubTableLength,
368     ACPI_DMTABLE_INFO        *Info);
369 
370 void
371 AcpiDmLineHeader (
372     UINT32                  Offset,
373     UINT32                  ByteLength,
374     char                    *Name);
375 
376 void
377 AcpiDmLineHeader2 (
378     UINT32                  Offset,
379     UINT32                  ByteLength,
380     char                    *Name,
381     UINT32                  Value);
382 
383 
384 /*
385  * dmtbdump
386  */
387 void
388 AcpiDmDumpAsf (
389     ACPI_TABLE_HEADER       *Table);
390 
391 void
392 AcpiDmDumpCpep (
393     ACPI_TABLE_HEADER       *Table);
394 
395 void
396 AcpiDmDumpDmar (
397     ACPI_TABLE_HEADER       *Table);
398 
399 void
400 AcpiDmDumpEinj (
401     ACPI_TABLE_HEADER       *Table);
402 
403 void
404 AcpiDmDumpErst (
405     ACPI_TABLE_HEADER       *Table);
406 
407 void
408 AcpiDmDumpFadt (
409     ACPI_TABLE_HEADER       *Table);
410 
411 void
412 AcpiDmDumpHest (
413     ACPI_TABLE_HEADER       *Table);
414 
415 void
416 AcpiDmDumpIvrs (
417     ACPI_TABLE_HEADER       *Table);
418 
419 void
420 AcpiDmDumpMcfg (
421     ACPI_TABLE_HEADER       *Table);
422 
423 void
424 AcpiDmDumpMadt (
425     ACPI_TABLE_HEADER       *Table);
426 
427 void
428 AcpiDmDumpMsct (
429     ACPI_TABLE_HEADER       *Table);
430 
431 UINT32
432 AcpiDmDumpRsdp (
433     ACPI_TABLE_HEADER       *Table);
434 
435 void
436 AcpiDmDumpRsdt (
437     ACPI_TABLE_HEADER       *Table);
438 
439 void
440 AcpiDmDumpSlit (
441     ACPI_TABLE_HEADER       *Table);
442 
443 void
444 AcpiDmDumpSrat (
445     ACPI_TABLE_HEADER       *Table);
446 
447 void
448 AcpiDmDumpWdat (
449     ACPI_TABLE_HEADER       *Table);
450 
451 void
452 AcpiDmDumpXsdt (
453     ACPI_TABLE_HEADER       *Table);
454 
455 
456 /*
457  * dmwalk
458  */
459 void
460 AcpiDmDisassemble (
461     ACPI_WALK_STATE         *WalkState,
462     ACPI_PARSE_OBJECT       *Origin,
463     UINT32                  NumOpcodes);
464 
465 void
466 AcpiDmWalkParseTree (
467     ACPI_PARSE_OBJECT       *Op,
468     ASL_WALK_CALLBACK       DescendingCallback,
469     ASL_WALK_CALLBACK       AscendingCallback,
470     void                    *Context);
471 
472 
473 /*
474  * dmopcode
475  */
476 void
477 AcpiDmDisassembleOneOp (
478     ACPI_WALK_STATE         *WalkState,
479     ACPI_OP_WALK_INFO       *Info,
480     ACPI_PARSE_OBJECT       *Op);
481 
482 void
483 AcpiDmDecodeInternalObject (
484     ACPI_OPERAND_OBJECT     *ObjDesc);
485 
486 UINT32
487 AcpiDmListType (
488     ACPI_PARSE_OBJECT       *Op);
489 
490 void
491 AcpiDmMethodFlags (
492     ACPI_PARSE_OBJECT       *Op);
493 
494 void
495 AcpiDmFieldFlags (
496     ACPI_PARSE_OBJECT       *Op);
497 
498 void
499 AcpiDmAddressSpace (
500     UINT8                   SpaceId);
501 
502 void
503 AcpiDmRegionFlags (
504     ACPI_PARSE_OBJECT       *Op);
505 
506 void
507 AcpiDmMatchOp (
508     ACPI_PARSE_OBJECT       *Op);
509 
510 
511 /*
512  * dmnames
513  */
514 UINT32
515 AcpiDmDumpName (
516     UINT32                  Name);
517 
518 ACPI_STATUS
519 AcpiPsDisplayObjectPathname (
520     ACPI_WALK_STATE         *WalkState,
521     ACPI_PARSE_OBJECT       *Op);
522 
523 void
524 AcpiDmNamestring (
525     char                    *Name);
526 
527 
528 /*
529  * dmobject
530  */
531 void
532 AcpiDmDisplayInternalObject (
533     ACPI_OPERAND_OBJECT     *ObjDesc,
534     ACPI_WALK_STATE         *WalkState);
535 
536 void
537 AcpiDmDisplayArguments (
538     ACPI_WALK_STATE         *WalkState);
539 
540 void
541 AcpiDmDisplayLocals (
542     ACPI_WALK_STATE         *WalkState);
543 
544 void
545 AcpiDmDumpMethodInfo (
546     ACPI_STATUS             Status,
547     ACPI_WALK_STATE         *WalkState,
548     ACPI_PARSE_OBJECT       *Op);
549 
550 
551 /*
552  * dmbuffer
553  */
554 void
555 AcpiDmDisasmByteList (
556     UINT32                  Level,
557     UINT8                   *ByteData,
558     UINT32                  ByteCount);
559 
560 void
561 AcpiDmByteList (
562     ACPI_OP_WALK_INFO       *Info,
563     ACPI_PARSE_OBJECT       *Op);
564 
565 void
566 AcpiDmIsEisaId (
567     ACPI_PARSE_OBJECT       *Op);
568 
569 void
570 AcpiDmEisaId (
571     UINT32                  EncodedId);
572 
573 BOOLEAN
574 AcpiDmIsUnicodeBuffer (
575     ACPI_PARSE_OBJECT       *Op);
576 
577 BOOLEAN
578 AcpiDmIsStringBuffer (
579     ACPI_PARSE_OBJECT       *Op);
580 
581 
582 /*
583  * dmextern
584  */
585 void
586 AcpiDmAddToExternalList (
587     ACPI_PARSE_OBJECT       *Op,
588     char                    *Path,
589     UINT8                   Type,
590     UINT32                  Value);
591 
592 void
593 AcpiDmAddExternalsToNamespace (
594     void);
595 
596 UINT32
597 AcpiDmGetExternalMethodCount (
598     void);
599 
600 void
601 AcpiDmClearExternalList (
602     void);
603 
604 void
605 AcpiDmEmitExternals (
606     void);
607 
608 
609 /*
610  * dmresrc
611  */
612 void
613 AcpiDmDumpInteger8 (
614     UINT8                   Value,
615     char                    *Name);
616 
617 void
618 AcpiDmDumpInteger16 (
619     UINT16                  Value,
620     char                    *Name);
621 
622 void
623 AcpiDmDumpInteger32 (
624     UINT32                  Value,
625     char                    *Name);
626 
627 void
628 AcpiDmDumpInteger64 (
629     UINT64                  Value,
630     char                    *Name);
631 
632 void
633 AcpiDmResourceTemplate (
634     ACPI_OP_WALK_INFO       *Info,
635     ACPI_PARSE_OBJECT       *Op,
636     UINT8                   *ByteData,
637     UINT32                  ByteCount);
638 
639 ACPI_STATUS
640 AcpiDmIsResourceTemplate (
641     ACPI_PARSE_OBJECT       *Op);
642 
643 void
644 AcpiDmBitList (
645     UINT16                  Mask);
646 
647 void
648 AcpiDmDescriptorName (
649     void);
650 
651 
652 /*
653  * dmresrcl
654  */
655 void
656 AcpiDmWordDescriptor (
657     AML_RESOURCE            *Resource,
658     UINT32                  Length,
659     UINT32                  Level);
660 
661 void
662 AcpiDmDwordDescriptor (
663     AML_RESOURCE            *Resource,
664     UINT32                  Length,
665     UINT32                  Level);
666 
667 void
668 AcpiDmExtendedDescriptor (
669     AML_RESOURCE            *Resource,
670     UINT32                  Length,
671     UINT32                  Level);
672 
673 void
674 AcpiDmQwordDescriptor (
675     AML_RESOURCE            *Resource,
676     UINT32                  Length,
677     UINT32                  Level);
678 
679 void
680 AcpiDmMemory24Descriptor (
681     AML_RESOURCE            *Resource,
682     UINT32                  Length,
683     UINT32                  Level);
684 
685 void
686 AcpiDmMemory32Descriptor (
687     AML_RESOURCE            *Resource,
688     UINT32                  Length,
689     UINT32                  Level);
690 
691 void
692 AcpiDmFixedMemory32Descriptor (
693     AML_RESOURCE            *Resource,
694     UINT32                  Length,
695     UINT32                  Level);
696 
697 void
698 AcpiDmGenericRegisterDescriptor (
699     AML_RESOURCE            *Resource,
700     UINT32                  Length,
701     UINT32                  Level);
702 
703 void
704 AcpiDmInterruptDescriptor (
705     AML_RESOURCE            *Resource,
706     UINT32                  Length,
707     UINT32                  Level);
708 
709 void
710 AcpiDmVendorLargeDescriptor (
711     AML_RESOURCE            *Resource,
712     UINT32                  Length,
713     UINT32                  Level);
714 
715 void
716 AcpiDmVendorCommon (
717     char                    *Name,
718     UINT8                   *ByteData,
719     UINT32                  Length,
720     UINT32                  Level);
721 
722 
723 /*
724  * dmresrcs
725  */
726 void
727 AcpiDmIrqDescriptor (
728     AML_RESOURCE            *Resource,
729     UINT32                  Length,
730     UINT32                  Level);
731 
732 void
733 AcpiDmDmaDescriptor (
734     AML_RESOURCE            *Resource,
735     UINT32                  Length,
736     UINT32                  Level);
737 
738 void
739 AcpiDmIoDescriptor (
740     AML_RESOURCE            *Resource,
741     UINT32                  Length,
742     UINT32                  Level);
743 
744 void
745 AcpiDmFixedIoDescriptor (
746     AML_RESOURCE            *Resource,
747     UINT32                  Length,
748     UINT32                  Level);
749 
750 void
751 AcpiDmStartDependentDescriptor (
752     AML_RESOURCE            *Resource,
753     UINT32                  Length,
754     UINT32                  Level);
755 
756 void
757 AcpiDmEndDependentDescriptor (
758     AML_RESOURCE            *Resource,
759     UINT32                  Length,
760     UINT32                  Level);
761 
762 void
763 AcpiDmVendorSmallDescriptor (
764     AML_RESOURCE            *Resource,
765     UINT32                  Length,
766     UINT32                  Level);
767 
768 
769 /*
770  * dmutils
771  */
772 void
773 AcpiDmDecodeAttribute (
774     UINT8                   Attribute);
775 
776 void
777 AcpiDmIndent (
778     UINT32                  Level);
779 
780 BOOLEAN
781 AcpiDmCommaIfListMember (
782     ACPI_PARSE_OBJECT       *Op);
783 
784 void
785 AcpiDmCommaIfFieldMember (
786     ACPI_PARSE_OBJECT       *Op);
787 
788 
789 /*
790  * dmrestag
791  */
792 void
793 AcpiDmFindResources (
794     ACPI_PARSE_OBJECT       *Root);
795 
796 void
797 AcpiDmCheckResourceReference (
798     ACPI_PARSE_OBJECT       *Op,
799     ACPI_WALK_STATE         *WalkState);
800 
801 
802 /*
803  * acdisasm
804  */
805 void
806 AdDisassemblerHeader (
807     char                    *Filename);
808 
809 
810 #endif  /* __ACDISASM_H__ */
811