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