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