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