Subversion Repositories Kolibri OS

Rev

Rev 1498 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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 - 2011, 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.     UINT8                       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, used as a flag shift value
  156.  */
  157. #define ACPI_DMT_FLAG0                  0
  158. #define ACPI_DMT_FLAG1                  1
  159. #define ACPI_DMT_FLAG2                  2
  160. #define ACPI_DMT_FLAG3                  3
  161. #define ACPI_DMT_FLAG4                  4
  162. #define ACPI_DMT_FLAG5                  5
  163. #define ACPI_DMT_FLAG6                  6
  164. #define ACPI_DMT_FLAG7                  7
  165. #define ACPI_DMT_FLAGS0                 8
  166. #define ACPI_DMT_FLAGS2                 9
  167. #define ACPI_DMT_UINT8                  10
  168. #define ACPI_DMT_UINT16                 11
  169. #define ACPI_DMT_UINT24                 12
  170. #define ACPI_DMT_UINT32                 13
  171. #define ACPI_DMT_UINT56                 14
  172. #define ACPI_DMT_UINT64                 15
  173. #define ACPI_DMT_STRING                 16
  174. #define ACPI_DMT_NAME4                  17
  175. #define ACPI_DMT_NAME6                  18
  176. #define ACPI_DMT_NAME8                  19
  177. #define ACPI_DMT_CHKSUM                 20
  178. #define ACPI_DMT_SPACEID                21
  179. #define ACPI_DMT_GAS                    22
  180. #define ACPI_DMT_ASF                    23
  181. #define ACPI_DMT_DMAR                   24
  182. #define ACPI_DMT_HEST                   25
  183. #define ACPI_DMT_HESTNTFY               26
  184. #define ACPI_DMT_HESTNTYP               27
  185. #define ACPI_DMT_MADT                   28
  186. #define ACPI_DMT_SRAT                   29
  187. #define ACPI_DMT_EXIT                   30
  188. #define ACPI_DMT_SIG                    31
  189. #define ACPI_DMT_FADTPM                 32
  190. #define ACPI_DMT_BUF16                  33
  191. #define ACPI_DMT_IVRS                   34
  192. #define ACPI_DMT_BUFFER                 35
  193. #define ACPI_DMT_PCI_PATH               36
  194. #define ACPI_DMT_EINJACT                37
  195. #define ACPI_DMT_EINJINST               38
  196. #define ACPI_DMT_ERSTACT                39
  197. #define ACPI_DMT_ERSTINST               40
  198. #define ACPI_DMT_ACCWIDTH               41
  199. #define ACPI_DMT_UNICODE                42
  200. #define ACPI_DMT_UUID                   43
  201. #define ACPI_DMT_DEVICE_PATH            44
  202. #define ACPI_DMT_LABEL                  45
  203. #define ACPI_DMT_BUF7                   46
  204. #define ACPI_DMT_BUF128                 47
  205. #define ACPI_DMT_SLIC                   48
  206.  
  207. typedef
  208. void (*ACPI_DMTABLE_HANDLER) (
  209.     ACPI_TABLE_HEADER       *Table);
  210.  
  211. typedef
  212. ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
  213.     void                    **PFieldList);
  214.  
  215. typedef struct acpi_dmtable_data
  216. {
  217.     char                    *Signature;
  218.     ACPI_DMTABLE_INFO       *TableInfo;
  219.     ACPI_DMTABLE_HANDLER    TableHandler;
  220.     ACPI_CMTABLE_HANDLER    CmTableHandler;
  221.     const unsigned char     *Template;
  222.     char                    *Name;
  223.  
  224. } ACPI_DMTABLE_DATA;
  225.  
  226.  
  227. typedef struct acpi_op_walk_info
  228. {
  229.     UINT32                  Level;
  230.     UINT32                  LastLevel;
  231.     UINT32                  Count;
  232.     UINT32                  BitOffset;
  233.     UINT32                  Flags;
  234.     ACPI_WALK_STATE         *WalkState;
  235.  
  236. } ACPI_OP_WALK_INFO;
  237.  
  238. /*
  239.  * TBD - another copy of this is in asltypes.h, fix
  240.  */
  241. #ifndef ASL_WALK_CALLBACK_DEFINED
  242. typedef
  243. ACPI_STATUS (*ASL_WALK_CALLBACK) (
  244.     ACPI_PARSE_OBJECT           *Op,
  245.     UINT32                      Level,
  246.     void                        *Context);
  247. #define ASL_WALK_CALLBACK_DEFINED
  248. #endif
  249.  
  250.  
  251. typedef struct acpi_resource_tag
  252. {
  253.     UINT32                  BitIndex;
  254.     char                    *Tag;
  255.  
  256. } ACPI_RESOURCE_TAG;
  257.  
  258. /* Strings used for decoding flags to ASL keywords */
  259.  
  260. extern const char               *AcpiGbl_WordDecode[];
  261. extern const char               *AcpiGbl_IrqDecode[];
  262. extern const char               *AcpiGbl_LockRule[];
  263. extern const char               *AcpiGbl_AccessTypes[];
  264. extern const char               *AcpiGbl_UpdateRules[];
  265. extern const char               *AcpiGbl_MatchOps[];
  266.  
  267. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
  268. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
  269. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
  270. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
  271. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
  272. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
  273. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
  274. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
  275. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
  276. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
  277. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
  278. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
  279. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
  280. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
  281. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
  282. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
  283. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
  284. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
  285. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
  286. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
  287. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
  288. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
  289. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
  290. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
  291. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
  292. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
  293. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
  294. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
  295. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
  296. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
  297. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
  298. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
  299. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
  300. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
  301. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
  302. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
  303. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
  304. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
  305. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
  306. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
  307. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
  308. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
  309. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
  310. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
  311. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
  312. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
  313. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
  314. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
  315. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
  316. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
  317. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
  318. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
  319. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
  320. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
  321. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
  322. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
  323. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
  324. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
  325. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
  326. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
  327. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
  328. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
  329. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
  330. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
  331. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
  332. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
  333. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
  334. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
  335. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
  336. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
  337. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
  338. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlicHdr[];
  339. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic0[];
  340. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic1[];
  341. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
  342. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
  343. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
  344. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
  345. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
  346. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
  347. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
  348. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
  349. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
  350. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
  351. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
  352. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
  353. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
  354. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
  355. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
  356.  
  357. extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
  358.  
  359.  
  360. /*
  361.  * dmtable
  362.  */
  363. extern ACPI_DMTABLE_DATA        AcpiDmTableData[];
  364.  
  365. UINT8
  366. AcpiDmGenerateChecksum (
  367.     void                    *Table,
  368.     UINT32                  Length,
  369.     UINT8                   OriginalChecksum);
  370.  
  371. ACPI_DMTABLE_DATA *
  372. AcpiDmGetTableData (
  373.     char                    *Signature);
  374.  
  375. void
  376. AcpiDmDumpDataTable (
  377.     ACPI_TABLE_HEADER       *Table);
  378.  
  379. ACPI_STATUS
  380. AcpiDmDumpTable (
  381.     UINT32                  TableLength,
  382.     UINT32                  TableOffset,
  383.     void                    *Table,
  384.     UINT32                  SubTableLength,
  385.     ACPI_DMTABLE_INFO        *Info);
  386.  
  387. void
  388. AcpiDmLineHeader (
  389.     UINT32                  Offset,
  390.     UINT32                  ByteLength,
  391.     char                    *Name);
  392.  
  393. void
  394. AcpiDmLineHeader2 (
  395.     UINT32                  Offset,
  396.     UINT32                  ByteLength,
  397.     char                    *Name,
  398.     UINT32                  Value);
  399.  
  400.  
  401. /*
  402.  * dmtbdump
  403.  */
  404. void
  405. AcpiDmDumpAsf (
  406.     ACPI_TABLE_HEADER       *Table);
  407.  
  408. void
  409. AcpiDmDumpCpep (
  410.     ACPI_TABLE_HEADER       *Table);
  411.  
  412. void
  413. AcpiDmDumpDmar (
  414.     ACPI_TABLE_HEADER       *Table);
  415.  
  416. void
  417. AcpiDmDumpEinj (
  418.     ACPI_TABLE_HEADER       *Table);
  419.  
  420. void
  421. AcpiDmDumpErst (
  422.     ACPI_TABLE_HEADER       *Table);
  423.  
  424. void
  425. AcpiDmDumpFadt (
  426.     ACPI_TABLE_HEADER       *Table);
  427.  
  428. void
  429. AcpiDmDumpHest (
  430.     ACPI_TABLE_HEADER       *Table);
  431.  
  432. void
  433. AcpiDmDumpIvrs (
  434.     ACPI_TABLE_HEADER       *Table);
  435.  
  436. void
  437. AcpiDmDumpMcfg (
  438.     ACPI_TABLE_HEADER       *Table);
  439.  
  440. void
  441. AcpiDmDumpMadt (
  442.     ACPI_TABLE_HEADER       *Table);
  443.  
  444. void
  445. AcpiDmDumpMsct (
  446.     ACPI_TABLE_HEADER       *Table);
  447.  
  448. UINT32
  449. AcpiDmDumpRsdp (
  450.     ACPI_TABLE_HEADER       *Table);
  451.  
  452. void
  453. AcpiDmDumpRsdt (
  454.     ACPI_TABLE_HEADER       *Table);
  455.  
  456. void
  457. AcpiDmDumpSlic (
  458.     ACPI_TABLE_HEADER       *Table);
  459.  
  460. void
  461. AcpiDmDumpSlit (
  462.     ACPI_TABLE_HEADER       *Table);
  463.  
  464. void
  465. AcpiDmDumpSrat (
  466.     ACPI_TABLE_HEADER       *Table);
  467.  
  468. void
  469. AcpiDmDumpWdat (
  470.     ACPI_TABLE_HEADER       *Table);
  471.  
  472. void
  473. AcpiDmDumpXsdt (
  474.     ACPI_TABLE_HEADER       *Table);
  475.  
  476.  
  477. /*
  478.  * dmwalk
  479.  */
  480. void
  481. AcpiDmDisassemble (
  482.     ACPI_WALK_STATE         *WalkState,
  483.     ACPI_PARSE_OBJECT       *Origin,
  484.     UINT32                  NumOpcodes);
  485.  
  486. void
  487. AcpiDmWalkParseTree (
  488.     ACPI_PARSE_OBJECT       *Op,
  489.     ASL_WALK_CALLBACK       DescendingCallback,
  490.     ASL_WALK_CALLBACK       AscendingCallback,
  491.     void                    *Context);
  492.  
  493.  
  494. /*
  495.  * dmopcode
  496.  */
  497. void
  498. AcpiDmDisassembleOneOp (
  499.     ACPI_WALK_STATE         *WalkState,
  500.     ACPI_OP_WALK_INFO       *Info,
  501.     ACPI_PARSE_OBJECT       *Op);
  502.  
  503. void
  504. AcpiDmDecodeInternalObject (
  505.     ACPI_OPERAND_OBJECT     *ObjDesc);
  506.  
  507. UINT32
  508. AcpiDmListType (
  509.     ACPI_PARSE_OBJECT       *Op);
  510.  
  511. void
  512. AcpiDmMethodFlags (
  513.     ACPI_PARSE_OBJECT       *Op);
  514.  
  515. void
  516. AcpiDmFieldFlags (
  517.     ACPI_PARSE_OBJECT       *Op);
  518.  
  519. void
  520. AcpiDmAddressSpace (
  521.     UINT8                   SpaceId);
  522.  
  523. void
  524. AcpiDmRegionFlags (
  525.     ACPI_PARSE_OBJECT       *Op);
  526.  
  527. void
  528. AcpiDmMatchOp (
  529.     ACPI_PARSE_OBJECT       *Op);
  530.  
  531.  
  532. /*
  533.  * dmnames
  534.  */
  535. UINT32
  536. AcpiDmDumpName (
  537.     UINT32                  Name);
  538.  
  539. ACPI_STATUS
  540. AcpiPsDisplayObjectPathname (
  541.     ACPI_WALK_STATE         *WalkState,
  542.     ACPI_PARSE_OBJECT       *Op);
  543.  
  544. void
  545. AcpiDmNamestring (
  546.     char                    *Name);
  547.  
  548.  
  549. /*
  550.  * dmobject
  551.  */
  552. void
  553. AcpiDmDisplayInternalObject (
  554.     ACPI_OPERAND_OBJECT     *ObjDesc,
  555.     ACPI_WALK_STATE         *WalkState);
  556.  
  557. void
  558. AcpiDmDisplayArguments (
  559.     ACPI_WALK_STATE         *WalkState);
  560.  
  561. void
  562. AcpiDmDisplayLocals (
  563.     ACPI_WALK_STATE         *WalkState);
  564.  
  565. void
  566. AcpiDmDumpMethodInfo (
  567.     ACPI_STATUS             Status,
  568.     ACPI_WALK_STATE         *WalkState,
  569.     ACPI_PARSE_OBJECT       *Op);
  570.  
  571.  
  572. /*
  573.  * dmbuffer
  574.  */
  575. void
  576. AcpiDmDisasmByteList (
  577.     UINT32                  Level,
  578.     UINT8                   *ByteData,
  579.     UINT32                  ByteCount);
  580.  
  581. void
  582. AcpiDmByteList (
  583.     ACPI_OP_WALK_INFO       *Info,
  584.     ACPI_PARSE_OBJECT       *Op);
  585.  
  586. void
  587. AcpiDmIsEisaId (
  588.     ACPI_PARSE_OBJECT       *Op);
  589.  
  590. void
  591. AcpiDmEisaId (
  592.     UINT32                  EncodedId);
  593.  
  594. BOOLEAN
  595. AcpiDmIsUnicodeBuffer (
  596.     ACPI_PARSE_OBJECT       *Op);
  597.  
  598. BOOLEAN
  599. AcpiDmIsStringBuffer (
  600.     ACPI_PARSE_OBJECT       *Op);
  601.  
  602.  
  603. /*
  604.  * dmextern
  605.  */
  606.  
  607. ACPI_STATUS
  608. AcpiDmAddToExternalFileList (
  609.     char                    *PathList);
  610.  
  611. void
  612. AcpiDmClearExternalFileList (
  613.     void);
  614.  
  615. void
  616. AcpiDmAddToExternalList (
  617.     ACPI_PARSE_OBJECT       *Op,
  618.     char                    *Path,
  619.     UINT8                   Type,
  620.     UINT32                  Value);
  621.  
  622. void
  623. AcpiDmAddExternalsToNamespace (
  624.     void);
  625.  
  626. UINT32
  627. AcpiDmGetExternalMethodCount (
  628.     void);
  629.  
  630. void
  631. AcpiDmClearExternalList (
  632.     void);
  633.  
  634. void
  635. AcpiDmEmitExternals (
  636.     void);
  637.  
  638.  
  639. /*
  640.  * dmresrc
  641.  */
  642. void
  643. AcpiDmDumpInteger8 (
  644.     UINT8                   Value,
  645.     char                    *Name);
  646.  
  647. void
  648. AcpiDmDumpInteger16 (
  649.     UINT16                  Value,
  650.     char                    *Name);
  651.  
  652. void
  653. AcpiDmDumpInteger32 (
  654.     UINT32                  Value,
  655.     char                    *Name);
  656.  
  657. void
  658. AcpiDmDumpInteger64 (
  659.     UINT64                  Value,
  660.     char                    *Name);
  661.  
  662. void
  663. AcpiDmResourceTemplate (
  664.     ACPI_OP_WALK_INFO       *Info,
  665.     ACPI_PARSE_OBJECT       *Op,
  666.     UINT8                   *ByteData,
  667.     UINT32                  ByteCount);
  668.  
  669. ACPI_STATUS
  670. AcpiDmIsResourceTemplate (
  671.     ACPI_PARSE_OBJECT       *Op);
  672.  
  673. void
  674. AcpiDmBitList (
  675.     UINT16                  Mask);
  676.  
  677. void
  678. AcpiDmDescriptorName (
  679.     void);
  680.  
  681.  
  682. /*
  683.  * dmresrcl
  684.  */
  685. void
  686. AcpiDmWordDescriptor (
  687.     AML_RESOURCE            *Resource,
  688.     UINT32                  Length,
  689.     UINT32                  Level);
  690.  
  691. void
  692. AcpiDmDwordDescriptor (
  693.     AML_RESOURCE            *Resource,
  694.     UINT32                  Length,
  695.     UINT32                  Level);
  696.  
  697. void
  698. AcpiDmExtendedDescriptor (
  699.     AML_RESOURCE            *Resource,
  700.     UINT32                  Length,
  701.     UINT32                  Level);
  702.  
  703. void
  704. AcpiDmQwordDescriptor (
  705.     AML_RESOURCE            *Resource,
  706.     UINT32                  Length,
  707.     UINT32                  Level);
  708.  
  709. void
  710. AcpiDmMemory24Descriptor (
  711.     AML_RESOURCE            *Resource,
  712.     UINT32                  Length,
  713.     UINT32                  Level);
  714.  
  715. void
  716. AcpiDmMemory32Descriptor (
  717.     AML_RESOURCE            *Resource,
  718.     UINT32                  Length,
  719.     UINT32                  Level);
  720.  
  721. void
  722. AcpiDmFixedMemory32Descriptor (
  723.     AML_RESOURCE            *Resource,
  724.     UINT32                  Length,
  725.     UINT32                  Level);
  726.  
  727. void
  728. AcpiDmGenericRegisterDescriptor (
  729.     AML_RESOURCE            *Resource,
  730.     UINT32                  Length,
  731.     UINT32                  Level);
  732.  
  733. void
  734. AcpiDmInterruptDescriptor (
  735.     AML_RESOURCE            *Resource,
  736.     UINT32                  Length,
  737.     UINT32                  Level);
  738.  
  739. void
  740. AcpiDmVendorLargeDescriptor (
  741.     AML_RESOURCE            *Resource,
  742.     UINT32                  Length,
  743.     UINT32                  Level);
  744.  
  745. void
  746. AcpiDmVendorCommon (
  747.     char                    *Name,
  748.     UINT8                   *ByteData,
  749.     UINT32                  Length,
  750.     UINT32                  Level);
  751.  
  752.  
  753. /*
  754.  * dmresrcs
  755.  */
  756. void
  757. AcpiDmIrqDescriptor (
  758.     AML_RESOURCE            *Resource,
  759.     UINT32                  Length,
  760.     UINT32                  Level);
  761.  
  762. void
  763. AcpiDmDmaDescriptor (
  764.     AML_RESOURCE            *Resource,
  765.     UINT32                  Length,
  766.     UINT32                  Level);
  767.  
  768. void
  769. AcpiDmIoDescriptor (
  770.     AML_RESOURCE            *Resource,
  771.     UINT32                  Length,
  772.     UINT32                  Level);
  773.  
  774. void
  775. AcpiDmFixedIoDescriptor (
  776.     AML_RESOURCE            *Resource,
  777.     UINT32                  Length,
  778.     UINT32                  Level);
  779.  
  780. void
  781. AcpiDmStartDependentDescriptor (
  782.     AML_RESOURCE            *Resource,
  783.     UINT32                  Length,
  784.     UINT32                  Level);
  785.  
  786. void
  787. AcpiDmEndDependentDescriptor (
  788.     AML_RESOURCE            *Resource,
  789.     UINT32                  Length,
  790.     UINT32                  Level);
  791.  
  792. void
  793. AcpiDmVendorSmallDescriptor (
  794.     AML_RESOURCE            *Resource,
  795.     UINT32                  Length,
  796.     UINT32                  Level);
  797.  
  798.  
  799. /*
  800.  * dmutils
  801.  */
  802. void
  803. AcpiDmDecodeAttribute (
  804.     UINT8                   Attribute);
  805.  
  806. void
  807. AcpiDmIndent (
  808.     UINT32                  Level);
  809.  
  810. BOOLEAN
  811. AcpiDmCommaIfListMember (
  812.     ACPI_PARSE_OBJECT       *Op);
  813.  
  814. void
  815. AcpiDmCommaIfFieldMember (
  816.     ACPI_PARSE_OBJECT       *Op);
  817.  
  818.  
  819. /*
  820.  * dmrestag
  821.  */
  822. void
  823. AcpiDmFindResources (
  824.     ACPI_PARSE_OBJECT       *Root);
  825.  
  826. void
  827. AcpiDmCheckResourceReference (
  828.     ACPI_PARSE_OBJECT       *Op,
  829.     ACPI_WALK_STATE         *WalkState);
  830.  
  831.  
  832. /*
  833.  * acdisasm
  834.  */
  835. void
  836. AdDisassemblerHeader (
  837.     char                    *Filename);
  838.  
  839.  
  840. #endif  /* __ACDISASM_H__ */
  841.