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