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