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