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