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