xref: /illumos-gate/usr/src/uts/intel/sys/acpi/acdisasm.h (revision 56f33205c9ed776c3c909e07d52e94610a675740)
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 - 2009, 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 
135 } ACPI_DMTABLE_INFO;
136 
137 /*
138  * Values for Opcode above.
139  * Note: 0-7 must not change, used as a flag shift value
140  */
141 #define ACPI_DMT_FLAG0                  0
142 #define ACPI_DMT_FLAG1                  1
143 #define ACPI_DMT_FLAG2                  2
144 #define ACPI_DMT_FLAG3                  3
145 #define ACPI_DMT_FLAG4                  4
146 #define ACPI_DMT_FLAG5                  5
147 #define ACPI_DMT_FLAG6                  6
148 #define ACPI_DMT_FLAG7                  7
149 #define ACPI_DMT_FLAGS0                 8
150 #define ACPI_DMT_FLAGS2                 9
151 #define ACPI_DMT_UINT8                  10
152 #define ACPI_DMT_UINT16                 11
153 #define ACPI_DMT_UINT24                 12
154 #define ACPI_DMT_UINT32                 13
155 #define ACPI_DMT_UINT56                 14
156 #define ACPI_DMT_UINT64                 15
157 #define ACPI_DMT_STRING                 16
158 #define ACPI_DMT_NAME4                  17
159 #define ACPI_DMT_NAME6                  18
160 #define ACPI_DMT_NAME8                  19
161 #define ACPI_DMT_CHKSUM                 20
162 #define ACPI_DMT_SPACEID                21
163 #define ACPI_DMT_GAS                    22
164 #define ACPI_DMT_ASF                    23
165 #define ACPI_DMT_DMAR                   24
166 #define ACPI_DMT_HEST                   25
167 #define ACPI_DMT_HESTNTFY               26
168 #define ACPI_DMT_HESTNTYP               27
169 #define ACPI_DMT_MADT                   28
170 #define ACPI_DMT_SRAT                   29
171 #define ACPI_DMT_EXIT                   30
172 #define ACPI_DMT_SIG                    31
173 #define ACPI_DMT_FADTPM                 32
174 #define ACPI_DMT_BUF16                  33
175 #define ACPI_DMT_IVRS                   34
176 
177 
178 typedef
179 void (*ACPI_DMTABLE_HANDLER) (
180     ACPI_TABLE_HEADER       *Table);
181 
182 typedef struct acpi_dmtable_data
183 {
184     char                    *Signature;
185     ACPI_DMTABLE_INFO       *TableInfo;
186     ACPI_DMTABLE_HANDLER    TableHandler;
187     char                    *Name;
188 
189 } ACPI_DMTABLE_DATA;
190 
191 
192 typedef struct acpi_op_walk_info
193 {
194     UINT32                  Level;
195     UINT32                  LastLevel;
196     UINT32                  Count;
197     UINT32                  BitOffset;
198     UINT32                  Flags;
199     ACPI_WALK_STATE         *WalkState;
200 
201 } ACPI_OP_WALK_INFO;
202 
203 typedef
204 ACPI_STATUS (*ASL_WALK_CALLBACK) (
205     ACPI_PARSE_OBJECT           *Op,
206     UINT32                      Level,
207     void                        *Context);
208 
209 typedef struct acpi_resource_tag
210 {
211     UINT32                  BitIndex;
212     char                    *Tag;
213 
214 } ACPI_RESOURCE_TAG;
215 
216 /* Strings used for decoding flags to ASL keywords */
217 
218 extern const char               *AcpiGbl_WordDecode[];
219 extern const char               *AcpiGbl_IrqDecode[];
220 extern const char               *AcpiGbl_LockRule[];
221 extern const char               *AcpiGbl_AccessTypes[];
222 extern const char               *AcpiGbl_UpdateRules[];
223 extern const char               *AcpiGbl_MatchOps[];
224 
225 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
226 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
227 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
228 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
229 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
230 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
231 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
232 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
233 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
234 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
235 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
236 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
237 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
238 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
239 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
240 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
241 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
242 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
243 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
244 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
245 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
246 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
247 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
248 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
249 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
250 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
251 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
252 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
253 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
254 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
255 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
256 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
257 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
258 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
259 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
260 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
261 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
262 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
263 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
264 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
265 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
266 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
267 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
268 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
269 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
270 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
271 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
272 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
273 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
274 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
275 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
276 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
277 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
278 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
279 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
280 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
281 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
282 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
283 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
284 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
285 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
286 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
287 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
288 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
289 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
290 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
291 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
292 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
293 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
294 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
295 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
296 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
297 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
298 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
299 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
300 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
301 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
302 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
303 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
304 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
305 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
306 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
307 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
308 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
309 
310 
311 /*
312  * dmtable
313  */
314 void
315 AcpiDmDumpDataTable (
316     ACPI_TABLE_HEADER       *Table);
317 
318 ACPI_STATUS
319 AcpiDmDumpTable (
320     UINT32                  TableLength,
321     UINT32                  TableOffset,
322     void                    *Table,
323     UINT32                  SubTableLength,
324     ACPI_DMTABLE_INFO        *Info);
325 
326 void
327 AcpiDmLineHeader (
328     UINT32                  Offset,
329     UINT32                  ByteLength,
330     char                    *Name);
331 
332 void
333 AcpiDmLineHeader2 (
334     UINT32                  Offset,
335     UINT32                  ByteLength,
336     char                    *Name,
337     UINT32                  Value);
338 
339 
340 /*
341  * dmtbdump
342  */
343 void
344 AcpiDmDumpAsf (
345     ACPI_TABLE_HEADER       *Table);
346 
347 void
348 AcpiDmDumpCpep (
349     ACPI_TABLE_HEADER       *Table);
350 
351 void
352 AcpiDmDumpDmar (
353     ACPI_TABLE_HEADER       *Table);
354 
355 void
356 AcpiDmDumpEinj (
357     ACPI_TABLE_HEADER       *Table);
358 
359 void
360 AcpiDmDumpErst (
361     ACPI_TABLE_HEADER       *Table);
362 
363 void
364 AcpiDmDumpFadt (
365     ACPI_TABLE_HEADER       *Table);
366 
367 void
368 AcpiDmDumpHest (
369     ACPI_TABLE_HEADER       *Table);
370 
371 void
372 AcpiDmDumpIvrs (
373     ACPI_TABLE_HEADER       *Table);
374 
375 void
376 AcpiDmDumpMcfg (
377     ACPI_TABLE_HEADER       *Table);
378 
379 void
380 AcpiDmDumpMadt (
381     ACPI_TABLE_HEADER       *Table);
382 
383 void
384 AcpiDmDumpMsct (
385     ACPI_TABLE_HEADER       *Table);
386 
387 UINT32
388 AcpiDmDumpRsdp (
389     ACPI_TABLE_HEADER       *Table);
390 
391 void
392 AcpiDmDumpRsdt (
393     ACPI_TABLE_HEADER       *Table);
394 
395 void
396 AcpiDmDumpSlit (
397     ACPI_TABLE_HEADER       *Table);
398 
399 void
400 AcpiDmDumpSrat (
401     ACPI_TABLE_HEADER       *Table);
402 
403 void
404 AcpiDmDumpWdat (
405     ACPI_TABLE_HEADER       *Table);
406 
407 void
408 AcpiDmDumpXsdt (
409     ACPI_TABLE_HEADER       *Table);
410 
411 
412 /*
413  * dmwalk
414  */
415 void
416 AcpiDmDisassemble (
417     ACPI_WALK_STATE         *WalkState,
418     ACPI_PARSE_OBJECT       *Origin,
419     UINT32                  NumOpcodes);
420 
421 void
422 AcpiDmWalkParseTree (
423     ACPI_PARSE_OBJECT       *Op,
424     ASL_WALK_CALLBACK       DescendingCallback,
425     ASL_WALK_CALLBACK       AscendingCallback,
426     void                    *Context);
427 
428 
429 /*
430  * dmopcode
431  */
432 void
433 AcpiDmDisassembleOneOp (
434     ACPI_WALK_STATE         *WalkState,
435     ACPI_OP_WALK_INFO       *Info,
436     ACPI_PARSE_OBJECT       *Op);
437 
438 void
439 AcpiDmDecodeInternalObject (
440     ACPI_OPERAND_OBJECT     *ObjDesc);
441 
442 UINT32
443 AcpiDmListType (
444     ACPI_PARSE_OBJECT       *Op);
445 
446 void
447 AcpiDmMethodFlags (
448     ACPI_PARSE_OBJECT       *Op);
449 
450 void
451 AcpiDmFieldFlags (
452     ACPI_PARSE_OBJECT       *Op);
453 
454 void
455 AcpiDmAddressSpace (
456     UINT8                   SpaceId);
457 
458 void
459 AcpiDmRegionFlags (
460     ACPI_PARSE_OBJECT       *Op);
461 
462 void
463 AcpiDmMatchOp (
464     ACPI_PARSE_OBJECT       *Op);
465 
466 
467 /*
468  * dmnames
469  */
470 UINT32
471 AcpiDmDumpName (
472     UINT32                  Name);
473 
474 ACPI_STATUS
475 AcpiPsDisplayObjectPathname (
476     ACPI_WALK_STATE         *WalkState,
477     ACPI_PARSE_OBJECT       *Op);
478 
479 void
480 AcpiDmNamestring (
481     char                    *Name);
482 
483 
484 /*
485  * dmobject
486  */
487 void
488 AcpiDmDisplayInternalObject (
489     ACPI_OPERAND_OBJECT     *ObjDesc,
490     ACPI_WALK_STATE         *WalkState);
491 
492 void
493 AcpiDmDisplayArguments (
494     ACPI_WALK_STATE         *WalkState);
495 
496 void
497 AcpiDmDisplayLocals (
498     ACPI_WALK_STATE         *WalkState);
499 
500 void
501 AcpiDmDumpMethodInfo (
502     ACPI_STATUS             Status,
503     ACPI_WALK_STATE         *WalkState,
504     ACPI_PARSE_OBJECT       *Op);
505 
506 
507 /*
508  * dmbuffer
509  */
510 void
511 AcpiDmDisasmByteList (
512     UINT32                  Level,
513     UINT8                   *ByteData,
514     UINT32                  ByteCount);
515 
516 void
517 AcpiDmByteList (
518     ACPI_OP_WALK_INFO       *Info,
519     ACPI_PARSE_OBJECT       *Op);
520 
521 void
522 AcpiDmIsEisaId (
523     ACPI_PARSE_OBJECT       *Op);
524 
525 void
526 AcpiDmEisaId (
527     UINT32                  EncodedId);
528 
529 BOOLEAN
530 AcpiDmIsUnicodeBuffer (
531     ACPI_PARSE_OBJECT       *Op);
532 
533 BOOLEAN
534 AcpiDmIsStringBuffer (
535     ACPI_PARSE_OBJECT       *Op);
536 
537 
538 /*
539  * dmextern
540  */
541 void
542 AcpiDmAddToExternalList (
543     ACPI_PARSE_OBJECT       *Op,
544     char                    *Path,
545     UINT8                   Type,
546     UINT32                  Value);
547 
548 void
549 AcpiDmAddExternalsToNamespace (
550     void);
551 
552 UINT32
553 AcpiDmGetExternalMethodCount (
554     void);
555 
556 void
557 AcpiDmClearExternalList (
558     void);
559 
560 void
561 AcpiDmEmitExternals (
562     void);
563 
564 
565 /*
566  * dmresrc
567  */
568 void
569 AcpiDmDumpInteger8 (
570     UINT8                   Value,
571     char                    *Name);
572 
573 void
574 AcpiDmDumpInteger16 (
575     UINT16                  Value,
576     char                    *Name);
577 
578 void
579 AcpiDmDumpInteger32 (
580     UINT32                  Value,
581     char                    *Name);
582 
583 void
584 AcpiDmDumpInteger64 (
585     UINT64                  Value,
586     char                    *Name);
587 
588 void
589 AcpiDmResourceTemplate (
590     ACPI_OP_WALK_INFO       *Info,
591     ACPI_PARSE_OBJECT       *Op,
592     UINT8                   *ByteData,
593     UINT32                  ByteCount);
594 
595 ACPI_STATUS
596 AcpiDmIsResourceTemplate (
597     ACPI_PARSE_OBJECT       *Op);
598 
599 void
600 AcpiDmBitList (
601     UINT16                  Mask);
602 
603 void
604 AcpiDmDescriptorName (
605     void);
606 
607 
608 /*
609  * dmresrcl
610  */
611 void
612 AcpiDmWordDescriptor (
613     AML_RESOURCE            *Resource,
614     UINT32                  Length,
615     UINT32                  Level);
616 
617 void
618 AcpiDmDwordDescriptor (
619     AML_RESOURCE            *Resource,
620     UINT32                  Length,
621     UINT32                  Level);
622 
623 void
624 AcpiDmExtendedDescriptor (
625     AML_RESOURCE            *Resource,
626     UINT32                  Length,
627     UINT32                  Level);
628 
629 void
630 AcpiDmQwordDescriptor (
631     AML_RESOURCE            *Resource,
632     UINT32                  Length,
633     UINT32                  Level);
634 
635 void
636 AcpiDmMemory24Descriptor (
637     AML_RESOURCE            *Resource,
638     UINT32                  Length,
639     UINT32                  Level);
640 
641 void
642 AcpiDmMemory32Descriptor (
643     AML_RESOURCE            *Resource,
644     UINT32                  Length,
645     UINT32                  Level);
646 
647 void
648 AcpiDmFixedMemory32Descriptor (
649     AML_RESOURCE            *Resource,
650     UINT32                  Length,
651     UINT32                  Level);
652 
653 void
654 AcpiDmGenericRegisterDescriptor (
655     AML_RESOURCE            *Resource,
656     UINT32                  Length,
657     UINT32                  Level);
658 
659 void
660 AcpiDmInterruptDescriptor (
661     AML_RESOURCE            *Resource,
662     UINT32                  Length,
663     UINT32                  Level);
664 
665 void
666 AcpiDmVendorLargeDescriptor (
667     AML_RESOURCE            *Resource,
668     UINT32                  Length,
669     UINT32                  Level);
670 
671 void
672 AcpiDmVendorCommon (
673     char                    *Name,
674     UINT8                   *ByteData,
675     UINT32                  Length,
676     UINT32                  Level);
677 
678 
679 /*
680  * dmresrcs
681  */
682 void
683 AcpiDmIrqDescriptor (
684     AML_RESOURCE            *Resource,
685     UINT32                  Length,
686     UINT32                  Level);
687 
688 void
689 AcpiDmDmaDescriptor (
690     AML_RESOURCE            *Resource,
691     UINT32                  Length,
692     UINT32                  Level);
693 
694 void
695 AcpiDmIoDescriptor (
696     AML_RESOURCE            *Resource,
697     UINT32                  Length,
698     UINT32                  Level);
699 
700 void
701 AcpiDmFixedIoDescriptor (
702     AML_RESOURCE            *Resource,
703     UINT32                  Length,
704     UINT32                  Level);
705 
706 void
707 AcpiDmStartDependentDescriptor (
708     AML_RESOURCE            *Resource,
709     UINT32                  Length,
710     UINT32                  Level);
711 
712 void
713 AcpiDmEndDependentDescriptor (
714     AML_RESOURCE            *Resource,
715     UINT32                  Length,
716     UINT32                  Level);
717 
718 void
719 AcpiDmVendorSmallDescriptor (
720     AML_RESOURCE            *Resource,
721     UINT32                  Length,
722     UINT32                  Level);
723 
724 
725 /*
726  * dmutils
727  */
728 void
729 AcpiDmDecodeAttribute (
730     UINT8                   Attribute);
731 
732 void
733 AcpiDmIndent (
734     UINT32                  Level);
735 
736 BOOLEAN
737 AcpiDmCommaIfListMember (
738     ACPI_PARSE_OBJECT       *Op);
739 
740 void
741 AcpiDmCommaIfFieldMember (
742     ACPI_PARSE_OBJECT       *Op);
743 
744 
745 /*
746  * dmrestag
747  */
748 void
749 AcpiDmFindResources (
750     ACPI_PARSE_OBJECT       *Root);
751 
752 void
753 AcpiDmCheckResourceReference (
754     ACPI_PARSE_OBJECT       *Op,
755     ACPI_WALK_STATE         *WalkState);
756 
757 #endif  /* __ACDISASM_H__ */
758