xref: /dflybsd-src/sys/contrib/dev/acpica/source/include/acdisasm.h (revision 066b6da29f829f6c7f6211f86db0cc29f0a21c94)
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        AcpiDmTableInfoTcpa[];
364 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2[];
365 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
366 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc[];
367 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc0[];
368 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
369 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
370 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
371 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
372 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
373 
374 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
375 
376 
377 /*
378  * dmtable
379  */
380 extern ACPI_DMTABLE_DATA        AcpiDmTableData[];
381 
382 UINT8
383 AcpiDmGenerateChecksum (
384     void                    *Table,
385     UINT32                  Length,
386     UINT8                   OriginalChecksum);
387 
388 ACPI_DMTABLE_DATA *
389 AcpiDmGetTableData (
390     char                    *Signature);
391 
392 void
393 AcpiDmDumpDataTable (
394     ACPI_TABLE_HEADER       *Table);
395 
396 ACPI_STATUS
397 AcpiDmDumpTable (
398     UINT32                  TableLength,
399     UINT32                  TableOffset,
400     void                    *Table,
401     UINT32                  SubTableLength,
402     ACPI_DMTABLE_INFO        *Info);
403 
404 void
405 AcpiDmLineHeader (
406     UINT32                  Offset,
407     UINT32                  ByteLength,
408     char                    *Name);
409 
410 void
411 AcpiDmLineHeader2 (
412     UINT32                  Offset,
413     UINT32                  ByteLength,
414     char                    *Name,
415     UINT32                  Value);
416 
417 
418 /*
419  * dmtbdump
420  */
421 void
422 AcpiDmDumpAsf (
423     ACPI_TABLE_HEADER       *Table);
424 
425 void
426 AcpiDmDumpCpep (
427     ACPI_TABLE_HEADER       *Table);
428 
429 void
430 AcpiDmDumpCsrt (
431     ACPI_TABLE_HEADER       *Table);
432 
433 void
434 AcpiDmDumpDbg2 (
435     ACPI_TABLE_HEADER       *Table);
436 
437 void
438 AcpiDmDumpDmar (
439     ACPI_TABLE_HEADER       *Table);
440 
441 void
442 AcpiDmDumpEinj (
443     ACPI_TABLE_HEADER       *Table);
444 
445 void
446 AcpiDmDumpErst (
447     ACPI_TABLE_HEADER       *Table);
448 
449 void
450 AcpiDmDumpFadt (
451     ACPI_TABLE_HEADER       *Table);
452 
453 void
454 AcpiDmDumpFpdt (
455     ACPI_TABLE_HEADER       *Table);
456 
457 void
458 AcpiDmDumpGtdt (
459     ACPI_TABLE_HEADER       *Table);
460 
461 void
462 AcpiDmDumpHest (
463     ACPI_TABLE_HEADER       *Table);
464 
465 void
466 AcpiDmDumpIvrs (
467     ACPI_TABLE_HEADER       *Table);
468 
469 void
470 AcpiDmDumpLpit (
471     ACPI_TABLE_HEADER       *Table);
472 
473 void
474 AcpiDmDumpMadt (
475     ACPI_TABLE_HEADER       *Table);
476 
477 void
478 AcpiDmDumpMcfg (
479     ACPI_TABLE_HEADER       *Table);
480 
481 void
482 AcpiDmDumpMpst (
483     ACPI_TABLE_HEADER       *Table);
484 
485 void
486 AcpiDmDumpMsct (
487     ACPI_TABLE_HEADER       *Table);
488 
489 void
490 AcpiDmDumpMtmr (
491     ACPI_TABLE_HEADER       *Table);
492 
493 void
494 AcpiDmDumpPcct (
495     ACPI_TABLE_HEADER       *Table);
496 
497 void
498 AcpiDmDumpPmtt (
499     ACPI_TABLE_HEADER       *Table);
500 
501 UINT32
502 AcpiDmDumpRsdp (
503     ACPI_TABLE_HEADER       *Table);
504 
505 void
506 AcpiDmDumpRsdt (
507     ACPI_TABLE_HEADER       *Table);
508 
509 UINT32
510 AcpiDmDumpS3pt (
511     ACPI_TABLE_HEADER       *Table);
512 
513 void
514 AcpiDmDumpSlic (
515     ACPI_TABLE_HEADER       *Table);
516 
517 void
518 AcpiDmDumpSlit (
519     ACPI_TABLE_HEADER       *Table);
520 
521 void
522 AcpiDmDumpSrat (
523     ACPI_TABLE_HEADER       *Table);
524 
525 void
526 AcpiDmDumpVrtc (
527     ACPI_TABLE_HEADER       *Table);
528 
529 void
530 AcpiDmDumpWdat (
531     ACPI_TABLE_HEADER       *Table);
532 
533 void
534 AcpiDmDumpXsdt (
535     ACPI_TABLE_HEADER       *Table);
536 
537 
538 /*
539  * dmwalk
540  */
541 void
542 AcpiDmDisassemble (
543     ACPI_WALK_STATE         *WalkState,
544     ACPI_PARSE_OBJECT       *Origin,
545     UINT32                  NumOpcodes);
546 
547 void
548 AcpiDmWalkParseTree (
549     ACPI_PARSE_OBJECT       *Op,
550     ASL_WALK_CALLBACK       DescendingCallback,
551     ASL_WALK_CALLBACK       AscendingCallback,
552     void                    *Context);
553 
554 
555 /*
556  * dmopcode
557  */
558 void
559 AcpiDmDisassembleOneOp (
560     ACPI_WALK_STATE         *WalkState,
561     ACPI_OP_WALK_INFO       *Info,
562     ACPI_PARSE_OBJECT       *Op);
563 
564 void
565 AcpiDmDecodeInternalObject (
566     ACPI_OPERAND_OBJECT     *ObjDesc);
567 
568 UINT32
569 AcpiDmListType (
570     ACPI_PARSE_OBJECT       *Op);
571 
572 void
573 AcpiDmMethodFlags (
574     ACPI_PARSE_OBJECT       *Op);
575 
576 void
577 AcpiDmDisplayTargetPathname (
578     ACPI_PARSE_OBJECT       *Op);
579 
580 void
581 AcpiDmNotifyDescription (
582     ACPI_PARSE_OBJECT       *Op);
583 
584 void
585 AcpiDmPredefinedDescription (
586     ACPI_PARSE_OBJECT       *Op);
587 
588 void
589 AcpiDmFieldPredefinedDescription (
590     ACPI_PARSE_OBJECT       *Op);
591 
592 void
593 AcpiDmFieldFlags (
594     ACPI_PARSE_OBJECT       *Op);
595 
596 void
597 AcpiDmAddressSpace (
598     UINT8                   SpaceId);
599 
600 void
601 AcpiDmRegionFlags (
602     ACPI_PARSE_OBJECT       *Op);
603 
604 void
605 AcpiDmMatchOp (
606     ACPI_PARSE_OBJECT       *Op);
607 
608 
609 /*
610  * dmnames
611  */
612 UINT32
613 AcpiDmDumpName (
614     UINT32                  Name);
615 
616 ACPI_STATUS
617 AcpiPsDisplayObjectPathname (
618     ACPI_WALK_STATE         *WalkState,
619     ACPI_PARSE_OBJECT       *Op);
620 
621 void
622 AcpiDmNamestring (
623     char                    *Name);
624 
625 
626 /*
627  * dmobject
628  */
629 void
630 AcpiDmDisplayInternalObject (
631     ACPI_OPERAND_OBJECT     *ObjDesc,
632     ACPI_WALK_STATE         *WalkState);
633 
634 void
635 AcpiDmDisplayArguments (
636     ACPI_WALK_STATE         *WalkState);
637 
638 void
639 AcpiDmDisplayLocals (
640     ACPI_WALK_STATE         *WalkState);
641 
642 void
643 AcpiDmDumpMethodInfo (
644     ACPI_STATUS             Status,
645     ACPI_WALK_STATE         *WalkState,
646     ACPI_PARSE_OBJECT       *Op);
647 
648 
649 /*
650  * dmbuffer
651  */
652 void
653 AcpiDmDisasmByteList (
654     UINT32                  Level,
655     UINT8                   *ByteData,
656     UINT32                  ByteCount);
657 
658 void
659 AcpiDmByteList (
660     ACPI_OP_WALK_INFO       *Info,
661     ACPI_PARSE_OBJECT       *Op);
662 
663 void
664 AcpiDmCheckForHardwareId (
665     ACPI_PARSE_OBJECT       *Op);
666 
667 void
668 AcpiDmDecompressEisaId (
669     UINT32                  EncodedId);
670 
671 BOOLEAN
672 AcpiDmIsUuidBuffer (
673     ACPI_PARSE_OBJECT       *Op);
674 
675 BOOLEAN
676 AcpiDmIsUnicodeBuffer (
677     ACPI_PARSE_OBJECT       *Op);
678 
679 BOOLEAN
680 AcpiDmIsStringBuffer (
681     ACPI_PARSE_OBJECT       *Op);
682 
683 BOOLEAN
684 AcpiDmIsPldBuffer (
685     ACPI_PARSE_OBJECT       *Op);
686 
687 
688 /*
689  * dmdeferred
690  */
691 ACPI_STATUS
692 AcpiDmParseDeferredOps (
693     ACPI_PARSE_OBJECT       *Root);
694 
695 
696 /*
697  * dmextern
698  */
699 ACPI_STATUS
700 AcpiDmAddToExternalFileList (
701     char                    *PathList);
702 
703 void
704 AcpiDmClearExternalFileList (
705     void);
706 
707 void
708 AcpiDmAddOpToExternalList (
709     ACPI_PARSE_OBJECT       *Op,
710     char                    *Path,
711     UINT8                   Type,
712     UINT32                  Value,
713     UINT16                  Flags);
714 
715 void
716 AcpiDmAddNodeToExternalList (
717     ACPI_NAMESPACE_NODE     *Node,
718     UINT8                   Type,
719     UINT32                  Value,
720     UINT16                  Flags);
721 
722 void
723 AcpiDmAddExternalsToNamespace (
724     void);
725 
726 UINT32
727 AcpiDmGetExternalMethodCount (
728     void);
729 
730 void
731 AcpiDmClearExternalList (
732     void);
733 
734 void
735 AcpiDmEmitExternals (
736     void);
737 
738 void
739 AcpiDmUnresolvedWarning (
740     UINT8                   Type);
741 
742 void
743 AcpiDmGetExternalsFromFile (
744     void);
745 
746 /*
747  * dmresrc
748  */
749 void
750 AcpiDmDumpInteger8 (
751     UINT8                   Value,
752     char                    *Name);
753 
754 void
755 AcpiDmDumpInteger16 (
756     UINT16                  Value,
757     char                    *Name);
758 
759 void
760 AcpiDmDumpInteger32 (
761     UINT32                  Value,
762     char                    *Name);
763 
764 void
765 AcpiDmDumpInteger64 (
766     UINT64                  Value,
767     char                    *Name);
768 
769 void
770 AcpiDmResourceTemplate (
771     ACPI_OP_WALK_INFO       *Info,
772     ACPI_PARSE_OBJECT       *Op,
773     UINT8                   *ByteData,
774     UINT32                  ByteCount);
775 
776 ACPI_STATUS
777 AcpiDmIsResourceTemplate (
778     ACPI_WALK_STATE         *WalkState,
779     ACPI_PARSE_OBJECT       *Op);
780 
781 void
782 AcpiDmBitList (
783     UINT16                  Mask);
784 
785 void
786 AcpiDmDescriptorName (
787     void);
788 
789 
790 /*
791  * dmresrcl
792  */
793 void
794 AcpiDmWordDescriptor (
795     AML_RESOURCE            *Resource,
796     UINT32                  Length,
797     UINT32                  Level);
798 
799 void
800 AcpiDmDwordDescriptor (
801     AML_RESOURCE            *Resource,
802     UINT32                  Length,
803     UINT32                  Level);
804 
805 void
806 AcpiDmExtendedDescriptor (
807     AML_RESOURCE            *Resource,
808     UINT32                  Length,
809     UINT32                  Level);
810 
811 void
812 AcpiDmQwordDescriptor (
813     AML_RESOURCE            *Resource,
814     UINT32                  Length,
815     UINT32                  Level);
816 
817 void
818 AcpiDmMemory24Descriptor (
819     AML_RESOURCE            *Resource,
820     UINT32                  Length,
821     UINT32                  Level);
822 
823 void
824 AcpiDmMemory32Descriptor (
825     AML_RESOURCE            *Resource,
826     UINT32                  Length,
827     UINT32                  Level);
828 
829 void
830 AcpiDmFixedMemory32Descriptor (
831     AML_RESOURCE            *Resource,
832     UINT32                  Length,
833     UINT32                  Level);
834 
835 void
836 AcpiDmGenericRegisterDescriptor (
837     AML_RESOURCE            *Resource,
838     UINT32                  Length,
839     UINT32                  Level);
840 
841 void
842 AcpiDmInterruptDescriptor (
843     AML_RESOURCE            *Resource,
844     UINT32                  Length,
845     UINT32                  Level);
846 
847 void
848 AcpiDmVendorLargeDescriptor (
849     AML_RESOURCE            *Resource,
850     UINT32                  Length,
851     UINT32                  Level);
852 
853 void
854 AcpiDmGpioDescriptor (
855     AML_RESOURCE            *Resource,
856     UINT32                  Length,
857     UINT32                  Level);
858 
859 void
860 AcpiDmSerialBusDescriptor (
861     AML_RESOURCE            *Resource,
862     UINT32                  Length,
863     UINT32                  Level);
864 
865 void
866 AcpiDmVendorCommon (
867     char                    *Name,
868     UINT8                   *ByteData,
869     UINT32                  Length,
870     UINT32                  Level);
871 
872 
873 /*
874  * dmresrcs
875  */
876 void
877 AcpiDmIrqDescriptor (
878     AML_RESOURCE            *Resource,
879     UINT32                  Length,
880     UINT32                  Level);
881 
882 void
883 AcpiDmDmaDescriptor (
884     AML_RESOURCE            *Resource,
885     UINT32                  Length,
886     UINT32                  Level);
887 
888 void
889 AcpiDmFixedDmaDescriptor (
890     AML_RESOURCE            *Resource,
891     UINT32                  Length,
892     UINT32                  Level);
893 
894 void
895 AcpiDmIoDescriptor (
896     AML_RESOURCE            *Resource,
897     UINT32                  Length,
898     UINT32                  Level);
899 
900 void
901 AcpiDmFixedIoDescriptor (
902     AML_RESOURCE            *Resource,
903     UINT32                  Length,
904     UINT32                  Level);
905 
906 void
907 AcpiDmStartDependentDescriptor (
908     AML_RESOURCE            *Resource,
909     UINT32                  Length,
910     UINT32                  Level);
911 
912 void
913 AcpiDmEndDependentDescriptor (
914     AML_RESOURCE            *Resource,
915     UINT32                  Length,
916     UINT32                  Level);
917 
918 void
919 AcpiDmVendorSmallDescriptor (
920     AML_RESOURCE            *Resource,
921     UINT32                  Length,
922     UINT32                  Level);
923 
924 
925 /*
926  * dmutils
927  */
928 void
929 AcpiDmDecodeAttribute (
930     UINT8                   Attribute);
931 
932 void
933 AcpiDmIndent (
934     UINT32                  Level);
935 
936 BOOLEAN
937 AcpiDmCommaIfListMember (
938     ACPI_PARSE_OBJECT       *Op);
939 
940 void
941 AcpiDmCommaIfFieldMember (
942     ACPI_PARSE_OBJECT       *Op);
943 
944 
945 /*
946  * dmrestag
947  */
948 void
949 AcpiDmFindResources (
950     ACPI_PARSE_OBJECT       *Root);
951 
952 void
953 AcpiDmCheckResourceReference (
954     ACPI_PARSE_OBJECT       *Op,
955     ACPI_WALK_STATE         *WalkState);
956 
957 
958 /*
959  * acdisasm
960  */
961 void
962 AdDisassemblerHeader (
963     char                    *Filename);
964 
965 
966 #endif  /* __ACDISASM_H__ */
967