]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/contrib/dev/acpica/include/acdisasm.h
MFV: less v451.
[FreeBSD/FreeBSD.git] / sys / contrib / dev / acpica / include / acdisasm.h
1 /******************************************************************************
2  *
3  * Name: acdisasm.h - AML disassembler
4  *
5  *****************************************************************************/
6
7 /*
8  * Copyright (C) 2000 - 2012, 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        AcpiDmTableInfoDbgp[];
239 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
240 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
241 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
242 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
243 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
244 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
245 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
246 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
247 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
248 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
249 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
250 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
251 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
252 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
253 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
254 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
255 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
256 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
257 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
258 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
259 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
260 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
261 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
262 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
263 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
264 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
265 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
266 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
267 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
268 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
269 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
270 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
271 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
272 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
273 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
274 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
275 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
276 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
277 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
278 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
279 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
280 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
281 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
282 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
283 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
284 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
285 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
286 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
287 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
288 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
289 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
290 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
291 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
292 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
293 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
294 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
295 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
296 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
297 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
298 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
299 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
300 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
301 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
302 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
303 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
304 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
305 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
306 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
307 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
308 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
309 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
310 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
311 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
312 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1a[];
313 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
314 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
315 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
316 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
317 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
318 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
319 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
320 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
321 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
322 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
323 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
324 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlicHdr[];
325 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic0[];
326 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic1[];
327 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
328 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
329 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
330 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
331 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
332 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
333 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
334 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
335 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
336 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
337 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
338 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
339 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
340 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
341 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
342
343 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
344
345
346 /*
347  * dmtable
348  */
349 extern ACPI_DMTABLE_DATA        AcpiDmTableData[];
350
351 UINT8
352 AcpiDmGenerateChecksum (
353     void                    *Table,
354     UINT32                  Length,
355     UINT8                   OriginalChecksum);
356
357 ACPI_DMTABLE_DATA *
358 AcpiDmGetTableData (
359     char                    *Signature);
360
361 void
362 AcpiDmDumpDataTable (
363     ACPI_TABLE_HEADER       *Table);
364
365 ACPI_STATUS
366 AcpiDmDumpTable (
367     UINT32                  TableLength,
368     UINT32                  TableOffset,
369     void                    *Table,
370     UINT32                  SubTableLength,
371     ACPI_DMTABLE_INFO        *Info);
372
373 void
374 AcpiDmLineHeader (
375     UINT32                  Offset,
376     UINT32                  ByteLength,
377     char                    *Name);
378
379 void
380 AcpiDmLineHeader2 (
381     UINT32                  Offset,
382     UINT32                  ByteLength,
383     char                    *Name,
384     UINT32                  Value);
385
386
387 /*
388  * dmtbdump
389  */
390 void
391 AcpiDmDumpAsf (
392     ACPI_TABLE_HEADER       *Table);
393
394 void
395 AcpiDmDumpCpep (
396     ACPI_TABLE_HEADER       *Table);
397
398 void
399 AcpiDmDumpDmar (
400     ACPI_TABLE_HEADER       *Table);
401
402 void
403 AcpiDmDumpEinj (
404     ACPI_TABLE_HEADER       *Table);
405
406 void
407 AcpiDmDumpErst (
408     ACPI_TABLE_HEADER       *Table);
409
410 void
411 AcpiDmDumpFadt (
412     ACPI_TABLE_HEADER       *Table);
413
414 void
415 AcpiDmDumpFpdt (
416     ACPI_TABLE_HEADER       *Table);
417
418 void
419 AcpiDmDumpHest (
420     ACPI_TABLE_HEADER       *Table);
421
422 void
423 AcpiDmDumpIvrs (
424     ACPI_TABLE_HEADER       *Table);
425
426 void
427 AcpiDmDumpMadt (
428     ACPI_TABLE_HEADER       *Table);
429
430 void
431 AcpiDmDumpMcfg (
432     ACPI_TABLE_HEADER       *Table);
433
434 void
435 AcpiDmDumpMpst (
436     ACPI_TABLE_HEADER       *Table);
437
438 void
439 AcpiDmDumpMsct (
440     ACPI_TABLE_HEADER       *Table);
441
442 void
443 AcpiDmDumpPcct (
444     ACPI_TABLE_HEADER       *Table);
445
446 void
447 AcpiDmDumpPmtt (
448     ACPI_TABLE_HEADER       *Table);
449
450 UINT32
451 AcpiDmDumpRsdp (
452     ACPI_TABLE_HEADER       *Table);
453
454 void
455 AcpiDmDumpRsdt (
456     ACPI_TABLE_HEADER       *Table);
457
458 UINT32
459 AcpiDmDumpS3pt (
460     ACPI_TABLE_HEADER       *Table);
461
462 void
463 AcpiDmDumpSlic (
464     ACPI_TABLE_HEADER       *Table);
465
466 void
467 AcpiDmDumpSlit (
468     ACPI_TABLE_HEADER       *Table);
469
470 void
471 AcpiDmDumpSrat (
472     ACPI_TABLE_HEADER       *Table);
473
474 void
475 AcpiDmDumpWdat (
476     ACPI_TABLE_HEADER       *Table);
477
478 void
479 AcpiDmDumpXsdt (
480     ACPI_TABLE_HEADER       *Table);
481
482
483 /*
484  * dmwalk
485  */
486 void
487 AcpiDmDisassemble (
488     ACPI_WALK_STATE         *WalkState,
489     ACPI_PARSE_OBJECT       *Origin,
490     UINT32                  NumOpcodes);
491
492 void
493 AcpiDmWalkParseTree (
494     ACPI_PARSE_OBJECT       *Op,
495     ASL_WALK_CALLBACK       DescendingCallback,
496     ASL_WALK_CALLBACK       AscendingCallback,
497     void                    *Context);
498
499
500 /*
501  * dmopcode
502  */
503 void
504 AcpiDmDisassembleOneOp (
505     ACPI_WALK_STATE         *WalkState,
506     ACPI_OP_WALK_INFO       *Info,
507     ACPI_PARSE_OBJECT       *Op);
508
509 void
510 AcpiDmDecodeInternalObject (
511     ACPI_OPERAND_OBJECT     *ObjDesc);
512
513 UINT32
514 AcpiDmListType (
515     ACPI_PARSE_OBJECT       *Op);
516
517 void
518 AcpiDmMethodFlags (
519     ACPI_PARSE_OBJECT       *Op);
520
521 void
522 AcpiDmPredefinedDescription (
523     ACPI_PARSE_OBJECT       *Op);
524
525 void
526 AcpiDmFieldPredefinedDescription (
527     ACPI_PARSE_OBJECT       *Op);
528
529 void
530 AcpiDmFieldFlags (
531     ACPI_PARSE_OBJECT       *Op);
532
533 void
534 AcpiDmAddressSpace (
535     UINT8                   SpaceId);
536
537 void
538 AcpiDmRegionFlags (
539     ACPI_PARSE_OBJECT       *Op);
540
541 void
542 AcpiDmMatchOp (
543     ACPI_PARSE_OBJECT       *Op);
544
545
546 /*
547  * dmnames
548  */
549 UINT32
550 AcpiDmDumpName (
551     UINT32                  Name);
552
553 ACPI_STATUS
554 AcpiPsDisplayObjectPathname (
555     ACPI_WALK_STATE         *WalkState,
556     ACPI_PARSE_OBJECT       *Op);
557
558 void
559 AcpiDmNamestring (
560     char                    *Name);
561
562
563 /*
564  * dmobject
565  */
566 void
567 AcpiDmDisplayInternalObject (
568     ACPI_OPERAND_OBJECT     *ObjDesc,
569     ACPI_WALK_STATE         *WalkState);
570
571 void
572 AcpiDmDisplayArguments (
573     ACPI_WALK_STATE         *WalkState);
574
575 void
576 AcpiDmDisplayLocals (
577     ACPI_WALK_STATE         *WalkState);
578
579 void
580 AcpiDmDumpMethodInfo (
581     ACPI_STATUS             Status,
582     ACPI_WALK_STATE         *WalkState,
583     ACPI_PARSE_OBJECT       *Op);
584
585
586 /*
587  * dmbuffer
588  */
589 void
590 AcpiDmDisasmByteList (
591     UINT32                  Level,
592     UINT8                   *ByteData,
593     UINT32                  ByteCount);
594
595 void
596 AcpiDmByteList (
597     ACPI_OP_WALK_INFO       *Info,
598     ACPI_PARSE_OBJECT       *Op);
599
600 void
601 AcpiDmIsEisaId (
602     ACPI_PARSE_OBJECT       *Op);
603
604 void
605 AcpiDmEisaId (
606     UINT32                  EncodedId);
607
608 BOOLEAN
609 AcpiDmIsUnicodeBuffer (
610     ACPI_PARSE_OBJECT       *Op);
611
612 BOOLEAN
613 AcpiDmIsStringBuffer (
614     ACPI_PARSE_OBJECT       *Op);
615
616
617 /*
618  * dmextern
619  */
620
621 ACPI_STATUS
622 AcpiDmAddToExternalFileList (
623     char                    *PathList);
624
625 void
626 AcpiDmClearExternalFileList (
627     void);
628
629 void
630 AcpiDmAddToExternalList (
631     ACPI_PARSE_OBJECT       *Op,
632     char                    *Path,
633     UINT8                   Type,
634     UINT32                  Value);
635
636 void
637 AcpiDmAddExternalsToNamespace (
638     void);
639
640 UINT32
641 AcpiDmGetExternalMethodCount (
642     void);
643
644 void
645 AcpiDmClearExternalList (
646     void);
647
648 void
649 AcpiDmEmitExternals (
650     void);
651
652
653 /*
654  * dmresrc
655  */
656 void
657 AcpiDmDumpInteger8 (
658     UINT8                   Value,
659     char                    *Name);
660
661 void
662 AcpiDmDumpInteger16 (
663     UINT16                  Value,
664     char                    *Name);
665
666 void
667 AcpiDmDumpInteger32 (
668     UINT32                  Value,
669     char                    *Name);
670
671 void
672 AcpiDmDumpInteger64 (
673     UINT64                  Value,
674     char                    *Name);
675
676 void
677 AcpiDmResourceTemplate (
678     ACPI_OP_WALK_INFO       *Info,
679     ACPI_PARSE_OBJECT       *Op,
680     UINT8                   *ByteData,
681     UINT32                  ByteCount);
682
683 ACPI_STATUS
684 AcpiDmIsResourceTemplate (
685     ACPI_PARSE_OBJECT       *Op);
686
687 void
688 AcpiDmBitList (
689     UINT16                  Mask);
690
691 void
692 AcpiDmDescriptorName (
693     void);
694
695
696 /*
697  * dmresrcl
698  */
699 void
700 AcpiDmWordDescriptor (
701     AML_RESOURCE            *Resource,
702     UINT32                  Length,
703     UINT32                  Level);
704
705 void
706 AcpiDmDwordDescriptor (
707     AML_RESOURCE            *Resource,
708     UINT32                  Length,
709     UINT32                  Level);
710
711 void
712 AcpiDmExtendedDescriptor (
713     AML_RESOURCE            *Resource,
714     UINT32                  Length,
715     UINT32                  Level);
716
717 void
718 AcpiDmQwordDescriptor (
719     AML_RESOURCE            *Resource,
720     UINT32                  Length,
721     UINT32                  Level);
722
723 void
724 AcpiDmMemory24Descriptor (
725     AML_RESOURCE            *Resource,
726     UINT32                  Length,
727     UINT32                  Level);
728
729 void
730 AcpiDmMemory32Descriptor (
731     AML_RESOURCE            *Resource,
732     UINT32                  Length,
733     UINT32                  Level);
734
735 void
736 AcpiDmFixedMemory32Descriptor (
737     AML_RESOURCE            *Resource,
738     UINT32                  Length,
739     UINT32                  Level);
740
741 void
742 AcpiDmGenericRegisterDescriptor (
743     AML_RESOURCE            *Resource,
744     UINT32                  Length,
745     UINT32                  Level);
746
747 void
748 AcpiDmInterruptDescriptor (
749     AML_RESOURCE            *Resource,
750     UINT32                  Length,
751     UINT32                  Level);
752
753 void
754 AcpiDmVendorLargeDescriptor (
755     AML_RESOURCE            *Resource,
756     UINT32                  Length,
757     UINT32                  Level);
758
759 void
760 AcpiDmGpioDescriptor (
761     AML_RESOURCE            *Resource,
762     UINT32                  Length,
763     UINT32                  Level);
764
765 void
766 AcpiDmSerialBusDescriptor (
767     AML_RESOURCE            *Resource,
768     UINT32                  Length,
769     UINT32                  Level);
770
771 void
772 AcpiDmVendorCommon (
773     char                    *Name,
774     UINT8                   *ByteData,
775     UINT32                  Length,
776     UINT32                  Level);
777
778
779 /*
780  * dmresrcs
781  */
782 void
783 AcpiDmIrqDescriptor (
784     AML_RESOURCE            *Resource,
785     UINT32                  Length,
786     UINT32                  Level);
787
788 void
789 AcpiDmDmaDescriptor (
790     AML_RESOURCE            *Resource,
791     UINT32                  Length,
792     UINT32                  Level);
793
794 void
795 AcpiDmFixedDmaDescriptor (
796     AML_RESOURCE            *Resource,
797     UINT32                  Length,
798     UINT32                  Level);
799
800 void
801 AcpiDmIoDescriptor (
802     AML_RESOURCE            *Resource,
803     UINT32                  Length,
804     UINT32                  Level);
805
806 void
807 AcpiDmFixedIoDescriptor (
808     AML_RESOURCE            *Resource,
809     UINT32                  Length,
810     UINT32                  Level);
811
812 void
813 AcpiDmStartDependentDescriptor (
814     AML_RESOURCE            *Resource,
815     UINT32                  Length,
816     UINT32                  Level);
817
818 void
819 AcpiDmEndDependentDescriptor (
820     AML_RESOURCE            *Resource,
821     UINT32                  Length,
822     UINT32                  Level);
823
824 void
825 AcpiDmVendorSmallDescriptor (
826     AML_RESOURCE            *Resource,
827     UINT32                  Length,
828     UINT32                  Level);
829
830
831 /*
832  * dmutils
833  */
834 void
835 AcpiDmDecodeAttribute (
836     UINT8                   Attribute);
837
838 void
839 AcpiDmIndent (
840     UINT32                  Level);
841
842 BOOLEAN
843 AcpiDmCommaIfListMember (
844     ACPI_PARSE_OBJECT       *Op);
845
846 void
847 AcpiDmCommaIfFieldMember (
848     ACPI_PARSE_OBJECT       *Op);
849
850
851 /*
852  * dmrestag
853  */
854 void
855 AcpiDmFindResources (
856     ACPI_PARSE_OBJECT       *Root);
857
858 void
859 AcpiDmCheckResourceReference (
860     ACPI_PARSE_OBJECT       *Op,
861     ACPI_WALK_STATE         *WalkState);
862
863
864 /*
865  * acdisasm
866  */
867 void
868 AdDisassemblerHeader (
869     char                    *Filename);
870
871
872 #endif  /* __ACDISASM_H__ */