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