acdisasm.h revision 1.8 1 /******************************************************************************
2 *
3 * Name: acdisasm.h - AML disassembler
4 *
5 *****************************************************************************/
6
7 /*
8 * Copyright (C) 2000 - 2015, 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 *(const 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 UINT32 Level;
190 UINT32 LastLevel;
191 UINT32 Count;
192 UINT32 BitOffset;
193 UINT32 Flags;
194 ACPI_WALK_STATE *WalkState;
195 ACPI_PARSE_OBJECT *MappingOp;
196
197 } ACPI_OP_WALK_INFO;
198
199 /*
200 * TBD - another copy of this is in asltypes.h, fix
201 */
202 #ifndef ASL_WALK_CALLBACK_DEFINED
203 typedef
204 ACPI_STATUS (*ASL_WALK_CALLBACK) (
205 ACPI_PARSE_OBJECT *Op,
206 UINT32 Level,
207 void *Context);
208 #define ASL_WALK_CALLBACK_DEFINED
209 #endif
210
211 typedef
212 void (*ACPI_RESOURCE_HANDLER) (
213 ACPI_OP_WALK_INFO *Info,
214 AML_RESOURCE *Resource,
215 UINT32 Length,
216 UINT32 Level);
217
218 typedef struct acpi_resource_tag
219 {
220 UINT32 BitIndex;
221 char *Tag;
222
223 } ACPI_RESOURCE_TAG;
224
225 /* Strings used for decoding flags to ASL keywords */
226
227 extern const char *AcpiGbl_WordDecode[];
228 extern const char *AcpiGbl_IrqDecode[];
229 extern const char *AcpiGbl_LockRule[];
230 extern const char *AcpiGbl_AccessTypes[];
231 extern const char *AcpiGbl_UpdateRules[];
232 extern const char *AcpiGbl_MatchOps[];
233
234 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[];
235 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[];
236 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[];
237 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[];
238 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[];
239 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[];
240 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[];
241 extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[];
242 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[];
243 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[];
244 extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[];
245 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[];
246 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[];
247 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[];
248 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt1[];
249 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2[];
250 extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2a[];
251 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2[];
252 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Device[];
253 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Addr[];
254 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Size[];
255 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Name[];
256 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2OemData[];
257 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[];
258 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[];
259 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[];
260 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[];
261 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[];
262 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[];
263 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[];
264 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[];
265 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[];
266 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[];
267 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0[];
268 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0a[];
269 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1[];
270 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1a[];
271 extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm2[];
272 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[];
273 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[];
274 extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[];
275 extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[];
276 extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[];
277 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[];
278 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[];
279 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[];
280 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[];
281 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[];
282 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt6[];
283 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt[];
284 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdtHdr[];
285 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt0[];
286 extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[];
287 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[];
288 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[];
289 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtHdr[];
290 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0[];
291 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0a[];
292 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt1[];
293 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[];
294 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[];
295 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[];
296 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[];
297 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[];
298 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[];
299 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[];
300 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[];
301 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[];
302 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[];
303 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[];
304 extern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[];
305 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpitHdr[];
306 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpit0[];
307 extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpit1[];
308 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort[];
309 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort0[];
310 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort0a[];
311 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort1[];
312 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort1a[];
313 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort2[];
314 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3[];
315 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3a[];
316 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3b[];
317 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3c[];
318 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortAcc[];
319 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr[];
320 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortMap[];
321 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortPad[];
322 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[];
323 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[];
324 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[];
325 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[];
326 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[];
327 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[];
328 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[];
329 extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[];
330 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[];
331 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[];
332 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[];
333 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[];
334 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[];
335 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[];
336 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[];
337 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[];
338 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[];
339 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[];
340 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[];
341 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[];
342 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[];
343 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[];
344 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt13[];
345 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[];
346 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[];
347 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[];
348 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[];
349 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[];
350 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[];
351 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[];
352 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[];
353 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[];
354 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[];
355 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[];
356 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[];
357 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[];
358 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[];
359 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMtmr[];
360 extern ACPI_DMTABLE_INFO AcpiDmTableInfoMtmr0[];
361 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit[];
362 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfitHdr[];
363 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit0[];
364 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit1[];
365 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit2[];
366 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit2a[];
367 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit3[];
368 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit3a[];
369 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit4[];
370 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit5[];
371 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6[];
372 extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6a[];
373 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[];
374 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[];
375 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[];
376 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1a[];
377 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[];
378 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[];
379 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[];
380 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcctHdr[];
381 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[];
382 extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct1[];
383 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[];
384 extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[];
385 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[];
386 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3ptHdr[];
387 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt0[];
388 extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt1[];
389 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[];
390 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic[];
391 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[];
392 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[];
393 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[];
394 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[];
395 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[];
396 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[];
397 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[];
398 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[];
399 extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat3[];
400 extern ACPI_DMTABLE_INFO AcpiDmTableInfoStao[];
401 extern ACPI_DMTABLE_INFO AcpiDmTableInfoStaoStr[];
402 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaHdr[];
403 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaClient[];
404 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaServer[];
405 extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm2[];
406 extern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[];
407 extern ACPI_DMTABLE_INFO AcpiDmTableInfoVrtc[];
408 extern ACPI_DMTABLE_INFO AcpiDmTableInfoVrtc0[];
409 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[];
410 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[];
411 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[];
412 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[];
413 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[];
414 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWpbt[];
415 extern ACPI_DMTABLE_INFO AcpiDmTableInfoWpbt0[];
416 extern ACPI_DMTABLE_INFO AcpiDmTableInfoXenv[];
417
418 extern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2];
419
420 /*
421 * dmtable and ahtable
422 */
423 extern const ACPI_DMTABLE_DATA AcpiDmTableData[];
424 extern const AH_TABLE AcpiSupportedTables[];
425
426 UINT8
427 AcpiDmGenerateChecksum (
428 void *Table,
429 UINT32 Length,
430 UINT8 OriginalChecksum);
431
432 const ACPI_DMTABLE_DATA *
433 AcpiDmGetTableData (
434 char *Signature);
435
436 void
437 AcpiDmDumpDataTable (
438 ACPI_TABLE_HEADER *Table);
439
440 ACPI_STATUS
441 AcpiDmDumpTable (
442 UINT32 TableLength,
443 UINT32 TableOffset,
444 void *Table,
445 UINT32 SubTableLength,
446 ACPI_DMTABLE_INFO *Info);
447
448 void
449 AcpiDmLineHeader (
450 UINT32 Offset,
451 UINT32 ByteLength,
452 char *Name);
453
454 void
455 AcpiDmLineHeader2 (
456 UINT32 Offset,
457 UINT32 ByteLength,
458 char *Name,
459 UINT32 Value);
460
461
462 /*
463 * dmtbdump
464 */
465 void
466 AcpiDmDumpBuffer (
467 void *Table,
468 UINT32 BufferOffset,
469 UINT32 Length,
470 UINT32 AbsoluteOffset,
471 char *Header);
472
473 void
474 AcpiDmDumpUnicode (
475 void *Table,
476 UINT32 BufferOffset,
477 UINT32 ByteLength);
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 AcpiDmDumpDrtm (
501 ACPI_TABLE_HEADER *Table);
502
503 void
504 AcpiDmDumpEinj (
505 ACPI_TABLE_HEADER *Table);
506
507 void
508 AcpiDmDumpErst (
509 ACPI_TABLE_HEADER *Table);
510
511 void
512 AcpiDmDumpFadt (
513 ACPI_TABLE_HEADER *Table);
514
515 void
516 AcpiDmDumpFpdt (
517 ACPI_TABLE_HEADER *Table);
518
519 void
520 AcpiDmDumpGtdt (
521 ACPI_TABLE_HEADER *Table);
522
523 void
524 AcpiDmDumpHest (
525 ACPI_TABLE_HEADER *Table);
526
527 void
528 AcpiDmDumpIort (
529 ACPI_TABLE_HEADER *Table);
530
531 void
532 AcpiDmDumpIvrs (
533 ACPI_TABLE_HEADER *Table);
534
535 void
536 AcpiDmDumpLpit (
537 ACPI_TABLE_HEADER *Table);
538
539 void
540 AcpiDmDumpMadt (
541 ACPI_TABLE_HEADER *Table);
542
543 void
544 AcpiDmDumpMcfg (
545 ACPI_TABLE_HEADER *Table);
546
547 void
548 AcpiDmDumpMpst (
549 ACPI_TABLE_HEADER *Table);
550
551 void
552 AcpiDmDumpMsct (
553 ACPI_TABLE_HEADER *Table);
554
555 void
556 AcpiDmDumpMtmr (
557 ACPI_TABLE_HEADER *Table);
558
559 void
560 AcpiDmDumpNfit (
561 ACPI_TABLE_HEADER *Table);
562
563 void
564 AcpiDmDumpPcct (
565 ACPI_TABLE_HEADER *Table);
566
567 void
568 AcpiDmDumpPmtt (
569 ACPI_TABLE_HEADER *Table);
570
571 UINT32
572 AcpiDmDumpRsdp (
573 ACPI_TABLE_HEADER *Table);
574
575 void
576 AcpiDmDumpRsdt (
577 ACPI_TABLE_HEADER *Table);
578
579 UINT32
580 AcpiDmDumpS3pt (
581 ACPI_TABLE_HEADER *Table);
582
583 void
584 AcpiDmDumpSlic (
585 ACPI_TABLE_HEADER *Table);
586
587 void
588 AcpiDmDumpSlit (
589 ACPI_TABLE_HEADER *Table);
590
591 void
592 AcpiDmDumpSrat (
593 ACPI_TABLE_HEADER *Table);
594
595 void
596 AcpiDmDumpStao (
597 ACPI_TABLE_HEADER *Table);
598
599 void
600 AcpiDmDumpTcpa (
601 ACPI_TABLE_HEADER *Table);
602
603 void
604 AcpiDmDumpVrtc (
605 ACPI_TABLE_HEADER *Table);
606
607 void
608 AcpiDmDumpWdat (
609 ACPI_TABLE_HEADER *Table);
610
611 void
612 AcpiDmDumpWpbt (
613 ACPI_TABLE_HEADER *Table);
614
615 void
616 AcpiDmDumpXsdt (
617 ACPI_TABLE_HEADER *Table);
618
619
620 /*
621 * dmwalk
622 */
623 void
624 AcpiDmDisassemble (
625 ACPI_WALK_STATE *WalkState,
626 ACPI_PARSE_OBJECT *Origin,
627 UINT32 NumOpcodes);
628
629 void
630 AcpiDmWalkParseTree (
631 ACPI_PARSE_OBJECT *Op,
632 ASL_WALK_CALLBACK DescendingCallback,
633 ASL_WALK_CALLBACK AscendingCallback,
634 void *Context);
635
636
637 /*
638 * dmopcode
639 */
640 void
641 AcpiDmDisassembleOneOp (
642 ACPI_WALK_STATE *WalkState,
643 ACPI_OP_WALK_INFO *Info,
644 ACPI_PARSE_OBJECT *Op);
645
646 UINT32
647 AcpiDmListType (
648 ACPI_PARSE_OBJECT *Op);
649
650 void
651 AcpiDmMethodFlags (
652 ACPI_PARSE_OBJECT *Op);
653
654 void
655 AcpiDmDisplayTargetPathname (
656 ACPI_PARSE_OBJECT *Op);
657
658 void
659 AcpiDmNotifyDescription (
660 ACPI_PARSE_OBJECT *Op);
661
662 void
663 AcpiDmPredefinedDescription (
664 ACPI_PARSE_OBJECT *Op);
665
666 void
667 AcpiDmFieldPredefinedDescription (
668 ACPI_PARSE_OBJECT *Op);
669
670 void
671 AcpiDmFieldFlags (
672 ACPI_PARSE_OBJECT *Op);
673
674 void
675 AcpiDmAddressSpace (
676 UINT8 SpaceId);
677
678 void
679 AcpiDmRegionFlags (
680 ACPI_PARSE_OBJECT *Op);
681
682 void
683 AcpiDmMatchOp (
684 ACPI_PARSE_OBJECT *Op);
685
686
687 /*
688 * dmnames
689 */
690 UINT32
691 AcpiDmDumpName (
692 UINT32 Name);
693
694 ACPI_STATUS
695 AcpiPsDisplayObjectPathname (
696 ACPI_WALK_STATE *WalkState,
697 ACPI_PARSE_OBJECT *Op);
698
699 void
700 AcpiDmNamestring (
701 char *Name);
702
703
704 /*
705 * dmbuffer
706 */
707 void
708 AcpiDmDisasmByteList (
709 UINT32 Level,
710 UINT8 *ByteData,
711 UINT32 ByteCount);
712
713 void
714 AcpiDmByteList (
715 ACPI_OP_WALK_INFO *Info,
716 ACPI_PARSE_OBJECT *Op);
717
718 void
719 AcpiDmCheckForHardwareId (
720 ACPI_PARSE_OBJECT *Op);
721
722 void
723 AcpiDmDecompressEisaId (
724 UINT32 EncodedId);
725
726 BOOLEAN
727 AcpiDmIsUuidBuffer (
728 ACPI_PARSE_OBJECT *Op);
729
730 BOOLEAN
731 AcpiDmIsUnicodeBuffer (
732 ACPI_PARSE_OBJECT *Op);
733
734 BOOLEAN
735 AcpiDmIsStringBuffer (
736 ACPI_PARSE_OBJECT *Op);
737
738 BOOLEAN
739 AcpiDmIsPldBuffer (
740 ACPI_PARSE_OBJECT *Op);
741
742
743 /*
744 * dmdeferred
745 */
746 ACPI_STATUS
747 AcpiDmParseDeferredOps (
748 ACPI_PARSE_OBJECT *Root);
749
750
751 /*
752 * dmextern
753 */
754 ACPI_STATUS
755 AcpiDmAddToExternalFileList (
756 char *PathList);
757
758 void
759 AcpiDmClearExternalFileList (
760 void);
761
762 void
763 AcpiDmAddOpToExternalList (
764 ACPI_PARSE_OBJECT *Op,
765 char *Path,
766 UINT8 Type,
767 UINT32 Value,
768 UINT16 Flags);
769
770 void
771 AcpiDmAddNodeToExternalList (
772 ACPI_NAMESPACE_NODE *Node,
773 UINT8 Type,
774 UINT32 Value,
775 UINT16 Flags);
776
777 void
778 AcpiDmAddExternalsToNamespace (
779 void);
780
781 UINT32
782 AcpiDmGetExternalMethodCount (
783 void);
784
785 void
786 AcpiDmClearExternalList (
787 void);
788
789 void
790 AcpiDmEmitExternals (
791 void);
792
793 void
794 AcpiDmUnresolvedWarning (
795 UINT8 Type);
796
797 void
798 AcpiDmGetExternalsFromFile (
799 void);
800
801 /*
802 * dmresrc
803 */
804 void
805 AcpiDmDumpInteger8 (
806 UINT8 Value,
807 const char *Name);
808
809 void
810 AcpiDmDumpInteger16 (
811 UINT16 Value,
812 const char *Name);
813
814 void
815 AcpiDmDumpInteger32 (
816 UINT32 Value,
817 const char *Name);
818
819 void
820 AcpiDmDumpInteger64 (
821 UINT64 Value,
822 const char *Name);
823
824 void
825 AcpiDmResourceTemplate (
826 ACPI_OP_WALK_INFO *Info,
827 ACPI_PARSE_OBJECT *Op,
828 UINT8 *ByteData,
829 UINT32 ByteCount);
830
831 ACPI_STATUS
832 AcpiDmIsResourceTemplate (
833 ACPI_WALK_STATE *WalkState,
834 ACPI_PARSE_OBJECT *Op);
835
836 void
837 AcpiDmBitList (
838 UINT16 Mask);
839
840 void
841 AcpiDmDescriptorName (
842 void);
843
844
845 /*
846 * dmresrcl
847 */
848 void
849 AcpiDmWordDescriptor (
850 ACPI_OP_WALK_INFO *Info,
851 AML_RESOURCE *Resource,
852 UINT32 Length,
853 UINT32 Level);
854
855 void
856 AcpiDmDwordDescriptor (
857 ACPI_OP_WALK_INFO *Info,
858 AML_RESOURCE *Resource,
859 UINT32 Length,
860 UINT32 Level);
861
862 void
863 AcpiDmExtendedDescriptor (
864 ACPI_OP_WALK_INFO *Info,
865 AML_RESOURCE *Resource,
866 UINT32 Length,
867 UINT32 Level);
868
869 void
870 AcpiDmQwordDescriptor (
871 ACPI_OP_WALK_INFO *Info,
872 AML_RESOURCE *Resource,
873 UINT32 Length,
874 UINT32 Level);
875
876 void
877 AcpiDmMemory24Descriptor (
878 ACPI_OP_WALK_INFO *Info,
879 AML_RESOURCE *Resource,
880 UINT32 Length,
881 UINT32 Level);
882
883 void
884 AcpiDmMemory32Descriptor (
885 ACPI_OP_WALK_INFO *Info,
886 AML_RESOURCE *Resource,
887 UINT32 Length,
888 UINT32 Level);
889
890 void
891 AcpiDmFixedMemory32Descriptor (
892 ACPI_OP_WALK_INFO *Info,
893 AML_RESOURCE *Resource,
894 UINT32 Length,
895 UINT32 Level);
896
897 void
898 AcpiDmGenericRegisterDescriptor (
899 ACPI_OP_WALK_INFO *Info,
900 AML_RESOURCE *Resource,
901 UINT32 Length,
902 UINT32 Level);
903
904 void
905 AcpiDmInterruptDescriptor (
906 ACPI_OP_WALK_INFO *Info,
907 AML_RESOURCE *Resource,
908 UINT32 Length,
909 UINT32 Level);
910
911 void
912 AcpiDmVendorLargeDescriptor (
913 ACPI_OP_WALK_INFO *Info,
914 AML_RESOURCE *Resource,
915 UINT32 Length,
916 UINT32 Level);
917
918 void
919 AcpiDmGpioDescriptor (
920 ACPI_OP_WALK_INFO *Info,
921 AML_RESOURCE *Resource,
922 UINT32 Length,
923 UINT32 Level);
924
925 void
926 AcpiDmSerialBusDescriptor (
927 ACPI_OP_WALK_INFO *Info,
928 AML_RESOURCE *Resource,
929 UINT32 Length,
930 UINT32 Level);
931
932 void
933 AcpiDmVendorCommon (
934 const char *Name,
935 UINT8 *ByteData,
936 UINT32 Length,
937 UINT32 Level);
938
939
940 /*
941 * dmresrcs
942 */
943 void
944 AcpiDmIrqDescriptor (
945 ACPI_OP_WALK_INFO *Info,
946 AML_RESOURCE *Resource,
947 UINT32 Length,
948 UINT32 Level);
949
950 void
951 AcpiDmDmaDescriptor (
952 ACPI_OP_WALK_INFO *Info,
953 AML_RESOURCE *Resource,
954 UINT32 Length,
955 UINT32 Level);
956
957 void
958 AcpiDmFixedDmaDescriptor (
959 ACPI_OP_WALK_INFO *Info,
960 AML_RESOURCE *Resource,
961 UINT32 Length,
962 UINT32 Level);
963
964 void
965 AcpiDmIoDescriptor (
966 ACPI_OP_WALK_INFO *Info,
967 AML_RESOURCE *Resource,
968 UINT32 Length,
969 UINT32 Level);
970
971 void
972 AcpiDmFixedIoDescriptor (
973 ACPI_OP_WALK_INFO *Info,
974 AML_RESOURCE *Resource,
975 UINT32 Length,
976 UINT32 Level);
977
978 void
979 AcpiDmStartDependentDescriptor (
980 ACPI_OP_WALK_INFO *Info,
981 AML_RESOURCE *Resource,
982 UINT32 Length,
983 UINT32 Level);
984
985 void
986 AcpiDmEndDependentDescriptor (
987 ACPI_OP_WALK_INFO *Info,
988 AML_RESOURCE *Resource,
989 UINT32 Length,
990 UINT32 Level);
991
992 void
993 AcpiDmVendorSmallDescriptor (
994 ACPI_OP_WALK_INFO *Info,
995 AML_RESOURCE *Resource,
996 UINT32 Length,
997 UINT32 Level);
998
999
1000 /*
1001 * dmutils
1002 */
1003 void
1004 AcpiDmDecodeAttribute (
1005 UINT8 Attribute);
1006
1007 void
1008 AcpiDmIndent (
1009 UINT32 Level);
1010
1011 BOOLEAN
1012 AcpiDmCommaIfListMember (
1013 ACPI_PARSE_OBJECT *Op);
1014
1015 void
1016 AcpiDmCommaIfFieldMember (
1017 ACPI_PARSE_OBJECT *Op);
1018
1019
1020 /*
1021 * dmrestag
1022 */
1023 void
1024 AcpiDmFindResources (
1025 ACPI_PARSE_OBJECT *Root);
1026
1027 void
1028 AcpiDmCheckResourceReference (
1029 ACPI_PARSE_OBJECT *Op,
1030 ACPI_WALK_STATE *WalkState);
1031
1032
1033 /*
1034 * dmcstyle
1035 */
1036 BOOLEAN
1037 AcpiDmCheckForSymbolicOpcode (
1038 ACPI_PARSE_OBJECT *Op,
1039 ACPI_OP_WALK_INFO *Info);
1040
1041 void
1042 AcpiDmCloseOperator (
1043 ACPI_PARSE_OBJECT *Op);
1044
1045
1046 /*
1047 * acdisasm
1048 */
1049 void
1050 AdDisassemblerHeader (
1051 char *Filename,
1052 UINT8 TableType);
1053
1054 #define ACPI_IS_AML_TABLE 0
1055 #define ACPI_IS_DATA_TABLE 1
1056
1057 #endif /* __ACDISASM_H__ */
1058