Back to home page

Quest Cross Reference

 
 

    


Warning, cross-references for /kernel/include/drivers/acpi/acinterp.h need to be fixed.

0001 /******************************************************************************
0002  *
0003  * Name: acinterp.h - Interpreter subcomponent prototypes and defines
0004  *
0005  *****************************************************************************/
0006 
0007 /******************************************************************************
0008  *
0009  * 1. Copyright Notice
0010  *
0011  * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
0012  * All rights reserved.
0013  *
0014  * 2. License
0015  *
0016  * 2.1. This is your license from Intel Corp. under its intellectual property
0017  * rights.  You may have additional license terms from the party that provided
0018  * you this software, covering your right to use that party's intellectual
0019  * property rights.
0020  *
0021  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
0022  * copy of the source code appearing in this file ("Covered Code") an
0023  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
0024  * base code distributed originally by Intel ("Original Intel Code") to copy,
0025  * make derivatives, distribute, use and display any portion of the Covered
0026  * Code in any form, with the right to sublicense such rights; and
0027  *
0028  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
0029  * license (with the right to sublicense), under only those claims of Intel
0030  * patents that are infringed by the Original Intel Code, to make, use, sell,
0031  * offer to sell, and import the Covered Code and derivative works thereof
0032  * solely to the minimum extent necessary to exercise the above copyright
0033  * license, and in no event shall the patent license extend to any additions
0034  * to or modifications of the Original Intel Code.  No other license or right
0035  * is granted directly or by implication, estoppel or otherwise;
0036  *
0037  * The above copyright and patent license is granted only if the following
0038  * conditions are met:
0039  *
0040  * 3. Conditions
0041  *
0042  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
0043  * Redistribution of source code of any substantial portion of the Covered
0044  * Code or modification with rights to further distribute source must include
0045  * the above Copyright Notice, the above License, this list of Conditions,
0046  * and the following Disclaimer and Export Compliance provision.  In addition,
0047  * Licensee must cause all Covered Code to which Licensee contributes to
0048  * contain a file documenting the changes Licensee made to create that Covered
0049  * Code and the date of any change.  Licensee must include in that file the
0050  * documentation of any changes made by any predecessor Licensee.  Licensee
0051  * must include a prominent statement that the modification is derived,
0052  * directly or indirectly, from Original Intel Code.
0053  *
0054  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
0055  * Redistribution of source code of any substantial portion of the Covered
0056  * Code or modification without rights to further distribute source must
0057  * include the following Disclaimer and Export Compliance provision in the
0058  * documentation and/or other materials provided with distribution.  In
0059  * addition, Licensee may not authorize further sublicense of source of any
0060  * portion of the Covered Code, and must include terms to the effect that the
0061  * license from Licensee to its licensee is limited to the intellectual
0062  * property embodied in the software Licensee provides to its licensee, and
0063  * not to intellectual property embodied in modifications its licensee may
0064  * make.
0065  *
0066  * 3.3. Redistribution of Executable. Redistribution in executable form of any
0067  * substantial portion of the Covered Code or modification must reproduce the
0068  * above Copyright Notice, and the following Disclaimer and Export Compliance
0069  * provision in the documentation and/or other materials provided with the
0070  * distribution.
0071  *
0072  * 3.4. Intel retains all right, title, and interest in and to the Original
0073  * Intel Code.
0074  *
0075  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
0076  * Intel shall be used in advertising or otherwise to promote the sale, use or
0077  * other dealings in products derived from or relating to the Covered Code
0078  * without prior written authorization from Intel.
0079  *
0080  * 4. Disclaimer and Export Compliance
0081  *
0082  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
0083  * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
0084  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
0085  * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
0086  * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
0087  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
0088  * PARTICULAR PURPOSE.
0089  *
0090  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
0091  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
0092  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
0093  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
0094  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
0095  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
0096  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
0097  * LIMITED REMEDY.
0098  *
0099  * 4.3. Licensee shall not export, either directly or indirectly, any of this
0100  * software or system incorporating such software without first obtaining any
0101  * required license or other approval from the U. S. Department of Commerce or
0102  * any other agency or department of the United States Government.  In the
0103  * event Licensee exports any such software from the United States or
0104  * re-exports any such software from a foreign destination, Licensee shall
0105  * ensure that the distribution and export/re-export of the software is in
0106  * compliance with all laws, regulations, orders, or other restrictions of the
0107  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
0108  * any of its subsidiaries will export/re-export any technical data, process,
0109  * software, or service, directly or indirectly, to any country for which the
0110  * United States government or any agency thereof requires an export license,
0111  * other governmental approval, or letter of assurance, without first obtaining
0112  * such license, approval or letter.
0113  *
0114  *****************************************************************************/
0115 
0116 #ifndef __ACINTERP_H__
0117 #define __ACINTERP_H__
0118 
0119 
0120 #define ACPI_WALK_OPERANDS          (&(WalkState->Operands [WalkState->NumOperands -1]))
0121 
0122 /* Macros for tables used for debug output */
0123 
0124 #define ACPI_EXD_OFFSET(f)          (UINT8) ACPI_OFFSET (ACPI_OPERAND_OBJECT,f)
0125 #define ACPI_EXD_NSOFFSET(f)        (UINT8) ACPI_OFFSET (ACPI_NAMESPACE_NODE,f)
0126 #define ACPI_EXD_TABLE_SIZE(name)   (sizeof(name) / sizeof (ACPI_EXDUMP_INFO))
0127 
0128 /*
0129  * If possible, pack the following structures to byte alignment, since we
0130  * don't care about performance for debug output. Two cases where we cannot
0131  * pack the structures:
0132  *
0133  * 1) Hardware does not support misaligned memory transfers
0134  * 2) Compiler does not support pointers within packed structures
0135  */
0136 #if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED))
0137 #pragma pack(1)
0138 #endif
0139 
0140 typedef const struct acpi_exdump_info
0141 {
0142     UINT8                   Opcode;
0143     UINT8                   Offset;
0144     char                    *Name;
0145 
0146 } ACPI_EXDUMP_INFO;
0147 
0148 /* Values for the Opcode field above */
0149 
0150 #define ACPI_EXD_INIT                   0
0151 #define ACPI_EXD_TYPE                   1
0152 #define ACPI_EXD_UINT8                  2
0153 #define ACPI_EXD_UINT16                 3
0154 #define ACPI_EXD_UINT32                 4
0155 #define ACPI_EXD_UINT64                 5
0156 #define ACPI_EXD_LITERAL                6
0157 #define ACPI_EXD_POINTER                7
0158 #define ACPI_EXD_ADDRESS                8
0159 #define ACPI_EXD_STRING                 9
0160 #define ACPI_EXD_BUFFER                 10
0161 #define ACPI_EXD_PACKAGE                11
0162 #define ACPI_EXD_FIELD                  12
0163 #define ACPI_EXD_REFERENCE              13
0164 
0165 /* restore default alignment */
0166 
0167 #pragma pack()
0168 
0169 
0170 /*
0171  * exconvrt - object conversion
0172  */
0173 ACPI_STATUS
0174 AcpiExConvertToInteger (
0175     ACPI_OPERAND_OBJECT     *ObjDesc,
0176     ACPI_OPERAND_OBJECT     **ResultDesc,
0177     UINT32                  Flags);
0178 
0179 ACPI_STATUS
0180 AcpiExConvertToBuffer (
0181     ACPI_OPERAND_OBJECT     *ObjDesc,
0182     ACPI_OPERAND_OBJECT     **ResultDesc);
0183 
0184 ACPI_STATUS
0185 AcpiExConvertToString (
0186     ACPI_OPERAND_OBJECT     *ObjDesc,
0187     ACPI_OPERAND_OBJECT     **ResultDesc,
0188     UINT32                  Type);
0189 
0190 /* Types for ->String conversion */
0191 
0192 #define ACPI_EXPLICIT_BYTE_COPY         0x00000000
0193 #define ACPI_EXPLICIT_CONVERT_HEX       0x00000001
0194 #define ACPI_IMPLICIT_CONVERT_HEX       0x00000002
0195 #define ACPI_EXPLICIT_CONVERT_DECIMAL   0x00000003
0196 
0197 ACPI_STATUS
0198 AcpiExConvertToTargetType (
0199     ACPI_OBJECT_TYPE        DestinationType,
0200     ACPI_OPERAND_OBJECT     *SourceDesc,
0201     ACPI_OPERAND_OBJECT     **ResultDesc,
0202     ACPI_WALK_STATE         *WalkState);
0203 
0204 
0205 /*
0206  * exfield - ACPI AML (p-code) execution - field manipulation
0207  */
0208 ACPI_STATUS
0209 AcpiExCommonBufferSetup (
0210     ACPI_OPERAND_OBJECT     *ObjDesc,
0211     UINT32                  BufferLength,
0212     UINT32                  *DatumCount);
0213 
0214 ACPI_STATUS
0215 AcpiExWriteWithUpdateRule (
0216     ACPI_OPERAND_OBJECT     *ObjDesc,
0217     ACPI_INTEGER            Mask,
0218     ACPI_INTEGER            FieldValue,
0219     UINT32                  FieldDatumByteOffset);
0220 
0221 void
0222 AcpiExGetBufferDatum(
0223     ACPI_INTEGER            *Datum,
0224     void                    *Buffer,
0225     UINT32                  BufferLength,
0226     UINT32                  ByteGranularity,
0227     UINT32                  BufferOffset);
0228 
0229 void
0230 AcpiExSetBufferDatum (
0231     ACPI_INTEGER            MergedDatum,
0232     void                    *Buffer,
0233     UINT32                  BufferLength,
0234     UINT32                  ByteGranularity,
0235     UINT32                  BufferOffset);
0236 
0237 ACPI_STATUS
0238 AcpiExReadDataFromField (
0239     ACPI_WALK_STATE         *WalkState,
0240     ACPI_OPERAND_OBJECT     *ObjDesc,
0241     ACPI_OPERAND_OBJECT     **RetBufferDesc);
0242 
0243 ACPI_STATUS
0244 AcpiExWriteDataToField (
0245     ACPI_OPERAND_OBJECT     *SourceDesc,
0246     ACPI_OPERAND_OBJECT     *ObjDesc,
0247     ACPI_OPERAND_OBJECT     **ResultDesc);
0248 
0249 
0250 /*
0251  * exfldio - low level field I/O
0252  */
0253 ACPI_STATUS
0254 AcpiExExtractFromField (
0255     ACPI_OPERAND_OBJECT     *ObjDesc,
0256     void                    *Buffer,
0257     UINT32                  BufferLength);
0258 
0259 ACPI_STATUS
0260 AcpiExInsertIntoField (
0261     ACPI_OPERAND_OBJECT     *ObjDesc,
0262     void                    *Buffer,
0263     UINT32                  BufferLength);
0264 
0265 ACPI_STATUS
0266 AcpiExAccessRegion (
0267     ACPI_OPERAND_OBJECT     *ObjDesc,
0268     UINT32                  FieldDatumByteOffset,
0269     ACPI_INTEGER            *Value,
0270     UINT32                  ReadWrite);
0271 
0272 
0273 /*
0274  * exmisc - misc support routines
0275  */
0276 ACPI_STATUS
0277 AcpiExGetObjectReference (
0278     ACPI_OPERAND_OBJECT     *ObjDesc,
0279     ACPI_OPERAND_OBJECT     **ReturnDesc,
0280     ACPI_WALK_STATE         *WalkState);
0281 
0282 ACPI_STATUS
0283 AcpiExConcatTemplate (
0284     ACPI_OPERAND_OBJECT     *ObjDesc,
0285     ACPI_OPERAND_OBJECT     *ObjDesc2,
0286     ACPI_OPERAND_OBJECT     **ActualReturnDesc,
0287     ACPI_WALK_STATE         *WalkState);
0288 
0289 ACPI_STATUS
0290 AcpiExDoConcatenate (
0291     ACPI_OPERAND_OBJECT     *ObjDesc,
0292     ACPI_OPERAND_OBJECT     *ObjDesc2,
0293     ACPI_OPERAND_OBJECT     **ActualReturnDesc,
0294     ACPI_WALK_STATE         *WalkState);
0295 
0296 ACPI_STATUS
0297 AcpiExDoLogicalNumericOp (
0298     UINT16                  Opcode,
0299     ACPI_INTEGER            Integer0,
0300     ACPI_INTEGER            Integer1,
0301     BOOLEAN                 *LogicalResult);
0302 
0303 ACPI_STATUS
0304 AcpiExDoLogicalOp (
0305     UINT16                  Opcode,
0306     ACPI_OPERAND_OBJECT     *Operand0,
0307     ACPI_OPERAND_OBJECT     *Operand1,
0308     BOOLEAN                 *LogicalResult);
0309 
0310 ACPI_INTEGER
0311 AcpiExDoMathOp (
0312     UINT16                  Opcode,
0313     ACPI_INTEGER            Operand0,
0314     ACPI_INTEGER            Operand1);
0315 
0316 ACPI_STATUS
0317 AcpiExCreateMutex (
0318     ACPI_WALK_STATE         *WalkState);
0319 
0320 ACPI_STATUS
0321 AcpiExCreateProcessor (
0322     ACPI_WALK_STATE         *WalkState);
0323 
0324 ACPI_STATUS
0325 AcpiExCreatePowerResource (
0326     ACPI_WALK_STATE         *WalkState);
0327 
0328 ACPI_STATUS
0329 AcpiExCreateRegion (
0330     UINT8                   *AmlStart,
0331     UINT32                  AmlLength,
0332     UINT8                   RegionSpace,
0333     ACPI_WALK_STATE         *WalkState);
0334 
0335 ACPI_STATUS
0336 AcpiExCreateEvent (
0337     ACPI_WALK_STATE         *WalkState);
0338 
0339 ACPI_STATUS
0340 AcpiExCreateAlias (
0341     ACPI_WALK_STATE         *WalkState);
0342 
0343 ACPI_STATUS
0344 AcpiExCreateMethod (
0345     UINT8                   *AmlStart,
0346     UINT32                  AmlLength,
0347     ACPI_WALK_STATE         *WalkState);
0348 
0349 
0350 /*
0351  * exconfig - dynamic table load/unload
0352  */
0353 ACPI_STATUS
0354 AcpiExLoadOp (
0355     ACPI_OPERAND_OBJECT     *ObjDesc,
0356     ACPI_OPERAND_OBJECT     *Target,
0357     ACPI_WALK_STATE         *WalkState);
0358 
0359 ACPI_STATUS
0360 AcpiExLoadTableOp (
0361     ACPI_WALK_STATE         *WalkState,
0362     ACPI_OPERAND_OBJECT     **ReturnDesc);
0363 
0364 ACPI_STATUS
0365 AcpiExUnloadTable (
0366     ACPI_OPERAND_OBJECT     *DdbHandle);
0367 
0368 
0369 /*
0370  * exmutex - mutex support
0371  */
0372 ACPI_STATUS
0373 AcpiExAcquireMutex (
0374     ACPI_OPERAND_OBJECT     *TimeDesc,
0375     ACPI_OPERAND_OBJECT     *ObjDesc,
0376     ACPI_WALK_STATE         *WalkState);
0377 
0378 ACPI_STATUS
0379 AcpiExAcquireMutexObject (
0380     UINT16                  Timeout,
0381     ACPI_OPERAND_OBJECT     *ObjDesc,
0382     ACPI_THREAD_ID          ThreadId);
0383 
0384 ACPI_STATUS
0385 AcpiExReleaseMutex (
0386     ACPI_OPERAND_OBJECT     *ObjDesc,
0387     ACPI_WALK_STATE         *WalkState);
0388 
0389 ACPI_STATUS
0390 AcpiExReleaseMutexObject (
0391     ACPI_OPERAND_OBJECT     *ObjDesc);
0392 
0393 void
0394 AcpiExReleaseAllMutexes (
0395     ACPI_THREAD_STATE       *Thread);
0396 
0397 void
0398 AcpiExUnlinkMutex (
0399     ACPI_OPERAND_OBJECT     *ObjDesc);
0400 
0401 
0402 /*
0403  * exprep - ACPI AML execution - prep utilities
0404  */
0405 ACPI_STATUS
0406 AcpiExPrepCommonFieldObject (
0407     ACPI_OPERAND_OBJECT     *ObjDesc,
0408     UINT8                   FieldFlags,
0409     UINT8                   FieldAttribute,
0410     UINT32                  FieldBitPosition,
0411     UINT32                  FieldBitLength);
0412 
0413 ACPI_STATUS
0414 AcpiExPrepFieldValue (
0415     ACPI_CREATE_FIELD_INFO  *Info);
0416 
0417 
0418 /*
0419  * exsystem - Interface to OS services
0420  */
0421 ACPI_STATUS
0422 AcpiExSystemDoNotifyOp (
0423     ACPI_OPERAND_OBJECT     *Value,
0424     ACPI_OPERAND_OBJECT     *ObjDesc);
0425 
0426 ACPI_STATUS
0427 AcpiExSystemDoSuspend(
0428     ACPI_INTEGER            Time);
0429 
0430 ACPI_STATUS
0431 AcpiExSystemDoStall (
0432     UINT32                  Time);
0433 
0434 ACPI_STATUS
0435 AcpiExSystemSignalEvent(
0436     ACPI_OPERAND_OBJECT     *ObjDesc);
0437 
0438 ACPI_STATUS
0439 AcpiExSystemWaitEvent(
0440     ACPI_OPERAND_OBJECT     *Time,
0441     ACPI_OPERAND_OBJECT     *ObjDesc);
0442 
0443 ACPI_STATUS
0444 AcpiExSystemResetEvent(
0445     ACPI_OPERAND_OBJECT     *ObjDesc);
0446 
0447 ACPI_STATUS
0448 AcpiExSystemWaitSemaphore (
0449     ACPI_SEMAPHORE          Semaphore,
0450     UINT16                  Timeout);
0451 
0452 ACPI_STATUS
0453 AcpiExSystemWaitMutex (
0454     ACPI_MUTEX              Mutex,
0455     UINT16                  Timeout);
0456 
0457 /*
0458  * exoparg1 - ACPI AML execution, 1 operand
0459  */
0460 ACPI_STATUS
0461 AcpiExOpcode_0A_0T_1R (
0462     ACPI_WALK_STATE         *WalkState);
0463 
0464 ACPI_STATUS
0465 AcpiExOpcode_1A_0T_0R (
0466     ACPI_WALK_STATE         *WalkState);
0467 
0468 ACPI_STATUS
0469 AcpiExOpcode_1A_0T_1R (
0470     ACPI_WALK_STATE         *WalkState);
0471 
0472 ACPI_STATUS
0473 AcpiExOpcode_1A_1T_1R (
0474     ACPI_WALK_STATE         *WalkState);
0475 
0476 ACPI_STATUS
0477 AcpiExOpcode_1A_1T_0R (
0478     ACPI_WALK_STATE         *WalkState);
0479 
0480 /*
0481  * exoparg2 - ACPI AML execution, 2 operands
0482  */
0483 ACPI_STATUS
0484 AcpiExOpcode_2A_0T_0R (
0485     ACPI_WALK_STATE         *WalkState);
0486 
0487 ACPI_STATUS
0488 AcpiExOpcode_2A_0T_1R (
0489     ACPI_WALK_STATE         *WalkState);
0490 
0491 ACPI_STATUS
0492 AcpiExOpcode_2A_1T_1R (
0493     ACPI_WALK_STATE         *WalkState);
0494 
0495 ACPI_STATUS
0496 AcpiExOpcode_2A_2T_1R (
0497     ACPI_WALK_STATE         *WalkState);
0498 
0499 
0500 /*
0501  * exoparg3 - ACPI AML execution, 3 operands
0502  */
0503 ACPI_STATUS
0504 AcpiExOpcode_3A_0T_0R (
0505     ACPI_WALK_STATE         *WalkState);
0506 
0507 ACPI_STATUS
0508 AcpiExOpcode_3A_1T_1R (
0509     ACPI_WALK_STATE         *WalkState);
0510 
0511 
0512 /*
0513  * exoparg6 - ACPI AML execution, 6 operands
0514  */
0515 ACPI_STATUS
0516 AcpiExOpcode_6A_0T_1R (
0517     ACPI_WALK_STATE         *WalkState);
0518 
0519 
0520 /*
0521  * exresolv - Object resolution and get value functions
0522  */
0523 ACPI_STATUS
0524 AcpiExResolveToValue (
0525     ACPI_OPERAND_OBJECT     **StackPtr,
0526     ACPI_WALK_STATE         *WalkState);
0527 
0528 ACPI_STATUS
0529 AcpiExResolveMultiple (
0530     ACPI_WALK_STATE         *WalkState,
0531     ACPI_OPERAND_OBJECT     *Operand,
0532     ACPI_OBJECT_TYPE        *ReturnType,
0533     ACPI_OPERAND_OBJECT     **ReturnDesc);
0534 
0535 
0536 /*
0537  * exresnte - resolve namespace node
0538  */
0539 ACPI_STATUS
0540 AcpiExResolveNodeToValue (
0541     ACPI_NAMESPACE_NODE     **StackPtr,
0542     ACPI_WALK_STATE         *WalkState);
0543 
0544 
0545 /*
0546  * exresop - resolve operand to value
0547  */
0548 ACPI_STATUS
0549 AcpiExResolveOperands (
0550     UINT16                  Opcode,
0551     ACPI_OPERAND_OBJECT     **StackPtr,
0552     ACPI_WALK_STATE         *WalkState);
0553 
0554 
0555 /*
0556  * exdump - Interpreter debug output routines
0557  */
0558 void
0559 AcpiExDumpOperand (
0560     ACPI_OPERAND_OBJECT     *ObjDesc,
0561     UINT32                  Depth);
0562 
0563 void
0564 AcpiExDumpOperands (
0565     ACPI_OPERAND_OBJECT     **Operands,
0566     const char              *OpcodeName,
0567     UINT32                  NumOpcodes);
0568 
0569 void
0570 AcpiExDumpObjectDescriptor (
0571     ACPI_OPERAND_OBJECT     *Object,
0572     UINT32                  Flags);
0573 
0574 void
0575 AcpiExDumpNamespaceNode (
0576     ACPI_NAMESPACE_NODE     *Node,
0577     UINT32                  Flags);
0578 
0579 
0580 /*
0581  * exnames - AML namestring support
0582  */
0583 ACPI_STATUS
0584 AcpiExGetNameString (
0585     ACPI_OBJECT_TYPE        DataType,
0586     UINT8                   *InAmlAddress,
0587     char                    **OutNameString,
0588     UINT32                  *OutNameLength);
0589 
0590 
0591 /*
0592  * exstore - Object store support
0593  */
0594 ACPI_STATUS
0595 AcpiExStore (
0596     ACPI_OPERAND_OBJECT     *ValDesc,
0597     ACPI_OPERAND_OBJECT     *DestDesc,
0598     ACPI_WALK_STATE         *WalkState);
0599 
0600 ACPI_STATUS
0601 AcpiExStoreObjectToNode (
0602     ACPI_OPERAND_OBJECT     *SourceDesc,
0603     ACPI_NAMESPACE_NODE     *Node,
0604     ACPI_WALK_STATE         *WalkState,
0605     UINT8                   ImplicitConversion);
0606 
0607 #define ACPI_IMPLICIT_CONVERSION        TRUE
0608 #define ACPI_NO_IMPLICIT_CONVERSION     FALSE
0609 
0610 
0611 /*
0612  * exstoren - resolve/store object
0613  */
0614 ACPI_STATUS
0615 AcpiExResolveObject (
0616     ACPI_OPERAND_OBJECT     **SourceDescPtr,
0617     ACPI_OBJECT_TYPE        TargetType,
0618     ACPI_WALK_STATE         *WalkState);
0619 
0620 ACPI_STATUS
0621 AcpiExStoreObjectToObject (
0622     ACPI_OPERAND_OBJECT     *SourceDesc,
0623     ACPI_OPERAND_OBJECT     *DestDesc,
0624     ACPI_OPERAND_OBJECT     **NewDesc,
0625     ACPI_WALK_STATE         *WalkState);
0626 
0627 
0628 /*
0629  * exstorob - store object - buffer/string
0630  */
0631 ACPI_STATUS
0632 AcpiExStoreBufferToBuffer (
0633     ACPI_OPERAND_OBJECT     *SourceDesc,
0634     ACPI_OPERAND_OBJECT     *TargetDesc);
0635 
0636 ACPI_STATUS
0637 AcpiExStoreStringToString (
0638     ACPI_OPERAND_OBJECT     *SourceDesc,
0639     ACPI_OPERAND_OBJECT     *TargetDesc);
0640 
0641 
0642 /*
0643  * excopy - object copy
0644  */
0645 ACPI_STATUS
0646 AcpiExCopyIntegerToIndexField (
0647     ACPI_OPERAND_OBJECT     *SourceDesc,
0648     ACPI_OPERAND_OBJECT     *TargetDesc);
0649 
0650 ACPI_STATUS
0651 AcpiExCopyIntegerToBankField (
0652     ACPI_OPERAND_OBJECT     *SourceDesc,
0653     ACPI_OPERAND_OBJECT     *TargetDesc);
0654 
0655 ACPI_STATUS
0656 AcpiExCopyDataToNamedField (
0657     ACPI_OPERAND_OBJECT     *SourceDesc,
0658     ACPI_NAMESPACE_NODE     *Node);
0659 
0660 ACPI_STATUS
0661 AcpiExCopyIntegerToBufferField (
0662     ACPI_OPERAND_OBJECT     *SourceDesc,
0663     ACPI_OPERAND_OBJECT     *TargetDesc);
0664 
0665 
0666 /*
0667  * exutils - interpreter/scanner utilities
0668  */
0669 void
0670 AcpiExEnterInterpreter (
0671     void);
0672 
0673 void
0674 AcpiExExitInterpreter (
0675     void);
0676 
0677 void
0678 AcpiExReacquireInterpreter (
0679     void);
0680 
0681 void
0682 AcpiExRelinquishInterpreter (
0683     void);
0684 
0685 void
0686 AcpiExTruncateFor32bitTable (
0687     ACPI_OPERAND_OBJECT     *ObjDesc);
0688 
0689 void
0690 AcpiExAcquireGlobalLock (
0691     UINT32                  Rule);
0692 
0693 void
0694 AcpiExReleaseGlobalLock (
0695     UINT32                  Rule);
0696 
0697 void
0698 AcpiExEisaIdToString (
0699     char                    *Dest,
0700     ACPI_INTEGER            CompressedId);
0701 
0702 void
0703 AcpiExIntegerToString (
0704     char                    *Dest,
0705     ACPI_INTEGER            Value);
0706 
0707 
0708 /*
0709  * exregion - default OpRegion handlers
0710  */
0711 ACPI_STATUS
0712 AcpiExSystemMemorySpaceHandler (
0713     UINT32                  Function,
0714     ACPI_PHYSICAL_ADDRESS   Address,
0715     UINT32                  BitWidth,
0716     ACPI_INTEGER            *Value,
0717     void                    *HandlerContext,
0718     void                    *RegionContext);
0719 
0720 ACPI_STATUS
0721 AcpiExSystemIoSpaceHandler (
0722     UINT32                  Function,
0723     ACPI_PHYSICAL_ADDRESS   Address,
0724     UINT32                  BitWidth,
0725     ACPI_INTEGER            *Value,
0726     void                    *HandlerContext,
0727     void                    *RegionContext);
0728 
0729 ACPI_STATUS
0730 AcpiExPciConfigSpaceHandler (
0731     UINT32                  Function,
0732     ACPI_PHYSICAL_ADDRESS   Address,
0733     UINT32                  BitWidth,
0734     ACPI_INTEGER            *Value,
0735     void                    *HandlerContext,
0736     void                    *RegionContext);
0737 
0738 ACPI_STATUS
0739 AcpiExCmosSpaceHandler (
0740     UINT32                  Function,
0741     ACPI_PHYSICAL_ADDRESS   Address,
0742     UINT32                  BitWidth,
0743     ACPI_INTEGER            *Value,
0744     void                    *HandlerContext,
0745     void                    *RegionContext);
0746 
0747 ACPI_STATUS
0748 AcpiExPciBarSpaceHandler (
0749     UINT32                  Function,
0750     ACPI_PHYSICAL_ADDRESS   Address,
0751     UINT32                  BitWidth,
0752     ACPI_INTEGER            *Value,
0753     void                    *HandlerContext,
0754     void                    *RegionContext);
0755 
0756 ACPI_STATUS
0757 AcpiExEmbeddedControllerSpaceHandler (
0758     UINT32                  Function,
0759     ACPI_PHYSICAL_ADDRESS   Address,
0760     UINT32                  BitWidth,
0761     ACPI_INTEGER            *Value,
0762     void                    *HandlerContext,
0763     void                    *RegionContext);
0764 
0765 ACPI_STATUS
0766 AcpiExSmBusSpaceHandler (
0767     UINT32                  Function,
0768     ACPI_PHYSICAL_ADDRESS   Address,
0769     UINT32                  BitWidth,
0770     ACPI_INTEGER            *Value,
0771     void                    *HandlerContext,
0772     void                    *RegionContext);
0773 
0774 
0775 ACPI_STATUS
0776 AcpiExDataTableSpaceHandler (
0777     UINT32                  Function,
0778     ACPI_PHYSICAL_ADDRESS   Address,
0779     UINT32                  BitWidth,
0780     ACPI_INTEGER            *Value,
0781     void                    *HandlerContext,
0782     void                    *RegionContext);
0783 
0784 #endif /* __INTERP_H__ */