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        AcpiDmTableInfoGtdt0[];
305 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0a[];
306 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt1[];
307 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
308 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
309 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
310 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
311 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
312 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
313 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
314 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
315 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
316 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest10[];
317 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest11[];
318 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
319 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
320 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
321 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpitHdr[];
322 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit0[];
323 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit1[];
324 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat[];
325 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat0[];
326 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1[];
327 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1a[];
328 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1b[];
329 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1c[];
330 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat2[];
331 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat2a[];
332 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmatHdr[];
333 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort[];
334 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort0[];
335 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort0a[];
336 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort1[];
337 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort1a[];
338 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort2[];
339 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3[];
340 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3a[];
341 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3b[];
342 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3c[];
343 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort4[];
344 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort5[];
345 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortAcc[];
346 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortHdr[];
347 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortMap[];
348 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortPad[];
349 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
350 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
351 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
352 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
353 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
354 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
355 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
356 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
357 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
358 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
359 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
360 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
361 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
362 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
363 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
364 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
365 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
366 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
367 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
368 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
369 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
370 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
371 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt13[];
372 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt14[];
373 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt15[];
374 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
375 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
376 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
377 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
378 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
379 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
380 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
381 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
382 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
383 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
384 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
385 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
386 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMtmr[];
387 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMtmr0[];
388 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit[];
389 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfitHdr[];
390 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit0[];
391 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit1[];
392 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit2[];
393 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit2a[];
394 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit3[];
395 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit3a[];
396 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit4[];
397 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit5[];
398 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit6[];
399 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit6a[];
400 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit7[];
401 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPdtt[];
402 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
403 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
404 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
405 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1a[];
406 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
407 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
408 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
409 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcctHdr[];
410 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
411 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct1[];
412 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct2[];
413 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct3[];
414 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct4[];
415 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPdtt0[];
416 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt0[];
417 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt0a[];
418 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt1[];
419 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt2[];
420 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPpttHdr[];
421 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRasf[];
422 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
423 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
424 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
425 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
426 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
427 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
428 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
429 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdei[];
430 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev[];
431 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdevHdr[];
432 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev0[];
433 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev0a[];
434 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1[];
435 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1a[];
436 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1b[];
437 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
438 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
439 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
440 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
441 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
442 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
443 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
444 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
445 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
446 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat3[];
447 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat4[];
448 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStao[];
449 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStaoStr[];
450 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaHdr[];
451 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaClient[];
452 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaServer[];
453 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2[];
454 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2a[];
455 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm211[];
456 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm23[];
457 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm23a[];
458 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
459 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc[];
460 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc0[];
461 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
462 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
463 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
464 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
465 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
466 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWpbt[];
467 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWpbt0[];
468 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWsmt[];
469 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoXenv[];
470 
471 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
472 
473 /*
474  * dmtable and ahtable
475  */
476 extern const ACPI_DMTABLE_DATA  AcpiDmTableData[];
477 extern const AH_TABLE           AcpiGbl_SupportedTables[];
478 
479 UINT8
480 AcpiDmGenerateChecksum (
481     void                    *Table,
482     UINT32                  Length,
483     UINT8                   OriginalChecksum);
484 
485 const ACPI_DMTABLE_DATA *
486 AcpiDmGetTableData (
487     char                    *Signature);
488 
489 void
490 AcpiDmDumpDataTable (
491     ACPI_TABLE_HEADER       *Table);
492 
493 ACPI_STATUS
494 AcpiDmDumpTable (
495     UINT32                  TableLength,
496     UINT32                  TableOffset,
497     void                    *Table,
498     UINT32                  SubtableLength,
499     ACPI_DMTABLE_INFO        *Info);
500 
501 void
502 AcpiDmLineHeader (
503     UINT32                  Offset,
504     UINT32                  ByteLength,
505     char                    *Name);
506 
507 void
508 AcpiDmLineHeader2 (
509     UINT32                  Offset,
510     UINT32                  ByteLength,
511     char                    *Name,
512     UINT32                  Value);
513 
514 
515 /*
516  * dmtbdump
517  */
518 void
519 AcpiDmDumpBuffer (
520     void                    *Table,
521     UINT32                  BufferOffset,
522     UINT32                  Length,
523     UINT32                  AbsoluteOffset,
524     char                    *Header);
525 
526 void
527 AcpiDmDumpUnicode (
528     void                    *Table,
529     UINT32                  BufferOffset,
530     UINT32                  ByteLength);
531 
532 void
533 AcpiDmDumpAsf (
534     ACPI_TABLE_HEADER       *Table);
535 
536 void
537 AcpiDmDumpCpep (
538     ACPI_TABLE_HEADER       *Table);
539 
540 void
541 AcpiDmDumpCsrt (
542     ACPI_TABLE_HEADER       *Table);
543 
544 void
545 AcpiDmDumpDbg2 (
546     ACPI_TABLE_HEADER       *Table);
547 
548 void
549 AcpiDmDumpDmar (
550     ACPI_TABLE_HEADER       *Table);
551 
552 void
553 AcpiDmDumpDrtm (
554     ACPI_TABLE_HEADER       *Table);
555 
556 void
557 AcpiDmDumpEinj (
558     ACPI_TABLE_HEADER       *Table);
559 
560 void
561 AcpiDmDumpErst (
562     ACPI_TABLE_HEADER       *Table);
563 
564 void
565 AcpiDmDumpFadt (
566     ACPI_TABLE_HEADER       *Table);
567 
568 void
569 AcpiDmDumpFpdt (
570     ACPI_TABLE_HEADER       *Table);
571 
572 void
573 AcpiDmDumpGtdt (
574     ACPI_TABLE_HEADER       *Table);
575 
576 void
577 AcpiDmDumpHest (
578     ACPI_TABLE_HEADER       *Table);
579 
580 void
581 AcpiDmDumpHmat (
582     ACPI_TABLE_HEADER       *Table);
583 
584 void
585 AcpiDmDumpIort (
586     ACPI_TABLE_HEADER       *Table);
587 
588 void
589 AcpiDmDumpIvrs (
590     ACPI_TABLE_HEADER       *Table);
591 
592 void
593 AcpiDmDumpLpit (
594     ACPI_TABLE_HEADER       *Table);
595 
596 void
597 AcpiDmDumpMadt (
598     ACPI_TABLE_HEADER       *Table);
599 
600 void
601 AcpiDmDumpMcfg (
602     ACPI_TABLE_HEADER       *Table);
603 
604 void
605 AcpiDmDumpMpst (
606     ACPI_TABLE_HEADER       *Table);
607 
608 void
609 AcpiDmDumpMsct (
610     ACPI_TABLE_HEADER       *Table);
611 
612 void
613 AcpiDmDumpMtmr (
614     ACPI_TABLE_HEADER       *Table);
615 
616 void
617 AcpiDmDumpNfit (
618     ACPI_TABLE_HEADER       *Table);
619 
620 void
621 AcpiDmDumpPcct (
622     ACPI_TABLE_HEADER       *Table);
623 
624 void
625 AcpiDmDumpPdtt (
626     ACPI_TABLE_HEADER       *Table);
627 
628 void
629 AcpiDmDumpPmtt (
630     ACPI_TABLE_HEADER       *Table);
631 
632 void
633 AcpiDmDumpPptt (
634     ACPI_TABLE_HEADER       *Table);
635 
636 UINT32
637 AcpiDmDumpRsdp (
638     ACPI_TABLE_HEADER       *Table);
639 
640 void
641 AcpiDmDumpRsdt (
642     ACPI_TABLE_HEADER       *Table);
643 
644 UINT32
645 AcpiDmDumpS3pt (
646     ACPI_TABLE_HEADER       *Table);
647 
648 void
649 AcpiDmDumpSdev (
650     ACPI_TABLE_HEADER       *Table);
651 
652 void
653 AcpiDmDumpSlic (
654     ACPI_TABLE_HEADER       *Table);
655 
656 void
657 AcpiDmDumpSlit (
658     ACPI_TABLE_HEADER       *Table);
659 
660 void
661 AcpiDmDumpSrat (
662     ACPI_TABLE_HEADER       *Table);
663 
664 void
665 AcpiDmDumpStao (
666     ACPI_TABLE_HEADER       *Table);
667 
668 void
669 AcpiDmDumpTcpa (
670     ACPI_TABLE_HEADER       *Table);
671 
672 void
673 AcpiDmDumpTpm2 (
674     ACPI_TABLE_HEADER       *Table);
675 
676 void
677 AcpiDmDumpVrtc (
678     ACPI_TABLE_HEADER       *Table);
679 
680 void
681 AcpiDmDumpWdat (
682     ACPI_TABLE_HEADER       *Table);
683 
684 void
685 AcpiDmDumpWpbt (
686     ACPI_TABLE_HEADER       *Table);
687 
688 void
689 AcpiDmDumpXsdt (
690     ACPI_TABLE_HEADER       *Table);
691 
692 
693 /*
694  * dmwalk
695  */
696 void
697 AcpiDmDisassemble (
698     ACPI_WALK_STATE         *WalkState,
699     ACPI_PARSE_OBJECT       *Origin,
700     UINT32                  NumOpcodes);
701 
702 void
703 AcpiDmWalkParseTree (
704     ACPI_PARSE_OBJECT       *Op,
705     ASL_WALK_CALLBACK       DescendingCallback,
706     ASL_WALK_CALLBACK       AscendingCallback,
707     void                    *Context);
708 
709 
710 /*
711  * dmopcode
712  */
713 void
714 AcpiDmDisassembleOneOp (
715     ACPI_WALK_STATE         *WalkState,
716     ACPI_OP_WALK_INFO       *Info,
717     ACPI_PARSE_OBJECT       *Op);
718 
719 UINT32
720 AcpiDmListType (
721     ACPI_PARSE_OBJECT       *Op);
722 
723 void
724 AcpiDmMethodFlags (
725     ACPI_PARSE_OBJECT       *Op);
726 
727 void
728 AcpiDmDisplayTargetPathname (
729     ACPI_PARSE_OBJECT       *Op);
730 
731 void
732 AcpiDmNotifyDescription (
733     ACPI_PARSE_OBJECT       *Op);
734 
735 void
736 AcpiDmPredefinedDescription (
737     ACPI_PARSE_OBJECT       *Op);
738 
739 void
740 AcpiDmFieldPredefinedDescription (
741     ACPI_PARSE_OBJECT       *Op);
742 
743 void
744 AcpiDmFieldFlags (
745     ACPI_PARSE_OBJECT       *Op);
746 
747 void
748 AcpiDmAddressSpace (
749     UINT8                   SpaceId);
750 
751 void
752 AcpiDmRegionFlags (
753     ACPI_PARSE_OBJECT       *Op);
754 
755 void
756 AcpiDmMatchOp (
757     ACPI_PARSE_OBJECT       *Op);
758 
759 
760 /*
761  * dmnames
762  */
763 UINT32
764 AcpiDmDumpName (
765     UINT32                  Name);
766 
767 ACPI_STATUS
768 AcpiPsDisplayObjectPathname (
769     ACPI_WALK_STATE         *WalkState,
770     ACPI_PARSE_OBJECT       *Op);
771 
772 void
773 AcpiDmNamestring (
774     char                    *Name);
775 
776 
777 /*
778  * dmbuffer
779  */
780 void
781 AcpiDmDisasmByteList (
782     UINT32                  Level,
783     UINT8                   *ByteData,
784     UINT32                  ByteCount);
785 
786 void
787 AcpiDmByteList (
788     ACPI_OP_WALK_INFO       *Info,
789     ACPI_PARSE_OBJECT       *Op);
790 
791 void
792 AcpiDmCheckForHardwareId (
793     ACPI_PARSE_OBJECT       *Op);
794 
795 void
796 AcpiDmDecompressEisaId (
797     UINT32                  EncodedId);
798 
799 BOOLEAN
800 AcpiDmIsUuidBuffer (
801     ACPI_PARSE_OBJECT       *Op);
802 
803 BOOLEAN
804 AcpiDmIsUnicodeBuffer (
805     ACPI_PARSE_OBJECT       *Op);
806 
807 BOOLEAN
808 AcpiDmIsStringBuffer (
809     ACPI_PARSE_OBJECT       *Op);
810 
811 BOOLEAN
812 AcpiDmIsPldBuffer (
813     ACPI_PARSE_OBJECT       *Op);
814 
815 
816 /*
817  * dmdeferred
818  */
819 ACPI_STATUS
820 AcpiDmParseDeferredOps (
821     ACPI_PARSE_OBJECT       *Root);
822 
823 
824 /*
825  * dmextern
826  */
827 ACPI_STATUS
828 AcpiDmAddToExternalFileList (
829     char                    *PathList);
830 
831 void
832 AcpiDmClearExternalFileList (
833     void);
834 
835 void
836 AcpiDmAddOpToExternalList (
837     ACPI_PARSE_OBJECT       *Op,
838     char                    *Path,
839     UINT8                   Type,
840     UINT32                  Value,
841     UINT16                  Flags);
842 
843 void
844 AcpiDmCreateSubobjectForExternal (
845     UINT8                   Type,
846     ACPI_NAMESPACE_NODE     **Node,
847     UINT32                  Value);
848 
849 void
850 AcpiDmAddNodeToExternalList (
851     ACPI_NAMESPACE_NODE     *Node,
852     UINT8                   Type,
853     UINT32                  Value,
854     UINT16                  Flags);
855 
856 void
857 AcpiDmAddExternalListToNamespace (
858     void);
859 
860 void
861 AcpiDmAddOneExternalToNamespace (
862     char                    *Path,
863     UINT8                   Type,
864     UINT32                  Value);
865 
866 UINT32
867 AcpiDmGetUnresolvedExternalMethodCount (
868     void);
869 
870 void
871 AcpiDmClearExternalList (
872     void);
873 
874 void
875 AcpiDmEmitExternals (
876     void);
877 
878 void
879 AcpiDmEmitExternal (
880     ACPI_PARSE_OBJECT       *NameOp,
881     ACPI_PARSE_OBJECT       *TypeOp);
882 
883 void
884 AcpiDmUnresolvedWarning (
885     UINT8                   Type);
886 
887 void
888 AcpiDmGetExternalsFromFile (
889     void);
890 
891 void
892 AcpiDmMarkExternalConflict (
893     ACPI_NAMESPACE_NODE     *Node);
894 
895 
896 /*
897  * dmresrc
898  */
899 void
900 AcpiDmDumpInteger8 (
901     UINT8                   Value,
902     const char              *Name);
903 
904 void
905 AcpiDmDumpInteger16 (
906     UINT16                  Value,
907     const char              *Name);
908 
909 void
910 AcpiDmDumpInteger32 (
911     UINT32                  Value,
912     const char              *Name);
913 
914 void
915 AcpiDmDumpInteger64 (
916     UINT64                  Value,
917     const char              *Name);
918 
919 void
920 AcpiDmResourceTemplate (
921     ACPI_OP_WALK_INFO       *Info,
922     ACPI_PARSE_OBJECT       *Op,
923     UINT8                   *ByteData,
924     UINT32                  ByteCount);
925 
926 ACPI_STATUS
927 AcpiDmIsResourceTemplate (
928     ACPI_WALK_STATE         *WalkState,
929     ACPI_PARSE_OBJECT       *Op);
930 
931 void
932 AcpiDmBitList (
933     UINT16                  Mask);
934 
935 void
936 AcpiDmDescriptorName (
937     void);
938 
939 
940 /*
941  * dmresrcl
942  */
943 void
944 AcpiDmWordDescriptor (
945     ACPI_OP_WALK_INFO       *Info,
946     AML_RESOURCE            *Resource,
947     UINT32                  Length,
948     UINT32                  Level);
949 
950 void
951 AcpiDmDwordDescriptor (
952     ACPI_OP_WALK_INFO       *Info,
953     AML_RESOURCE            *Resource,
954     UINT32                  Length,
955     UINT32                  Level);
956 
957 void
958 AcpiDmExtendedDescriptor (
959     ACPI_OP_WALK_INFO       *Info,
960     AML_RESOURCE            *Resource,
961     UINT32                  Length,
962     UINT32                  Level);
963 
964 void
965 AcpiDmQwordDescriptor (
966     ACPI_OP_WALK_INFO       *Info,
967     AML_RESOURCE            *Resource,
968     UINT32                  Length,
969     UINT32                  Level);
970 
971 void
972 AcpiDmMemory24Descriptor (
973     ACPI_OP_WALK_INFO       *Info,
974     AML_RESOURCE            *Resource,
975     UINT32                  Length,
976     UINT32                  Level);
977 
978 void
979 AcpiDmMemory32Descriptor (
980     ACPI_OP_WALK_INFO       *Info,
981     AML_RESOURCE            *Resource,
982     UINT32                  Length,
983     UINT32                  Level);
984 
985 void
986 AcpiDmFixedMemory32Descriptor (
987     ACPI_OP_WALK_INFO       *Info,
988     AML_RESOURCE            *Resource,
989     UINT32                  Length,
990     UINT32                  Level);
991 
992 void
993 AcpiDmGenericRegisterDescriptor (
994     ACPI_OP_WALK_INFO       *Info,
995     AML_RESOURCE            *Resource,
996     UINT32                  Length,
997     UINT32                  Level);
998 
999 void
1000 AcpiDmInterruptDescriptor (
1001     ACPI_OP_WALK_INFO       *Info,
1002     AML_RESOURCE            *Resource,
1003     UINT32                  Length,
1004     UINT32                  Level);
1005 
1006 void
1007 AcpiDmVendorLargeDescriptor (
1008     ACPI_OP_WALK_INFO       *Info,
1009     AML_RESOURCE            *Resource,
1010     UINT32                  Length,
1011     UINT32                  Level);
1012 
1013 void
1014 AcpiDmGpioDescriptor (
1015     ACPI_OP_WALK_INFO       *Info,
1016     AML_RESOURCE            *Resource,
1017     UINT32                  Length,
1018     UINT32                  Level);
1019 
1020 void
1021 AcpiDmPinFunctionDescriptor (
1022     ACPI_OP_WALK_INFO       *Info,
1023     AML_RESOURCE            *Resource,
1024     UINT32                  Length,
1025     UINT32                  Level);
1026 
1027 void
1028 AcpiDmPinConfigDescriptor (
1029     ACPI_OP_WALK_INFO       *Info,
1030     AML_RESOURCE            *Resource,
1031     UINT32                  Length,
1032     UINT32                  Level);
1033 
1034 void
1035 AcpiDmPinGroupDescriptor (
1036     ACPI_OP_WALK_INFO       *Info,
1037     AML_RESOURCE            *Resource,
1038     UINT32                  Length,
1039     UINT32                  Level);
1040 
1041 void
1042 AcpiDmPinGroupFunctionDescriptor (
1043     ACPI_OP_WALK_INFO       *Info,
1044     AML_RESOURCE            *Resource,
1045     UINT32                  Length,
1046     UINT32                  Level);
1047 
1048 void
1049 AcpiDmPinGroupConfigDescriptor (
1050     ACPI_OP_WALK_INFO       *Info,
1051     AML_RESOURCE            *Resource,
1052     UINT32                  Length,
1053     UINT32                  Level);
1054 
1055 void
1056 AcpiDmSerialBusDescriptor (
1057     ACPI_OP_WALK_INFO       *Info,
1058     AML_RESOURCE            *Resource,
1059     UINT32                  Length,
1060     UINT32                  Level);
1061 
1062 void
1063 AcpiDmVendorCommon (
1064     const char              *Name,
1065     UINT8                   *ByteData,
1066     UINT32                  Length,
1067     UINT32                  Level);
1068 
1069 
1070 /*
1071  * dmresrcs
1072  */
1073 void
1074 AcpiDmIrqDescriptor (
1075     ACPI_OP_WALK_INFO       *Info,
1076     AML_RESOURCE            *Resource,
1077     UINT32                  Length,
1078     UINT32                  Level);
1079 
1080 void
1081 AcpiDmDmaDescriptor (
1082     ACPI_OP_WALK_INFO       *Info,
1083     AML_RESOURCE            *Resource,
1084     UINT32                  Length,
1085     UINT32                  Level);
1086 
1087 void
1088 AcpiDmFixedDmaDescriptor (
1089     ACPI_OP_WALK_INFO       *Info,
1090     AML_RESOURCE            *Resource,
1091     UINT32                  Length,
1092     UINT32                  Level);
1093 
1094 void
1095 AcpiDmIoDescriptor (
1096     ACPI_OP_WALK_INFO       *Info,
1097     AML_RESOURCE            *Resource,
1098     UINT32                  Length,
1099     UINT32                  Level);
1100 
1101 void
1102 AcpiDmFixedIoDescriptor (
1103     ACPI_OP_WALK_INFO       *Info,
1104     AML_RESOURCE            *Resource,
1105     UINT32                  Length,
1106     UINT32                  Level);
1107 
1108 void
1109 AcpiDmStartDependentDescriptor (
1110     ACPI_OP_WALK_INFO       *Info,
1111     AML_RESOURCE            *Resource,
1112     UINT32                  Length,
1113     UINT32                  Level);
1114 
1115 void
1116 AcpiDmEndDependentDescriptor (
1117     ACPI_OP_WALK_INFO       *Info,
1118     AML_RESOURCE            *Resource,
1119     UINT32                  Length,
1120     UINT32                  Level);
1121 
1122 void
1123 AcpiDmVendorSmallDescriptor (
1124     ACPI_OP_WALK_INFO       *Info,
1125     AML_RESOURCE            *Resource,
1126     UINT32                  Length,
1127     UINT32                  Level);
1128 
1129 
1130 /*
1131  * dmutils
1132  */
1133 void
1134 AcpiDmDecodeAttribute (
1135     UINT8                   Attribute);
1136 
1137 void
1138 AcpiDmIndent (
1139     UINT32                  Level);
1140 
1141 BOOLEAN
1142 AcpiDmCommaIfListMember (
1143     ACPI_PARSE_OBJECT       *Op);
1144 
1145 void
1146 AcpiDmCommaIfFieldMember (
1147     ACPI_PARSE_OBJECT       *Op);
1148 
1149 
1150 /*
1151  * dmrestag
1152  */
1153 void
1154 AcpiDmFindResources (
1155     ACPI_PARSE_OBJECT       *Root);
1156 
1157 void
1158 AcpiDmCheckResourceReference (
1159     ACPI_PARSE_OBJECT       *Op,
1160     ACPI_WALK_STATE         *WalkState);
1161 
1162 
1163 /*
1164  * dmcstyle
1165  */
1166 BOOLEAN
1167 AcpiDmCheckForSymbolicOpcode (
1168     ACPI_PARSE_OBJECT       *Op,
1169     ACPI_OP_WALK_INFO       *Info);
1170 
1171 void
1172 AcpiDmCloseOperator (
1173     ACPI_PARSE_OBJECT       *Op);
1174 
1175 
1176 /*
1177  * dmtables
1178  */
1179 ACPI_STATUS
1180 AcpiDmProcessSwitch (
1181     ACPI_PARSE_OBJECT       *Op);
1182 
1183 void
1184 AcpiDmClearTempList(
1185     void);
1186 
1187 /*
1188  * dmtables
1189  */
1190 void
1191 AdDisassemblerHeader (
1192     char                    *Filename,
1193     UINT8                   TableType);
1194 
1195 #define ACPI_IS_AML_TABLE   0
1196 #define ACPI_IS_DATA_TABLE  1
1197 
1198 
1199 /*
1200  * adisasm
1201  */
1202 ACPI_STATUS
1203 AdAmlDisassemble (
1204     BOOLEAN                 OutToFile,
1205     char                    *Filename,
1206     char                    *Prefix,
1207     char                    **OutFilename);
1208 
1209 ACPI_STATUS
1210 AdGetLocalTables (
1211     void);
1212 
1213 ACPI_STATUS
1214 AdParseTable (
1215     ACPI_TABLE_HEADER       *Table,
1216     ACPI_OWNER_ID           *OwnerId,
1217     BOOLEAN                 LoadTable,
1218     BOOLEAN                 External);
1219 
1220 ACPI_STATUS
1221 AdDisplayTables (
1222     char                    *Filename,
1223     ACPI_TABLE_HEADER       *Table);
1224 
1225 ACPI_STATUS
1226 AdDisplayStatistics (
1227     void);
1228 
1229 
1230 /*
1231  * dmwalk
1232  */
1233 UINT32
1234 AcpiDmBlockType (
1235     ACPI_PARSE_OBJECT       *Op);
1236 
1237 
1238 #endif  /* __ACDISASM_H__ */
1239