xref: /illumos-gate/usr/src/uts/intel/sys/acpi/acdisasm.h (revision 26f3cdf0)
1 /******************************************************************************
2  *
3  * Name: acdisasm.h - AML disassembler
4  *
5  *****************************************************************************/
6 
7 /*
8  * Copyright (C) 2000 - 2011, Intel Corp.
9  * All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions, and the following disclaimer,
16  *    without modification.
17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18  *    substantially similar to the "NO WARRANTY" disclaimer below
19  *    ("Disclaimer") and any redistribution must be conditioned upon
20  *    including a substantially similar Disclaimer requirement for further
21  *    binary redistribution.
22  * 3. Neither the names of the above-listed copyright holders nor the names
23  *    of any contributors may be used to endorse or promote products derived
24  *    from this software without specific prior written permission.
25  *
26  * Alternatively, this software may be distributed under the terms of the
27  * GNU General Public License ("GPL") version 2 as published by the Free
28  * Software Foundation.
29  *
30  * NO WARRANTY
31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41  * POSSIBILITY OF SUCH DAMAGES.
42  */
43 
44 #ifndef __ACDISASM_H__
45 #define __ACDISASM_H__
46 
47 #include "amlresrc.h"
48 
49 
50 #define BLOCK_NONE              0
51 #define BLOCK_PAREN             1
52 #define BLOCK_BRACE             2
53 #define BLOCK_COMMA_LIST        4
54 #define ACPI_DEFAULT_RESNAME    *(UINT32 *) "__RD"
55 
56 /*
57  * Raw table data header. Used by disassembler and data table compiler.
58  * Do not change.
59  */
60 #define ACPI_RAW_TABLE_DATA_HEADER      "Raw Table Data"
61 
62 
63 typedef const struct acpi_dmtable_info
64 {
65     UINT8                       Opcode;
66     UINT8                       Offset;
67     char                        *Name;
68     UINT8                       Flags;
69 
70 } ACPI_DMTABLE_INFO;
71 
72 #define DT_LENGTH                       0x01    /* Field is a subtable length */
73 #define DT_FLAG                         0x02    /* Field is a flag value */
74 #define DT_NON_ZERO                     0x04    /* Field must be non-zero */
75 
76 /* TBD: Not used at this time */
77 
78 #define DT_OPTIONAL                     0x08
79 #define DT_COUNT                        0x10
80 
81 /*
82  * Values for Opcode above.
83  * Note: 0-7 must not change, used as a flag shift value
84  */
85 #define ACPI_DMT_FLAG0                  0
86 #define ACPI_DMT_FLAG1                  1
87 #define ACPI_DMT_FLAG2                  2
88 #define ACPI_DMT_FLAG3                  3
89 #define ACPI_DMT_FLAG4                  4
90 #define ACPI_DMT_FLAG5                  5
91 #define ACPI_DMT_FLAG6                  6
92 #define ACPI_DMT_FLAG7                  7
93 #define ACPI_DMT_FLAGS0                 8
94 #define ACPI_DMT_FLAGS2                 9
95 #define ACPI_DMT_UINT8                  10
96 #define ACPI_DMT_UINT16                 11
97 #define ACPI_DMT_UINT24                 12
98 #define ACPI_DMT_UINT32                 13
99 #define ACPI_DMT_UINT56                 14
100 #define ACPI_DMT_UINT64                 15
101 #define ACPI_DMT_STRING                 16
102 #define ACPI_DMT_NAME4                  17
103 #define ACPI_DMT_NAME6                  18
104 #define ACPI_DMT_NAME8                  19
105 #define ACPI_DMT_CHKSUM                 20
106 #define ACPI_DMT_SPACEID                21
107 #define ACPI_DMT_GAS                    22
108 #define ACPI_DMT_ASF                    23
109 #define ACPI_DMT_DMAR                   24
110 #define ACPI_DMT_HEST                   25
111 #define ACPI_DMT_HESTNTFY               26
112 #define ACPI_DMT_HESTNTYP               27
113 #define ACPI_DMT_MADT                   28
114 #define ACPI_DMT_SRAT                   29
115 #define ACPI_DMT_EXIT                   30
116 #define ACPI_DMT_SIG                    31
117 #define ACPI_DMT_FADTPM                 32
118 #define ACPI_DMT_BUF16                  33
119 #define ACPI_DMT_IVRS                   34
120 #define ACPI_DMT_BUFFER                 35
121 #define ACPI_DMT_PCI_PATH               36
122 #define ACPI_DMT_EINJACT                37
123 #define ACPI_DMT_EINJINST               38
124 #define ACPI_DMT_ERSTACT                39
125 #define ACPI_DMT_ERSTINST               40
126 #define ACPI_DMT_ACCWIDTH               41
127 #define ACPI_DMT_UNICODE                42
128 #define ACPI_DMT_UUID                   43
129 #define ACPI_DMT_DEVICE_PATH            44
130 #define ACPI_DMT_LABEL                  45
131 #define ACPI_DMT_BUF7                   46
132 #define ACPI_DMT_BUF128                 47
133 #define ACPI_DMT_SLIC                   48
134 
135 typedef
136 void (*ACPI_DMTABLE_HANDLER) (
137     ACPI_TABLE_HEADER       *Table);
138 
139 typedef
140 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
141     void                    **PFieldList);
142 
143 typedef struct acpi_dmtable_data
144 {
145     char                    *Signature;
146     ACPI_DMTABLE_INFO       *TableInfo;
147     ACPI_DMTABLE_HANDLER    TableHandler;
148     ACPI_CMTABLE_HANDLER    CmTableHandler;
149     const unsigned char     *Template;
150     char                    *Name;
151 
152 } ACPI_DMTABLE_DATA;
153 
154 
155 typedef struct acpi_op_walk_info
156 {
157     UINT32                  Level;
158     UINT32                  LastLevel;
159     UINT32                  Count;
160     UINT32                  BitOffset;
161     UINT32                  Flags;
162     ACPI_WALK_STATE         *WalkState;
163 
164 } ACPI_OP_WALK_INFO;
165 
166 /*
167  * TBD - another copy of this is in asltypes.h, fix
168  */
169 #ifndef ASL_WALK_CALLBACK_DEFINED
170 typedef
171 ACPI_STATUS (*ASL_WALK_CALLBACK) (
172     ACPI_PARSE_OBJECT           *Op,
173     UINT32                      Level,
174     void                        *Context);
175 #define ASL_WALK_CALLBACK_DEFINED
176 #endif
177 
178 
179 typedef struct acpi_resource_tag
180 {
181     UINT32                  BitIndex;
182     char                    *Tag;
183 
184 } ACPI_RESOURCE_TAG;
185 
186 /* Strings used for decoding flags to ASL keywords */
187 
188 extern const char               *AcpiGbl_WordDecode[];
189 extern const char               *AcpiGbl_IrqDecode[];
190 extern const char               *AcpiGbl_LockRule[];
191 extern const char               *AcpiGbl_AccessTypes[];
192 extern const char               *AcpiGbl_UpdateRules[];
193 extern const char               *AcpiGbl_MatchOps[];
194 
195 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
196 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
197 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
198 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
199 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
200 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
201 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
202 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
203 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
204 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
205 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
206 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
207 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
208 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
209 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
210 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
211 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
212 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
213 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
214 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
215 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
216 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
217 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
218 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
219 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
220 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
221 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
222 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
223 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
224 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
225 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
226 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
227 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
228 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
229 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
230 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
231 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
232 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
233 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
234 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
235 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
236 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
237 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
238 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
239 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
240 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
241 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
242 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
243 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
244 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
245 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
246 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
247 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
248 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
249 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
250 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
251 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
252 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
253 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
254 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
255 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
256 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
257 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
258 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
259 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
260 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
261 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
262 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
263 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
264 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
265 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
266 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlicHdr[];
267 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic0[];
268 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic1[];
269 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
270 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
271 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
272 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
273 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
274 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
275 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
276 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
277 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
278 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
279 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
280 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
281 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
282 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
283 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
284 
285 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
286 
287 
288 /*
289  * dmtable
290  */
291 extern ACPI_DMTABLE_DATA        AcpiDmTableData[];
292 
293 UINT8
294 AcpiDmGenerateChecksum (
295     void                    *Table,
296     UINT32                  Length,
297     UINT8                   OriginalChecksum);
298 
299 ACPI_DMTABLE_DATA *
300 AcpiDmGetTableData (
301     char                    *Signature);
302 
303 void
304 AcpiDmDumpDataTable (
305     ACPI_TABLE_HEADER       *Table);
306 
307 ACPI_STATUS
308 AcpiDmDumpTable (
309     UINT32                  TableLength,
310     UINT32                  TableOffset,
311     void                    *Table,
312     UINT32                  SubTableLength,
313     ACPI_DMTABLE_INFO        *Info);
314 
315 void
316 AcpiDmLineHeader (
317     UINT32                  Offset,
318     UINT32                  ByteLength,
319     char                    *Name);
320 
321 void
322 AcpiDmLineHeader2 (
323     UINT32                  Offset,
324     UINT32                  ByteLength,
325     char                    *Name,
326     UINT32                  Value);
327 
328 
329 /*
330  * dmtbdump
331  */
332 void
333 AcpiDmDumpAsf (
334     ACPI_TABLE_HEADER       *Table);
335 
336 void
337 AcpiDmDumpCpep (
338     ACPI_TABLE_HEADER       *Table);
339 
340 void
341 AcpiDmDumpDmar (
342     ACPI_TABLE_HEADER       *Table);
343 
344 void
345 AcpiDmDumpEinj (
346     ACPI_TABLE_HEADER       *Table);
347 
348 void
349 AcpiDmDumpErst (
350     ACPI_TABLE_HEADER       *Table);
351 
352 void
353 AcpiDmDumpFadt (
354     ACPI_TABLE_HEADER       *Table);
355 
356 void
357 AcpiDmDumpHest (
358     ACPI_TABLE_HEADER       *Table);
359 
360 void
361 AcpiDmDumpIvrs (
362     ACPI_TABLE_HEADER       *Table);
363 
364 void
365 AcpiDmDumpMcfg (
366     ACPI_TABLE_HEADER       *Table);
367 
368 void
369 AcpiDmDumpMadt (
370     ACPI_TABLE_HEADER       *Table);
371 
372 void
373 AcpiDmDumpMsct (
374     ACPI_TABLE_HEADER       *Table);
375 
376 UINT32
377 AcpiDmDumpRsdp (
378     ACPI_TABLE_HEADER       *Table);
379 
380 void
381 AcpiDmDumpRsdt (
382     ACPI_TABLE_HEADER       *Table);
383 
384 void
385 AcpiDmDumpSlic (
386     ACPI_TABLE_HEADER       *Table);
387 
388 void
389 AcpiDmDumpSlit (
390     ACPI_TABLE_HEADER       *Table);
391 
392 void
393 AcpiDmDumpSrat (
394     ACPI_TABLE_HEADER       *Table);
395 
396 void
397 AcpiDmDumpWdat (
398     ACPI_TABLE_HEADER       *Table);
399 
400 void
401 AcpiDmDumpXsdt (
402     ACPI_TABLE_HEADER       *Table);
403 
404 
405 /*
406  * dmwalk
407  */
408 void
409 AcpiDmDisassemble (
410     ACPI_WALK_STATE         *WalkState,
411     ACPI_PARSE_OBJECT       *Origin,
412     UINT32                  NumOpcodes);
413 
414 void
415 AcpiDmWalkParseTree (
416     ACPI_PARSE_OBJECT       *Op,
417     ASL_WALK_CALLBACK       DescendingCallback,
418     ASL_WALK_CALLBACK       AscendingCallback,
419     void                    *Context);
420 
421 
422 /*
423  * dmopcode
424  */
425 void
426 AcpiDmDisassembleOneOp (
427     ACPI_WALK_STATE         *WalkState,
428     ACPI_OP_WALK_INFO       *Info,
429     ACPI_PARSE_OBJECT       *Op);
430 
431 void
432 AcpiDmDecodeInternalObject (
433     ACPI_OPERAND_OBJECT     *ObjDesc);
434 
435 UINT32
436 AcpiDmListType (
437     ACPI_PARSE_OBJECT       *Op);
438 
439 void
440 AcpiDmMethodFlags (
441     ACPI_PARSE_OBJECT       *Op);
442 
443 void
444 AcpiDmFieldFlags (
445     ACPI_PARSE_OBJECT       *Op);
446 
447 void
448 AcpiDmAddressSpace (
449     UINT8                   SpaceId);
450 
451 void
452 AcpiDmRegionFlags (
453     ACPI_PARSE_OBJECT       *Op);
454 
455 void
456 AcpiDmMatchOp (
457     ACPI_PARSE_OBJECT       *Op);
458 
459 
460 /*
461  * dmnames
462  */
463 UINT32
464 AcpiDmDumpName (
465     UINT32                  Name);
466 
467 ACPI_STATUS
468 AcpiPsDisplayObjectPathname (
469     ACPI_WALK_STATE         *WalkState,
470     ACPI_PARSE_OBJECT       *Op);
471 
472 void
473 AcpiDmNamestring (
474     char                    *Name);
475 
476 
477 /*
478  * dmobject
479  */
480 void
481 AcpiDmDisplayInternalObject (
482     ACPI_OPERAND_OBJECT     *ObjDesc,
483     ACPI_WALK_STATE         *WalkState);
484 
485 void
486 AcpiDmDisplayArguments (
487     ACPI_WALK_STATE         *WalkState);
488 
489 void
490 AcpiDmDisplayLocals (
491     ACPI_WALK_STATE         *WalkState);
492 
493 void
494 AcpiDmDumpMethodInfo (
495     ACPI_STATUS             Status,
496     ACPI_WALK_STATE         *WalkState,
497     ACPI_PARSE_OBJECT       *Op);
498 
499 
500 /*
501  * dmbuffer
502  */
503 void
504 AcpiDmDisasmByteList (
505     UINT32                  Level,
506     UINT8                   *ByteData,
507     UINT32                  ByteCount);
508 
509 void
510 AcpiDmByteList (
511     ACPI_OP_WALK_INFO       *Info,
512     ACPI_PARSE_OBJECT       *Op);
513 
514 void
515 AcpiDmIsEisaId (
516     ACPI_PARSE_OBJECT       *Op);
517 
518 void
519 AcpiDmEisaId (
520     UINT32                  EncodedId);
521 
522 BOOLEAN
523 AcpiDmIsUnicodeBuffer (
524     ACPI_PARSE_OBJECT       *Op);
525 
526 BOOLEAN
527 AcpiDmIsStringBuffer (
528     ACPI_PARSE_OBJECT       *Op);
529 
530 
531 /*
532  * dmextern
533  */
534 
535 ACPI_STATUS
536 AcpiDmAddToExternalFileList (
537     char                    *PathList);
538 
539 void
540 AcpiDmClearExternalFileList (
541     void);
542 
543 void
544 AcpiDmAddToExternalList (
545     ACPI_PARSE_OBJECT       *Op,
546     char                    *Path,
547     UINT8                   Type,
548     UINT32                  Value);
549 
550 void
551 AcpiDmAddExternalsToNamespace (
552     void);
553 
554 UINT32
555 AcpiDmGetExternalMethodCount (
556     void);
557 
558 void
559 AcpiDmClearExternalList (
560     void);
561 
562 void
563 AcpiDmEmitExternals (
564     void);
565 
566 
567 /*
568  * dmresrc
569  */
570 void
571 AcpiDmDumpInteger8 (
572     UINT8                   Value,
573     char                    *Name);
574 
575 void
576 AcpiDmDumpInteger16 (
577     UINT16                  Value,
578     char                    *Name);
579 
580 void
581 AcpiDmDumpInteger32 (
582     UINT32                  Value,
583     char                    *Name);
584 
585 void
586 AcpiDmDumpInteger64 (
587     UINT64                  Value,
588     char                    *Name);
589 
590 void
591 AcpiDmResourceTemplate (
592     ACPI_OP_WALK_INFO       *Info,
593     ACPI_PARSE_OBJECT       *Op,
594     UINT8                   *ByteData,
595     UINT32                  ByteCount);
596 
597 ACPI_STATUS
598 AcpiDmIsResourceTemplate (
599     ACPI_PARSE_OBJECT       *Op);
600 
601 void
602 AcpiDmBitList (
603     UINT16                  Mask);
604 
605 void
606 AcpiDmDescriptorName (
607     void);
608 
609 
610 /*
611  * dmresrcl
612  */
613 void
614 AcpiDmWordDescriptor (
615     AML_RESOURCE            *Resource,
616     UINT32                  Length,
617     UINT32                  Level);
618 
619 void
620 AcpiDmDwordDescriptor (
621     AML_RESOURCE            *Resource,
622     UINT32                  Length,
623     UINT32                  Level);
624 
625 void
626 AcpiDmExtendedDescriptor (
627     AML_RESOURCE            *Resource,
628     UINT32                  Length,
629     UINT32                  Level);
630 
631 void
632 AcpiDmQwordDescriptor (
633     AML_RESOURCE            *Resource,
634     UINT32                  Length,
635     UINT32                  Level);
636 
637 void
638 AcpiDmMemory24Descriptor (
639     AML_RESOURCE            *Resource,
640     UINT32                  Length,
641     UINT32                  Level);
642 
643 void
644 AcpiDmMemory32Descriptor (
645     AML_RESOURCE            *Resource,
646     UINT32                  Length,
647     UINT32                  Level);
648 
649 void
650 AcpiDmFixedMemory32Descriptor (
651     AML_RESOURCE            *Resource,
652     UINT32                  Length,
653     UINT32                  Level);
654 
655 void
656 AcpiDmGenericRegisterDescriptor (
657     AML_RESOURCE            *Resource,
658     UINT32                  Length,
659     UINT32                  Level);
660 
661 void
662 AcpiDmInterruptDescriptor (
663     AML_RESOURCE            *Resource,
664     UINT32                  Length,
665     UINT32                  Level);
666 
667 void
668 AcpiDmVendorLargeDescriptor (
669     AML_RESOURCE            *Resource,
670     UINT32                  Length,
671     UINT32                  Level);
672 
673 void
674 AcpiDmVendorCommon (
675     char                    *Name,
676     UINT8                   *ByteData,
677     UINT32                  Length,
678     UINT32                  Level);
679 
680 
681 /*
682  * dmresrcs
683  */
684 void
685 AcpiDmIrqDescriptor (
686     AML_RESOURCE            *Resource,
687     UINT32                  Length,
688     UINT32                  Level);
689 
690 void
691 AcpiDmDmaDescriptor (
692     AML_RESOURCE            *Resource,
693     UINT32                  Length,
694     UINT32                  Level);
695 
696 void
697 AcpiDmIoDescriptor (
698     AML_RESOURCE            *Resource,
699     UINT32                  Length,
700     UINT32                  Level);
701 
702 void
703 AcpiDmFixedIoDescriptor (
704     AML_RESOURCE            *Resource,
705     UINT32                  Length,
706     UINT32                  Level);
707 
708 void
709 AcpiDmStartDependentDescriptor (
710     AML_RESOURCE            *Resource,
711     UINT32                  Length,
712     UINT32                  Level);
713 
714 void
715 AcpiDmEndDependentDescriptor (
716     AML_RESOURCE            *Resource,
717     UINT32                  Length,
718     UINT32                  Level);
719 
720 void
721 AcpiDmVendorSmallDescriptor (
722     AML_RESOURCE            *Resource,
723     UINT32                  Length,
724     UINT32                  Level);
725 
726 
727 /*
728  * dmutils
729  */
730 void
731 AcpiDmDecodeAttribute (
732     UINT8                   Attribute);
733 
734 void
735 AcpiDmIndent (
736     UINT32                  Level);
737 
738 BOOLEAN
739 AcpiDmCommaIfListMember (
740     ACPI_PARSE_OBJECT       *Op);
741 
742 void
743 AcpiDmCommaIfFieldMember (
744     ACPI_PARSE_OBJECT       *Op);
745 
746 
747 /*
748  * dmrestag
749  */
750 void
751 AcpiDmFindResources (
752     ACPI_PARSE_OBJECT       *Root);
753 
754 void
755 AcpiDmCheckResourceReference (
756     ACPI_PARSE_OBJECT       *Op,
757     ACPI_WALK_STATE         *WalkState);
758 
759 
760 /*
761  * acdisasm
762  */
763 void
764 AdDisassemblerHeader (
765     char                    *Filename);
766 
767 
768 #endif  /* __ACDISASM_H__ */
769