Subversion Repositories Kolibri OS

Rev

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