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