b6e250ee172f5a14305eacf2510496524dfe5ebe
[reactos.git] / reactos / drivers / bus / acpi / acpica / include / acdisasm.h
1 /******************************************************************************
2 *
3 * Name: acdisasm.h - AML disassembler
4 *
5 *****************************************************************************/
6
7 /*
8 * Copyright (C) 2000 - 2016, Intel Corp.
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 * notice, this list of conditions, and the following disclaimer,
16 * without modification.
17 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18 * substantially similar to the "NO WARRANTY" disclaimer below
19 * ("Disclaimer") and any redistribution must be conditioned upon
20 * including a substantially similar Disclaimer requirement for further
21 * binary redistribution.
22 * 3. Neither the names of the above-listed copyright holders nor the names
23 * of any contributors may be used to endorse or promote products derived
24 * from this software without specific prior written permission.
25 *
26 * Alternatively, this software may be distributed under the terms of the
27 * GNU General Public License ("GPL") version 2 as published by the Free
28 * Software Foundation.
29 *
30 * NO WARRANTY
31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41 * POSSIBILITY OF SUCH DAMAGES.
42 */
43
44 #ifndef __ACDISASM_H__
45 #define __ACDISASM_H__
46
47 #include "amlresrc.h"
48
49
50 #define BLOCK_NONE 0
51 #define BLOCK_PAREN 1
52 #define BLOCK_BRACE 2
53 #define BLOCK_COMMA_LIST 4
54 #define ACPI_DEFAULT_RESNAME *(UINT32 *) "__RD"
55
56 /*
57 * Raw table data header. Used by disassembler and data table compiler.
58 * Do not change.
59 */
60 #define ACPI_RAW_TABLE_DATA_HEADER "Raw Table Data"
61
62
63 typedef struct acpi_dmtable_info
64 {
65 UINT8 Opcode;
66 UINT16 Offset;
67 char *Name;
68 UINT8 Flags;
69
70 } ACPI_DMTABLE_INFO;
71
72 /* Values for Flags field above */
73
74 #define DT_LENGTH 0x01 /* Field is a subtable length */
75 #define DT_FLAG 0x02 /* Field is a flag value */
76 #define DT_NON_ZERO 0x04 /* Field must be non-zero */
77 #define DT_OPTIONAL 0x08 /* Field is optional */
78 #define DT_DESCRIBES_OPTIONAL 0x10 /* Field describes an optional field (length, etc.) */
79 #define DT_COUNT 0x20 /* Currently not used */
80
81 /*
82 * Values for Opcode above.
83 * Note: 0-7 must not change, they are used as a flag shift value. Other
84 * than those, new values can be added wherever appropriate.
85 */
86 typedef enum
87 {
88 /* Simple Data Types */
89
90 ACPI_DMT_FLAG0 = 0,
91 ACPI_DMT_FLAG1 = 1,
92 ACPI_DMT_FLAG2 = 2,
93 ACPI_DMT_FLAG3 = 3,
94 ACPI_DMT_FLAG4 = 4,
95 ACPI_DMT_FLAG5 = 5,
96 ACPI_DMT_FLAG6 = 6,
97 ACPI_DMT_FLAG7 = 7,
98 ACPI_DMT_FLAGS0,
99 ACPI_DMT_FLAGS1,
100 ACPI_DMT_FLAGS2,
101 ACPI_DMT_FLAGS4,
102 ACPI_DMT_UINT8,
103 ACPI_DMT_UINT16,
104 ACPI_DMT_UINT24,
105 ACPI_DMT_UINT32,
106 ACPI_DMT_UINT40,
107 ACPI_DMT_UINT48,
108 ACPI_DMT_UINT56,
109 ACPI_DMT_UINT64,
110 ACPI_DMT_BUF7,
111 ACPI_DMT_BUF10,
112 ACPI_DMT_BUF16,
113 ACPI_DMT_BUF128,
114 ACPI_DMT_SIG,
115 ACPI_DMT_STRING,
116 ACPI_DMT_NAME4,
117 ACPI_DMT_NAME6,
118 ACPI_DMT_NAME8,
119
120 /* Types that are decoded to strings and miscellaneous */
121
122 ACPI_DMT_ACCWIDTH,
123 ACPI_DMT_CHKSUM,
124 ACPI_DMT_GAS,
125 ACPI_DMT_SPACEID,
126 ACPI_DMT_UNICODE,
127 ACPI_DMT_UUID,
128
129 /* Types used only for the Data Table Compiler */
130
131 ACPI_DMT_BUFFER,
132 ACPI_DMT_RAW_BUFFER, /* Large, multiple line buffer */
133 ACPI_DMT_DEVICE_PATH,
134 ACPI_DMT_LABEL,
135 ACPI_DMT_PCI_PATH,
136
137 /* Types that are specific to particular ACPI tables */
138
139 ACPI_DMT_ASF,
140 ACPI_DMT_DMAR,
141 ACPI_DMT_DMAR_SCOPE,
142 ACPI_DMT_EINJACT,
143 ACPI_DMT_EINJINST,
144 ACPI_DMT_ERSTACT,
145 ACPI_DMT_ERSTINST,
146 ACPI_DMT_FADTPM,
147 ACPI_DMT_GTDT,
148 ACPI_DMT_HEST,
149 ACPI_DMT_HESTNTFY,
150 ACPI_DMT_HESTNTYP,
151 ACPI_DMT_IORTMEM,
152 ACPI_DMT_IVRS,
153 ACPI_DMT_LPIT,
154 ACPI_DMT_MADT,
155 ACPI_DMT_NFIT,
156 ACPI_DMT_PCCT,
157 ACPI_DMT_PMTT,
158 ACPI_DMT_SLIC,
159 ACPI_DMT_SRAT,
160
161 /* Special opcodes */
162
163 ACPI_DMT_EXTRA_TEXT,
164 ACPI_DMT_EXIT
165
166 } ACPI_ENTRY_TYPES;
167
168 typedef
169 void (*ACPI_DMTABLE_HANDLER) (
170 ACPI_TABLE_HEADER *Table);
171
172 typedef
173 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
174 void **PFieldList);
175
176 typedef struct acpi_dmtable_data
177 {
178 char *Signature;
179 ACPI_DMTABLE_INFO *TableInfo;
180 ACPI_DMTABLE_HANDLER TableHandler;
181 ACPI_CMTABLE_HANDLER CmTableHandler;
182 const unsigned char *Template;
183
184 } ACPI_DMTABLE_DATA;
185
186
187 typedef struct acpi_op_walk_info
188 {
189 ACPI_WALK_STATE *WalkState;
190 ACPI_PARSE_OBJECT *MappingOp;
191 UINT8 *PreviousAml;
192 UINT8 *StartAml;
193 UINT32 Level;
194 UINT32 LastLevel;
195 UINT32 Count;
196 UINT32 BitOffset;
197 UINT32 Flags;
198 UINT32 AmlOffset;
199
200 } ACPI_OP_WALK_INFO;
201
202 /*
203 * TBD - another copy of this is in asltypes.h, fix
204 */
205 #ifndef ASL_WALK_CALLBACK_DEFINED
206 typedef
207 ACPI_STATUS (*ASL_WALK_CALLBACK) (
208 ACPI_PARSE_OBJECT *Op,
209 UINT32 Level,
210 void *Context);
211 #define ASL_WALK_CALLBACK_DEFINED
212 #endif
213
214 typedef
215 void (*ACPI_RESOURCE_HANDLER) (
216 ACPI_OP_WALK_INFO *Info,
217 AML_RESOURCE *Resource,
218 UINT32 Length,
219 UINT32 Level);
220
221 typedef struct acpi_resource_tag
222 {
223 UINT32 BitIndex;
224 char *Tag;
225
226 } ACPI_RESOURCE_TAG;
227
228 /* Strings used for decoding flags to ASL keywords */
229
230 extern const char *AcpiGbl_WordDecode[];
231 extern const char *AcpiGbl_IrqDecode[];
232 extern const char *AcpiGbl_LockRule[];
233 extern const char *AcpiGbl_AccessTypes[];
234 extern const char *AcpiGbl_UpdateRules[];
235 extern const char *AcpiGbl_MatchOps[];
236
237 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[];
238 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[];
239 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[];
240 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[];
241 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[];
242 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[];
243 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[];
244 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[];
245 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[];
246 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[];
247 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[];
248 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[];
249 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[];
250 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[];
251 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt1[];
252 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2[];
253 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2a[];
254 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2[];
255 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Device[];
256 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Addr[];
257 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Size[];
258 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Name[];
259 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2OemData[];
260 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[];
261 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[];
262 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[];
263 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[];
264 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[];
265 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[];
266 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[];
267 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[];
268 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[];
269 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[];
270 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0[];
271 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0a[];
272 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1[];
273 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1a[];
274 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm2[];
275 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[];
276 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[];
277 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[];
278 extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[];
279 extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[];
280 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[];
281 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[];
282 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[];
283 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[];
284 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[];
285 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt6[];
286 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt[];
287 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdtHdr[];
288 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt0[];
289 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[];
290 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[];
291 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[];
292 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtHdr[];
293 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0[];
294 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0a[];
295 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt1[];
296 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[];
297 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[];
298 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[];
299 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[];
300 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[];
301 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[];
302 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[];
303 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[];
304 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[];
305 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[];
306 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[];
307 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[];
308 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpitHdr[];
309 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpit0[];
310 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpit1[];
311 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort[];
312 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort0[];
313 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort0a[];
314 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort1[];
315 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort1a[];
316 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort2[];
317 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3[];
318 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3a[];
319 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3b[];
320 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3c[];
321 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortAcc[];
322 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr[];
323 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortMap[];
324 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortPad[];
325 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[];
326 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[];
327 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[];
328 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[];
329 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[];
330 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[];
331 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[];
332 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[];
333 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[];
334 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[];
335 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[];
336 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[];
337 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[];
338 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[];
339 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[];
340 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[];
341 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[];
342 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[];
343 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[];
344 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[];
345 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[];
346 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[];
347 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt13[];
348 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[];
349 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[];
350 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[];
351 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[];
352 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[];
353 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[];
354 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[];
355 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[];
356 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[];
357 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[];
358 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[];
359 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[];
360 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[];
361 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[];
362 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMtmr[];
363 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMtmr0[];
364 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit[];
365 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfitHdr[];
366 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit0[];
367 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit1[];
368 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit2[];
369 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit2a[];
370 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit3[];
371 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit3a[];
372 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit4[];
373 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit5[];
374 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6[];
375 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6a[];
376 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[];
377 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[];
378 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[];
379 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1a[];
380 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[];
381 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[];
382 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[];
383 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcctHdr[];
384 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[];
385 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct1[];
386 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[];
387 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[];
388 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[];
389 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3ptHdr[];
390 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt0[];
391 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt1[];
392 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[];
393 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic[];
394 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[];
395 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[];
396 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[];
397 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[];
398 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[];
399 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[];
400 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[];
401 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[];
402 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat3[];
403 extern ACPI_DMTABLE_INFO AcpiDmTableInfoStao[];
404 extern ACPI_DMTABLE_INFO AcpiDmTableInfoStaoStr[];
405 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaHdr[];
406 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaClient[];
407 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaServer[];
408 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm2[];
409 extern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[];
410 extern ACPI_DMTABLE_INFO AcpiDmTableInfoVrtc[];
411 extern ACPI_DMTABLE_INFO AcpiDmTableInfoVrtc0[];
412 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[];
413 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[];
414 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[];
415 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[];
416 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[];
417 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWpbt[];
418 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWpbt0[];
419 extern ACPI_DMTABLE_INFO AcpiDmTableInfoXenv[];
420
421 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2];
422
423 /*
424 * dmtable and ahtable
425 */
426 extern const ACPI_DMTABLE_DATA AcpiDmTableData[];
427 extern const AH_TABLE AcpiSupportedTables[];
428
429 UINT8
430 AcpiDmGenerateChecksum (
431 void *Table,
432 UINT32 Length,
433 UINT8 OriginalChecksum);
434
435 const ACPI_DMTABLE_DATA *
436 AcpiDmGetTableData (
437 char *Signature);
438
439 void
440 AcpiDmDumpDataTable (
441 ACPI_TABLE_HEADER *Table);
442
443 ACPI_STATUS
444 AcpiDmDumpTable (
445 UINT32 TableLength,
446 UINT32 TableOffset,
447 void *Table,
448 UINT32 SubTableLength,
449 ACPI_DMTABLE_INFO *Info);
450
451 void
452 AcpiDmLineHeader (
453 UINT32 Offset,
454 UINT32 ByteLength,
455 char *Name);
456
457 void
458 AcpiDmLineHeader2 (
459 UINT32 Offset,
460 UINT32 ByteLength,
461 char *Name,
462 UINT32 Value);
463
464
465 /*
466 * dmtbdump
467 */
468 void
469 AcpiDmDumpBuffer (
470 void *Table,
471 UINT32 BufferOffset,
472 UINT32 Length,
473 UINT32 AbsoluteOffset,
474 char *Header);
475
476 void
477 AcpiDmDumpUnicode (
478 void *Table,
479 UINT32 BufferOffset,
480 UINT32 ByteLength);
481
482 void
483 AcpiDmDumpAsf (
484 ACPI_TABLE_HEADER *Table);
485
486 void
487 AcpiDmDumpCpep (
488 ACPI_TABLE_HEADER *Table);
489
490 void
491 AcpiDmDumpCsrt (
492 ACPI_TABLE_HEADER *Table);
493
494 void
495 AcpiDmDumpDbg2 (
496 ACPI_TABLE_HEADER *Table);
497
498 void
499 AcpiDmDumpDmar (
500 ACPI_TABLE_HEADER *Table);
501
502 void
503 AcpiDmDumpDrtm (
504 ACPI_TABLE_HEADER *Table);
505
506 void
507 AcpiDmDumpEinj (
508 ACPI_TABLE_HEADER *Table);
509
510 void
511 AcpiDmDumpErst (
512 ACPI_TABLE_HEADER *Table);
513
514 void
515 AcpiDmDumpFadt (
516 ACPI_TABLE_HEADER *Table);
517
518 void
519 AcpiDmDumpFpdt (
520 ACPI_TABLE_HEADER *Table);
521
522 void
523 AcpiDmDumpGtdt (
524 ACPI_TABLE_HEADER *Table);
525
526 void
527 AcpiDmDumpHest (
528 ACPI_TABLE_HEADER *Table);
529
530 void
531 AcpiDmDumpIort (
532 ACPI_TABLE_HEADER *Table);
533
534 void
535 AcpiDmDumpIvrs (
536 ACPI_TABLE_HEADER *Table);
537
538 void
539 AcpiDmDumpLpit (
540 ACPI_TABLE_HEADER *Table);
541
542 void
543 AcpiDmDumpMadt (
544 ACPI_TABLE_HEADER *Table);
545
546 void
547 AcpiDmDumpMcfg (
548 ACPI_TABLE_HEADER *Table);
549
550 void
551 AcpiDmDumpMpst (
552 ACPI_TABLE_HEADER *Table);
553
554 void
555 AcpiDmDumpMsct (
556 ACPI_TABLE_HEADER *Table);
557
558 void
559 AcpiDmDumpMtmr (
560 ACPI_TABLE_HEADER *Table);
561
562 void
563 AcpiDmDumpNfit (
564 ACPI_TABLE_HEADER *Table);
565
566 void
567 AcpiDmDumpPcct (
568 ACPI_TABLE_HEADER *Table);
569
570 void
571 AcpiDmDumpPmtt (
572 ACPI_TABLE_HEADER *Table);
573
574 UINT32
575 AcpiDmDumpRsdp (
576 ACPI_TABLE_HEADER *Table);
577
578 void
579 AcpiDmDumpRsdt (
580 ACPI_TABLE_HEADER *Table);
581
582 UINT32
583 AcpiDmDumpS3pt (
584 ACPI_TABLE_HEADER *Table);
585
586 void
587 AcpiDmDumpSlic (
588 ACPI_TABLE_HEADER *Table);
589
590 void
591 AcpiDmDumpSlit (
592 ACPI_TABLE_HEADER *Table);
593
594 void
595 AcpiDmDumpSrat (
596 ACPI_TABLE_HEADER *Table);
597
598 void
599 AcpiDmDumpStao (
600 ACPI_TABLE_HEADER *Table);
601
602 void
603 AcpiDmDumpTcpa (
604 ACPI_TABLE_HEADER *Table);
605
606 void
607 AcpiDmDumpVrtc (
608 ACPI_TABLE_HEADER *Table);
609
610 void
611 AcpiDmDumpWdat (
612 ACPI_TABLE_HEADER *Table);
613
614 void
615 AcpiDmDumpWpbt (
616 ACPI_TABLE_HEADER *Table);
617
618 void
619 AcpiDmDumpXsdt (
620 ACPI_TABLE_HEADER *Table);
621
622
623 /*
624 * dmwalk
625 */
626 void
627 AcpiDmDisassemble (
628 ACPI_WALK_STATE *WalkState,
629 ACPI_PARSE_OBJECT *Origin,
630 UINT32 NumOpcodes);
631
632 void
633 AcpiDmWalkParseTree (
634 ACPI_PARSE_OBJECT *Op,
635 ASL_WALK_CALLBACK DescendingCallback,
636 ASL_WALK_CALLBACK AscendingCallback,
637 void *Context);
638
639
640 /*
641 * dmopcode
642 */
643 void
644 AcpiDmDisassembleOneOp (
645 ACPI_WALK_STATE *WalkState,
646 ACPI_OP_WALK_INFO *Info,
647 ACPI_PARSE_OBJECT *Op);
648
649 UINT32
650 AcpiDmListType (
651 ACPI_PARSE_OBJECT *Op);
652
653 void
654 AcpiDmMethodFlags (
655 ACPI_PARSE_OBJECT *Op);
656
657 void
658 AcpiDmDisplayTargetPathname (
659 ACPI_PARSE_OBJECT *Op);
660
661 void
662 AcpiDmNotifyDescription (
663 ACPI_PARSE_OBJECT *Op);
664
665 void
666 AcpiDmPredefinedDescription (
667 ACPI_PARSE_OBJECT *Op);
668
669 void
670 AcpiDmFieldPredefinedDescription (
671 ACPI_PARSE_OBJECT *Op);
672
673 void
674 AcpiDmFieldFlags (
675 ACPI_PARSE_OBJECT *Op);
676
677 void
678 AcpiDmAddressSpace (
679 UINT8 SpaceId);
680
681 void
682 AcpiDmRegionFlags (
683 ACPI_PARSE_OBJECT *Op);
684
685 void
686 AcpiDmMatchOp (
687 ACPI_PARSE_OBJECT *Op);
688
689
690 /*
691 * dmnames
692 */
693 UINT32
694 AcpiDmDumpName (
695 UINT32 Name);
696
697 ACPI_STATUS
698 AcpiPsDisplayObjectPathname (
699 ACPI_WALK_STATE *WalkState,
700 ACPI_PARSE_OBJECT *Op);
701
702 void
703 AcpiDmNamestring (
704 char *Name);
705
706
707 /*
708 * dmbuffer
709 */
710 void
711 AcpiDmDisasmByteList (
712 UINT32 Level,
713 UINT8 *ByteData,
714 UINT32 ByteCount);
715
716 void
717 AcpiDmByteList (
718 ACPI_OP_WALK_INFO *Info,
719 ACPI_PARSE_OBJECT *Op);
720
721 void
722 AcpiDmCheckForHardwareId (
723 ACPI_PARSE_OBJECT *Op);
724
725 void
726 AcpiDmDecompressEisaId (
727 UINT32 EncodedId);
728
729 BOOLEAN
730 AcpiDmIsUuidBuffer (
731 ACPI_PARSE_OBJECT *Op);
732
733 BOOLEAN
734 AcpiDmIsUnicodeBuffer (
735 ACPI_PARSE_OBJECT *Op);
736
737 BOOLEAN
738 AcpiDmIsStringBuffer (
739 ACPI_PARSE_OBJECT *Op);
740
741 BOOLEAN
742 AcpiDmIsPldBuffer (
743 ACPI_PARSE_OBJECT *Op);
744
745
746 /*
747 * dmdeferred
748 */
749 ACPI_STATUS
750 AcpiDmParseDeferredOps (
751 ACPI_PARSE_OBJECT *Root);
752
753
754 /*
755 * dmextern
756 */
757 ACPI_STATUS
758 AcpiDmAddToExternalFileList (
759 char *PathList);
760
761 void
762 AcpiDmClearExternalFileList (
763 void);
764
765 void
766 AcpiDmAddOpToExternalList (
767 ACPI_PARSE_OBJECT *Op,
768 char *Path,
769 UINT8 Type,
770 UINT32 Value,
771 UINT16 Flags);
772
773 void
774 AcpiDmAddNodeToExternalList (
775 ACPI_NAMESPACE_NODE *Node,
776 UINT8 Type,
777 UINT32 Value,
778 UINT16 Flags);
779
780 void
781 AcpiDmAddExternalsToNamespace (
782 void);
783
784 UINT32
785 AcpiDmGetExternalMethodCount (
786 void);
787
788 void
789 AcpiDmClearExternalList (
790 void);
791
792 void
793 AcpiDmEmitExternals (
794 void);
795
796 void
797 AcpiDmUnresolvedWarning (
798 UINT8 Type);
799
800 void
801 AcpiDmGetExternalsFromFile (
802 void);
803
804 /*
805 * dmresrc
806 */
807 void
808 AcpiDmDumpInteger8 (
809 UINT8 Value,
810 char *Name);
811
812 void
813 AcpiDmDumpInteger16 (
814 UINT16 Value,
815 char *Name);
816
817 void
818 AcpiDmDumpInteger32 (
819 UINT32 Value,
820 char *Name);
821
822 void
823 AcpiDmDumpInteger64 (
824 UINT64 Value,
825 char *Name);
826
827 void
828 AcpiDmResourceTemplate (
829 ACPI_OP_WALK_INFO *Info,
830 ACPI_PARSE_OBJECT *Op,
831 UINT8 *ByteData,
832 UINT32 ByteCount);
833
834 ACPI_STATUS
835 AcpiDmIsResourceTemplate (
836 ACPI_WALK_STATE *WalkState,
837 ACPI_PARSE_OBJECT *Op);
838
839 void
840 AcpiDmBitList (
841 UINT16 Mask);
842
843 void
844 AcpiDmDescriptorName (
845 void);
846
847
848 /*
849 * dmresrcl
850 */
851 void
852 AcpiDmWordDescriptor (
853 ACPI_OP_WALK_INFO *Info,
854 AML_RESOURCE *Resource,
855 UINT32 Length,
856 UINT32 Level);
857
858 void
859 AcpiDmDwordDescriptor (
860 ACPI_OP_WALK_INFO *Info,
861 AML_RESOURCE *Resource,
862 UINT32 Length,
863 UINT32 Level);
864
865 void
866 AcpiDmExtendedDescriptor (
867 ACPI_OP_WALK_INFO *Info,
868 AML_RESOURCE *Resource,
869 UINT32 Length,
870 UINT32 Level);
871
872 void
873 AcpiDmQwordDescriptor (
874 ACPI_OP_WALK_INFO *Info,
875 AML_RESOURCE *Resource,
876 UINT32 Length,
877 UINT32 Level);
878
879 void
880 AcpiDmMemory24Descriptor (
881 ACPI_OP_WALK_INFO *Info,
882 AML_RESOURCE *Resource,
883 UINT32 Length,
884 UINT32 Level);
885
886 void
887 AcpiDmMemory32Descriptor (
888 ACPI_OP_WALK_INFO *Info,
889 AML_RESOURCE *Resource,
890 UINT32 Length,
891 UINT32 Level);
892
893 void
894 AcpiDmFixedMemory32Descriptor (
895 ACPI_OP_WALK_INFO *Info,
896 AML_RESOURCE *Resource,
897 UINT32 Length,
898 UINT32 Level);
899
900 void
901 AcpiDmGenericRegisterDescriptor (
902 ACPI_OP_WALK_INFO *Info,
903 AML_RESOURCE *Resource,
904 UINT32 Length,
905 UINT32 Level);
906
907 void
908 AcpiDmInterruptDescriptor (
909 ACPI_OP_WALK_INFO *Info,
910 AML_RESOURCE *Resource,
911 UINT32 Length,
912 UINT32 Level);
913
914 void
915 AcpiDmVendorLargeDescriptor (
916 ACPI_OP_WALK_INFO *Info,
917 AML_RESOURCE *Resource,
918 UINT32 Length,
919 UINT32 Level);
920
921 void
922 AcpiDmGpioDescriptor (
923 ACPI_OP_WALK_INFO *Info,
924 AML_RESOURCE *Resource,
925 UINT32 Length,
926 UINT32 Level);
927
928 void
929 AcpiDmSerialBusDescriptor (
930 ACPI_OP_WALK_INFO *Info,
931 AML_RESOURCE *Resource,
932 UINT32 Length,
933 UINT32 Level);
934
935 void
936 AcpiDmVendorCommon (
937 char *Name,
938 UINT8 *ByteData,
939 UINT32 Length,
940 UINT32 Level);
941
942
943 /*
944 * dmresrcs
945 */
946 void
947 AcpiDmIrqDescriptor (
948 ACPI_OP_WALK_INFO *Info,
949 AML_RESOURCE *Resource,
950 UINT32 Length,
951 UINT32 Level);
952
953 void
954 AcpiDmDmaDescriptor (
955 ACPI_OP_WALK_INFO *Info,
956 AML_RESOURCE *Resource,
957 UINT32 Length,
958 UINT32 Level);
959
960 void
961 AcpiDmFixedDmaDescriptor (
962 ACPI_OP_WALK_INFO *Info,
963 AML_RESOURCE *Resource,
964 UINT32 Length,
965 UINT32 Level);
966
967 void
968 AcpiDmIoDescriptor (
969 ACPI_OP_WALK_INFO *Info,
970 AML_RESOURCE *Resource,
971 UINT32 Length,
972 UINT32 Level);
973
974 void
975 AcpiDmFixedIoDescriptor (
976 ACPI_OP_WALK_INFO *Info,
977 AML_RESOURCE *Resource,
978 UINT32 Length,
979 UINT32 Level);
980
981 void
982 AcpiDmStartDependentDescriptor (
983 ACPI_OP_WALK_INFO *Info,
984 AML_RESOURCE *Resource,
985 UINT32 Length,
986 UINT32 Level);
987
988 void
989 AcpiDmEndDependentDescriptor (
990 ACPI_OP_WALK_INFO *Info,
991 AML_RESOURCE *Resource,
992 UINT32 Length,
993 UINT32 Level);
994
995 void
996 AcpiDmVendorSmallDescriptor (
997 ACPI_OP_WALK_INFO *Info,
998 AML_RESOURCE *Resource,
999 UINT32 Length,
1000 UINT32 Level);
1001
1002
1003 /*
1004 * dmutils
1005 */
1006 void
1007 AcpiDmDecodeAttribute (
1008 UINT8 Attribute);
1009
1010 void
1011 AcpiDmIndent (
1012 UINT32 Level);
1013
1014 BOOLEAN
1015 AcpiDmCommaIfListMember (
1016 ACPI_PARSE_OBJECT *Op);
1017
1018 void
1019 AcpiDmCommaIfFieldMember (
1020 ACPI_PARSE_OBJECT *Op);
1021
1022
1023 /*
1024 * dmrestag
1025 */
1026 void
1027 AcpiDmFindResources (
1028 ACPI_PARSE_OBJECT *Root);
1029
1030 void
1031 AcpiDmCheckResourceReference (
1032 ACPI_PARSE_OBJECT *Op,
1033 ACPI_WALK_STATE *WalkState);
1034
1035
1036 /*
1037 * dmcstyle
1038 */
1039 BOOLEAN
1040 AcpiDmCheckForSymbolicOpcode (
1041 ACPI_PARSE_OBJECT *Op,
1042 ACPI_OP_WALK_INFO *Info);
1043
1044 void
1045 AcpiDmCloseOperator (
1046 ACPI_PARSE_OBJECT *Op);
1047
1048
1049 /*
1050 * dmtables
1051 */
1052 void
1053 AdDisassemblerHeader (
1054 char *Filename,
1055 UINT8 TableType);
1056
1057 #define ACPI_IS_AML_TABLE 0
1058 #define ACPI_IS_DATA_TABLE 1
1059
1060
1061 /*
1062 * adisasm
1063 */
1064 ACPI_STATUS
1065 AdAmlDisassemble (
1066 BOOLEAN OutToFile,
1067 char *Filename,
1068 char *Prefix,
1069 char **OutFilename);
1070
1071 ACPI_STATUS
1072 AdGetLocalTables (
1073 void);
1074
1075 ACPI_STATUS
1076 AdParseTable (
1077 ACPI_TABLE_HEADER *Table,
1078 ACPI_OWNER_ID *OwnerId,
1079 BOOLEAN LoadTable,
1080 BOOLEAN External);
1081
1082 ACPI_STATUS
1083 AdDisplayTables (
1084 char *Filename,
1085 ACPI_TABLE_HEADER *Table);
1086
1087 ACPI_STATUS
1088 AdDisplayStatistics (
1089 void);
1090
1091 #endif /* __ACDISASM_H__ */