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