Home | History | Annotate | Line # | Download | only in include
acinterp.h revision 1.15
      1 /******************************************************************************
      2  *
      3  * Name: acinterp.h - Interpreter subcomponent prototypes and defines
      4  *
      5  *****************************************************************************/
      6 
      7 /*
      8  * Copyright (C) 2000 - 2021, Intel Corp.
      9  * All rights reserved.
     10  *
     11  * Redistribution and use in source and binary forms, with or without
     12  * modification, are permitted provided that the following conditions
     13  * are met:
     14  * 1. Redistributions of source code must retain the above copyright
     15  *    notice, this list of conditions, and the following disclaimer,
     16  *    without modification.
     17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     18  *    substantially similar to the "NO WARRANTY" disclaimer below
     19  *    ("Disclaimer") and any redistribution must be conditioned upon
     20  *    including a substantially similar Disclaimer requirement for further
     21  *    binary redistribution.
     22  * 3. Neither the names of the above-listed copyright holders nor the names
     23  *    of any contributors may be used to endorse or promote products derived
     24  *    from this software without specific prior written permission.
     25  *
     26  * Alternatively, this software may be distributed under the terms of the
     27  * GNU General Public License ("GPL") version 2 as published by the Free
     28  * Software Foundation.
     29  *
     30  * NO WARRANTY
     31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     41  * POSSIBILITY OF SUCH DAMAGES.
     42  */
     43 
     44 #ifndef __ACINTERP_H__
     45 #define __ACINTERP_H__
     46 
     47 
     48 #define ACPI_WALK_OPERANDS          (&(WalkState->Operands [WalkState->NumOperands -1]))
     49 
     50 /* Macros for tables used for debug output */
     51 
     52 #define ACPI_EXD_OFFSET(f)          (UINT8) ACPI_OFFSET (ACPI_OPERAND_OBJECT,f)
     53 #define ACPI_EXD_NSOFFSET(f)        (UINT8) ACPI_OFFSET (ACPI_NAMESPACE_NODE,f)
     54 #define ACPI_EXD_TABLE_SIZE(name)   (sizeof(name) / sizeof (ACPI_EXDUMP_INFO))
     55 
     56 /*
     57  * If possible, pack the following structures to byte alignment, since we
     58  * don't care about performance for debug output. Two cases where we cannot
     59  * pack the structures:
     60  *
     61  * 1) Hardware does not support misaligned memory transfers
     62  * 2) Compiler does not support pointers within packed structures
     63  */
     64 #if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED))
     65 #pragma pack(1)
     66 #endif
     67 
     68 typedef const struct acpi_exdump_info
     69 {
     70     UINT8                   Opcode;
     71     UINT8                   Offset;
     72     const char              *Name;
     73 
     74 } ACPI_EXDUMP_INFO;
     75 
     76 /* Values for the Opcode field above */
     77 
     78 #define ACPI_EXD_INIT                   0
     79 #define ACPI_EXD_TYPE                   1
     80 #define ACPI_EXD_UINT8                  2
     81 #define ACPI_EXD_UINT16                 3
     82 #define ACPI_EXD_UINT32                 4
     83 #define ACPI_EXD_UINT64                 5
     84 #define ACPI_EXD_LITERAL                6
     85 #define ACPI_EXD_POINTER                7
     86 #define ACPI_EXD_ADDRESS                8
     87 #define ACPI_EXD_STRING                 9
     88 #define ACPI_EXD_BUFFER                 10
     89 #define ACPI_EXD_PACKAGE                11
     90 #define ACPI_EXD_FIELD                  12
     91 #define ACPI_EXD_REFERENCE              13
     92 #define ACPI_EXD_LIST                   14 /* Operand object list */
     93 #define ACPI_EXD_HDLR_LIST              15 /* Address Handler list */
     94 #define ACPI_EXD_RGN_LIST               16 /* Region list */
     95 #define ACPI_EXD_NODE                   17 /* Namespace Node */
     96 
     97 /* restore default alignment */
     98 
     99 #pragma pack()
    100 
    101 
    102 /*
    103  * exconvrt - object conversion
    104  */
    105 ACPI_STATUS
    106 AcpiExConvertToInteger (
    107     ACPI_OPERAND_OBJECT     *ObjDesc,
    108     ACPI_OPERAND_OBJECT     **ResultDesc,
    109     UINT32                  ImplicitConversion);
    110 
    111 ACPI_STATUS
    112 AcpiExConvertToBuffer (
    113     ACPI_OPERAND_OBJECT     *ObjDesc,
    114     ACPI_OPERAND_OBJECT     **ResultDesc);
    115 
    116 ACPI_STATUS
    117 AcpiExConvertToString (
    118     ACPI_OPERAND_OBJECT     *ObjDesc,
    119     ACPI_OPERAND_OBJECT     **ResultDesc,
    120     UINT32                  Type);
    121 
    122 /* Types for ->String conversion */
    123 
    124 #define ACPI_EXPLICIT_BYTE_COPY         0x00000000
    125 #define ACPI_EXPLICIT_CONVERT_HEX       0x00000001
    126 #define ACPI_IMPLICIT_CONVERT_HEX       0x00000002
    127 #define ACPI_EXPLICIT_CONVERT_DECIMAL   0x00000003
    128 
    129 ACPI_STATUS
    130 AcpiExConvertToTargetType (
    131     ACPI_OBJECT_TYPE        DestinationType,
    132     ACPI_OPERAND_OBJECT     *SourceDesc,
    133     ACPI_OPERAND_OBJECT     **ResultDesc,
    134     ACPI_WALK_STATE         *WalkState);
    135 
    136 
    137 /*
    138  * exdebug - AML debug object
    139  */
    140 void
    141 AcpiExDoDebugObject (
    142     ACPI_OPERAND_OBJECT     *SourceDesc,
    143     UINT32                  Level,
    144     UINT32                  Index);
    145 
    146 void
    147 AcpiExStartTraceMethod (
    148     ACPI_NAMESPACE_NODE     *MethodNode,
    149     ACPI_OPERAND_OBJECT     *ObjDesc,
    150     ACPI_WALK_STATE         *WalkState);
    151 
    152 void
    153 AcpiExStopTraceMethod (
    154     ACPI_NAMESPACE_NODE     *MethodNode,
    155     ACPI_OPERAND_OBJECT     *ObjDesc,
    156     ACPI_WALK_STATE         *WalkState);
    157 
    158 void
    159 AcpiExStartTraceOpcode (
    160     ACPI_PARSE_OBJECT       *Op,
    161     ACPI_WALK_STATE         *WalkState);
    162 
    163 void
    164 AcpiExStopTraceOpcode (
    165     ACPI_PARSE_OBJECT       *Op,
    166     ACPI_WALK_STATE         *WalkState);
    167 
    168 void
    169 AcpiExTracePoint (
    170     ACPI_TRACE_EVENT_TYPE   Type,
    171     BOOLEAN                 Begin,
    172     UINT8                   *Aml,
    173     char                    *Pathname);
    174 
    175 
    176 /*
    177  * exfield - ACPI AML (p-code) execution - field manipulation
    178  */
    179 ACPI_STATUS
    180 AcpiExGetProtocolBufferLength (
    181     UINT32                  ProtocolId,
    182     UINT32                  *ReturnLength);
    183 
    184 ACPI_STATUS
    185 AcpiExCommonBufferSetup (
    186     ACPI_OPERAND_OBJECT     *ObjDesc,
    187     UINT32                  BufferLength,
    188     UINT32                  *DatumCount);
    189 
    190 ACPI_STATUS
    191 AcpiExWriteWithUpdateRule (
    192     ACPI_OPERAND_OBJECT     *ObjDesc,
    193     UINT64                  Mask,
    194     UINT64                  FieldValue,
    195     UINT32                  FieldDatumByteOffset);
    196 
    197 void
    198 AcpiExGetBufferDatum(
    199     UINT64                  *Datum,
    200     void                    *Buffer,
    201     UINT32                  BufferLength,
    202     UINT32                  ByteGranularity,
    203     UINT32                  BufferOffset);
    204 
    205 void
    206 AcpiExSetBufferDatum (
    207     UINT64                  MergedDatum,
    208     void                    *Buffer,
    209     UINT32                  BufferLength,
    210     UINT32                  ByteGranularity,
    211     UINT32                  BufferOffset);
    212 
    213 ACPI_STATUS
    214 AcpiExReadDataFromField (
    215     ACPI_WALK_STATE         *WalkState,
    216     ACPI_OPERAND_OBJECT     *ObjDesc,
    217     ACPI_OPERAND_OBJECT     **RetBufferDesc);
    218 
    219 ACPI_STATUS
    220 AcpiExWriteDataToField (
    221     ACPI_OPERAND_OBJECT     *SourceDesc,
    222     ACPI_OPERAND_OBJECT     *ObjDesc,
    223     ACPI_OPERAND_OBJECT     **ResultDesc);
    224 
    225 
    226 /*
    227  * exfldio - low level field I/O
    228  */
    229 ACPI_STATUS
    230 AcpiExExtractFromField (
    231     ACPI_OPERAND_OBJECT     *ObjDesc,
    232     void                    *Buffer,
    233     UINT32                  BufferLength);
    234 
    235 ACPI_STATUS
    236 AcpiExInsertIntoField (
    237     ACPI_OPERAND_OBJECT     *ObjDesc,
    238     void                    *Buffer,
    239     UINT32                  BufferLength);
    240 
    241 ACPI_STATUS
    242 AcpiExAccessRegion (
    243     ACPI_OPERAND_OBJECT     *ObjDesc,
    244     UINT32                  FieldDatumByteOffset,
    245     UINT64                  *Value,
    246     UINT32                  ReadWrite);
    247 
    248 
    249 /*
    250  * exmisc - misc support routines
    251  */
    252 ACPI_STATUS
    253 AcpiExGetObjectReference (
    254     ACPI_OPERAND_OBJECT     *ObjDesc,
    255     ACPI_OPERAND_OBJECT     **ReturnDesc,
    256     ACPI_WALK_STATE         *WalkState);
    257 
    258 ACPI_STATUS
    259 AcpiExConcatTemplate (
    260     ACPI_OPERAND_OBJECT     *ObjDesc,
    261     ACPI_OPERAND_OBJECT     *ObjDesc2,
    262     ACPI_OPERAND_OBJECT     **ActualReturnDesc,
    263     ACPI_WALK_STATE         *WalkState);
    264 
    265 ACPI_STATUS
    266 AcpiExDoConcatenate (
    267     ACPI_OPERAND_OBJECT     *ObjDesc,
    268     ACPI_OPERAND_OBJECT     *ObjDesc2,
    269     ACPI_OPERAND_OBJECT     **ActualReturnDesc,
    270     ACPI_WALK_STATE         *WalkState);
    271 
    272 ACPI_STATUS
    273 AcpiExDoLogicalNumericOp (
    274     UINT16                  Opcode,
    275     UINT64                  Integer0,
    276     UINT64                  Integer1,
    277     BOOLEAN                 *LogicalResult);
    278 
    279 ACPI_STATUS
    280 AcpiExDoLogicalOp (
    281     UINT16                  Opcode,
    282     ACPI_OPERAND_OBJECT     *Operand0,
    283     ACPI_OPERAND_OBJECT     *Operand1,
    284     BOOLEAN                 *LogicalResult);
    285 
    286 UINT64
    287 AcpiExDoMathOp (
    288     UINT16                  Opcode,
    289     UINT64                  Operand0,
    290     UINT64                  Operand1);
    291 
    292 ACPI_STATUS
    293 AcpiExCreateMutex (
    294     ACPI_WALK_STATE         *WalkState);
    295 
    296 ACPI_STATUS
    297 AcpiExCreateProcessor (
    298     ACPI_WALK_STATE         *WalkState);
    299 
    300 ACPI_STATUS
    301 AcpiExCreatePowerResource (
    302     ACPI_WALK_STATE         *WalkState);
    303 
    304 ACPI_STATUS
    305 AcpiExCreateRegion (
    306     UINT8                   *AmlStart,
    307     UINT32                  AmlLength,
    308     UINT8                   RegionSpace,
    309     ACPI_WALK_STATE         *WalkState);
    310 
    311 ACPI_STATUS
    312 AcpiExCreateEvent (
    313     ACPI_WALK_STATE         *WalkState);
    314 
    315 ACPI_STATUS
    316 AcpiExCreateAlias (
    317     ACPI_WALK_STATE         *WalkState);
    318 
    319 ACPI_STATUS
    320 AcpiExCreateMethod (
    321     UINT8                   *AmlStart,
    322     UINT32                  AmlLength,
    323     ACPI_WALK_STATE         *WalkState);
    324 
    325 
    326 /*
    327  * exconfig - dynamic table load/unload
    328  */
    329 ACPI_STATUS
    330 AcpiExLoadOp (
    331     ACPI_OPERAND_OBJECT     *ObjDesc,
    332     ACPI_OPERAND_OBJECT     *Target,
    333     ACPI_WALK_STATE         *WalkState);
    334 
    335 ACPI_STATUS
    336 AcpiExLoadTableOp (
    337     ACPI_WALK_STATE         *WalkState,
    338     ACPI_OPERAND_OBJECT     **ReturnDesc);
    339 
    340 ACPI_STATUS
    341 AcpiExUnloadTable (
    342     ACPI_OPERAND_OBJECT     *DdbHandle);
    343 
    344 
    345 /*
    346  * exmutex - mutex support
    347  */
    348 ACPI_STATUS
    349 AcpiExAcquireMutex (
    350     ACPI_OPERAND_OBJECT     *TimeDesc,
    351     ACPI_OPERAND_OBJECT     *ObjDesc,
    352     ACPI_WALK_STATE         *WalkState);
    353 
    354 ACPI_STATUS
    355 AcpiExAcquireMutexObject (
    356     UINT16                  Timeout,
    357     ACPI_OPERAND_OBJECT     *ObjDesc,
    358     ACPI_THREAD_ID          ThreadId);
    359 
    360 ACPI_STATUS
    361 AcpiExReleaseMutex (
    362     ACPI_OPERAND_OBJECT     *ObjDesc,
    363     ACPI_WALK_STATE         *WalkState);
    364 
    365 ACPI_STATUS
    366 AcpiExReleaseMutexObject (
    367     ACPI_OPERAND_OBJECT     *ObjDesc);
    368 
    369 void
    370 AcpiExReleaseAllMutexes (
    371     ACPI_THREAD_STATE       *Thread);
    372 
    373 void
    374 AcpiExUnlinkMutex (
    375     ACPI_OPERAND_OBJECT     *ObjDesc);
    376 
    377 
    378 /*
    379  * exprep - ACPI AML execution - prep utilities
    380  */
    381 ACPI_STATUS
    382 AcpiExPrepCommonFieldObject (
    383     ACPI_OPERAND_OBJECT     *ObjDesc,
    384     UINT8                   FieldFlags,
    385     UINT8                   FieldAttribute,
    386     UINT32                  FieldBitPosition,
    387     UINT32                  FieldBitLength);
    388 
    389 ACPI_STATUS
    390 AcpiExPrepFieldValue (
    391     ACPI_CREATE_FIELD_INFO  *Info);
    392 
    393 
    394 /*
    395  * exserial - FieldUnit support for serial address spaces
    396  */
    397 ACPI_STATUS
    398 AcpiExReadSerialBus (
    399     ACPI_OPERAND_OBJECT     *ObjDesc,
    400     ACPI_OPERAND_OBJECT     **ReturnBuffer);
    401 
    402 ACPI_STATUS
    403 AcpiExWriteSerialBus (
    404     ACPI_OPERAND_OBJECT     *SourceDesc,
    405     ACPI_OPERAND_OBJECT     *ObjDesc,
    406     ACPI_OPERAND_OBJECT     **ReturnBuffer);
    407 
    408 ACPI_STATUS
    409 AcpiExReadGpio (
    410     ACPI_OPERAND_OBJECT     *ObjDesc,
    411     void                    *Buffer);
    412 
    413 ACPI_STATUS
    414 AcpiExWriteGpio (
    415     ACPI_OPERAND_OBJECT     *SourceDesc,
    416     ACPI_OPERAND_OBJECT     *ObjDesc,
    417     ACPI_OPERAND_OBJECT     **ReturnBuffer);
    418 
    419 
    420 /*
    421  * exsystem - Interface to OS services
    422  */
    423 ACPI_STATUS
    424 AcpiExSystemDoNotifyOp (
    425     ACPI_OPERAND_OBJECT     *Value,
    426     ACPI_OPERAND_OBJECT     *ObjDesc);
    427 
    428 ACPI_STATUS
    429 AcpiExSystemDoSleep(
    430     UINT64                  Time);
    431 
    432 ACPI_STATUS
    433 AcpiExSystemDoStall (
    434     UINT32                  Time);
    435 
    436 ACPI_STATUS
    437 AcpiExSystemSignalEvent(
    438     ACPI_OPERAND_OBJECT     *ObjDesc);
    439 
    440 ACPI_STATUS
    441 AcpiExSystemWaitEvent(
    442     ACPI_OPERAND_OBJECT     *Time,
    443     ACPI_OPERAND_OBJECT     *ObjDesc);
    444 
    445 ACPI_STATUS
    446 AcpiExSystemResetEvent(
    447     ACPI_OPERAND_OBJECT     *ObjDesc);
    448 
    449 ACPI_STATUS
    450 AcpiExSystemWaitSemaphore (
    451     ACPI_SEMAPHORE          Semaphore,
    452     UINT16                  Timeout);
    453 
    454 ACPI_STATUS
    455 AcpiExSystemWaitMutex (
    456     ACPI_MUTEX              Mutex,
    457     UINT16                  Timeout);
    458 
    459 /*
    460  * exoparg1 - ACPI AML execution, 1 operand
    461  */
    462 ACPI_STATUS
    463 AcpiExOpcode_0A_0T_1R (
    464     ACPI_WALK_STATE         *WalkState);
    465 
    466 ACPI_STATUS
    467 AcpiExOpcode_1A_0T_0R (
    468     ACPI_WALK_STATE         *WalkState);
    469 
    470 ACPI_STATUS
    471 AcpiExOpcode_1A_0T_1R (
    472     ACPI_WALK_STATE         *WalkState);
    473 
    474 ACPI_STATUS
    475 AcpiExOpcode_1A_1T_1R (
    476     ACPI_WALK_STATE         *WalkState);
    477 
    478 ACPI_STATUS
    479 AcpiExOpcode_1A_1T_0R (
    480     ACPI_WALK_STATE         *WalkState);
    481 
    482 /*
    483  * exoparg2 - ACPI AML execution, 2 operands
    484  */
    485 ACPI_STATUS
    486 AcpiExOpcode_2A_0T_0R (
    487     ACPI_WALK_STATE         *WalkState);
    488 
    489 ACPI_STATUS
    490 AcpiExOpcode_2A_0T_1R (
    491     ACPI_WALK_STATE         *WalkState);
    492 
    493 ACPI_STATUS
    494 AcpiExOpcode_2A_1T_1R (
    495     ACPI_WALK_STATE         *WalkState);
    496 
    497 ACPI_STATUS
    498 AcpiExOpcode_2A_2T_1R (
    499     ACPI_WALK_STATE         *WalkState);
    500 
    501 
    502 /*
    503  * exoparg3 - ACPI AML execution, 3 operands
    504  */
    505 ACPI_STATUS
    506 AcpiExOpcode_3A_0T_0R (
    507     ACPI_WALK_STATE         *WalkState);
    508 
    509 ACPI_STATUS
    510 AcpiExOpcode_3A_1T_1R (
    511     ACPI_WALK_STATE         *WalkState);
    512 
    513 
    514 /*
    515  * exoparg6 - ACPI AML execution, 6 operands
    516  */
    517 ACPI_STATUS
    518 AcpiExOpcode_6A_0T_1R (
    519     ACPI_WALK_STATE         *WalkState);
    520 
    521 
    522 /*
    523  * exresolv - Object resolution and get value functions
    524  */
    525 ACPI_STATUS
    526 AcpiExResolveToValue (
    527     ACPI_OPERAND_OBJECT     **StackPtr,
    528     ACPI_WALK_STATE         *WalkState);
    529 
    530 ACPI_STATUS
    531 AcpiExResolveMultiple (
    532     ACPI_WALK_STATE         *WalkState,
    533     ACPI_OPERAND_OBJECT     *Operand,
    534     ACPI_OBJECT_TYPE        *ReturnType,
    535     ACPI_OPERAND_OBJECT     **ReturnDesc);
    536 
    537 
    538 /*
    539  * exresnte - resolve namespace node
    540  */
    541 ACPI_STATUS
    542 AcpiExResolveNodeToValue (
    543     ACPI_NAMESPACE_NODE     **StackPtr,
    544     ACPI_WALK_STATE         *WalkState);
    545 
    546 
    547 /*
    548  * exresop - resolve operand to value
    549  */
    550 ACPI_STATUS
    551 AcpiExResolveOperands (
    552     UINT16                  Opcode,
    553     ACPI_OPERAND_OBJECT     **StackPtr,
    554     ACPI_WALK_STATE         *WalkState);
    555 
    556 
    557 /*
    558  * exdump - Interpreter debug output routines
    559  */
    560 void
    561 AcpiExDumpOperand (
    562     ACPI_OPERAND_OBJECT     *ObjDesc,
    563     UINT32                  Depth);
    564 
    565 void
    566 AcpiExDumpOperands (
    567     ACPI_OPERAND_OBJECT     **Operands,
    568     const char              *OpcodeName,
    569     UINT32                  NumOpcodes);
    570 
    571 void
    572 AcpiExDumpObjectDescriptor (
    573     ACPI_OPERAND_OBJECT     *Object,
    574     UINT32                  Flags);
    575 
    576 void
    577 AcpiExDumpNamespaceNode (
    578     ACPI_NAMESPACE_NODE     *Node,
    579     UINT32                  Flags);
    580 
    581 
    582 /*
    583  * exnames - AML namestring support
    584  */
    585 ACPI_STATUS
    586 AcpiExGetNameString (
    587     ACPI_OBJECT_TYPE        DataType,
    588     UINT8                   *InAmlAddress,
    589     char                    **OutNameString,
    590     UINT32                  *OutNameLength);
    591 
    592 
    593 /*
    594  * exstore - Object store support
    595  */
    596 ACPI_STATUS
    597 AcpiExStore (
    598     ACPI_OPERAND_OBJECT     *ValDesc,
    599     ACPI_OPERAND_OBJECT     *DestDesc,
    600     ACPI_WALK_STATE         *WalkState);
    601 
    602 ACPI_STATUS
    603 AcpiExStoreObjectToNode (
    604     ACPI_OPERAND_OBJECT     *SourceDesc,
    605     ACPI_NAMESPACE_NODE     *Node,
    606     ACPI_WALK_STATE         *WalkState,
    607     UINT8                   ImplicitConversion);
    608 
    609 
    610 /*
    611  * exstoren - resolve/store object
    612  */
    613 ACPI_STATUS
    614 AcpiExResolveObject (
    615     ACPI_OPERAND_OBJECT     **SourceDescPtr,
    616     ACPI_OBJECT_TYPE        TargetType,
    617     ACPI_WALK_STATE         *WalkState);
    618 
    619 ACPI_STATUS
    620 AcpiExStoreObjectToObject (
    621     ACPI_OPERAND_OBJECT     *SourceDesc,
    622     ACPI_OPERAND_OBJECT     *DestDesc,
    623     ACPI_OPERAND_OBJECT     **NewDesc,
    624     ACPI_WALK_STATE         *WalkState);
    625 
    626 
    627 /*
    628  * exstorob - store object - buffer/string
    629  */
    630 ACPI_STATUS
    631 AcpiExStoreBufferToBuffer (
    632     ACPI_OPERAND_OBJECT     *SourceDesc,
    633     ACPI_OPERAND_OBJECT     *TargetDesc);
    634 
    635 ACPI_STATUS
    636 AcpiExStoreStringToString (
    637     ACPI_OPERAND_OBJECT     *SourceDesc,
    638     ACPI_OPERAND_OBJECT     *TargetDesc);
    639 
    640 
    641 /*
    642  * excopy - object copy
    643  */
    644 ACPI_STATUS
    645 AcpiExCopyIntegerToIndexField (
    646     ACPI_OPERAND_OBJECT     *SourceDesc,
    647     ACPI_OPERAND_OBJECT     *TargetDesc);
    648 
    649 ACPI_STATUS
    650 AcpiExCopyIntegerToBankField (
    651     ACPI_OPERAND_OBJECT     *SourceDesc,
    652     ACPI_OPERAND_OBJECT     *TargetDesc);
    653 
    654 ACPI_STATUS
    655 AcpiExCopyDataToNamedField (
    656     ACPI_OPERAND_OBJECT     *SourceDesc,
    657     ACPI_NAMESPACE_NODE     *Node);
    658 
    659 ACPI_STATUS
    660 AcpiExCopyIntegerToBufferField (
    661     ACPI_OPERAND_OBJECT     *SourceDesc,
    662     ACPI_OPERAND_OBJECT     *TargetDesc);
    663 
    664 
    665 /*
    666  * exutils - interpreter/scanner utilities
    667  */
    668 void
    669 AcpiExEnterInterpreter (
    670     void);
    671 
    672 void
    673 AcpiExExitInterpreter (
    674     void);
    675 
    676 BOOLEAN
    677 AcpiExTruncateFor32bitTable (
    678     ACPI_OPERAND_OBJECT     *ObjDesc);
    679 
    680 void
    681 AcpiExAcquireGlobalLock (
    682     UINT32                  Rule);
    683 
    684 void
    685 AcpiExReleaseGlobalLock (
    686     UINT32                  Rule);
    687 
    688 void
    689 AcpiExEisaIdToString (
    690     char                    *Dest,
    691     UINT64                  CompressedId);
    692 
    693 void
    694 AcpiExIntegerToString (
    695     char                    *Dest,
    696     UINT64                  Value);
    697 
    698 void
    699 AcpiExPciClsToString (
    700     char                    *Dest,
    701     UINT8                   ClassCode[3]);
    702 
    703 BOOLEAN
    704 AcpiIsValidSpaceId (
    705     UINT8                   SpaceId);
    706 
    707 
    708 /*
    709  * exregion - default OpRegion handlers
    710  */
    711 ACPI_STATUS
    712 AcpiExSystemMemorySpaceHandler (
    713     UINT32                  Function,
    714     ACPI_PHYSICAL_ADDRESS   Address,
    715     UINT32                  BitWidth,
    716     UINT64                  *Value,
    717     void                    *HandlerContext,
    718     void                    *RegionContext);
    719 
    720 ACPI_STATUS
    721 AcpiExSystemIoSpaceHandler (
    722     UINT32                  Function,
    723     ACPI_PHYSICAL_ADDRESS   Address,
    724     UINT32                  BitWidth,
    725     UINT64                  *Value,
    726     void                    *HandlerContext,
    727     void                    *RegionContext);
    728 
    729 ACPI_STATUS
    730 AcpiExPciConfigSpaceHandler (
    731     UINT32                  Function,
    732     ACPI_PHYSICAL_ADDRESS   Address,
    733     UINT32                  BitWidth,
    734     UINT64                  *Value,
    735     void                    *HandlerContext,
    736     void                    *RegionContext);
    737 
    738 ACPI_STATUS
    739 AcpiExCmosSpaceHandler (
    740     UINT32                  Function,
    741     ACPI_PHYSICAL_ADDRESS   Address,
    742     UINT32                  BitWidth,
    743     UINT64                  *Value,
    744     void                    *HandlerContext,
    745     void                    *RegionContext);
    746 
    747 ACPI_STATUS
    748 AcpiExPciBarSpaceHandler (
    749     UINT32                  Function,
    750     ACPI_PHYSICAL_ADDRESS   Address,
    751     UINT32                  BitWidth,
    752     UINT64                  *Value,
    753     void                    *HandlerContext,
    754     void                    *RegionContext);
    755 
    756 ACPI_STATUS
    757 AcpiExEmbeddedControllerSpaceHandler (
    758     UINT32                  Function,
    759     ACPI_PHYSICAL_ADDRESS   Address,
    760     UINT32                  BitWidth,
    761     UINT64                  *Value,
    762     void                    *HandlerContext,
    763     void                    *RegionContext);
    764 
    765 ACPI_STATUS
    766 AcpiExSmBusSpaceHandler (
    767     UINT32                  Function,
    768     ACPI_PHYSICAL_ADDRESS   Address,
    769     UINT32                  BitWidth,
    770     UINT64                  *Value,
    771     void                    *HandlerContext,
    772     void                    *RegionContext);
    773 
    774 
    775 ACPI_STATUS
    776 AcpiExDataTableSpaceHandler (
    777     UINT32                  Function,
    778     ACPI_PHYSICAL_ADDRESS   Address,
    779     UINT32                  BitWidth,
    780     UINT64                  *Value,
    781     void                    *HandlerContext,
    782     void                    *RegionContext);
    783 
    784 #endif /* __INTERP_H__ */
    785