1 /******************************************************************************
2  *
3  * Name: acdisasm.h - AML disassembler
4  *
5  *****************************************************************************/
6 
7 /*
8  * Copyright (C) 2000 - 2019, 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_FLAGS4_0,
103     ACPI_DMT_FLAGS4_4,
104     ACPI_DMT_FLAGS4_8,
105     ACPI_DMT_FLAGS4_12,
106     ACPI_DMT_FLAGS16_16,
107     ACPI_DMT_UINT8,
108     ACPI_DMT_UINT16,
109     ACPI_DMT_UINT24,
110     ACPI_DMT_UINT32,
111     ACPI_DMT_UINT40,
112     ACPI_DMT_UINT48,
113     ACPI_DMT_UINT56,
114     ACPI_DMT_UINT64,
115     ACPI_DMT_BUF7,
116     ACPI_DMT_BUF10,
117     ACPI_DMT_BUF12,
118     ACPI_DMT_BUF16,
119     ACPI_DMT_BUF128,
120     ACPI_DMT_SIG,
121     ACPI_DMT_STRING,
122     ACPI_DMT_NAME4,
123     ACPI_DMT_NAME6,
124     ACPI_DMT_NAME8,
125 
126     /* Types that are decoded to strings and miscellaneous */
127 
128     ACPI_DMT_ACCWIDTH,
129     ACPI_DMT_CHKSUM,
130     ACPI_DMT_GAS,
131     ACPI_DMT_SPACEID,
132     ACPI_DMT_UNICODE,
133     ACPI_DMT_UUID,
134 
135     /* Types used only for the Data Table Compiler */
136 
137     ACPI_DMT_BUFFER,
138     ACPI_DMT_RAW_BUFFER,  /* Large, multiple line buffer */
139     ACPI_DMT_DEVICE_PATH,
140     ACPI_DMT_LABEL,
141     ACPI_DMT_PCI_PATH,
142 
143     /* Types that are specific to particular ACPI tables */
144 
145     ACPI_DMT_ASF,
146     ACPI_DMT_DMAR,
147     ACPI_DMT_DMAR_SCOPE,
148     ACPI_DMT_EINJACT,
149     ACPI_DMT_EINJINST,
150     ACPI_DMT_ERSTACT,
151     ACPI_DMT_ERSTINST,
152     ACPI_DMT_FADTPM,
153     ACPI_DMT_GTDT,
154     ACPI_DMT_HEST,
155     ACPI_DMT_HESTNTFY,
156     ACPI_DMT_HESTNTYP,
157     ACPI_DMT_HMAT,
158     ACPI_DMT_IORTMEM,
159     ACPI_DMT_IVRS,
160     ACPI_DMT_LPIT,
161     ACPI_DMT_MADT,
162     ACPI_DMT_NFIT,
163     ACPI_DMT_PCCT,
164     ACPI_DMT_PMTT,
165     ACPI_DMT_PPTT,
166     ACPI_DMT_SDEI,
167     ACPI_DMT_SDEV,
168     ACPI_DMT_SLIC,
169     ACPI_DMT_SRAT,
170     ACPI_DMT_TPM2,
171 
172     /* Special opcodes */
173 
174     ACPI_DMT_EXTRA_TEXT,
175     ACPI_DMT_EXIT
176 
177 } ACPI_ENTRY_TYPES;
178 
179 typedef
180 void (*ACPI_DMTABLE_HANDLER) (
181     ACPI_TABLE_HEADER       *Table);
182 
183 typedef
184 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
185     void                    **PFieldList);
186 
187 typedef struct acpi_dmtable_data
188 {
189     char                    *Signature;
190     ACPI_DMTABLE_INFO       *TableInfo;
191     ACPI_DMTABLE_HANDLER    TableHandler;
192     ACPI_CMTABLE_HANDLER    CmTableHandler;
193     const unsigned char     *Template;
194 
195 } ACPI_DMTABLE_DATA;
196 
197 
198 typedef struct acpi_op_walk_info
199 {
200     ACPI_WALK_STATE         *WalkState;
201     ACPI_PARSE_OBJECT       *MappingOp;
202     UINT8                   *PreviousAml;
203     UINT8                   *StartAml;
204     UINT32                  Level;
205     UINT32                  LastLevel;
206     UINT32                  Count;
207     UINT32                  BitOffset;
208     UINT32                  Flags;
209     UINT32                  AmlOffset;
210 
211 } ACPI_OP_WALK_INFO;
212 
213 /*
214  * TBD - another copy of this is in asltypes.h, fix
215  */
216 #ifndef ASL_WALK_CALLBACK_DEFINED
217 typedef
218 ACPI_STATUS (*ASL_WALK_CALLBACK) (
219     ACPI_PARSE_OBJECT           *Op,
220     UINT32                      Level,
221     void                        *Context);
222 #define ASL_WALK_CALLBACK_DEFINED
223 #endif
224 
225 typedef
226 void (*ACPI_RESOURCE_HANDLER) (
227     ACPI_OP_WALK_INFO       *Info,
228     AML_RESOURCE            *Resource,
229     UINT32                  Length,
230     UINT32                  Level);
231 
232 typedef struct acpi_resource_tag
233 {
234     UINT32                  BitIndex;
235     char                    *Tag;
236 
237 } ACPI_RESOURCE_TAG;
238 
239 /* Strings used for decoding flags to ASL keywords */
240 
241 extern const char               *AcpiGbl_WordDecode[];
242 extern const char               *AcpiGbl_IrqDecode[];
243 extern const char               *AcpiGbl_LockRule[];
244 extern const char               *AcpiGbl_AccessTypes[];
245 extern const char               *AcpiGbl_UpdateRules[];
246 extern const char               *AcpiGbl_MatchOps[];
247 
248 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
249 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
250 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
251 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
252 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
253 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
254 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
255 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
256 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
257 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
258 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBgrt[];
259 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
260 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
261 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt0[];
262 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt1[];
263 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2[];
264 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2a[];
265 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2[];
266 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Device[];
267 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Addr[];
268 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Size[];
269 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Name[];
270 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2OemData[];
271 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
272 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
273 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
274 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
275 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
276 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
277 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
278 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
279 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar4[];
280 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
281 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm0[];
282 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm0a[];
283 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm1[];
284 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm1a[];
285 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm2[];
286 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
287 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
288 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
289 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
290 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
291 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
292 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
293 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
294 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
295 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
296 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt6[];
297 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
298 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
299 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
300 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
301 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
302 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
303 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtHdr[];
304 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtEl2[];
305 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0[];
306 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0a[];
307 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt1[];
308 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
309 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
310 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
311 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
312 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
313 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
314 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
315 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
316 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
317 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest10[];
318 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest11[];
319 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
320 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
321 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
322 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpitHdr[];
323 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit0[];
324 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit1[];
325 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat[];
326 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat0[];
327 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1[];
328 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1a[];
329 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1b[];
330 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1c[];
331 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat2[];
332 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat2a[];
333 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmatHdr[];
334 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort[];
335 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort0[];
336 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort0a[];
337 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort1[];
338 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort1a[];
339 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort2[];
340 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3[];
341 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3a[];
342 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3b[];
343 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3c[];
344 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort4[];
345 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort5[];
346 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortAcc[];
347 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortHdr[];
348 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortMap[];
349 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortPad[];
350 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
351 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
352 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
353 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
354 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
355 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
356 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
357 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
358 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
359 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
360 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
361 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
362 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
363 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
364 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
365 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
366 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
367 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
368 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
369 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
370 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
371 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
372 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt13[];
373 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt14[];
374 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt15[];
375 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
376 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
377 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
378 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
379 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
380 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
381 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
382 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
383 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
384 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
385 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
386 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
387 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMtmr[];
388 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMtmr0[];
389 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit[];
390 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfitHdr[];
391 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit0[];
392 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit1[];
393 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit2[];
394 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit2a[];
395 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit3[];
396 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit3a[];
397 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit4[];
398 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit5[];
399 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit6[];
400 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit6a[];
401 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit7[];
402 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPdtt[];
403 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
404 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
405 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
406 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1a[];
407 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
408 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
409 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
410 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcctHdr[];
411 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
412 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct1[];
413 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct2[];
414 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct3[];
415 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct4[];
416 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPdtt0[];
417 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt0[];
418 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt0a[];
419 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt1[];
420 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt2[];
421 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPpttHdr[];
422 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRasf[];
423 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
424 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
425 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
426 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
427 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
428 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
429 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
430 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdei[];
431 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev[];
432 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdevHdr[];
433 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev0[];
434 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev0a[];
435 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1[];
436 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1a[];
437 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1b[];
438 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
439 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
440 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
441 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
442 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
443 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
444 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
445 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
446 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
447 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat3[];
448 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat4[];
449 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat5[];
450 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStao[];
451 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStaoStr[];
452 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaHdr[];
453 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaClient[];
454 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaServer[];
455 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2[];
456 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2a[];
457 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm211[];
458 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm23[];
459 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm23a[];
460 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
461 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc[];
462 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc0[];
463 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
464 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
465 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
466 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
467 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
468 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWpbt[];
469 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWpbt0[];
470 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWsmt[];
471 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoXenv[];
472 
473 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
474 
475 /*
476  * dmtable and ahtable
477  */
478 extern const ACPI_DMTABLE_DATA  AcpiDmTableData[];
479 extern const AH_TABLE           AcpiGbl_SupportedTables[];
480 
481 UINT8
482 AcpiDmGenerateChecksum (
483     void                    *Table,
484     UINT32                  Length,
485     UINT8                   OriginalChecksum);
486 
487 const ACPI_DMTABLE_DATA *
488 AcpiDmGetTableData (
489     char                    *Signature);
490 
491 void
492 AcpiDmDumpDataTable (
493     ACPI_TABLE_HEADER       *Table);
494 
495 ACPI_STATUS
496 AcpiDmDumpTable (
497     UINT32                  TableLength,
498     UINT32                  TableOffset,
499     void                    *Table,
500     UINT32                  SubtableLength,
501     ACPI_DMTABLE_INFO        *Info);
502 
503 void
504 AcpiDmLineHeader (
505     UINT32                  Offset,
506     UINT32                  ByteLength,
507     char                    *Name);
508 
509 void
510 AcpiDmLineHeader2 (
511     UINT32                  Offset,
512     UINT32                  ByteLength,
513     char                    *Name,
514     UINT32                  Value);
515 
516 
517 /*
518  * dmtbdump
519  */
520 void
521 AcpiDmDumpBuffer (
522     void                    *Table,
523     UINT32                  BufferOffset,
524     UINT32                  Length,
525     UINT32                  AbsoluteOffset,
526     char                    *Header);
527 
528 void
529 AcpiDmDumpUnicode (
530     void                    *Table,
531     UINT32                  BufferOffset,
532     UINT32                  ByteLength);
533 
534 void
535 AcpiDmDumpAsf (
536     ACPI_TABLE_HEADER       *Table);
537 
538 void
539 AcpiDmDumpCpep (
540     ACPI_TABLE_HEADER       *Table);
541 
542 void
543 AcpiDmDumpCsrt (
544     ACPI_TABLE_HEADER       *Table);
545 
546 void
547 AcpiDmDumpDbg2 (
548     ACPI_TABLE_HEADER       *Table);
549 
550 void
551 AcpiDmDumpDmar (
552     ACPI_TABLE_HEADER       *Table);
553 
554 void
555 AcpiDmDumpDrtm (
556     ACPI_TABLE_HEADER       *Table);
557 
558 void
559 AcpiDmDumpEinj (
560     ACPI_TABLE_HEADER       *Table);
561 
562 void
563 AcpiDmDumpErst (
564     ACPI_TABLE_HEADER       *Table);
565 
566 void
567 AcpiDmDumpFadt (
568     ACPI_TABLE_HEADER       *Table);
569 
570 void
571 AcpiDmDumpFpdt (
572     ACPI_TABLE_HEADER       *Table);
573 
574 void
575 AcpiDmDumpGtdt (
576     ACPI_TABLE_HEADER       *Table);
577 
578 void
579 AcpiDmDumpHest (
580     ACPI_TABLE_HEADER       *Table);
581 
582 void
583 AcpiDmDumpHmat (
584     ACPI_TABLE_HEADER       *Table);
585 
586 void
587 AcpiDmDumpIort (
588     ACPI_TABLE_HEADER       *Table);
589 
590 void
591 AcpiDmDumpIvrs (
592     ACPI_TABLE_HEADER       *Table);
593 
594 void
595 AcpiDmDumpLpit (
596     ACPI_TABLE_HEADER       *Table);
597 
598 void
599 AcpiDmDumpMadt (
600     ACPI_TABLE_HEADER       *Table);
601 
602 void
603 AcpiDmDumpMcfg (
604     ACPI_TABLE_HEADER       *Table);
605 
606 void
607 AcpiDmDumpMpst (
608     ACPI_TABLE_HEADER       *Table);
609 
610 void
611 AcpiDmDumpMsct (
612     ACPI_TABLE_HEADER       *Table);
613 
614 void
615 AcpiDmDumpMtmr (
616     ACPI_TABLE_HEADER       *Table);
617 
618 void
619 AcpiDmDumpNfit (
620     ACPI_TABLE_HEADER       *Table);
621 
622 void
623 AcpiDmDumpPcct (
624     ACPI_TABLE_HEADER       *Table);
625 
626 void
627 AcpiDmDumpPdtt (
628     ACPI_TABLE_HEADER       *Table);
629 
630 void
631 AcpiDmDumpPmtt (
632     ACPI_TABLE_HEADER       *Table);
633 
634 void
635 AcpiDmDumpPptt (
636     ACPI_TABLE_HEADER       *Table);
637 
638 UINT32
639 AcpiDmDumpRsdp (
640     ACPI_TABLE_HEADER       *Table);
641 
642 void
643 AcpiDmDumpRsdt (
644     ACPI_TABLE_HEADER       *Table);
645 
646 UINT32
647 AcpiDmDumpS3pt (
648     ACPI_TABLE_HEADER       *Table);
649 
650 void
651 AcpiDmDumpSdev (
652     ACPI_TABLE_HEADER       *Table);
653 
654 void
655 AcpiDmDumpSlic (
656     ACPI_TABLE_HEADER       *Table);
657 
658 void
659 AcpiDmDumpSlit (
660     ACPI_TABLE_HEADER       *Table);
661 
662 void
663 AcpiDmDumpSrat (
664     ACPI_TABLE_HEADER       *Table);
665 
666 void
667 AcpiDmDumpStao (
668     ACPI_TABLE_HEADER       *Table);
669 
670 void
671 AcpiDmDumpTcpa (
672     ACPI_TABLE_HEADER       *Table);
673 
674 void
675 AcpiDmDumpTpm2 (
676     ACPI_TABLE_HEADER       *Table);
677 
678 void
679 AcpiDmDumpVrtc (
680     ACPI_TABLE_HEADER       *Table);
681 
682 void
683 AcpiDmDumpWdat (
684     ACPI_TABLE_HEADER       *Table);
685 
686 void
687 AcpiDmDumpWpbt (
688     ACPI_TABLE_HEADER       *Table);
689 
690 void
691 AcpiDmDumpXsdt (
692     ACPI_TABLE_HEADER       *Table);
693 
694 
695 /*
696  * dmwalk
697  */
698 void
699 AcpiDmDisassemble (
700     ACPI_WALK_STATE         *WalkState,
701     ACPI_PARSE_OBJECT       *Origin,
702     UINT32                  NumOpcodes);
703 
704 void
705 AcpiDmWalkParseTree (
706     ACPI_PARSE_OBJECT       *Op,
707     ASL_WALK_CALLBACK       DescendingCallback,
708     ASL_WALK_CALLBACK       AscendingCallback,
709     void                    *Context);
710 
711 
712 /*
713  * dmopcode
714  */
715 void
716 AcpiDmDisassembleOneOp (
717     ACPI_WALK_STATE         *WalkState,
718     ACPI_OP_WALK_INFO       *Info,
719     ACPI_PARSE_OBJECT       *Op);
720 
721 UINT32
722 AcpiDmListType (
723     ACPI_PARSE_OBJECT       *Op);
724 
725 void
726 AcpiDmMethodFlags (
727     ACPI_PARSE_OBJECT       *Op);
728 
729 void
730 AcpiDmDisplayTargetPathname (
731     ACPI_PARSE_OBJECT       *Op);
732 
733 void
734 AcpiDmNotifyDescription (
735     ACPI_PARSE_OBJECT       *Op);
736 
737 void
738 AcpiDmPredefinedDescription (
739     ACPI_PARSE_OBJECT       *Op);
740 
741 void
742 AcpiDmFieldPredefinedDescription (
743     ACPI_PARSE_OBJECT       *Op);
744 
745 void
746 AcpiDmFieldFlags (
747     ACPI_PARSE_OBJECT       *Op);
748 
749 void
750 AcpiDmAddressSpace (
751     UINT8                   SpaceId);
752 
753 void
754 AcpiDmRegionFlags (
755     ACPI_PARSE_OBJECT       *Op);
756 
757 void
758 AcpiDmMatchOp (
759     ACPI_PARSE_OBJECT       *Op);
760 
761 
762 /*
763  * dmnames
764  */
765 UINT32
766 AcpiDmDumpName (
767     UINT32                  Name);
768 
769 ACPI_STATUS
770 AcpiPsDisplayObjectPathname (
771     ACPI_WALK_STATE         *WalkState,
772     ACPI_PARSE_OBJECT       *Op);
773 
774 void
775 AcpiDmNamestring (
776     char                    *Name);
777 
778 
779 /*
780  * dmbuffer
781  */
782 void
783 AcpiDmDisasmByteList (
784     UINT32                  Level,
785     UINT8                   *ByteData,
786     UINT32                  ByteCount);
787 
788 void
789 AcpiDmByteList (
790     ACPI_OP_WALK_INFO       *Info,
791     ACPI_PARSE_OBJECT       *Op);
792 
793 void
794 AcpiDmCheckForHardwareId (
795     ACPI_PARSE_OBJECT       *Op);
796 
797 void
798 AcpiDmDecompressEisaId (
799     UINT32                  EncodedId);
800 
801 BOOLEAN
802 AcpiDmIsUuidBuffer (
803     ACPI_PARSE_OBJECT       *Op);
804 
805 BOOLEAN
806 AcpiDmIsUnicodeBuffer (
807     ACPI_PARSE_OBJECT       *Op);
808 
809 BOOLEAN
810 AcpiDmIsStringBuffer (
811     ACPI_PARSE_OBJECT       *Op);
812 
813 BOOLEAN
814 AcpiDmIsPldBuffer (
815     ACPI_PARSE_OBJECT       *Op);
816 
817 
818 /*
819  * dmdeferred
820  */
821 ACPI_STATUS
822 AcpiDmParseDeferredOps (
823     ACPI_PARSE_OBJECT       *Root);
824 
825 
826 /*
827  * dmextern
828  */
829 ACPI_STATUS
830 AcpiDmAddToExternalFileList (
831     char                    *PathList);
832 
833 void
834 AcpiDmClearExternalFileList (
835     void);
836 
837 void
838 AcpiDmAddOpToExternalList (
839     ACPI_PARSE_OBJECT       *Op,
840     char                    *Path,
841     UINT8                   Type,
842     UINT32                  Value,
843     UINT16                  Flags);
844 
845 void
846 AcpiDmCreateSubobjectForExternal (
847     UINT8                   Type,
848     ACPI_NAMESPACE_NODE     **Node,
849     UINT32                  Value);
850 
851 void
852 AcpiDmAddNodeToExternalList (
853     ACPI_NAMESPACE_NODE     *Node,
854     UINT8                   Type,
855     UINT32                  Value,
856     UINT16                  Flags);
857 
858 void
859 AcpiDmAddExternalListToNamespace (
860     void);
861 
862 void
863 AcpiDmAddOneExternalToNamespace (
864     char                    *Path,
865     UINT8                   Type,
866     UINT32                  Value);
867 
868 UINT32
869 AcpiDmGetUnresolvedExternalMethodCount (
870     void);
871 
872 void
873 AcpiDmClearExternalList (
874     void);
875 
876 void
877 AcpiDmEmitExternals (
878     void);
879 
880 void
881 AcpiDmEmitExternal (
882     ACPI_PARSE_OBJECT       *NameOp,
883     ACPI_PARSE_OBJECT       *TypeOp);
884 
885 void
886 AcpiDmUnresolvedWarning (
887     UINT8                   Type);
888 
889 void
890 AcpiDmGetExternalsFromFile (
891     void);
892 
893 void
894 AcpiDmMarkExternalConflict (
895     ACPI_NAMESPACE_NODE     *Node);
896 
897 
898 /*
899  * dmresrc
900  */
901 void
902 AcpiDmDumpInteger8 (
903     UINT8                   Value,
904     const char              *Name);
905 
906 void
907 AcpiDmDumpInteger16 (
908     UINT16                  Value,
909     const char              *Name);
910 
911 void
912 AcpiDmDumpInteger32 (
913     UINT32                  Value,
914     const char              *Name);
915 
916 void
917 AcpiDmDumpInteger64 (
918     UINT64                  Value,
919     const char              *Name);
920 
921 void
922 AcpiDmResourceTemplate (
923     ACPI_OP_WALK_INFO       *Info,
924     ACPI_PARSE_OBJECT       *Op,
925     UINT8                   *ByteData,
926     UINT32                  ByteCount);
927 
928 ACPI_STATUS
929 AcpiDmIsResourceTemplate (
930     ACPI_WALK_STATE         *WalkState,
931     ACPI_PARSE_OBJECT       *Op);
932 
933 void
934 AcpiDmBitList (
935     UINT16                  Mask);
936 
937 void
938 AcpiDmDescriptorName (
939     void);
940 
941 
942 /*
943  * dmresrcl
944  */
945 void
946 AcpiDmWordDescriptor (
947     ACPI_OP_WALK_INFO       *Info,
948     AML_RESOURCE            *Resource,
949     UINT32                  Length,
950     UINT32                  Level);
951 
952 void
953 AcpiDmDwordDescriptor (
954     ACPI_OP_WALK_INFO       *Info,
955     AML_RESOURCE            *Resource,
956     UINT32                  Length,
957     UINT32                  Level);
958 
959 void
960 AcpiDmExtendedDescriptor (
961     ACPI_OP_WALK_INFO       *Info,
962     AML_RESOURCE            *Resource,
963     UINT32                  Length,
964     UINT32                  Level);
965 
966 void
967 AcpiDmQwordDescriptor (
968     ACPI_OP_WALK_INFO       *Info,
969     AML_RESOURCE            *Resource,
970     UINT32                  Length,
971     UINT32                  Level);
972 
973 void
974 AcpiDmMemory24Descriptor (
975     ACPI_OP_WALK_INFO       *Info,
976     AML_RESOURCE            *Resource,
977     UINT32                  Length,
978     UINT32                  Level);
979 
980 void
981 AcpiDmMemory32Descriptor (
982     ACPI_OP_WALK_INFO       *Info,
983     AML_RESOURCE            *Resource,
984     UINT32                  Length,
985     UINT32                  Level);
986 
987 void
988 AcpiDmFixedMemory32Descriptor (
989     ACPI_OP_WALK_INFO       *Info,
990     AML_RESOURCE            *Resource,
991     UINT32                  Length,
992     UINT32                  Level);
993 
994 void
995 AcpiDmGenericRegisterDescriptor (
996     ACPI_OP_WALK_INFO       *Info,
997     AML_RESOURCE            *Resource,
998     UINT32                  Length,
999     UINT32                  Level);
1000 
1001 void
1002 AcpiDmInterruptDescriptor (
1003     ACPI_OP_WALK_INFO       *Info,
1004     AML_RESOURCE            *Resource,
1005     UINT32                  Length,
1006     UINT32                  Level);
1007 
1008 void
1009 AcpiDmVendorLargeDescriptor (
1010     ACPI_OP_WALK_INFO       *Info,
1011     AML_RESOURCE            *Resource,
1012     UINT32                  Length,
1013     UINT32                  Level);
1014 
1015 void
1016 AcpiDmGpioDescriptor (
1017     ACPI_OP_WALK_INFO       *Info,
1018     AML_RESOURCE            *Resource,
1019     UINT32                  Length,
1020     UINT32                  Level);
1021 
1022 void
1023 AcpiDmPinFunctionDescriptor (
1024     ACPI_OP_WALK_INFO       *Info,
1025     AML_RESOURCE            *Resource,
1026     UINT32                  Length,
1027     UINT32                  Level);
1028 
1029 void
1030 AcpiDmPinConfigDescriptor (
1031     ACPI_OP_WALK_INFO       *Info,
1032     AML_RESOURCE            *Resource,
1033     UINT32                  Length,
1034     UINT32                  Level);
1035 
1036 void
1037 AcpiDmPinGroupDescriptor (
1038     ACPI_OP_WALK_INFO       *Info,
1039     AML_RESOURCE            *Resource,
1040     UINT32                  Length,
1041     UINT32                  Level);
1042 
1043 void
1044 AcpiDmPinGroupFunctionDescriptor (
1045     ACPI_OP_WALK_INFO       *Info,
1046     AML_RESOURCE            *Resource,
1047     UINT32                  Length,
1048     UINT32                  Level);
1049 
1050 void
1051 AcpiDmPinGroupConfigDescriptor (
1052     ACPI_OP_WALK_INFO       *Info,
1053     AML_RESOURCE            *Resource,
1054     UINT32                  Length,
1055     UINT32                  Level);
1056 
1057 void
1058 AcpiDmSerialBusDescriptor (
1059     ACPI_OP_WALK_INFO       *Info,
1060     AML_RESOURCE            *Resource,
1061     UINT32                  Length,
1062     UINT32                  Level);
1063 
1064 void
1065 AcpiDmVendorCommon (
1066     const char              *Name,
1067     UINT8                   *ByteData,
1068     UINT32                  Length,
1069     UINT32                  Level);
1070 
1071 
1072 /*
1073  * dmresrcs
1074  */
1075 void
1076 AcpiDmIrqDescriptor (
1077     ACPI_OP_WALK_INFO       *Info,
1078     AML_RESOURCE            *Resource,
1079     UINT32                  Length,
1080     UINT32                  Level);
1081 
1082 void
1083 AcpiDmDmaDescriptor (
1084     ACPI_OP_WALK_INFO       *Info,
1085     AML_RESOURCE            *Resource,
1086     UINT32                  Length,
1087     UINT32                  Level);
1088 
1089 void
1090 AcpiDmFixedDmaDescriptor (
1091     ACPI_OP_WALK_INFO       *Info,
1092     AML_RESOURCE            *Resource,
1093     UINT32                  Length,
1094     UINT32                  Level);
1095 
1096 void
1097 AcpiDmIoDescriptor (
1098     ACPI_OP_WALK_INFO       *Info,
1099     AML_RESOURCE            *Resource,
1100     UINT32                  Length,
1101     UINT32                  Level);
1102 
1103 void
1104 AcpiDmFixedIoDescriptor (
1105     ACPI_OP_WALK_INFO       *Info,
1106     AML_RESOURCE            *Resource,
1107     UINT32                  Length,
1108     UINT32                  Level);
1109 
1110 void
1111 AcpiDmStartDependentDescriptor (
1112     ACPI_OP_WALK_INFO       *Info,
1113     AML_RESOURCE            *Resource,
1114     UINT32                  Length,
1115     UINT32                  Level);
1116 
1117 void
1118 AcpiDmEndDependentDescriptor (
1119     ACPI_OP_WALK_INFO       *Info,
1120     AML_RESOURCE            *Resource,
1121     UINT32                  Length,
1122     UINT32                  Level);
1123 
1124 void
1125 AcpiDmVendorSmallDescriptor (
1126     ACPI_OP_WALK_INFO       *Info,
1127     AML_RESOURCE            *Resource,
1128     UINT32                  Length,
1129     UINT32                  Level);
1130 
1131 
1132 /*
1133  * dmutils
1134  */
1135 void
1136 AcpiDmDecodeAttribute (
1137     UINT8                   Attribute);
1138 
1139 void
1140 AcpiDmIndent (
1141     UINT32                  Level);
1142 
1143 BOOLEAN
1144 AcpiDmCommaIfListMember (
1145     ACPI_PARSE_OBJECT       *Op);
1146 
1147 void
1148 AcpiDmCommaIfFieldMember (
1149     ACPI_PARSE_OBJECT       *Op);
1150 
1151 
1152 /*
1153  * dmrestag
1154  */
1155 void
1156 AcpiDmFindResources (
1157     ACPI_PARSE_OBJECT       *Root);
1158 
1159 void
1160 AcpiDmCheckResourceReference (
1161     ACPI_PARSE_OBJECT       *Op,
1162     ACPI_WALK_STATE         *WalkState);
1163 
1164 
1165 /*
1166  * dmcstyle
1167  */
1168 BOOLEAN
1169 AcpiDmCheckForSymbolicOpcode (
1170     ACPI_PARSE_OBJECT       *Op,
1171     ACPI_OP_WALK_INFO       *Info);
1172 
1173 void
1174 AcpiDmCloseOperator (
1175     ACPI_PARSE_OBJECT       *Op);
1176 
1177 
1178 /*
1179  * dmtables
1180  */
1181 ACPI_STATUS
1182 AcpiDmProcessSwitch (
1183     ACPI_PARSE_OBJECT       *Op);
1184 
1185 void
1186 AcpiDmClearTempList(
1187     void);
1188 
1189 /*
1190  * dmtables
1191  */
1192 void
1193 AdDisassemblerHeader (
1194     char                    *Filename,
1195     UINT8                   TableType);
1196 
1197 #define ACPI_IS_AML_TABLE   0
1198 #define ACPI_IS_DATA_TABLE  1
1199 
1200 
1201 /*
1202  * adisasm
1203  */
1204 ACPI_STATUS
1205 AdAmlDisassemble (
1206     BOOLEAN                 OutToFile,
1207     char                    *Filename,
1208     char                    *Prefix,
1209     char                    **OutFilename);
1210 
1211 ACPI_STATUS
1212 AdGetLocalTables (
1213     void);
1214 
1215 ACPI_STATUS
1216 AdParseTable (
1217     ACPI_TABLE_HEADER       *Table,
1218     ACPI_OWNER_ID           *OwnerId,
1219     BOOLEAN                 LoadTable,
1220     BOOLEAN                 External);
1221 
1222 ACPI_STATUS
1223 AdDisplayTables (
1224     char                    *Filename,
1225     ACPI_TABLE_HEADER       *Table);
1226 
1227 ACPI_STATUS
1228 AdDisplayStatistics (
1229     void);
1230 
1231 
1232 /*
1233  * dmwalk
1234  */
1235 UINT32
1236 AcpiDmBlockType (
1237     ACPI_PARSE_OBJECT       *Op);
1238 
1239 
1240 #endif  /* __ACDISASM_H__ */
1241