xref: /haiku/src/add-ons/kernel/bus_managers/acpi/acpica/include/acdisasm.h (revision 820dca4df6c7bf955c46e8f6521b9408f50b2900)
1 /******************************************************************************
2  *
3  * Name: acdisasm.h - AML disassembler
4  *
5  *****************************************************************************/
6 
7 /******************************************************************************
8  *
9  * 1. Copyright Notice
10  *
11  * Some or all of this work - Copyright (c) 1999 - 2012, Intel Corp.
12  * All rights reserved.
13  *
14  * 2. License
15  *
16  * 2.1. This is your license from Intel Corp. under its intellectual property
17  * rights. You may have additional license terms from the party that provided
18  * you this software, covering your right to use that party's intellectual
19  * property rights.
20  *
21  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22  * copy of the source code appearing in this file ("Covered Code") an
23  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24  * base code distributed originally by Intel ("Original Intel Code") to copy,
25  * make derivatives, distribute, use and display any portion of the Covered
26  * Code in any form, with the right to sublicense such rights; and
27  *
28  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29  * license (with the right to sublicense), under only those claims of Intel
30  * patents that are infringed by the Original Intel Code, to make, use, sell,
31  * offer to sell, and import the Covered Code and derivative works thereof
32  * solely to the minimum extent necessary to exercise the above copyright
33  * license, and in no event shall the patent license extend to any additions
34  * to or modifications of the Original Intel Code. No other license or right
35  * is granted directly or by implication, estoppel or otherwise;
36  *
37  * The above copyright and patent license is granted only if the following
38  * conditions are met:
39  *
40  * 3. Conditions
41  *
42  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43  * Redistribution of source code of any substantial portion of the Covered
44  * Code or modification with rights to further distribute source must include
45  * the above Copyright Notice, the above License, this list of Conditions,
46  * and the following Disclaimer and Export Compliance provision. In addition,
47  * Licensee must cause all Covered Code to which Licensee contributes to
48  * contain a file documenting the changes Licensee made to create that Covered
49  * Code and the date of any change. Licensee must include in that file the
50  * documentation of any changes made by any predecessor Licensee. Licensee
51  * must include a prominent statement that the modification is derived,
52  * directly or indirectly, from Original Intel Code.
53  *
54  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55  * Redistribution of source code of any substantial portion of the Covered
56  * Code or modification without rights to further distribute source must
57  * include the following Disclaimer and Export Compliance provision in the
58  * documentation and/or other materials provided with distribution. In
59  * addition, Licensee may not authorize further sublicense of source of any
60  * portion of the Covered Code, and must include terms to the effect that the
61  * license from Licensee to its licensee is limited to the intellectual
62  * property embodied in the software Licensee provides to its licensee, and
63  * not to intellectual property embodied in modifications its licensee may
64  * make.
65  *
66  * 3.3. Redistribution of Executable. Redistribution in executable form of any
67  * substantial portion of the Covered Code or modification must reproduce the
68  * above Copyright Notice, and the following Disclaimer and Export Compliance
69  * provision in the documentation and/or other materials provided with the
70  * distribution.
71  *
72  * 3.4. Intel retains all right, title, and interest in and to the Original
73  * Intel Code.
74  *
75  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76  * Intel shall be used in advertising or otherwise to promote the sale, use or
77  * other dealings in products derived from or relating to the Covered Code
78  * without prior written authorization from Intel.
79  *
80  * 4. Disclaimer and Export Compliance
81  *
82  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83  * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
85  * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
86  * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
87  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
88  * PARTICULAR PURPOSE.
89  *
90  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
96  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
97  * LIMITED REMEDY.
98  *
99  * 4.3. Licensee shall not export, either directly or indirectly, any of this
100  * software or system incorporating such software without first obtaining any
101  * required license or other approval from the U. S. Department of Commerce or
102  * any other agency or department of the United States Government. In the
103  * event Licensee exports any such software from the United States or
104  * re-exports any such software from a foreign destination, Licensee shall
105  * ensure that the distribution and export/re-export of the software is in
106  * compliance with all laws, regulations, orders, or other restrictions of the
107  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108  * any of its subsidiaries will export/re-export any technical data, process,
109  * software, or service, directly or indirectly, to any country for which the
110  * United States government or any agency thereof requires an export license,
111  * other governmental approval, or letter of assurance, without first obtaining
112  * such license, approval or letter.
113  *
114  *****************************************************************************/
115 
116 #ifndef __ACDISASM_H__
117 #define __ACDISASM_H__
118 
119 #include "amlresrc.h"
120 
121 
122 #define BLOCK_NONE              0
123 #define BLOCK_PAREN             1
124 #define BLOCK_BRACE             2
125 #define BLOCK_COMMA_LIST        4
126 #define ACPI_DEFAULT_RESNAME    *(UINT32 *) "__RD"
127 
128 /*
129  * Raw table data header. Used by disassembler and data table compiler.
130  * Do not change.
131  */
132 #define ACPI_RAW_TABLE_DATA_HEADER      "Raw Table Data"
133 
134 
135 typedef const struct acpi_dmtable_info
136 {
137     UINT8                       Opcode;
138     UINT16                      Offset;
139     char                        *Name;
140     UINT8                       Flags;
141 
142 } ACPI_DMTABLE_INFO;
143 
144 #define DT_LENGTH                       0x01    /* Field is a subtable length */
145 #define DT_FLAG                         0x02    /* Field is a flag value */
146 #define DT_NON_ZERO                     0x04    /* Field must be non-zero */
147 
148 /* TBD: Not used at this time */
149 
150 #define DT_OPTIONAL                     0x08
151 #define DT_COUNT                        0x10
152 
153 /*
154  * Values for Opcode above.
155  * Note: 0-7 must not change, they are used as a flag shift value. Other
156  * than those, new values can be added wherever appropriate.
157  */
158 typedef enum
159 {
160     /* Simple Data Types */
161 
162     ACPI_DMT_FLAG0          = 0,
163     ACPI_DMT_FLAG1          = 1,
164     ACPI_DMT_FLAG2          = 2,
165     ACPI_DMT_FLAG3          = 3,
166     ACPI_DMT_FLAG4          = 4,
167     ACPI_DMT_FLAG5          = 5,
168     ACPI_DMT_FLAG6          = 6,
169     ACPI_DMT_FLAG7          = 7,
170     ACPI_DMT_FLAGS0,
171     ACPI_DMT_FLAGS1,
172     ACPI_DMT_FLAGS2,
173     ACPI_DMT_FLAGS4,
174     ACPI_DMT_UINT8,
175     ACPI_DMT_UINT16,
176     ACPI_DMT_UINT24,
177     ACPI_DMT_UINT32,
178     ACPI_DMT_UINT40,
179     ACPI_DMT_UINT48,
180     ACPI_DMT_UINT56,
181     ACPI_DMT_UINT64,
182     ACPI_DMT_BUF7,
183     ACPI_DMT_BUF16,
184     ACPI_DMT_BUF128,
185     ACPI_DMT_SIG,
186     ACPI_DMT_STRING,
187     ACPI_DMT_NAME4,
188     ACPI_DMT_NAME6,
189     ACPI_DMT_NAME8,
190 
191     /* Types that are decoded to strings and miscellaneous */
192 
193     ACPI_DMT_ACCWIDTH,
194     ACPI_DMT_CHKSUM,
195     ACPI_DMT_GAS,
196     ACPI_DMT_SPACEID,
197     ACPI_DMT_UNICODE,
198     ACPI_DMT_UUID,
199 
200     /* Types used only for the Data Table Compiler */
201 
202     ACPI_DMT_BUFFER,
203     ACPI_DMT_DEVICE_PATH,
204     ACPI_DMT_LABEL,
205     ACPI_DMT_PCI_PATH,
206 
207     /* Types that are specific to particular ACPI tables */
208 
209     ACPI_DMT_ASF,
210     ACPI_DMT_DMAR,
211     ACPI_DMT_EINJACT,
212     ACPI_DMT_EINJINST,
213     ACPI_DMT_ERSTACT,
214     ACPI_DMT_ERSTINST,
215     ACPI_DMT_FADTPM,
216     ACPI_DMT_HEST,
217     ACPI_DMT_HESTNTFY,
218     ACPI_DMT_HESTNTYP,
219     ACPI_DMT_IVRS,
220     ACPI_DMT_MADT,
221     ACPI_DMT_PMTT,
222     ACPI_DMT_SLIC,
223     ACPI_DMT_SRAT,
224 
225     /* Special opcodes */
226 
227     ACPI_DMT_EXTRA_TEXT,
228     ACPI_DMT_EXIT
229 
230 } ACPI_ENTRY_TYPES;
231 
232 typedef
233 void (*ACPI_DMTABLE_HANDLER) (
234     ACPI_TABLE_HEADER       *Table);
235 
236 typedef
237 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
238     void                    **PFieldList);
239 
240 typedef struct acpi_dmtable_data
241 {
242     char                    *Signature;
243     ACPI_DMTABLE_INFO       *TableInfo;
244     ACPI_DMTABLE_HANDLER    TableHandler;
245     ACPI_CMTABLE_HANDLER    CmTableHandler;
246     const unsigned char     *Template;
247     char                    *Name;
248 
249 } ACPI_DMTABLE_DATA;
250 
251 
252 typedef struct acpi_op_walk_info
253 {
254     UINT32                  Level;
255     UINT32                  LastLevel;
256     UINT32                  Count;
257     UINT32                  BitOffset;
258     UINT32                  Flags;
259     ACPI_WALK_STATE         *WalkState;
260 
261 } ACPI_OP_WALK_INFO;
262 
263 /*
264  * TBD - another copy of this is in asltypes.h, fix
265  */
266 #ifndef ASL_WALK_CALLBACK_DEFINED
267 typedef
268 ACPI_STATUS (*ASL_WALK_CALLBACK) (
269     ACPI_PARSE_OBJECT           *Op,
270     UINT32                      Level,
271     void                        *Context);
272 #define ASL_WALK_CALLBACK_DEFINED
273 #endif
274 
275 typedef
276 void (*ACPI_RESOURCE_HANDLER) (
277     AML_RESOURCE            *Resource,
278     UINT32                  Length,
279     UINT32                  Level);
280 
281 typedef struct acpi_resource_tag
282 {
283     UINT32                  BitIndex;
284     char                    *Tag;
285 
286 } ACPI_RESOURCE_TAG;
287 
288 /* Strings used for decoding flags to ASL keywords */
289 
290 extern const char               *AcpiGbl_WordDecode[];
291 extern const char               *AcpiGbl_IrqDecode[];
292 extern const char               *AcpiGbl_LockRule[];
293 extern const char               *AcpiGbl_AccessTypes[];
294 extern const char               *AcpiGbl_UpdateRules[];
295 extern const char               *AcpiGbl_MatchOps[];
296 
297 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
298 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
299 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
300 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
301 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
302 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
303 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
304 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
305 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
306 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
307 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBgrt[];
308 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
309 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
310 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt0[];
311 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt1[];
312 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2[];
313 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Device[];
314 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Addr[];
315 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Size[];
316 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Name[];
317 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
318 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
319 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
320 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
321 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
322 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
323 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
324 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
325 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
326 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
327 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
328 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
329 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
330 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
331 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
332 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
333 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
334 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
335 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
336 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
337 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
338 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
339 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
340 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
341 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
342 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
343 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
344 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
345 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
346 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
347 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
348 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
349 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
350 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
351 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
352 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
353 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
354 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
355 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
356 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
357 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
358 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
359 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
360 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
361 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
362 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
363 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
364 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
365 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
366 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
367 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
368 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
369 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
370 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
371 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
372 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
373 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
374 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
375 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
376 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
377 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
378 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
379 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
380 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
381 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
382 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
383 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
384 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
385 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
386 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
387 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
388 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
389 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
390 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
391 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1a[];
392 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
393 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
394 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
395 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
396 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
397 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
398 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
399 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
400 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
401 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
402 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
403 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlicHdr[];
404 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic0[];
405 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic1[];
406 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
407 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
408 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
409 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
410 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
411 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
412 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
413 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
414 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
415 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
416 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
417 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
418 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
419 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
420 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
421 
422 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
423 
424 
425 /*
426  * dmtable
427  */
428 extern ACPI_DMTABLE_DATA        AcpiDmTableData[];
429 
430 UINT8
431 AcpiDmGenerateChecksum (
432     void                    *Table,
433     UINT32                  Length,
434     UINT8                   OriginalChecksum);
435 
436 ACPI_DMTABLE_DATA *
437 AcpiDmGetTableData (
438     char                    *Signature);
439 
440 void
441 AcpiDmDumpDataTable (
442     ACPI_TABLE_HEADER       *Table);
443 
444 ACPI_STATUS
445 AcpiDmDumpTable (
446     UINT32                  TableLength,
447     UINT32                  TableOffset,
448     void                    *Table,
449     UINT32                  SubTableLength,
450     ACPI_DMTABLE_INFO        *Info);
451 
452 void
453 AcpiDmLineHeader (
454     UINT32                  Offset,
455     UINT32                  ByteLength,
456     char                    *Name);
457 
458 void
459 AcpiDmLineHeader2 (
460     UINT32                  Offset,
461     UINT32                  ByteLength,
462     char                    *Name,
463     UINT32                  Value);
464 
465 
466 /*
467  * dmtbdump
468  */
469 void
470 AcpiDmDumpAsf (
471     ACPI_TABLE_HEADER       *Table);
472 
473 void
474 AcpiDmDumpCpep (
475     ACPI_TABLE_HEADER       *Table);
476 
477 void
478 AcpiDmDumpCsrt (
479     ACPI_TABLE_HEADER       *Table);
480 
481 void
482 AcpiDmDumpDbg2 (
483     ACPI_TABLE_HEADER       *Table);
484 
485 void
486 AcpiDmDumpDmar (
487     ACPI_TABLE_HEADER       *Table);
488 
489 void
490 AcpiDmDumpEinj (
491     ACPI_TABLE_HEADER       *Table);
492 
493 void
494 AcpiDmDumpErst (
495     ACPI_TABLE_HEADER       *Table);
496 
497 void
498 AcpiDmDumpFadt (
499     ACPI_TABLE_HEADER       *Table);
500 
501 void
502 AcpiDmDumpFpdt (
503     ACPI_TABLE_HEADER       *Table);
504 
505 void
506 AcpiDmDumpHest (
507     ACPI_TABLE_HEADER       *Table);
508 
509 void
510 AcpiDmDumpIvrs (
511     ACPI_TABLE_HEADER       *Table);
512 
513 void
514 AcpiDmDumpMadt (
515     ACPI_TABLE_HEADER       *Table);
516 
517 void
518 AcpiDmDumpMcfg (
519     ACPI_TABLE_HEADER       *Table);
520 
521 void
522 AcpiDmDumpMpst (
523     ACPI_TABLE_HEADER       *Table);
524 
525 void
526 AcpiDmDumpMsct (
527     ACPI_TABLE_HEADER       *Table);
528 
529 void
530 AcpiDmDumpPcct (
531     ACPI_TABLE_HEADER       *Table);
532 
533 void
534 AcpiDmDumpPmtt (
535     ACPI_TABLE_HEADER       *Table);
536 
537 UINT32
538 AcpiDmDumpRsdp (
539     ACPI_TABLE_HEADER       *Table);
540 
541 void
542 AcpiDmDumpRsdt (
543     ACPI_TABLE_HEADER       *Table);
544 
545 UINT32
546 AcpiDmDumpS3pt (
547     ACPI_TABLE_HEADER       *Table);
548 
549 void
550 AcpiDmDumpSlic (
551     ACPI_TABLE_HEADER       *Table);
552 
553 void
554 AcpiDmDumpSlit (
555     ACPI_TABLE_HEADER       *Table);
556 
557 void
558 AcpiDmDumpSrat (
559     ACPI_TABLE_HEADER       *Table);
560 
561 void
562 AcpiDmDumpWdat (
563     ACPI_TABLE_HEADER       *Table);
564 
565 void
566 AcpiDmDumpXsdt (
567     ACPI_TABLE_HEADER       *Table);
568 
569 
570 /*
571  * dmwalk
572  */
573 void
574 AcpiDmDisassemble (
575     ACPI_WALK_STATE         *WalkState,
576     ACPI_PARSE_OBJECT       *Origin,
577     UINT32                  NumOpcodes);
578 
579 void
580 AcpiDmWalkParseTree (
581     ACPI_PARSE_OBJECT       *Op,
582     ASL_WALK_CALLBACK       DescendingCallback,
583     ASL_WALK_CALLBACK       AscendingCallback,
584     void                    *Context);
585 
586 
587 /*
588  * dmopcode
589  */
590 void
591 AcpiDmDisassembleOneOp (
592     ACPI_WALK_STATE         *WalkState,
593     ACPI_OP_WALK_INFO       *Info,
594     ACPI_PARSE_OBJECT       *Op);
595 
596 void
597 AcpiDmDecodeInternalObject (
598     ACPI_OPERAND_OBJECT     *ObjDesc);
599 
600 UINT32
601 AcpiDmListType (
602     ACPI_PARSE_OBJECT       *Op);
603 
604 void
605 AcpiDmMethodFlags (
606     ACPI_PARSE_OBJECT       *Op);
607 
608 void
609 AcpiDmPredefinedDescription (
610     ACPI_PARSE_OBJECT       *Op);
611 
612 void
613 AcpiDmFieldPredefinedDescription (
614     ACPI_PARSE_OBJECT       *Op);
615 
616 void
617 AcpiDmFieldFlags (
618     ACPI_PARSE_OBJECT       *Op);
619 
620 void
621 AcpiDmAddressSpace (
622     UINT8                   SpaceId);
623 
624 void
625 AcpiDmRegionFlags (
626     ACPI_PARSE_OBJECT       *Op);
627 
628 void
629 AcpiDmMatchOp (
630     ACPI_PARSE_OBJECT       *Op);
631 
632 
633 /*
634  * dmnames
635  */
636 UINT32
637 AcpiDmDumpName (
638     UINT32                  Name);
639 
640 ACPI_STATUS
641 AcpiPsDisplayObjectPathname (
642     ACPI_WALK_STATE         *WalkState,
643     ACPI_PARSE_OBJECT       *Op);
644 
645 void
646 AcpiDmNamestring (
647     char                    *Name);
648 
649 
650 /*
651  * dmobject
652  */
653 void
654 AcpiDmDisplayInternalObject (
655     ACPI_OPERAND_OBJECT     *ObjDesc,
656     ACPI_WALK_STATE         *WalkState);
657 
658 void
659 AcpiDmDisplayArguments (
660     ACPI_WALK_STATE         *WalkState);
661 
662 void
663 AcpiDmDisplayLocals (
664     ACPI_WALK_STATE         *WalkState);
665 
666 void
667 AcpiDmDumpMethodInfo (
668     ACPI_STATUS             Status,
669     ACPI_WALK_STATE         *WalkState,
670     ACPI_PARSE_OBJECT       *Op);
671 
672 
673 /*
674  * dmbuffer
675  */
676 void
677 AcpiDmDisasmByteList (
678     UINT32                  Level,
679     UINT8                   *ByteData,
680     UINT32                  ByteCount);
681 
682 void
683 AcpiDmByteList (
684     ACPI_OP_WALK_INFO       *Info,
685     ACPI_PARSE_OBJECT       *Op);
686 
687 void
688 AcpiDmIsEisaId (
689     ACPI_PARSE_OBJECT       *Op);
690 
691 void
692 AcpiDmEisaId (
693     UINT32                  EncodedId);
694 
695 BOOLEAN
696 AcpiDmIsUnicodeBuffer (
697     ACPI_PARSE_OBJECT       *Op);
698 
699 BOOLEAN
700 AcpiDmIsStringBuffer (
701     ACPI_PARSE_OBJECT       *Op);
702 
703 BOOLEAN
704 AcpiDmIsPldBuffer (
705     ACPI_PARSE_OBJECT       *Op);
706 
707 
708 /*
709  * dmextern
710  */
711 
712 ACPI_STATUS
713 AcpiDmAddToExternalFileList (
714     char                    *PathList);
715 
716 void
717 AcpiDmClearExternalFileList (
718     void);
719 
720 void
721 AcpiDmAddToExternalList (
722     ACPI_PARSE_OBJECT       *Op,
723     char                    *Path,
724     UINT8                   Type,
725     UINT32                  Value);
726 
727 void
728 AcpiDmAddExternalsToNamespace (
729     void);
730 
731 UINT32
732 AcpiDmGetExternalMethodCount (
733     void);
734 
735 void
736 AcpiDmClearExternalList (
737     void);
738 
739 void
740 AcpiDmEmitExternals (
741     void);
742 
743 
744 /*
745  * dmresrc
746  */
747 void
748 AcpiDmDumpInteger8 (
749     UINT8                   Value,
750     char                    *Name);
751 
752 void
753 AcpiDmDumpInteger16 (
754     UINT16                  Value,
755     char                    *Name);
756 
757 void
758 AcpiDmDumpInteger32 (
759     UINT32                  Value,
760     char                    *Name);
761 
762 void
763 AcpiDmDumpInteger64 (
764     UINT64                  Value,
765     char                    *Name);
766 
767 void
768 AcpiDmResourceTemplate (
769     ACPI_OP_WALK_INFO       *Info,
770     ACPI_PARSE_OBJECT       *Op,
771     UINT8                   *ByteData,
772     UINT32                  ByteCount);
773 
774 ACPI_STATUS
775 AcpiDmIsResourceTemplate (
776     ACPI_PARSE_OBJECT       *Op);
777 
778 void
779 AcpiDmBitList (
780     UINT16                  Mask);
781 
782 void
783 AcpiDmDescriptorName (
784     void);
785 
786 
787 /*
788  * dmresrcl
789  */
790 void
791 AcpiDmWordDescriptor (
792     AML_RESOURCE            *Resource,
793     UINT32                  Length,
794     UINT32                  Level);
795 
796 void
797 AcpiDmDwordDescriptor (
798     AML_RESOURCE            *Resource,
799     UINT32                  Length,
800     UINT32                  Level);
801 
802 void
803 AcpiDmExtendedDescriptor (
804     AML_RESOURCE            *Resource,
805     UINT32                  Length,
806     UINT32                  Level);
807 
808 void
809 AcpiDmQwordDescriptor (
810     AML_RESOURCE            *Resource,
811     UINT32                  Length,
812     UINT32                  Level);
813 
814 void
815 AcpiDmMemory24Descriptor (
816     AML_RESOURCE            *Resource,
817     UINT32                  Length,
818     UINT32                  Level);
819 
820 void
821 AcpiDmMemory32Descriptor (
822     AML_RESOURCE            *Resource,
823     UINT32                  Length,
824     UINT32                  Level);
825 
826 void
827 AcpiDmFixedMemory32Descriptor (
828     AML_RESOURCE            *Resource,
829     UINT32                  Length,
830     UINT32                  Level);
831 
832 void
833 AcpiDmGenericRegisterDescriptor (
834     AML_RESOURCE            *Resource,
835     UINT32                  Length,
836     UINT32                  Level);
837 
838 void
839 AcpiDmInterruptDescriptor (
840     AML_RESOURCE            *Resource,
841     UINT32                  Length,
842     UINT32                  Level);
843 
844 void
845 AcpiDmVendorLargeDescriptor (
846     AML_RESOURCE            *Resource,
847     UINT32                  Length,
848     UINT32                  Level);
849 
850 void
851 AcpiDmGpioDescriptor (
852     AML_RESOURCE            *Resource,
853     UINT32                  Length,
854     UINT32                  Level);
855 
856 void
857 AcpiDmSerialBusDescriptor (
858     AML_RESOURCE            *Resource,
859     UINT32                  Length,
860     UINT32                  Level);
861 
862 void
863 AcpiDmVendorCommon (
864     char                    *Name,
865     UINT8                   *ByteData,
866     UINT32                  Length,
867     UINT32                  Level);
868 
869 
870 /*
871  * dmresrcs
872  */
873 void
874 AcpiDmIrqDescriptor (
875     AML_RESOURCE            *Resource,
876     UINT32                  Length,
877     UINT32                  Level);
878 
879 void
880 AcpiDmDmaDescriptor (
881     AML_RESOURCE            *Resource,
882     UINT32                  Length,
883     UINT32                  Level);
884 
885 void
886 AcpiDmFixedDmaDescriptor (
887     AML_RESOURCE            *Resource,
888     UINT32                  Length,
889     UINT32                  Level);
890 
891 void
892 AcpiDmIoDescriptor (
893     AML_RESOURCE            *Resource,
894     UINT32                  Length,
895     UINT32                  Level);
896 
897 void
898 AcpiDmFixedIoDescriptor (
899     AML_RESOURCE            *Resource,
900     UINT32                  Length,
901     UINT32                  Level);
902 
903 void
904 AcpiDmStartDependentDescriptor (
905     AML_RESOURCE            *Resource,
906     UINT32                  Length,
907     UINT32                  Level);
908 
909 void
910 AcpiDmEndDependentDescriptor (
911     AML_RESOURCE            *Resource,
912     UINT32                  Length,
913     UINT32                  Level);
914 
915 void
916 AcpiDmVendorSmallDescriptor (
917     AML_RESOURCE            *Resource,
918     UINT32                  Length,
919     UINT32                  Level);
920 
921 
922 /*
923  * dmutils
924  */
925 void
926 AcpiDmDecodeAttribute (
927     UINT8                   Attribute);
928 
929 void
930 AcpiDmIndent (
931     UINT32                  Level);
932 
933 BOOLEAN
934 AcpiDmCommaIfListMember (
935     ACPI_PARSE_OBJECT       *Op);
936 
937 void
938 AcpiDmCommaIfFieldMember (
939     ACPI_PARSE_OBJECT       *Op);
940 
941 
942 /*
943  * dmrestag
944  */
945 void
946 AcpiDmFindResources (
947     ACPI_PARSE_OBJECT       *Root);
948 
949 void
950 AcpiDmCheckResourceReference (
951     ACPI_PARSE_OBJECT       *Op,
952     ACPI_WALK_STATE         *WalkState);
953 
954 
955 /*
956  * acdisasm
957  */
958 void
959 AdDisassemblerHeader (
960     char                    *Filename);
961 
962 
963 #endif  /* __ACDISASM_H__ */
964