Home | History | Annotate | Line # | Download | only in include
acinterp.h revision 1.1
      1 /******************************************************************************
      2  *
      3  * Name: acinterp.h - Interpreter subcomponent prototypes and defines
      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 __ACINTERP_H__
    117 #define __ACINTERP_H__
    118 
    119 
    120 #define ACPI_WALK_OPERANDS          (&(WalkState->Operands [WalkState->NumOperands -1]))
    121 
    122 /* Macros for tables used for debug output */
    123 
    124 #define ACPI_EXD_OFFSET(f)          (UINT8) ACPI_OFFSET (ACPI_OPERAND_OBJECT,f)
    125 #define ACPI_EXD_NSOFFSET(f)        (UINT8) ACPI_OFFSET (ACPI_NAMESPACE_NODE,f)
    126 #define ACPI_EXD_TABLE_SIZE(name)   (sizeof(name) / sizeof (ACPI_EXDUMP_INFO))
    127 
    128 /*
    129  * If possible, pack the following structures to byte alignment, since we
    130  * don't care about performance for debug output. Two cases where we cannot
    131  * pack the structures:
    132  *
    133  * 1) Hardware does not support misaligned memory transfers
    134  * 2) Compiler does not support pointers within packed structures
    135  */
    136 #if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED))
    137 #pragma pack(1)
    138 #endif
    139 
    140 typedef const struct acpi_exdump_info
    141 {
    142     UINT8                   Opcode;
    143     UINT8                   Offset;
    144     char                    *Name;
    145 
    146 } ACPI_EXDUMP_INFO;
    147 
    148 /* Values for the Opcode field above */
    149 
    150 #define ACPI_EXD_INIT                   0
    151 #define ACPI_EXD_TYPE                   1
    152 #define ACPI_EXD_UINT8                  2
    153 #define ACPI_EXD_UINT16                 3
    154 #define ACPI_EXD_UINT32                 4
    155 #define ACPI_EXD_UINT64                 5
    156 #define ACPI_EXD_LITERAL                6
    157 #define ACPI_EXD_POINTER                7
    158 #define ACPI_EXD_ADDRESS                8
    159 #define ACPI_EXD_STRING                 9
    160 #define ACPI_EXD_BUFFER                 10
    161 #define ACPI_EXD_PACKAGE                11
    162 #define ACPI_EXD_FIELD                  12
    163 #define ACPI_EXD_REFERENCE              13
    164 
    165 /* restore default alignment */
    166 
    167 #pragma pack()
    168 
    169 
    170 /*
    171  * exconvrt - object conversion
    172  */
    173 ACPI_STATUS
    174 AcpiExConvertToInteger (
    175     ACPI_OPERAND_OBJECT     *ObjDesc,
    176     ACPI_OPERAND_OBJECT     **ResultDesc,
    177     UINT32                  Flags);
    178 
    179 ACPI_STATUS
    180 AcpiExConvertToBuffer (
    181     ACPI_OPERAND_OBJECT     *ObjDesc,
    182     ACPI_OPERAND_OBJECT     **ResultDesc);
    183 
    184 ACPI_STATUS
    185 AcpiExConvertToString (
    186     ACPI_OPERAND_OBJECT     *ObjDesc,
    187     ACPI_OPERAND_OBJECT     **ResultDesc,
    188     UINT32                  Type);
    189 
    190 /* Types for ->String conversion */
    191 
    192 #define ACPI_EXPLICIT_BYTE_COPY         0x00000000
    193 #define ACPI_EXPLICIT_CONVERT_HEX       0x00000001
    194 #define ACPI_IMPLICIT_CONVERT_HEX       0x00000002
    195 #define ACPI_EXPLICIT_CONVERT_DECIMAL   0x00000003
    196 
    197 ACPI_STATUS
    198 AcpiExConvertToTargetType (
    199     ACPI_OBJECT_TYPE        DestinationType,
    200     ACPI_OPERAND_OBJECT     *SourceDesc,
    201     ACPI_OPERAND_OBJECT     **ResultDesc,
    202     ACPI_WALK_STATE         *WalkState);
    203 
    204 
    205 /*
    206  * exdebug - AML debug object
    207  */
    208 void
    209 AcpiExDoDebugObject (
    210     ACPI_OPERAND_OBJECT     *SourceDesc,
    211     UINT32                  Level,
    212     UINT32                  Index);
    213 
    214 
    215 /*
    216  * exfield - ACPI AML (p-code) execution - field manipulation
    217  */
    218 ACPI_STATUS
    219 AcpiExCommonBufferSetup (
    220     ACPI_OPERAND_OBJECT     *ObjDesc,
    221     UINT32                  BufferLength,
    222     UINT32                  *DatumCount);
    223 
    224 ACPI_STATUS
    225 AcpiExWriteWithUpdateRule (
    226     ACPI_OPERAND_OBJECT     *ObjDesc,
    227     UINT64                  Mask,
    228     UINT64                  FieldValue,
    229     UINT32                  FieldDatumByteOffset);
    230 
    231 void
    232 AcpiExGetBufferDatum(
    233     UINT64                  *Datum,
    234     void                    *Buffer,
    235     UINT32                  BufferLength,
    236     UINT32                  ByteGranularity,
    237     UINT32                  BufferOffset);
    238 
    239 void
    240 AcpiExSetBufferDatum (
    241     UINT64                  MergedDatum,
    242     void                    *Buffer,
    243     UINT32                  BufferLength,
    244     UINT32                  ByteGranularity,
    245     UINT32                  BufferOffset);
    246 
    247 ACPI_STATUS
    248 AcpiExReadDataFromField (
    249     ACPI_WALK_STATE         *WalkState,
    250     ACPI_OPERAND_OBJECT     *ObjDesc,
    251     ACPI_OPERAND_OBJECT     **RetBufferDesc);
    252 
    253 ACPI_STATUS
    254 AcpiExWriteDataToField (
    255     ACPI_OPERAND_OBJECT     *SourceDesc,
    256     ACPI_OPERAND_OBJECT     *ObjDesc,
    257     ACPI_OPERAND_OBJECT     **ResultDesc);
    258 
    259 
    260 /*
    261  * exfldio - low level field I/O
    262  */
    263 ACPI_STATUS
    264 AcpiExExtractFromField (
    265     ACPI_OPERAND_OBJECT     *ObjDesc,
    266     void                    *Buffer,
    267     UINT32                  BufferLength);
    268 
    269 ACPI_STATUS
    270 AcpiExInsertIntoField (
    271     ACPI_OPERAND_OBJECT     *ObjDesc,
    272     void                    *Buffer,
    273     UINT32                  BufferLength);
    274 
    275 ACPI_STATUS
    276 AcpiExAccessRegion (
    277     ACPI_OPERAND_OBJECT     *ObjDesc,
    278     UINT32                  FieldDatumByteOffset,
    279     UINT64                  *Value,
    280     UINT32                  ReadWrite);
    281 
    282 
    283 /*
    284  * exmisc - misc support routines
    285  */
    286 ACPI_STATUS
    287 AcpiExGetObjectReference (
    288     ACPI_OPERAND_OBJECT     *ObjDesc,
    289     ACPI_OPERAND_OBJECT     **ReturnDesc,
    290     ACPI_WALK_STATE         *WalkState);
    291 
    292 ACPI_STATUS
    293 AcpiExConcatTemplate (
    294     ACPI_OPERAND_OBJECT     *ObjDesc,
    295     ACPI_OPERAND_OBJECT     *ObjDesc2,
    296     ACPI_OPERAND_OBJECT     **ActualReturnDesc,
    297     ACPI_WALK_STATE         *WalkState);
    298 
    299 ACPI_STATUS
    300 AcpiExDoConcatenate (
    301     ACPI_OPERAND_OBJECT     *ObjDesc,
    302     ACPI_OPERAND_OBJECT     *ObjDesc2,
    303     ACPI_OPERAND_OBJECT     **ActualReturnDesc,
    304     ACPI_WALK_STATE         *WalkState);
    305 
    306 ACPI_STATUS
    307 AcpiExDoLogicalNumericOp (
    308     UINT16                  Opcode,
    309     UINT64                  Integer0,
    310     UINT64                  Integer1,
    311     BOOLEAN                 *LogicalResult);
    312 
    313 ACPI_STATUS
    314 AcpiExDoLogicalOp (
    315     UINT16                  Opcode,
    316     ACPI_OPERAND_OBJECT     *Operand0,
    317     ACPI_OPERAND_OBJECT     *Operand1,
    318     BOOLEAN                 *LogicalResult);
    319 
    320 UINT64
    321 AcpiExDoMathOp (
    322     UINT16                  Opcode,
    323     UINT64                  Operand0,
    324     UINT64                  Operand1);
    325 
    326 ACPI_STATUS
    327 AcpiExCreateMutex (
    328     ACPI_WALK_STATE         *WalkState);
    329 
    330 ACPI_STATUS
    331 AcpiExCreateProcessor (
    332     ACPI_WALK_STATE         *WalkState);
    333 
    334 ACPI_STATUS
    335 AcpiExCreatePowerResource (
    336     ACPI_WALK_STATE         *WalkState);
    337 
    338 ACPI_STATUS
    339 AcpiExCreateRegion (
    340     UINT8                   *AmlStart,
    341     UINT32                  AmlLength,
    342     UINT8                   RegionSpace,
    343     ACPI_WALK_STATE         *WalkState);
    344 
    345 ACPI_STATUS
    346 AcpiExCreateEvent (
    347     ACPI_WALK_STATE         *WalkState);
    348 
    349 ACPI_STATUS
    350 AcpiExCreateAlias (
    351     ACPI_WALK_STATE         *WalkState);
    352 
    353 ACPI_STATUS
    354 AcpiExCreateMethod (
    355     UINT8                   *AmlStart,
    356     UINT32                  AmlLength,
    357     ACPI_WALK_STATE         *WalkState);
    358 
    359 
    360 /*
    361  * exconfig - dynamic table load/unload
    362  */
    363 ACPI_STATUS
    364 AcpiExLoadOp (
    365     ACPI_OPERAND_OBJECT     *ObjDesc,
    366     ACPI_OPERAND_OBJECT     *Target,
    367     ACPI_WALK_STATE         *WalkState);
    368 
    369 ACPI_STATUS
    370 AcpiExLoadTableOp (
    371     ACPI_WALK_STATE         *WalkState,
    372     ACPI_OPERAND_OBJECT     **ReturnDesc);
    373 
    374 ACPI_STATUS
    375 AcpiExUnloadTable (
    376     ACPI_OPERAND_OBJECT     *DdbHandle);
    377 
    378 
    379 /*
    380  * exmutex - mutex support
    381  */
    382 ACPI_STATUS
    383 AcpiExAcquireMutex (
    384     ACPI_OPERAND_OBJECT     *TimeDesc,
    385     ACPI_OPERAND_OBJECT     *ObjDesc,
    386     ACPI_WALK_STATE         *WalkState);
    387 
    388 ACPI_STATUS
    389 AcpiExAcquireMutexObject (
    390     UINT16                  Timeout,
    391     ACPI_OPERAND_OBJECT     *ObjDesc,
    392     ACPI_THREAD_ID          ThreadId);
    393 
    394 ACPI_STATUS
    395 AcpiExReleaseMutex (
    396     ACPI_OPERAND_OBJECT     *ObjDesc,
    397     ACPI_WALK_STATE         *WalkState);
    398 
    399 ACPI_STATUS
    400 AcpiExReleaseMutexObject (
    401     ACPI_OPERAND_OBJECT     *ObjDesc);
    402 
    403 void
    404 AcpiExReleaseAllMutexes (
    405     ACPI_THREAD_STATE       *Thread);
    406 
    407 void
    408 AcpiExUnlinkMutex (
    409     ACPI_OPERAND_OBJECT     *ObjDesc);
    410 
    411 
    412 /*
    413  * exprep - ACPI AML execution - prep utilities
    414  */
    415 ACPI_STATUS
    416 AcpiExPrepCommonFieldObject (
    417     ACPI_OPERAND_OBJECT     *ObjDesc,
    418     UINT8                   FieldFlags,
    419     UINT8                   FieldAttribute,
    420     UINT32                  FieldBitPosition,
    421     UINT32                  FieldBitLength);
    422 
    423 ACPI_STATUS
    424 AcpiExPrepFieldValue (
    425     ACPI_CREATE_FIELD_INFO  *Info);
    426 
    427 
    428 /*
    429  * exsystem - Interface to OS services
    430  */
    431 ACPI_STATUS
    432 AcpiExSystemDoNotifyOp (
    433     ACPI_OPERAND_OBJECT     *Value,
    434     ACPI_OPERAND_OBJECT     *ObjDesc);
    435 
    436 ACPI_STATUS
    437 AcpiExSystemDoSleep(
    438     UINT64                  Time);
    439 
    440 ACPI_STATUS
    441 AcpiExSystemDoStall (
    442     UINT32                  Time);
    443 
    444 ACPI_STATUS
    445 AcpiExSystemSignalEvent(
    446     ACPI_OPERAND_OBJECT     *ObjDesc);
    447 
    448 ACPI_STATUS
    449 AcpiExSystemWaitEvent(
    450     ACPI_OPERAND_OBJECT     *Time,
    451     ACPI_OPERAND_OBJECT     *ObjDesc);
    452 
    453 ACPI_STATUS
    454 AcpiExSystemResetEvent(
    455     ACPI_OPERAND_OBJECT     *ObjDesc);
    456 
    457 ACPI_STATUS
    458 AcpiExSystemWaitSemaphore (
    459     ACPI_SEMAPHORE          Semaphore,
    460     UINT16                  Timeout);
    461 
    462 ACPI_STATUS
    463 AcpiExSystemWaitMutex (
    464     ACPI_MUTEX              Mutex,
    465     UINT16                  Timeout);
    466 
    467 /*
    468  * exoparg1 - ACPI AML execution, 1 operand
    469  */
    470 ACPI_STATUS
    471 AcpiExOpcode_0A_0T_1R (
    472     ACPI_WALK_STATE         *WalkState);
    473 
    474 ACPI_STATUS
    475 AcpiExOpcode_1A_0T_0R (
    476     ACPI_WALK_STATE         *WalkState);
    477 
    478 ACPI_STATUS
    479 AcpiExOpcode_1A_0T_1R (
    480     ACPI_WALK_STATE         *WalkState);
    481 
    482 ACPI_STATUS
    483 AcpiExOpcode_1A_1T_1R (
    484     ACPI_WALK_STATE         *WalkState);
    485 
    486 ACPI_STATUS
    487 AcpiExOpcode_1A_1T_0R (
    488     ACPI_WALK_STATE         *WalkState);
    489 
    490 /*
    491  * exoparg2 - ACPI AML execution, 2 operands
    492  */
    493 ACPI_STATUS
    494 AcpiExOpcode_2A_0T_0R (
    495     ACPI_WALK_STATE         *WalkState);
    496 
    497 ACPI_STATUS
    498 AcpiExOpcode_2A_0T_1R (
    499     ACPI_WALK_STATE         *WalkState);
    500 
    501 ACPI_STATUS
    502 AcpiExOpcode_2A_1T_1R (
    503     ACPI_WALK_STATE         *WalkState);
    504 
    505 ACPI_STATUS
    506 AcpiExOpcode_2A_2T_1R (
    507     ACPI_WALK_STATE         *WalkState);
    508 
    509 
    510 /*
    511  * exoparg3 - ACPI AML execution, 3 operands
    512  */
    513 ACPI_STATUS
    514 AcpiExOpcode_3A_0T_0R (
    515     ACPI_WALK_STATE         *WalkState);
    516 
    517 ACPI_STATUS
    518 AcpiExOpcode_3A_1T_1R (
    519     ACPI_WALK_STATE         *WalkState);
    520 
    521 
    522 /*
    523  * exoparg6 - ACPI AML execution, 6 operands
    524  */
    525 ACPI_STATUS
    526 AcpiExOpcode_6A_0T_1R (
    527     ACPI_WALK_STATE         *WalkState);
    528 
    529 
    530 /*
    531  * exresolv - Object resolution and get value functions
    532  */
    533 ACPI_STATUS
    534 AcpiExResolveToValue (
    535     ACPI_OPERAND_OBJECT     **StackPtr,
    536     ACPI_WALK_STATE         *WalkState);
    537 
    538 ACPI_STATUS
    539 AcpiExResolveMultiple (
    540     ACPI_WALK_STATE         *WalkState,
    541     ACPI_OPERAND_OBJECT     *Operand,
    542     ACPI_OBJECT_TYPE        *ReturnType,
    543     ACPI_OPERAND_OBJECT     **ReturnDesc);
    544 
    545 
    546 /*
    547  * exresnte - resolve namespace node
    548  */
    549 ACPI_STATUS
    550 AcpiExResolveNodeToValue (
    551     ACPI_NAMESPACE_NODE     **StackPtr,
    552     ACPI_WALK_STATE         *WalkState);
    553 
    554 
    555 /*
    556  * exresop - resolve operand to value
    557  */
    558 ACPI_STATUS
    559 AcpiExResolveOperands (
    560     UINT16                  Opcode,
    561     ACPI_OPERAND_OBJECT     **StackPtr,
    562     ACPI_WALK_STATE         *WalkState);
    563 
    564 
    565 /*
    566  * exdump - Interpreter debug output routines
    567  */
    568 void
    569 AcpiExDumpOperand (
    570     ACPI_OPERAND_OBJECT     *ObjDesc,
    571     UINT32                  Depth);
    572 
    573 void
    574 AcpiExDumpOperands (
    575     ACPI_OPERAND_OBJECT     **Operands,
    576     const char              *OpcodeName,
    577     UINT32                  NumOpcodes);
    578 
    579 void
    580 AcpiExDumpObjectDescriptor (
    581     ACPI_OPERAND_OBJECT     *Object,
    582     UINT32                  Flags);
    583 
    584 void
    585 AcpiExDumpNamespaceNode (
    586     ACPI_NAMESPACE_NODE     *Node,
    587     UINT32                  Flags);
    588 
    589 
    590 /*
    591  * exnames - AML namestring support
    592  */
    593 ACPI_STATUS
    594 AcpiExGetNameString (
    595     ACPI_OBJECT_TYPE        DataType,
    596     UINT8                   *InAmlAddress,
    597     char                    **OutNameString,
    598     UINT32                  *OutNameLength);
    599 
    600 
    601 /*
    602  * exstore - Object store support
    603  */
    604 ACPI_STATUS
    605 AcpiExStore (
    606     ACPI_OPERAND_OBJECT     *ValDesc,
    607     ACPI_OPERAND_OBJECT     *DestDesc,
    608     ACPI_WALK_STATE         *WalkState);
    609 
    610 ACPI_STATUS
    611 AcpiExStoreObjectToNode (
    612     ACPI_OPERAND_OBJECT     *SourceDesc,
    613     ACPI_NAMESPACE_NODE     *Node,
    614     ACPI_WALK_STATE         *WalkState,
    615     UINT8                   ImplicitConversion);
    616 
    617 #define ACPI_IMPLICIT_CONVERSION        TRUE
    618 #define ACPI_NO_IMPLICIT_CONVERSION     FALSE
    619 
    620 
    621 /*
    622  * exstoren - resolve/store object
    623  */
    624 ACPI_STATUS
    625 AcpiExResolveObject (
    626     ACPI_OPERAND_OBJECT     **SourceDescPtr,
    627     ACPI_OBJECT_TYPE        TargetType,
    628     ACPI_WALK_STATE         *WalkState);
    629 
    630 ACPI_STATUS
    631 AcpiExStoreObjectToObject (
    632     ACPI_OPERAND_OBJECT     *SourceDesc,
    633     ACPI_OPERAND_OBJECT     *DestDesc,
    634     ACPI_OPERAND_OBJECT     **NewDesc,
    635     ACPI_WALK_STATE         *WalkState);
    636 
    637 
    638 /*
    639  * exstorob - store object - buffer/string
    640  */
    641 ACPI_STATUS
    642 AcpiExStoreBufferToBuffer (
    643     ACPI_OPERAND_OBJECT     *SourceDesc,
    644     ACPI_OPERAND_OBJECT     *TargetDesc);
    645 
    646 ACPI_STATUS
    647 AcpiExStoreStringToString (
    648     ACPI_OPERAND_OBJECT     *SourceDesc,
    649     ACPI_OPERAND_OBJECT     *TargetDesc);
    650 
    651 
    652 /*
    653  * excopy - object copy
    654  */
    655 ACPI_STATUS
    656 AcpiExCopyIntegerToIndexField (
    657     ACPI_OPERAND_OBJECT     *SourceDesc,
    658     ACPI_OPERAND_OBJECT     *TargetDesc);
    659 
    660 ACPI_STATUS
    661 AcpiExCopyIntegerToBankField (
    662     ACPI_OPERAND_OBJECT     *SourceDesc,
    663     ACPI_OPERAND_OBJECT     *TargetDesc);
    664 
    665 ACPI_STATUS
    666 AcpiExCopyDataToNamedField (
    667     ACPI_OPERAND_OBJECT     *SourceDesc,
    668     ACPI_NAMESPACE_NODE     *Node);
    669 
    670 ACPI_STATUS
    671 AcpiExCopyIntegerToBufferField (
    672     ACPI_OPERAND_OBJECT     *SourceDesc,
    673     ACPI_OPERAND_OBJECT     *TargetDesc);
    674 
    675 
    676 /*
    677  * exutils - interpreter/scanner utilities
    678  */
    679 void
    680 AcpiExEnterInterpreter (
    681     void);
    682 
    683 void
    684 AcpiExExitInterpreter (
    685     void);
    686 
    687 void
    688 AcpiExReacquireInterpreter (
    689     void);
    690 
    691 void
    692 AcpiExRelinquishInterpreter (
    693     void);
    694 
    695 void
    696 AcpiExTruncateFor32bitTable (
    697     ACPI_OPERAND_OBJECT     *ObjDesc);
    698 
    699 void
    700 AcpiExAcquireGlobalLock (
    701     UINT32                  Rule);
    702 
    703 void
    704 AcpiExReleaseGlobalLock (
    705     UINT32                  Rule);
    706 
    707 void
    708 AcpiExEisaIdToString (
    709     char                    *Dest,
    710     UINT64                  CompressedId);
    711 
    712 void
    713 AcpiExIntegerToString (
    714     char                    *Dest,
    715     UINT64                  Value);
    716 
    717 
    718 /*
    719  * exregion - default OpRegion handlers
    720  */
    721 ACPI_STATUS
    722 AcpiExSystemMemorySpaceHandler (
    723     UINT32                  Function,
    724     ACPI_PHYSICAL_ADDRESS   Address,
    725     UINT32                  BitWidth,
    726     UINT64                  *Value,
    727     void                    *HandlerContext,
    728     void                    *RegionContext);
    729 
    730 ACPI_STATUS
    731 AcpiExSystemIoSpaceHandler (
    732     UINT32                  Function,
    733     ACPI_PHYSICAL_ADDRESS   Address,
    734     UINT32                  BitWidth,
    735     UINT64                  *Value,
    736     void                    *HandlerContext,
    737     void                    *RegionContext);
    738 
    739 ACPI_STATUS
    740 AcpiExPciConfigSpaceHandler (
    741     UINT32                  Function,
    742     ACPI_PHYSICAL_ADDRESS   Address,
    743     UINT32                  BitWidth,
    744     UINT64                  *Value,
    745     void                    *HandlerContext,
    746     void                    *RegionContext);
    747 
    748 ACPI_STATUS
    749 AcpiExCmosSpaceHandler (
    750     UINT32                  Function,
    751     ACPI_PHYSICAL_ADDRESS   Address,
    752     UINT32                  BitWidth,
    753     UINT64                  *Value,
    754     void                    *HandlerContext,
    755     void                    *RegionContext);
    756 
    757 ACPI_STATUS
    758 AcpiExPciBarSpaceHandler (
    759     UINT32                  Function,
    760     ACPI_PHYSICAL_ADDRESS   Address,
    761     UINT32                  BitWidth,
    762     UINT64                  *Value,
    763     void                    *HandlerContext,
    764     void                    *RegionContext);
    765 
    766 ACPI_STATUS
    767 AcpiExEmbeddedControllerSpaceHandler (
    768     UINT32                  Function,
    769     ACPI_PHYSICAL_ADDRESS   Address,
    770     UINT32                  BitWidth,
    771     UINT64                  *Value,
    772     void                    *HandlerContext,
    773     void                    *RegionContext);
    774 
    775 ACPI_STATUS
    776 AcpiExSmBusSpaceHandler (
    777     UINT32                  Function,
    778     ACPI_PHYSICAL_ADDRESS   Address,
    779     UINT32                  BitWidth,
    780     UINT64                  *Value,
    781     void                    *HandlerContext,
    782     void                    *RegionContext);
    783 
    784 
    785 ACPI_STATUS
    786 AcpiExDataTableSpaceHandler (
    787     UINT32                  Function,
    788     ACPI_PHYSICAL_ADDRESS   Address,
    789     UINT32                  BitWidth,
    790     UINT64                  *Value,
    791     void                    *HandlerContext,
    792     void                    *RegionContext);
    793 
    794 #endif /* __INTERP_H__ */
    795