acdisasm.h revision 245582
1/******************************************************************************
2 *
3 * Name: acdisasm.h - AML disassembler
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2013, 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    UINT16                      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, they are used as a flag shift value. Other
84 * than those, new values can be added wherever appropriate.
85 */
86typedef enum
87{
88    /* Simple Data Types */
89
90    ACPI_DMT_FLAG0          = 0,
91    ACPI_DMT_FLAG1          = 1,
92    ACPI_DMT_FLAG2          = 2,
93    ACPI_DMT_FLAG3          = 3,
94    ACPI_DMT_FLAG4          = 4,
95    ACPI_DMT_FLAG5          = 5,
96    ACPI_DMT_FLAG6          = 6,
97    ACPI_DMT_FLAG7          = 7,
98    ACPI_DMT_FLAGS0,
99    ACPI_DMT_FLAGS1,
100    ACPI_DMT_FLAGS2,
101    ACPI_DMT_FLAGS4,
102    ACPI_DMT_UINT8,
103    ACPI_DMT_UINT16,
104    ACPI_DMT_UINT24,
105    ACPI_DMT_UINT32,
106    ACPI_DMT_UINT40,
107    ACPI_DMT_UINT48,
108    ACPI_DMT_UINT56,
109    ACPI_DMT_UINT64,
110    ACPI_DMT_BUF7,
111    ACPI_DMT_BUF16,
112    ACPI_DMT_BUF128,
113    ACPI_DMT_SIG,
114    ACPI_DMT_STRING,
115    ACPI_DMT_NAME4,
116    ACPI_DMT_NAME6,
117    ACPI_DMT_NAME8,
118
119    /* Types that are decoded to strings and miscellaneous */
120
121    ACPI_DMT_ACCWIDTH,
122    ACPI_DMT_CHKSUM,
123    ACPI_DMT_GAS,
124    ACPI_DMT_SPACEID,
125    ACPI_DMT_UNICODE,
126    ACPI_DMT_UUID,
127
128    /* Types used only for the Data Table Compiler */
129
130    ACPI_DMT_BUFFER,
131    ACPI_DMT_DEVICE_PATH,
132    ACPI_DMT_LABEL,
133    ACPI_DMT_PCI_PATH,
134
135    /* Types that are specific to particular ACPI tables */
136
137    ACPI_DMT_ASF,
138    ACPI_DMT_DMAR,
139    ACPI_DMT_EINJACT,
140    ACPI_DMT_EINJINST,
141    ACPI_DMT_ERSTACT,
142    ACPI_DMT_ERSTINST,
143    ACPI_DMT_FADTPM,
144    ACPI_DMT_HEST,
145    ACPI_DMT_HESTNTFY,
146    ACPI_DMT_HESTNTYP,
147    ACPI_DMT_IVRS,
148    ACPI_DMT_MADT,
149    ACPI_DMT_PMTT,
150    ACPI_DMT_SLIC,
151    ACPI_DMT_SRAT,
152
153    /* Special opcodes */
154
155    ACPI_DMT_EXTRA_TEXT,
156    ACPI_DMT_EXIT
157
158} ACPI_ENTRY_TYPES;
159
160typedef
161void (*ACPI_DMTABLE_HANDLER) (
162    ACPI_TABLE_HEADER       *Table);
163
164typedef
165ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
166    void                    **PFieldList);
167
168typedef struct acpi_dmtable_data
169{
170    char                    *Signature;
171    ACPI_DMTABLE_INFO       *TableInfo;
172    ACPI_DMTABLE_HANDLER    TableHandler;
173    ACPI_CMTABLE_HANDLER    CmTableHandler;
174    const unsigned char     *Template;
175    char                    *Name;
176
177} ACPI_DMTABLE_DATA;
178
179
180typedef struct acpi_op_walk_info
181{
182    UINT32                  Level;
183    UINT32                  LastLevel;
184    UINT32                  Count;
185    UINT32                  BitOffset;
186    UINT32                  Flags;
187    ACPI_WALK_STATE         *WalkState;
188
189} ACPI_OP_WALK_INFO;
190
191/*
192 * TBD - another copy of this is in asltypes.h, fix
193 */
194#ifndef ASL_WALK_CALLBACK_DEFINED
195typedef
196ACPI_STATUS (*ASL_WALK_CALLBACK) (
197    ACPI_PARSE_OBJECT           *Op,
198    UINT32                      Level,
199    void                        *Context);
200#define ASL_WALK_CALLBACK_DEFINED
201#endif
202
203typedef
204void (*ACPI_RESOURCE_HANDLER) (
205    AML_RESOURCE            *Resource,
206    UINT32                  Length,
207    UINT32                  Level);
208
209typedef struct acpi_resource_tag
210{
211    UINT32                  BitIndex;
212    char                    *Tag;
213
214} ACPI_RESOURCE_TAG;
215
216/* Strings used for decoding flags to ASL keywords */
217
218extern const char               *AcpiGbl_WordDecode[];
219extern const char               *AcpiGbl_IrqDecode[];
220extern const char               *AcpiGbl_LockRule[];
221extern const char               *AcpiGbl_AccessTypes[];
222extern const char               *AcpiGbl_UpdateRules[];
223extern const char               *AcpiGbl_MatchOps[];
224
225extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
226extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
227extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
228extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
229extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
230extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
231extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
232extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
233extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
234extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
235extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBgrt[];
236extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
237extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
238extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt0[];
239extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt1[];
240extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2[];
241extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2[];
242extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Device[];
243extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Addr[];
244extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Size[];
245extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Name[];
246extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
247extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
248extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
249extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
250extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
251extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
252extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
253extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
254extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
255extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
256extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
257extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
258extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
259extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
260extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
261extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
262extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
263extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
264extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
265extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
266extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
267extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
268extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
269extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
270extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
271extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
272extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
273extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
274extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
275extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
276extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
277extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
278extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
279extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
280extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
281extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
282extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
283extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
284extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
285extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
286extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
287extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
288extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
289extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
290extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
291extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
292extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
293extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
294extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
295extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
296extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
297extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
298extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
299extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
300extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
301extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
302extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
303extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
304extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
305extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
306extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
307extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
308extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
309extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
310extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
311extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
312extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
313extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
314extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
315extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
316extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
317extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
318extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
319extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
320extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1a[];
321extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
322extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
323extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
324extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
325extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
326extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
327extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
328extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
329extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
330extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
331extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
332extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlicHdr[];
333extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic0[];
334extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic1[];
335extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
336extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
337extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
338extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
339extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
340extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
341extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
342extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
343extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
344extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2[];
345extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
346extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
347extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
348extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
349extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
350extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
351
352extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
353
354
355/*
356 * dmtable
357 */
358extern ACPI_DMTABLE_DATA        AcpiDmTableData[];
359
360UINT8
361AcpiDmGenerateChecksum (
362    void                    *Table,
363    UINT32                  Length,
364    UINT8                   OriginalChecksum);
365
366ACPI_DMTABLE_DATA *
367AcpiDmGetTableData (
368    char                    *Signature);
369
370void
371AcpiDmDumpDataTable (
372    ACPI_TABLE_HEADER       *Table);
373
374ACPI_STATUS
375AcpiDmDumpTable (
376    UINT32                  TableLength,
377    UINT32                  TableOffset,
378    void                    *Table,
379    UINT32                  SubTableLength,
380    ACPI_DMTABLE_INFO        *Info);
381
382void
383AcpiDmLineHeader (
384    UINT32                  Offset,
385    UINT32                  ByteLength,
386    char                    *Name);
387
388void
389AcpiDmLineHeader2 (
390    UINT32                  Offset,
391    UINT32                  ByteLength,
392    char                    *Name,
393    UINT32                  Value);
394
395
396/*
397 * dmtbdump
398 */
399void
400AcpiDmDumpAsf (
401    ACPI_TABLE_HEADER       *Table);
402
403void
404AcpiDmDumpCpep (
405    ACPI_TABLE_HEADER       *Table);
406
407void
408AcpiDmDumpCsrt (
409    ACPI_TABLE_HEADER       *Table);
410
411void
412AcpiDmDumpDbg2 (
413    ACPI_TABLE_HEADER       *Table);
414
415void
416AcpiDmDumpDmar (
417    ACPI_TABLE_HEADER       *Table);
418
419void
420AcpiDmDumpEinj (
421    ACPI_TABLE_HEADER       *Table);
422
423void
424AcpiDmDumpErst (
425    ACPI_TABLE_HEADER       *Table);
426
427void
428AcpiDmDumpFadt (
429    ACPI_TABLE_HEADER       *Table);
430
431void
432AcpiDmDumpFpdt (
433    ACPI_TABLE_HEADER       *Table);
434
435void
436AcpiDmDumpHest (
437    ACPI_TABLE_HEADER       *Table);
438
439void
440AcpiDmDumpIvrs (
441    ACPI_TABLE_HEADER       *Table);
442
443void
444AcpiDmDumpMadt (
445    ACPI_TABLE_HEADER       *Table);
446
447void
448AcpiDmDumpMcfg (
449    ACPI_TABLE_HEADER       *Table);
450
451void
452AcpiDmDumpMpst (
453    ACPI_TABLE_HEADER       *Table);
454
455void
456AcpiDmDumpMsct (
457    ACPI_TABLE_HEADER       *Table);
458
459void
460AcpiDmDumpPcct (
461    ACPI_TABLE_HEADER       *Table);
462
463void
464AcpiDmDumpPmtt (
465    ACPI_TABLE_HEADER       *Table);
466
467UINT32
468AcpiDmDumpRsdp (
469    ACPI_TABLE_HEADER       *Table);
470
471void
472AcpiDmDumpRsdt (
473    ACPI_TABLE_HEADER       *Table);
474
475UINT32
476AcpiDmDumpS3pt (
477    ACPI_TABLE_HEADER       *Table);
478
479void
480AcpiDmDumpSlic (
481    ACPI_TABLE_HEADER       *Table);
482
483void
484AcpiDmDumpSlit (
485    ACPI_TABLE_HEADER       *Table);
486
487void
488AcpiDmDumpSrat (
489    ACPI_TABLE_HEADER       *Table);
490
491void
492AcpiDmDumpWdat (
493    ACPI_TABLE_HEADER       *Table);
494
495void
496AcpiDmDumpXsdt (
497    ACPI_TABLE_HEADER       *Table);
498
499
500/*
501 * dmwalk
502 */
503void
504AcpiDmDisassemble (
505    ACPI_WALK_STATE         *WalkState,
506    ACPI_PARSE_OBJECT       *Origin,
507    UINT32                  NumOpcodes);
508
509void
510AcpiDmWalkParseTree (
511    ACPI_PARSE_OBJECT       *Op,
512    ASL_WALK_CALLBACK       DescendingCallback,
513    ASL_WALK_CALLBACK       AscendingCallback,
514    void                    *Context);
515
516
517/*
518 * dmopcode
519 */
520void
521AcpiDmDisassembleOneOp (
522    ACPI_WALK_STATE         *WalkState,
523    ACPI_OP_WALK_INFO       *Info,
524    ACPI_PARSE_OBJECT       *Op);
525
526void
527AcpiDmDecodeInternalObject (
528    ACPI_OPERAND_OBJECT     *ObjDesc);
529
530UINT32
531AcpiDmListType (
532    ACPI_PARSE_OBJECT       *Op);
533
534void
535AcpiDmMethodFlags (
536    ACPI_PARSE_OBJECT       *Op);
537
538void
539AcpiDmPredefinedDescription (
540    ACPI_PARSE_OBJECT       *Op);
541
542void
543AcpiDmFieldPredefinedDescription (
544    ACPI_PARSE_OBJECT       *Op);
545
546void
547AcpiDmFieldFlags (
548    ACPI_PARSE_OBJECT       *Op);
549
550void
551AcpiDmAddressSpace (
552    UINT8                   SpaceId);
553
554void
555AcpiDmRegionFlags (
556    ACPI_PARSE_OBJECT       *Op);
557
558void
559AcpiDmMatchOp (
560    ACPI_PARSE_OBJECT       *Op);
561
562
563/*
564 * dmnames
565 */
566UINT32
567AcpiDmDumpName (
568    UINT32                  Name);
569
570ACPI_STATUS
571AcpiPsDisplayObjectPathname (
572    ACPI_WALK_STATE         *WalkState,
573    ACPI_PARSE_OBJECT       *Op);
574
575void
576AcpiDmNamestring (
577    char                    *Name);
578
579
580/*
581 * dmobject
582 */
583void
584AcpiDmDisplayInternalObject (
585    ACPI_OPERAND_OBJECT     *ObjDesc,
586    ACPI_WALK_STATE         *WalkState);
587
588void
589AcpiDmDisplayArguments (
590    ACPI_WALK_STATE         *WalkState);
591
592void
593AcpiDmDisplayLocals (
594    ACPI_WALK_STATE         *WalkState);
595
596void
597AcpiDmDumpMethodInfo (
598    ACPI_STATUS             Status,
599    ACPI_WALK_STATE         *WalkState,
600    ACPI_PARSE_OBJECT       *Op);
601
602
603/*
604 * dmbuffer
605 */
606void
607AcpiDmDisasmByteList (
608    UINT32                  Level,
609    UINT8                   *ByteData,
610    UINT32                  ByteCount);
611
612void
613AcpiDmByteList (
614    ACPI_OP_WALK_INFO       *Info,
615    ACPI_PARSE_OBJECT       *Op);
616
617void
618AcpiDmIsEisaId (
619    ACPI_PARSE_OBJECT       *Op);
620
621void
622AcpiDmEisaId (
623    UINT32                  EncodedId);
624
625BOOLEAN
626AcpiDmIsUnicodeBuffer (
627    ACPI_PARSE_OBJECT       *Op);
628
629BOOLEAN
630AcpiDmIsStringBuffer (
631    ACPI_PARSE_OBJECT       *Op);
632
633BOOLEAN
634AcpiDmIsPldBuffer (
635    ACPI_PARSE_OBJECT       *Op);
636
637
638/*
639 * dmdeferred
640 */
641ACPI_STATUS
642AcpiDmParseDeferredOps (
643    ACPI_PARSE_OBJECT       *Root);
644
645
646/*
647 * dmextern
648 */
649ACPI_STATUS
650AcpiDmAddToExternalFileList (
651    char                    *PathList);
652
653void
654AcpiDmClearExternalFileList (
655    void);
656
657void
658AcpiDmAddToExternalList (
659    ACPI_PARSE_OBJECT       *Op,
660    char                    *Path,
661    UINT8                   Type,
662    UINT32                  Value);
663
664void
665AcpiDmAddExternalsToNamespace (
666    void);
667
668UINT32
669AcpiDmGetExternalMethodCount (
670    void);
671
672void
673AcpiDmClearExternalList (
674    void);
675
676void
677AcpiDmEmitExternals (
678    void);
679
680
681/*
682 * dmresrc
683 */
684void
685AcpiDmDumpInteger8 (
686    UINT8                   Value,
687    char                    *Name);
688
689void
690AcpiDmDumpInteger16 (
691    UINT16                  Value,
692    char                    *Name);
693
694void
695AcpiDmDumpInteger32 (
696    UINT32                  Value,
697    char                    *Name);
698
699void
700AcpiDmDumpInteger64 (
701    UINT64                  Value,
702    char                    *Name);
703
704void
705AcpiDmResourceTemplate (
706    ACPI_OP_WALK_INFO       *Info,
707    ACPI_PARSE_OBJECT       *Op,
708    UINT8                   *ByteData,
709    UINT32                  ByteCount);
710
711ACPI_STATUS
712AcpiDmIsResourceTemplate (
713    ACPI_WALK_STATE         *WalkState,
714    ACPI_PARSE_OBJECT       *Op);
715
716void
717AcpiDmBitList (
718    UINT16                  Mask);
719
720void
721AcpiDmDescriptorName (
722    void);
723
724
725/*
726 * dmresrcl
727 */
728void
729AcpiDmWordDescriptor (
730    AML_RESOURCE            *Resource,
731    UINT32                  Length,
732    UINT32                  Level);
733
734void
735AcpiDmDwordDescriptor (
736    AML_RESOURCE            *Resource,
737    UINT32                  Length,
738    UINT32                  Level);
739
740void
741AcpiDmExtendedDescriptor (
742    AML_RESOURCE            *Resource,
743    UINT32                  Length,
744    UINT32                  Level);
745
746void
747AcpiDmQwordDescriptor (
748    AML_RESOURCE            *Resource,
749    UINT32                  Length,
750    UINT32                  Level);
751
752void
753AcpiDmMemory24Descriptor (
754    AML_RESOURCE            *Resource,
755    UINT32                  Length,
756    UINT32                  Level);
757
758void
759AcpiDmMemory32Descriptor (
760    AML_RESOURCE            *Resource,
761    UINT32                  Length,
762    UINT32                  Level);
763
764void
765AcpiDmFixedMemory32Descriptor (
766    AML_RESOURCE            *Resource,
767    UINT32                  Length,
768    UINT32                  Level);
769
770void
771AcpiDmGenericRegisterDescriptor (
772    AML_RESOURCE            *Resource,
773    UINT32                  Length,
774    UINT32                  Level);
775
776void
777AcpiDmInterruptDescriptor (
778    AML_RESOURCE            *Resource,
779    UINT32                  Length,
780    UINT32                  Level);
781
782void
783AcpiDmVendorLargeDescriptor (
784    AML_RESOURCE            *Resource,
785    UINT32                  Length,
786    UINT32                  Level);
787
788void
789AcpiDmGpioDescriptor (
790    AML_RESOURCE            *Resource,
791    UINT32                  Length,
792    UINT32                  Level);
793
794void
795AcpiDmSerialBusDescriptor (
796    AML_RESOURCE            *Resource,
797    UINT32                  Length,
798    UINT32                  Level);
799
800void
801AcpiDmVendorCommon (
802    char                    *Name,
803    UINT8                   *ByteData,
804    UINT32                  Length,
805    UINT32                  Level);
806
807
808/*
809 * dmresrcs
810 */
811void
812AcpiDmIrqDescriptor (
813    AML_RESOURCE            *Resource,
814    UINT32                  Length,
815    UINT32                  Level);
816
817void
818AcpiDmDmaDescriptor (
819    AML_RESOURCE            *Resource,
820    UINT32                  Length,
821    UINT32                  Level);
822
823void
824AcpiDmFixedDmaDescriptor (
825    AML_RESOURCE            *Resource,
826    UINT32                  Length,
827    UINT32                  Level);
828
829void
830AcpiDmIoDescriptor (
831    AML_RESOURCE            *Resource,
832    UINT32                  Length,
833    UINT32                  Level);
834
835void
836AcpiDmFixedIoDescriptor (
837    AML_RESOURCE            *Resource,
838    UINT32                  Length,
839    UINT32                  Level);
840
841void
842AcpiDmStartDependentDescriptor (
843    AML_RESOURCE            *Resource,
844    UINT32                  Length,
845    UINT32                  Level);
846
847void
848AcpiDmEndDependentDescriptor (
849    AML_RESOURCE            *Resource,
850    UINT32                  Length,
851    UINT32                  Level);
852
853void
854AcpiDmVendorSmallDescriptor (
855    AML_RESOURCE            *Resource,
856    UINT32                  Length,
857    UINT32                  Level);
858
859
860/*
861 * dmutils
862 */
863void
864AcpiDmDecodeAttribute (
865    UINT8                   Attribute);
866
867void
868AcpiDmIndent (
869    UINT32                  Level);
870
871BOOLEAN
872AcpiDmCommaIfListMember (
873    ACPI_PARSE_OBJECT       *Op);
874
875void
876AcpiDmCommaIfFieldMember (
877    ACPI_PARSE_OBJECT       *Op);
878
879
880/*
881 * dmrestag
882 */
883void
884AcpiDmFindResources (
885    ACPI_PARSE_OBJECT       *Root);
886
887void
888AcpiDmCheckResourceReference (
889    ACPI_PARSE_OBJECT       *Op,
890    ACPI_WALK_STATE         *WalkState);
891
892
893/*
894 * acdisasm
895 */
896void
897AdDisassemblerHeader (
898    char                    *Filename);
899
900
901#endif  /* __ACDISASM_H__ */
902