acdisasm.h revision 197104
1/******************************************************************************
2 *
3 * Name: acdisasm.h - AML disassembler
4 *
5 *****************************************************************************/
6
7/******************************************************************************
8 *
9 * 1. Copyright Notice
10 *
11 * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
12 * All rights reserved.
13 *
14 * 2. License
15 *
16 * 2.1. This is your license from Intel Corp. under its intellectual property
17 * rights.  You may have additional license terms from the party that provided
18 * you this software, covering your right to use that party's intellectual
19 * property rights.
20 *
21 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22 * copy of the source code appearing in this file ("Covered Code") an
23 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24 * base code distributed originally by Intel ("Original Intel Code") to copy,
25 * make derivatives, distribute, use and display any portion of the Covered
26 * Code in any form, with the right to sublicense such rights; and
27 *
28 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29 * license (with the right to sublicense), under only those claims of Intel
30 * patents that are infringed by the Original Intel Code, to make, use, sell,
31 * offer to sell, and import the Covered Code and derivative works thereof
32 * solely to the minimum extent necessary to exercise the above copyright
33 * license, and in no event shall the patent license extend to any additions
34 * to or modifications of the Original Intel Code.  No other license or right
35 * is granted directly or by implication, estoppel or otherwise;
36 *
37 * The above copyright and patent license is granted only if the following
38 * conditions are met:
39 *
40 * 3. Conditions
41 *
42 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43 * Redistribution of source code of any substantial portion of the Covered
44 * Code or modification with rights to further distribute source must include
45 * the above Copyright Notice, the above License, this list of Conditions,
46 * and the following Disclaimer and Export Compliance provision.  In addition,
47 * Licensee must cause all Covered Code to which Licensee contributes to
48 * contain a file documenting the changes Licensee made to create that Covered
49 * Code and the date of any change.  Licensee must include in that file the
50 * documentation of any changes made by any predecessor Licensee.  Licensee
51 * must include a prominent statement that the modification is derived,
52 * directly or indirectly, from Original Intel Code.
53 *
54 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55 * Redistribution of source code of any substantial portion of the Covered
56 * Code or modification without rights to further distribute source must
57 * include the following Disclaimer and Export Compliance provision in the
58 * documentation and/or other materials provided with distribution.  In
59 * addition, Licensee may not authorize further sublicense of source of any
60 * portion of the Covered Code, and must include terms to the effect that the
61 * license from Licensee to its licensee is limited to the intellectual
62 * property embodied in the software Licensee provides to its licensee, and
63 * not to intellectual property embodied in modifications its licensee may
64 * make.
65 *
66 * 3.3. Redistribution of Executable. Redistribution in executable form of any
67 * substantial portion of the Covered Code or modification must reproduce the
68 * above Copyright Notice, and the following Disclaimer and Export Compliance
69 * provision in the documentation and/or other materials provided with the
70 * distribution.
71 *
72 * 3.4. Intel retains all right, title, and interest in and to the Original
73 * Intel Code.
74 *
75 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76 * Intel shall be used in advertising or otherwise to promote the sale, use or
77 * other dealings in products derived from or relating to the Covered Code
78 * without prior written authorization from Intel.
79 *
80 * 4. Disclaimer and Export Compliance
81 *
82 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83 * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
85 * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
86 * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
87 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
88 * PARTICULAR PURPOSE.
89 *
90 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
96 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
97 * LIMITED REMEDY.
98 *
99 * 4.3. Licensee shall not export, either directly or indirectly, any of this
100 * software or system incorporating such software without first obtaining any
101 * required license or other approval from the U. S. Department of Commerce or
102 * any other agency or department of the United States Government.  In the
103 * event Licensee exports any such software from the United States or
104 * re-exports any such software from a foreign destination, Licensee shall
105 * ensure that the distribution and export/re-export of the software is in
106 * compliance with all laws, regulations, orders, or other restrictions of the
107 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108 * any of its subsidiaries will export/re-export any technical data, process,
109 * software, or service, directly or indirectly, to any country for which the
110 * United States government or any agency thereof requires an export license,
111 * other governmental approval, or letter of assurance, without first obtaining
112 * such license, approval or letter.
113 *
114 *****************************************************************************/
115
116#ifndef __ACDISASM_H__
117#define __ACDISASM_H__
118
119#include <contrib/dev/acpica/include/amlresrc.h>
120
121
122#define BLOCK_NONE              0
123#define BLOCK_PAREN             1
124#define BLOCK_BRACE             2
125#define BLOCK_COMMA_LIST        4
126#define ACPI_DEFAULT_RESNAME    *(UINT32 *) "__RD"
127
128typedef struct acpi_external_list
129{
130    char                        *Path;
131    char                        *InternalPath;
132    struct acpi_external_list   *Next;
133    UINT32                      Value;
134    UINT16                      Length;
135    UINT8                       Type;
136
137} ACPI_EXTERNAL_LIST;
138
139extern ACPI_EXTERNAL_LIST       *AcpiGbl_ExternalList;
140
141typedef const struct acpi_dmtable_info
142{
143    UINT8                       Opcode;
144    UINT8                       Offset;
145    char                        *Name;
146
147} ACPI_DMTABLE_INFO;
148
149/*
150 * Values for Opcode above.
151 * Note: 0-7 must not change, used as a flag shift value
152 */
153#define ACPI_DMT_FLAG0                  0
154#define ACPI_DMT_FLAG1                  1
155#define ACPI_DMT_FLAG2                  2
156#define ACPI_DMT_FLAG3                  3
157#define ACPI_DMT_FLAG4                  4
158#define ACPI_DMT_FLAG5                  5
159#define ACPI_DMT_FLAG6                  6
160#define ACPI_DMT_FLAG7                  7
161#define ACPI_DMT_FLAGS0                 8
162#define ACPI_DMT_FLAGS2                 9
163#define ACPI_DMT_UINT8                  10
164#define ACPI_DMT_UINT16                 11
165#define ACPI_DMT_UINT24                 12
166#define ACPI_DMT_UINT32                 13
167#define ACPI_DMT_UINT56                 14
168#define ACPI_DMT_UINT64                 15
169#define ACPI_DMT_STRING                 16
170#define ACPI_DMT_NAME4                  17
171#define ACPI_DMT_NAME6                  18
172#define ACPI_DMT_NAME8                  19
173#define ACPI_DMT_CHKSUM                 20
174#define ACPI_DMT_SPACEID                21
175#define ACPI_DMT_GAS                    22
176#define ACPI_DMT_ASF                    23
177#define ACPI_DMT_DMAR                   24
178#define ACPI_DMT_HEST                   25
179#define ACPI_DMT_HESTNTFY               26
180#define ACPI_DMT_HESTNTYP               27
181#define ACPI_DMT_MADT                   28
182#define ACPI_DMT_SRAT                   29
183#define ACPI_DMT_EXIT                   30
184#define ACPI_DMT_SIG                    31
185#define ACPI_DMT_FADTPM                 32
186#define ACPI_DMT_BUF16                  33
187#define ACPI_DMT_IVRS                   34
188
189
190typedef
191void (*ACPI_DMTABLE_HANDLER) (
192    ACPI_TABLE_HEADER       *Table);
193
194typedef struct acpi_dmtable_data
195{
196    char                    *Signature;
197    ACPI_DMTABLE_INFO       *TableInfo;
198    ACPI_DMTABLE_HANDLER    TableHandler;
199    char                    *Name;
200
201} ACPI_DMTABLE_DATA;
202
203
204typedef struct acpi_op_walk_info
205{
206    UINT32                  Level;
207    UINT32                  LastLevel;
208    UINT32                  Count;
209    UINT32                  BitOffset;
210    UINT32                  Flags;
211    ACPI_WALK_STATE         *WalkState;
212
213} ACPI_OP_WALK_INFO;
214
215typedef
216ACPI_STATUS (*ASL_WALK_CALLBACK) (
217    ACPI_PARSE_OBJECT           *Op,
218    UINT32                      Level,
219    void                        *Context);
220
221typedef struct acpi_resource_tag
222{
223    UINT32                  BitIndex;
224    char                    *Tag;
225
226} ACPI_RESOURCE_TAG;
227
228/* Strings used for decoding flags to ASL keywords */
229
230extern const char               *AcpiGbl_WordDecode[];
231extern const char               *AcpiGbl_IrqDecode[];
232extern const char               *AcpiGbl_LockRule[];
233extern const char               *AcpiGbl_AccessTypes[];
234extern const char               *AcpiGbl_UpdateRules[];
235extern const char               *AcpiGbl_MatchOps[];
236
237extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
238extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
239extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
240extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
241extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
242extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
243extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
244extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
245extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
246extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
247extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
248extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
249extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
250extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
251extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
252extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
253extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
254extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
255extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
256extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
257extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
258extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
259extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
260extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
261extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
262extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
263extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
264extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
265extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
266extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
267extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
268extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
269extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
270extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
271extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
272extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
273extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
274extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
275extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
276extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
277extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
278extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
279extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
280extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
281extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
282extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
283extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
284extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
285extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
286extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
287extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
288extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
289extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
290extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
291extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
292extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
293extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
294extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
295extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
296extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
297extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
298extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
299extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
300extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
301extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
302extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
303extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
304extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
305extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
306extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
307extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
308extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
309extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
310extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
311extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
312extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
313extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
314extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
315extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
316extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
317extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
318extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
319extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
320extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
321
322
323/*
324 * dmtable
325 */
326void
327AcpiDmDumpDataTable (
328    ACPI_TABLE_HEADER       *Table);
329
330ACPI_STATUS
331AcpiDmDumpTable (
332    UINT32                  TableLength,
333    UINT32                  TableOffset,
334    void                    *Table,
335    UINT32                  SubTableLength,
336    ACPI_DMTABLE_INFO        *Info);
337
338void
339AcpiDmLineHeader (
340    UINT32                  Offset,
341    UINT32                  ByteLength,
342    char                    *Name);
343
344void
345AcpiDmLineHeader2 (
346    UINT32                  Offset,
347    UINT32                  ByteLength,
348    char                    *Name,
349    UINT32                  Value);
350
351
352/*
353 * dmtbdump
354 */
355void
356AcpiDmDumpAsf (
357    ACPI_TABLE_HEADER       *Table);
358
359void
360AcpiDmDumpCpep (
361    ACPI_TABLE_HEADER       *Table);
362
363void
364AcpiDmDumpDmar (
365    ACPI_TABLE_HEADER       *Table);
366
367void
368AcpiDmDumpEinj (
369    ACPI_TABLE_HEADER       *Table);
370
371void
372AcpiDmDumpErst (
373    ACPI_TABLE_HEADER       *Table);
374
375void
376AcpiDmDumpFadt (
377    ACPI_TABLE_HEADER       *Table);
378
379void
380AcpiDmDumpHest (
381    ACPI_TABLE_HEADER       *Table);
382
383void
384AcpiDmDumpIvrs (
385    ACPI_TABLE_HEADER       *Table);
386
387void
388AcpiDmDumpMcfg (
389    ACPI_TABLE_HEADER       *Table);
390
391void
392AcpiDmDumpMadt (
393    ACPI_TABLE_HEADER       *Table);
394
395void
396AcpiDmDumpMsct (
397    ACPI_TABLE_HEADER       *Table);
398
399UINT32
400AcpiDmDumpRsdp (
401    ACPI_TABLE_HEADER       *Table);
402
403void
404AcpiDmDumpRsdt (
405    ACPI_TABLE_HEADER       *Table);
406
407void
408AcpiDmDumpSlit (
409    ACPI_TABLE_HEADER       *Table);
410
411void
412AcpiDmDumpSrat (
413    ACPI_TABLE_HEADER       *Table);
414
415void
416AcpiDmDumpWdat (
417    ACPI_TABLE_HEADER       *Table);
418
419void
420AcpiDmDumpXsdt (
421    ACPI_TABLE_HEADER       *Table);
422
423
424/*
425 * dmwalk
426 */
427void
428AcpiDmDisassemble (
429    ACPI_WALK_STATE         *WalkState,
430    ACPI_PARSE_OBJECT       *Origin,
431    UINT32                  NumOpcodes);
432
433void
434AcpiDmWalkParseTree (
435    ACPI_PARSE_OBJECT       *Op,
436    ASL_WALK_CALLBACK       DescendingCallback,
437    ASL_WALK_CALLBACK       AscendingCallback,
438    void                    *Context);
439
440
441/*
442 * dmopcode
443 */
444void
445AcpiDmDisassembleOneOp (
446    ACPI_WALK_STATE         *WalkState,
447    ACPI_OP_WALK_INFO       *Info,
448    ACPI_PARSE_OBJECT       *Op);
449
450void
451AcpiDmDecodeInternalObject (
452    ACPI_OPERAND_OBJECT     *ObjDesc);
453
454UINT32
455AcpiDmListType (
456    ACPI_PARSE_OBJECT       *Op);
457
458void
459AcpiDmMethodFlags (
460    ACPI_PARSE_OBJECT       *Op);
461
462void
463AcpiDmFieldFlags (
464    ACPI_PARSE_OBJECT       *Op);
465
466void
467AcpiDmAddressSpace (
468    UINT8                   SpaceId);
469
470void
471AcpiDmRegionFlags (
472    ACPI_PARSE_OBJECT       *Op);
473
474void
475AcpiDmMatchOp (
476    ACPI_PARSE_OBJECT       *Op);
477
478BOOLEAN
479AcpiDmCommaIfListMember (
480    ACPI_PARSE_OBJECT       *Op);
481
482void
483AcpiDmCommaIfFieldMember (
484    ACPI_PARSE_OBJECT       *Op);
485
486
487/*
488 * dmnames
489 */
490UINT32
491AcpiDmDumpName (
492    UINT32                  Name);
493
494ACPI_STATUS
495AcpiPsDisplayObjectPathname (
496    ACPI_WALK_STATE         *WalkState,
497    ACPI_PARSE_OBJECT       *Op);
498
499void
500AcpiDmNamestring (
501    char                    *Name);
502
503
504/*
505 * dmobject
506 */
507void
508AcpiDmDisplayInternalObject (
509    ACPI_OPERAND_OBJECT     *ObjDesc,
510    ACPI_WALK_STATE         *WalkState);
511
512void
513AcpiDmDisplayArguments (
514    ACPI_WALK_STATE         *WalkState);
515
516void
517AcpiDmDisplayLocals (
518    ACPI_WALK_STATE         *WalkState);
519
520void
521AcpiDmDumpMethodInfo (
522    ACPI_STATUS             Status,
523    ACPI_WALK_STATE         *WalkState,
524    ACPI_PARSE_OBJECT       *Op);
525
526
527/*
528 * dmbuffer
529 */
530void
531AcpiDmDisasmByteList (
532    UINT32                  Level,
533    UINT8                   *ByteData,
534    UINT32                  ByteCount);
535
536void
537AcpiDmByteList (
538    ACPI_OP_WALK_INFO       *Info,
539    ACPI_PARSE_OBJECT       *Op);
540
541void
542AcpiDmIsEisaId (
543    ACPI_PARSE_OBJECT       *Op);
544
545void
546AcpiDmEisaId (
547    UINT32                  EncodedId);
548
549BOOLEAN
550AcpiDmIsUnicodeBuffer (
551    ACPI_PARSE_OBJECT       *Op);
552
553BOOLEAN
554AcpiDmIsStringBuffer (
555    ACPI_PARSE_OBJECT       *Op);
556
557
558/*
559 * dmresrc
560 */
561void
562AcpiDmDumpInteger8 (
563    UINT8                   Value,
564    char                    *Name);
565
566void
567AcpiDmDumpInteger16 (
568    UINT16                  Value,
569    char                    *Name);
570
571void
572AcpiDmDumpInteger32 (
573    UINT32                  Value,
574    char                    *Name);
575
576void
577AcpiDmDumpInteger64 (
578    UINT64                  Value,
579    char                    *Name);
580
581void
582AcpiDmResourceTemplate (
583    ACPI_OP_WALK_INFO       *Info,
584    ACPI_PARSE_OBJECT       *Op,
585    UINT8                   *ByteData,
586    UINT32                  ByteCount);
587
588ACPI_STATUS
589AcpiDmIsResourceTemplate (
590    ACPI_PARSE_OBJECT       *Op);
591
592void
593AcpiDmIndent (
594    UINT32                  Level);
595
596void
597AcpiDmBitList (
598    UINT16                  Mask);
599
600void
601AcpiDmDecodeAttribute (
602    UINT8                   Attribute);
603
604void
605AcpiDmDescriptorName (
606    void);
607
608
609/*
610 * dmresrcl
611 */
612void
613AcpiDmWordDescriptor (
614    AML_RESOURCE            *Resource,
615    UINT32                  Length,
616    UINT32                  Level);
617
618void
619AcpiDmDwordDescriptor (
620    AML_RESOURCE            *Resource,
621    UINT32                  Length,
622    UINT32                  Level);
623
624void
625AcpiDmExtendedDescriptor (
626    AML_RESOURCE            *Resource,
627    UINT32                  Length,
628    UINT32                  Level);
629
630void
631AcpiDmQwordDescriptor (
632    AML_RESOURCE            *Resource,
633    UINT32                  Length,
634    UINT32                  Level);
635
636void
637AcpiDmMemory24Descriptor (
638    AML_RESOURCE            *Resource,
639    UINT32                  Length,
640    UINT32                  Level);
641
642void
643AcpiDmMemory32Descriptor (
644    AML_RESOURCE            *Resource,
645    UINT32                  Length,
646    UINT32                  Level);
647
648void
649AcpiDmFixedMemory32Descriptor (
650    AML_RESOURCE            *Resource,
651    UINT32                  Length,
652    UINT32                  Level);
653
654void
655AcpiDmGenericRegisterDescriptor (
656    AML_RESOURCE            *Resource,
657    UINT32                  Length,
658    UINT32                  Level);
659
660void
661AcpiDmInterruptDescriptor (
662    AML_RESOURCE            *Resource,
663    UINT32                  Length,
664    UINT32                  Level);
665
666void
667AcpiDmVendorLargeDescriptor (
668    AML_RESOURCE            *Resource,
669    UINT32                  Length,
670    UINT32                  Level);
671
672void
673AcpiDmVendorCommon (
674    char                    *Name,
675    UINT8                   *ByteData,
676    UINT32                  Length,
677    UINT32                  Level);
678
679
680/*
681 * dmresrcs
682 */
683void
684AcpiDmIrqDescriptor (
685    AML_RESOURCE            *Resource,
686    UINT32                  Length,
687    UINT32                  Level);
688
689void
690AcpiDmDmaDescriptor (
691    AML_RESOURCE            *Resource,
692    UINT32                  Length,
693    UINT32                  Level);
694
695void
696AcpiDmIoDescriptor (
697    AML_RESOURCE            *Resource,
698    UINT32                  Length,
699    UINT32                  Level);
700
701void
702AcpiDmFixedIoDescriptor (
703    AML_RESOURCE            *Resource,
704    UINT32                  Length,
705    UINT32                  Level);
706
707void
708AcpiDmStartDependentDescriptor (
709    AML_RESOURCE            *Resource,
710    UINT32                  Length,
711    UINT32                  Level);
712
713void
714AcpiDmEndDependentDescriptor (
715    AML_RESOURCE            *Resource,
716    UINT32                  Length,
717    UINT32                  Level);
718
719void
720AcpiDmVendorSmallDescriptor (
721    AML_RESOURCE            *Resource,
722    UINT32                  Length,
723    UINT32                  Level);
724
725
726/*
727 * dmutils
728 */
729void
730AcpiDmAddToExternalList (
731    char                    *Path,
732    UINT8                   Type,
733    UINT32                  Value);
734
735/*
736 * dmrestag
737 */
738void
739AcpiDmFindResources (
740    ACPI_PARSE_OBJECT       *Root);
741
742void
743AcpiDmCheckResourceReference (
744    ACPI_PARSE_OBJECT       *Op,
745    ACPI_WALK_STATE         *WalkState);
746
747#endif  /* __ACDISASM_H__ */
748