xref: /haiku/src/add-ons/kernel/bus_managers/acpi/acpica/include/acdisasm.h (revision 04a0e9c7b68cbe3a43d38e2bca8e860fd80936fb)
1  /******************************************************************************
2   *
3   * Name: acdisasm.h - AML disassembler
4   *
5   *****************************************************************************/
6  
7  /******************************************************************************
8   *
9   * 1. Copyright Notice
10   *
11   * Some or all of this work - Copyright (c) 1999 - 2013, Intel Corp.
12   * All rights reserved.
13   *
14   * 2. License
15   *
16   * 2.1. This is your license from Intel Corp. under its intellectual property
17   * rights. You may have additional license terms from the party that provided
18   * you this software, covering your right to use that party's intellectual
19   * property rights.
20   *
21   * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22   * copy of the source code appearing in this file ("Covered Code") an
23   * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24   * base code distributed originally by Intel ("Original Intel Code") to copy,
25   * make derivatives, distribute, use and display any portion of the Covered
26   * Code in any form, with the right to sublicense such rights; and
27   *
28   * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29   * license (with the right to sublicense), under only those claims of Intel
30   * patents that are infringed by the Original Intel Code, to make, use, sell,
31   * offer to sell, and import the Covered Code and derivative works thereof
32   * solely to the minimum extent necessary to exercise the above copyright
33   * license, and in no event shall the patent license extend to any additions
34   * to or modifications of the Original Intel Code. No other license or right
35   * is granted directly or by implication, estoppel or otherwise;
36   *
37   * The above copyright and patent license is granted only if the following
38   * conditions are met:
39   *
40   * 3. Conditions
41   *
42   * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43   * Redistribution of source code of any substantial portion of the Covered
44   * Code or modification with rights to further distribute source must include
45   * the above Copyright Notice, the above License, this list of Conditions,
46   * and the following Disclaimer and Export Compliance provision. In addition,
47   * Licensee must cause all Covered Code to which Licensee contributes to
48   * contain a file documenting the changes Licensee made to create that Covered
49   * Code and the date of any change. Licensee must include in that file the
50   * documentation of any changes made by any predecessor Licensee. Licensee
51   * must include a prominent statement that the modification is derived,
52   * directly or indirectly, from Original Intel Code.
53   *
54   * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55   * Redistribution of source code of any substantial portion of the Covered
56   * Code or modification without rights to further distribute source must
57   * include the following Disclaimer and Export Compliance provision in the
58   * documentation and/or other materials provided with distribution. In
59   * addition, Licensee may not authorize further sublicense of source of any
60   * portion of the Covered Code, and must include terms to the effect that the
61   * license from Licensee to its licensee is limited to the intellectual
62   * property embodied in the software Licensee provides to its licensee, and
63   * not to intellectual property embodied in modifications its licensee may
64   * make.
65   *
66   * 3.3. Redistribution of Executable. Redistribution in executable form of any
67   * substantial portion of the Covered Code or modification must reproduce the
68   * above Copyright Notice, and the following Disclaimer and Export Compliance
69   * provision in the documentation and/or other materials provided with the
70   * distribution.
71   *
72   * 3.4. Intel retains all right, title, and interest in and to the Original
73   * Intel Code.
74   *
75   * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76   * Intel shall be used in advertising or otherwise to promote the sale, use or
77   * other dealings in products derived from or relating to the Covered Code
78   * without prior written authorization from Intel.
79   *
80   * 4. Disclaimer and Export Compliance
81   *
82   * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83   * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84   * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
85   * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
86   * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
87   * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
88   * PARTICULAR PURPOSE.
89   *
90   * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91   * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92   * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93   * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94   * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95   * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
96   * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
97   * LIMITED REMEDY.
98   *
99   * 4.3. Licensee shall not export, either directly or indirectly, any of this
100   * software or system incorporating such software without first obtaining any
101   * required license or other approval from the U. S. Department of Commerce or
102   * any other agency or department of the United States Government. In the
103   * event Licensee exports any such software from the United States or
104   * re-exports any such software from a foreign destination, Licensee shall
105   * ensure that the distribution and export/re-export of the software is in
106   * compliance with all laws, regulations, orders, or other restrictions of the
107   * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108   * any of its subsidiaries will export/re-export any technical data, process,
109   * software, or service, directly or indirectly, to any country for which the
110   * United States government or any agency thereof requires an export license,
111   * other governmental approval, or letter of assurance, without first obtaining
112   * such license, approval or letter.
113   *
114   *****************************************************************************/
115  
116  #ifndef __ACDISASM_H__
117  #define __ACDISASM_H__
118  
119  #include "amlresrc.h"
120  
121  
122  #define BLOCK_NONE              0
123  #define BLOCK_PAREN             1
124  #define BLOCK_BRACE             2
125  #define BLOCK_COMMA_LIST        4
126  #define ACPI_DEFAULT_RESNAME    *(UINT32 *) "__RD"
127  
128  /*
129   * Raw table data header. Used by disassembler and data table compiler.
130   * Do not change.
131   */
132  #define ACPI_RAW_TABLE_DATA_HEADER      "Raw Table Data"
133  
134  
135  typedef const struct acpi_dmtable_info
136  {
137      UINT8                       Opcode;
138      UINT16                      Offset;
139      char                        *Name;
140      UINT8                       Flags;
141  
142  } ACPI_DMTABLE_INFO;
143  
144  #define DT_LENGTH                       0x01    /* Field is a subtable length */
145  #define DT_FLAG                         0x02    /* Field is a flag value */
146  #define DT_NON_ZERO                     0x04    /* Field must be non-zero */
147  
148  /* TBD: Not used at this time */
149  
150  #define DT_OPTIONAL                     0x08
151  #define DT_COUNT                        0x10
152  
153  /*
154   * Values for Opcode above.
155   * Note: 0-7 must not change, they are used as a flag shift value. Other
156   * than those, new values can be added wherever appropriate.
157   */
158  typedef enum
159  {
160      /* Simple Data Types */
161  
162      ACPI_DMT_FLAG0          = 0,
163      ACPI_DMT_FLAG1          = 1,
164      ACPI_DMT_FLAG2          = 2,
165      ACPI_DMT_FLAG3          = 3,
166      ACPI_DMT_FLAG4          = 4,
167      ACPI_DMT_FLAG5          = 5,
168      ACPI_DMT_FLAG6          = 6,
169      ACPI_DMT_FLAG7          = 7,
170      ACPI_DMT_FLAGS0,
171      ACPI_DMT_FLAGS1,
172      ACPI_DMT_FLAGS2,
173      ACPI_DMT_FLAGS4,
174      ACPI_DMT_UINT8,
175      ACPI_DMT_UINT16,
176      ACPI_DMT_UINT24,
177      ACPI_DMT_UINT32,
178      ACPI_DMT_UINT40,
179      ACPI_DMT_UINT48,
180      ACPI_DMT_UINT56,
181      ACPI_DMT_UINT64,
182      ACPI_DMT_BUF7,
183      ACPI_DMT_BUF10,
184      ACPI_DMT_BUF16,
185      ACPI_DMT_BUF128,
186      ACPI_DMT_SIG,
187      ACPI_DMT_STRING,
188      ACPI_DMT_NAME4,
189      ACPI_DMT_NAME6,
190      ACPI_DMT_NAME8,
191  
192      /* Types that are decoded to strings and miscellaneous */
193  
194      ACPI_DMT_ACCWIDTH,
195      ACPI_DMT_CHKSUM,
196      ACPI_DMT_GAS,
197      ACPI_DMT_SPACEID,
198      ACPI_DMT_UNICODE,
199      ACPI_DMT_UUID,
200  
201      /* Types used only for the Data Table Compiler */
202  
203      ACPI_DMT_BUFFER,
204      ACPI_DMT_DEVICE_PATH,
205      ACPI_DMT_LABEL,
206      ACPI_DMT_PCI_PATH,
207  
208      /* Types that are specific to particular ACPI tables */
209  
210      ACPI_DMT_ASF,
211      ACPI_DMT_DMAR,
212      ACPI_DMT_EINJACT,
213      ACPI_DMT_EINJINST,
214      ACPI_DMT_ERSTACT,
215      ACPI_DMT_ERSTINST,
216      ACPI_DMT_FADTPM,
217      ACPI_DMT_HEST,
218      ACPI_DMT_HESTNTFY,
219      ACPI_DMT_HESTNTYP,
220      ACPI_DMT_IVRS,
221      ACPI_DMT_MADT,
222      ACPI_DMT_PMTT,
223      ACPI_DMT_SLIC,
224      ACPI_DMT_SRAT,
225  
226      /* Special opcodes */
227  
228      ACPI_DMT_EXTRA_TEXT,
229      ACPI_DMT_EXIT
230  
231  } ACPI_ENTRY_TYPES;
232  
233  typedef
234  void (*ACPI_DMTABLE_HANDLER) (
235      ACPI_TABLE_HEADER       *Table);
236  
237  typedef
238  ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
239      void                    **PFieldList);
240  
241  typedef struct acpi_dmtable_data
242  {
243      char                    *Signature;
244      ACPI_DMTABLE_INFO       *TableInfo;
245      ACPI_DMTABLE_HANDLER    TableHandler;
246      ACPI_CMTABLE_HANDLER    CmTableHandler;
247      const unsigned char     *Template;
248      char                    *Name;
249  
250  } ACPI_DMTABLE_DATA;
251  
252  
253  typedef struct acpi_op_walk_info
254  {
255      UINT32                  Level;
256      UINT32                  LastLevel;
257      UINT32                  Count;
258      UINT32                  BitOffset;
259      UINT32                  Flags;
260      ACPI_WALK_STATE         *WalkState;
261  
262  } ACPI_OP_WALK_INFO;
263  
264  /*
265   * TBD - another copy of this is in asltypes.h, fix
266   */
267  #ifndef ASL_WALK_CALLBACK_DEFINED
268  typedef
269  ACPI_STATUS (*ASL_WALK_CALLBACK) (
270      ACPI_PARSE_OBJECT           *Op,
271      UINT32                      Level,
272      void                        *Context);
273  #define ASL_WALK_CALLBACK_DEFINED
274  #endif
275  
276  typedef
277  void (*ACPI_RESOURCE_HANDLER) (
278      AML_RESOURCE            *Resource,
279      UINT32                  Length,
280      UINT32                  Level);
281  
282  typedef struct acpi_resource_tag
283  {
284      UINT32                  BitIndex;
285      char                    *Tag;
286  
287  } ACPI_RESOURCE_TAG;
288  
289  /* Strings used for decoding flags to ASL keywords */
290  
291  extern const char               *AcpiGbl_WordDecode[];
292  extern const char               *AcpiGbl_IrqDecode[];
293  extern const char               *AcpiGbl_LockRule[];
294  extern const char               *AcpiGbl_AccessTypes[];
295  extern const char               *AcpiGbl_UpdateRules[];
296  extern const char               *AcpiGbl_MatchOps[];
297  
298  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
299  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
300  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
301  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
302  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
303  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
304  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
305  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
306  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
307  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
308  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBgrt[];
309  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
310  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
311  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt0[];
312  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt1[];
313  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2[];
314  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2[];
315  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Device[];
316  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Addr[];
317  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Size[];
318  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Name[];
319  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
320  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
321  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
322  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
323  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
324  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
325  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
326  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
327  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
328  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
329  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
330  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
331  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
332  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
333  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
334  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
335  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
336  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
337  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
338  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
339  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
340  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
341  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
342  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
343  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
344  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
345  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
346  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
347  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
348  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
349  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
350  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
351  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
352  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
353  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
354  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
355  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
356  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
357  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
358  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
359  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
360  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
361  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
362  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
363  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
364  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
365  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
366  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
367  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
368  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
369  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
370  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
371  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
372  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
373  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
374  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
375  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
376  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
377  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
378  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
379  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
380  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
381  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
382  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
383  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
384  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
385  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
386  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
387  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
388  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
389  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
390  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMtmr[];
391  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMtmr0[];
392  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
393  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
394  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
395  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1a[];
396  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
397  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
398  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
399  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
400  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
401  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
402  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
403  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
404  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
405  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
406  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
407  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlicHdr[];
408  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic0[];
409  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic1[];
410  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
411  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
412  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
413  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
414  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
415  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
416  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
417  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
418  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
419  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2[];
420  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
421  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc[];
422  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc0[];
423  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
424  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
425  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
426  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
427  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
428  
429  extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
430  
431  
432  /*
433   * dmtable
434   */
435  extern ACPI_DMTABLE_DATA        AcpiDmTableData[];
436  
437  UINT8
438  AcpiDmGenerateChecksum (
439      void                    *Table,
440      UINT32                  Length,
441      UINT8                   OriginalChecksum);
442  
443  ACPI_DMTABLE_DATA *
444  AcpiDmGetTableData (
445      char                    *Signature);
446  
447  void
448  AcpiDmDumpDataTable (
449      ACPI_TABLE_HEADER       *Table);
450  
451  ACPI_STATUS
452  AcpiDmDumpTable (
453      UINT32                  TableLength,
454      UINT32                  TableOffset,
455      void                    *Table,
456      UINT32                  SubTableLength,
457      ACPI_DMTABLE_INFO        *Info);
458  
459  void
460  AcpiDmLineHeader (
461      UINT32                  Offset,
462      UINT32                  ByteLength,
463      char                    *Name);
464  
465  void
466  AcpiDmLineHeader2 (
467      UINT32                  Offset,
468      UINT32                  ByteLength,
469      char                    *Name,
470      UINT32                  Value);
471  
472  
473  /*
474   * dmtbdump
475   */
476  void
477  AcpiDmDumpAsf (
478      ACPI_TABLE_HEADER       *Table);
479  
480  void
481  AcpiDmDumpCpep (
482      ACPI_TABLE_HEADER       *Table);
483  
484  void
485  AcpiDmDumpCsrt (
486      ACPI_TABLE_HEADER       *Table);
487  
488  void
489  AcpiDmDumpDbg2 (
490      ACPI_TABLE_HEADER       *Table);
491  
492  void
493  AcpiDmDumpDmar (
494      ACPI_TABLE_HEADER       *Table);
495  
496  void
497  AcpiDmDumpEinj (
498      ACPI_TABLE_HEADER       *Table);
499  
500  void
501  AcpiDmDumpErst (
502      ACPI_TABLE_HEADER       *Table);
503  
504  void
505  AcpiDmDumpFadt (
506      ACPI_TABLE_HEADER       *Table);
507  
508  void
509  AcpiDmDumpFpdt (
510      ACPI_TABLE_HEADER       *Table);
511  
512  void
513  AcpiDmDumpHest (
514      ACPI_TABLE_HEADER       *Table);
515  
516  void
517  AcpiDmDumpIvrs (
518      ACPI_TABLE_HEADER       *Table);
519  
520  void
521  AcpiDmDumpMadt (
522      ACPI_TABLE_HEADER       *Table);
523  
524  void
525  AcpiDmDumpMcfg (
526      ACPI_TABLE_HEADER       *Table);
527  
528  void
529  AcpiDmDumpMpst (
530      ACPI_TABLE_HEADER       *Table);
531  
532  void
533  AcpiDmDumpMsct (
534      ACPI_TABLE_HEADER       *Table);
535  
536  void
537  AcpiDmDumpMtmr (
538      ACPI_TABLE_HEADER       *Table);
539  
540  void
541  AcpiDmDumpPcct (
542      ACPI_TABLE_HEADER       *Table);
543  
544  void
545  AcpiDmDumpPmtt (
546      ACPI_TABLE_HEADER       *Table);
547  
548  UINT32
549  AcpiDmDumpRsdp (
550      ACPI_TABLE_HEADER       *Table);
551  
552  void
553  AcpiDmDumpRsdt (
554      ACPI_TABLE_HEADER       *Table);
555  
556  UINT32
557  AcpiDmDumpS3pt (
558      ACPI_TABLE_HEADER       *Table);
559  
560  void
561  AcpiDmDumpSlic (
562      ACPI_TABLE_HEADER       *Table);
563  
564  void
565  AcpiDmDumpSlit (
566      ACPI_TABLE_HEADER       *Table);
567  
568  void
569  AcpiDmDumpSrat (
570      ACPI_TABLE_HEADER       *Table);
571  
572  void
573  AcpiDmDumpVrtc (
574      ACPI_TABLE_HEADER       *Table);
575  
576  void
577  AcpiDmDumpWdat (
578      ACPI_TABLE_HEADER       *Table);
579  
580  void
581  AcpiDmDumpXsdt (
582      ACPI_TABLE_HEADER       *Table);
583  
584  
585  /*
586   * dmwalk
587   */
588  void
589  AcpiDmDisassemble (
590      ACPI_WALK_STATE         *WalkState,
591      ACPI_PARSE_OBJECT       *Origin,
592      UINT32                  NumOpcodes);
593  
594  void
595  AcpiDmWalkParseTree (
596      ACPI_PARSE_OBJECT       *Op,
597      ASL_WALK_CALLBACK       DescendingCallback,
598      ASL_WALK_CALLBACK       AscendingCallback,
599      void                    *Context);
600  
601  
602  /*
603   * dmopcode
604   */
605  void
606  AcpiDmDisassembleOneOp (
607      ACPI_WALK_STATE         *WalkState,
608      ACPI_OP_WALK_INFO       *Info,
609      ACPI_PARSE_OBJECT       *Op);
610  
611  void
612  AcpiDmDecodeInternalObject (
613      ACPI_OPERAND_OBJECT     *ObjDesc);
614  
615  UINT32
616  AcpiDmListType (
617      ACPI_PARSE_OBJECT       *Op);
618  
619  void
620  AcpiDmMethodFlags (
621      ACPI_PARSE_OBJECT       *Op);
622  
623  void
624  AcpiDmPredefinedDescription (
625      ACPI_PARSE_OBJECT       *Op);
626  
627  void
628  AcpiDmFieldPredefinedDescription (
629      ACPI_PARSE_OBJECT       *Op);
630  
631  void
632  AcpiDmFieldFlags (
633      ACPI_PARSE_OBJECT       *Op);
634  
635  void
636  AcpiDmAddressSpace (
637      UINT8                   SpaceId);
638  
639  void
640  AcpiDmRegionFlags (
641      ACPI_PARSE_OBJECT       *Op);
642  
643  void
644  AcpiDmMatchOp (
645      ACPI_PARSE_OBJECT       *Op);
646  
647  
648  /*
649   * dmnames
650   */
651  UINT32
652  AcpiDmDumpName (
653      UINT32                  Name);
654  
655  ACPI_STATUS
656  AcpiPsDisplayObjectPathname (
657      ACPI_WALK_STATE         *WalkState,
658      ACPI_PARSE_OBJECT       *Op);
659  
660  void
661  AcpiDmNamestring (
662      char                    *Name);
663  
664  
665  /*
666   * dmobject
667   */
668  void
669  AcpiDmDisplayInternalObject (
670      ACPI_OPERAND_OBJECT     *ObjDesc,
671      ACPI_WALK_STATE         *WalkState);
672  
673  void
674  AcpiDmDisplayArguments (
675      ACPI_WALK_STATE         *WalkState);
676  
677  void
678  AcpiDmDisplayLocals (
679      ACPI_WALK_STATE         *WalkState);
680  
681  void
682  AcpiDmDumpMethodInfo (
683      ACPI_STATUS             Status,
684      ACPI_WALK_STATE         *WalkState,
685      ACPI_PARSE_OBJECT       *Op);
686  
687  
688  /*
689   * dmbuffer
690   */
691  void
692  AcpiDmDisasmByteList (
693      UINT32                  Level,
694      UINT8                   *ByteData,
695      UINT32                  ByteCount);
696  
697  void
698  AcpiDmByteList (
699      ACPI_OP_WALK_INFO       *Info,
700      ACPI_PARSE_OBJECT       *Op);
701  
702  void
703  AcpiDmIsEisaId (
704      ACPI_PARSE_OBJECT       *Op);
705  
706  void
707  AcpiDmEisaId (
708      UINT32                  EncodedId);
709  
710  BOOLEAN
711  AcpiDmIsUnicodeBuffer (
712      ACPI_PARSE_OBJECT       *Op);
713  
714  BOOLEAN
715  AcpiDmIsStringBuffer (
716      ACPI_PARSE_OBJECT       *Op);
717  
718  BOOLEAN
719  AcpiDmIsPldBuffer (
720      ACPI_PARSE_OBJECT       *Op);
721  
722  
723  /*
724   * dmdeferred
725   */
726  ACPI_STATUS
727  AcpiDmParseDeferredOps (
728      ACPI_PARSE_OBJECT       *Root);
729  
730  
731  /*
732   * dmextern
733   */
734  ACPI_STATUS
735  AcpiDmAddToExternalFileList (
736      char                    *PathList);
737  
738  void
739  AcpiDmClearExternalFileList (
740      void);
741  
742  void
743  AcpiDmAddToExternalList (
744      ACPI_PARSE_OBJECT       *Op,
745      char                    *Path,
746      UINT8                   Type,
747      UINT32                  Value);
748  
749  void
750  AcpiDmAddExternalsToNamespace (
751      void);
752  
753  UINT32
754  AcpiDmGetExternalMethodCount (
755      void);
756  
757  void
758  AcpiDmClearExternalList (
759      void);
760  
761  void
762  AcpiDmEmitExternals (
763      void);
764  
765  void
766  AcpiDmUnresolvedWarning (
767      UINT8                   Type);
768  
769  void
770  AcpiDmGetExternalsFromFile (
771      void);
772  
773  /*
774   * dmresrc
775   */
776  void
777  AcpiDmDumpInteger8 (
778      UINT8                   Value,
779      char                    *Name);
780  
781  void
782  AcpiDmDumpInteger16 (
783      UINT16                  Value,
784      char                    *Name);
785  
786  void
787  AcpiDmDumpInteger32 (
788      UINT32                  Value,
789      char                    *Name);
790  
791  void
792  AcpiDmDumpInteger64 (
793      UINT64                  Value,
794      char                    *Name);
795  
796  void
797  AcpiDmResourceTemplate (
798      ACPI_OP_WALK_INFO       *Info,
799      ACPI_PARSE_OBJECT       *Op,
800      UINT8                   *ByteData,
801      UINT32                  ByteCount);
802  
803  ACPI_STATUS
804  AcpiDmIsResourceTemplate (
805      ACPI_WALK_STATE         *WalkState,
806      ACPI_PARSE_OBJECT       *Op);
807  
808  void
809  AcpiDmBitList (
810      UINT16                  Mask);
811  
812  void
813  AcpiDmDescriptorName (
814      void);
815  
816  
817  /*
818   * dmresrcl
819   */
820  void
821  AcpiDmWordDescriptor (
822      AML_RESOURCE            *Resource,
823      UINT32                  Length,
824      UINT32                  Level);
825  
826  void
827  AcpiDmDwordDescriptor (
828      AML_RESOURCE            *Resource,
829      UINT32                  Length,
830      UINT32                  Level);
831  
832  void
833  AcpiDmExtendedDescriptor (
834      AML_RESOURCE            *Resource,
835      UINT32                  Length,
836      UINT32                  Level);
837  
838  void
839  AcpiDmQwordDescriptor (
840      AML_RESOURCE            *Resource,
841      UINT32                  Length,
842      UINT32                  Level);
843  
844  void
845  AcpiDmMemory24Descriptor (
846      AML_RESOURCE            *Resource,
847      UINT32                  Length,
848      UINT32                  Level);
849  
850  void
851  AcpiDmMemory32Descriptor (
852      AML_RESOURCE            *Resource,
853      UINT32                  Length,
854      UINT32                  Level);
855  
856  void
857  AcpiDmFixedMemory32Descriptor (
858      AML_RESOURCE            *Resource,
859      UINT32                  Length,
860      UINT32                  Level);
861  
862  void
863  AcpiDmGenericRegisterDescriptor (
864      AML_RESOURCE            *Resource,
865      UINT32                  Length,
866      UINT32                  Level);
867  
868  void
869  AcpiDmInterruptDescriptor (
870      AML_RESOURCE            *Resource,
871      UINT32                  Length,
872      UINT32                  Level);
873  
874  void
875  AcpiDmVendorLargeDescriptor (
876      AML_RESOURCE            *Resource,
877      UINT32                  Length,
878      UINT32                  Level);
879  
880  void
881  AcpiDmGpioDescriptor (
882      AML_RESOURCE            *Resource,
883      UINT32                  Length,
884      UINT32                  Level);
885  
886  void
887  AcpiDmSerialBusDescriptor (
888      AML_RESOURCE            *Resource,
889      UINT32                  Length,
890      UINT32                  Level);
891  
892  void
893  AcpiDmVendorCommon (
894      char                    *Name,
895      UINT8                   *ByteData,
896      UINT32                  Length,
897      UINT32                  Level);
898  
899  
900  /*
901   * dmresrcs
902   */
903  void
904  AcpiDmIrqDescriptor (
905      AML_RESOURCE            *Resource,
906      UINT32                  Length,
907      UINT32                  Level);
908  
909  void
910  AcpiDmDmaDescriptor (
911      AML_RESOURCE            *Resource,
912      UINT32                  Length,
913      UINT32                  Level);
914  
915  void
916  AcpiDmFixedDmaDescriptor (
917      AML_RESOURCE            *Resource,
918      UINT32                  Length,
919      UINT32                  Level);
920  
921  void
922  AcpiDmIoDescriptor (
923      AML_RESOURCE            *Resource,
924      UINT32                  Length,
925      UINT32                  Level);
926  
927  void
928  AcpiDmFixedIoDescriptor (
929      AML_RESOURCE            *Resource,
930      UINT32                  Length,
931      UINT32                  Level);
932  
933  void
934  AcpiDmStartDependentDescriptor (
935      AML_RESOURCE            *Resource,
936      UINT32                  Length,
937      UINT32                  Level);
938  
939  void
940  AcpiDmEndDependentDescriptor (
941      AML_RESOURCE            *Resource,
942      UINT32                  Length,
943      UINT32                  Level);
944  
945  void
946  AcpiDmVendorSmallDescriptor (
947      AML_RESOURCE            *Resource,
948      UINT32                  Length,
949      UINT32                  Level);
950  
951  
952  /*
953   * dmutils
954   */
955  void
956  AcpiDmDecodeAttribute (
957      UINT8                   Attribute);
958  
959  void
960  AcpiDmIndent (
961      UINT32                  Level);
962  
963  BOOLEAN
964  AcpiDmCommaIfListMember (
965      ACPI_PARSE_OBJECT       *Op);
966  
967  void
968  AcpiDmCommaIfFieldMember (
969      ACPI_PARSE_OBJECT       *Op);
970  
971  
972  /*
973   * dmrestag
974   */
975  void
976  AcpiDmFindResources (
977      ACPI_PARSE_OBJECT       *Root);
978  
979  void
980  AcpiDmCheckResourceReference (
981      ACPI_PARSE_OBJECT       *Op,
982      ACPI_WALK_STATE         *WalkState);
983  
984  
985  /*
986   * acdisasm
987   */
988  void
989  AdDisassemblerHeader (
990      char                    *Filename);
991  
992  
993  #endif  /* __ACDISASM_H__ */
994