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