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