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