acinterp.h revision 138287
1/******************************************************************************
2 *
3 * Name: acinterp.h - Interpreter subcomponent prototypes and defines
4 *       $Revision: 155 $
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999 - 2004, Intel Corp.
13 * All rights reserved.
14 *
15 * 2. License
16 *
17 * 2.1. This is your license from Intel Corp. under its intellectual property
18 * rights.  You may have additional license terms from the party that provided
19 * you this software, covering your right to use that party's intellectual
20 * property rights.
21 *
22 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
23 * copy of the source code appearing in this file ("Covered Code") an
24 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
25 * base code distributed originally by Intel ("Original Intel Code") to copy,
26 * make derivatives, distribute, use and display any portion of the Covered
27 * Code in any form, with the right to sublicense such rights; and
28 *
29 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
30 * license (with the right to sublicense), under only those claims of Intel
31 * patents that are infringed by the Original Intel Code, to make, use, sell,
32 * offer to sell, and import the Covered Code and derivative works thereof
33 * solely to the minimum extent necessary to exercise the above copyright
34 * license, and in no event shall the patent license extend to any additions
35 * to or modifications of the Original Intel Code.  No other license or right
36 * is granted directly or by implication, estoppel or otherwise;
37 *
38 * The above copyright and patent license is granted only if the following
39 * conditions are met:
40 *
41 * 3. Conditions
42 *
43 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
44 * Redistribution of source code of any substantial portion of the Covered
45 * Code or modification with rights to further distribute source must include
46 * the above Copyright Notice, the above License, this list of Conditions,
47 * and the following Disclaimer and Export Compliance provision.  In addition,
48 * Licensee must cause all Covered Code to which Licensee contributes to
49 * contain a file documenting the changes Licensee made to create that Covered
50 * Code and the date of any change.  Licensee must include in that file the
51 * documentation of any changes made by any predecessor Licensee.  Licensee
52 * must include a prominent statement that the modification is derived,
53 * directly or indirectly, from Original Intel Code.
54 *
55 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
56 * Redistribution of source code of any substantial portion of the Covered
57 * Code or modification without rights to further distribute source must
58 * include the following Disclaimer and Export Compliance provision in the
59 * documentation and/or other materials provided with distribution.  In
60 * addition, Licensee may not authorize further sublicense of source of any
61 * portion of the Covered Code, and must include terms to the effect that the
62 * license from Licensee to its licensee is limited to the intellectual
63 * property embodied in the software Licensee provides to its licensee, and
64 * not to intellectual property embodied in modifications its licensee may
65 * make.
66 *
67 * 3.3. Redistribution of Executable. Redistribution in executable form of any
68 * substantial portion of the Covered Code or modification must reproduce the
69 * above Copyright Notice, and the following Disclaimer and Export Compliance
70 * provision in the documentation and/or other materials provided with the
71 * distribution.
72 *
73 * 3.4. Intel retains all right, title, and interest in and to the Original
74 * Intel Code.
75 *
76 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
77 * Intel shall be used in advertising or otherwise to promote the sale, use or
78 * other dealings in products derived from or relating to the Covered Code
79 * without prior written authorization from Intel.
80 *
81 * 4. Disclaimer and Export Compliance
82 *
83 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
84 * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
85 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
86 * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
87 * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
88 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
89 * PARTICULAR PURPOSE.
90 *
91 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
92 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
93 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
94 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
95 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
96 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
97 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
98 * LIMITED REMEDY.
99 *
100 * 4.3. Licensee shall not export, either directly or indirectly, any of this
101 * software or system incorporating such software without first obtaining any
102 * required license or other approval from the U. S. Department of Commerce or
103 * any other agency or department of the United States Government.  In the
104 * event Licensee exports any such software from the United States or
105 * re-exports any such software from a foreign destination, Licensee shall
106 * ensure that the distribution and export/re-export of the software is in
107 * compliance with all laws, regulations, orders, or other restrictions of the
108 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
109 * any of its subsidiaries will export/re-export any technical data, process,
110 * software, or service, directly or indirectly, to any country for which the
111 * United States government or any agency thereof requires an export license,
112 * other governmental approval, or letter of assurance, without first obtaining
113 * such license, approval or letter.
114 *
115 *****************************************************************************/
116
117#ifndef __ACINTERP_H__
118#define __ACINTERP_H__
119
120
121#define ACPI_WALK_OPERANDS       (&(WalkState->Operands [WalkState->NumOperands -1]))
122
123
124ACPI_STATUS
125AcpiExResolveOperands (
126    UINT16                  Opcode,
127    ACPI_OPERAND_OBJECT     **StackPtr,
128    ACPI_WALK_STATE         *WalkState);
129
130ACPI_STATUS
131AcpiExCheckObjectType (
132    ACPI_OBJECT_TYPE        TypeNeeded,
133    ACPI_OBJECT_TYPE        ThisType,
134    void                    *Object);
135
136/*
137 * exxface - External interpreter interfaces
138 */
139
140ACPI_STATUS
141AcpiExLoadTable (
142    ACPI_TABLE_TYPE         TableId);
143
144ACPI_STATUS
145AcpiExExecuteMethod (
146    ACPI_NAMESPACE_NODE     *MethodNode,
147    ACPI_OPERAND_OBJECT     **Params,
148    ACPI_OPERAND_OBJECT     **ReturnObjDesc);
149
150
151/*
152 * exconvrt - object conversion
153 */
154
155ACPI_STATUS
156AcpiExConvertToInteger (
157    ACPI_OPERAND_OBJECT     *ObjDesc,
158    ACPI_OPERAND_OBJECT     **ResultDesc,
159    UINT32                  Flags);
160
161ACPI_STATUS
162AcpiExConvertToBuffer (
163    ACPI_OPERAND_OBJECT     *ObjDesc,
164    ACPI_OPERAND_OBJECT     **ResultDesc);
165
166ACPI_STATUS
167AcpiExConvertToString (
168    ACPI_OPERAND_OBJECT     *ObjDesc,
169    ACPI_OPERAND_OBJECT     **ResultDesc,
170    UINT32                  Type);
171
172/* Types for ->String conversion */
173
174#define ACPI_EXPLICIT_BYTE_COPY         0x00000000
175#define ACPI_EXPLICIT_CONVERT_HEX       0x00000001
176#define ACPI_IMPLICIT_CONVERT_HEX       0x00000002
177#define ACPI_EXPLICIT_CONVERT_DECIMAL   0x00000003
178
179ACPI_STATUS
180AcpiExConvertToTargetType (
181    ACPI_OBJECT_TYPE        DestinationType,
182    ACPI_OPERAND_OBJECT     *SourceDesc,
183    ACPI_OPERAND_OBJECT     **ResultDesc,
184    ACPI_WALK_STATE         *WalkState);
185
186UINT32
187AcpiExConvertToAscii (
188    ACPI_INTEGER            Integer,
189    UINT16                  Base,
190    UINT8                   *String,
191    UINT8                   MaxLength);
192
193/*
194 * exfield - ACPI AML (p-code) execution - field manipulation
195 */
196
197ACPI_STATUS
198AcpiExCommonBufferSetup (
199    ACPI_OPERAND_OBJECT     *ObjDesc,
200    UINT32                  BufferLength,
201    UINT32                  *DatumCount);
202
203ACPI_STATUS
204AcpiExExtractFromField (
205    ACPI_OPERAND_OBJECT     *ObjDesc,
206    void                    *Buffer,
207    UINT32                  BufferLength);
208
209ACPI_STATUS
210AcpiExInsertIntoField (
211    ACPI_OPERAND_OBJECT     *ObjDesc,
212    void                    *Buffer,
213    UINT32                  BufferLength);
214
215ACPI_STATUS
216AcpiExSetupRegion (
217    ACPI_OPERAND_OBJECT     *ObjDesc,
218    UINT32                  FieldDatumByteOffset);
219
220ACPI_STATUS
221AcpiExAccessRegion (
222    ACPI_OPERAND_OBJECT     *ObjDesc,
223    UINT32                  FieldDatumByteOffset,
224    ACPI_INTEGER            *Value,
225    UINT32                  ReadWrite);
226
227BOOLEAN
228AcpiExRegisterOverflow (
229    ACPI_OPERAND_OBJECT     *ObjDesc,
230    ACPI_INTEGER            Value);
231
232ACPI_STATUS
233AcpiExFieldDatumIo (
234    ACPI_OPERAND_OBJECT     *ObjDesc,
235    UINT32                  FieldDatumByteOffset,
236    ACPI_INTEGER            *Value,
237    UINT32                  ReadWrite);
238
239ACPI_STATUS
240AcpiExWriteWithUpdateRule (
241    ACPI_OPERAND_OBJECT     *ObjDesc,
242    ACPI_INTEGER            Mask,
243    ACPI_INTEGER            FieldValue,
244    UINT32                  FieldDatumByteOffset);
245
246void
247AcpiExGetBufferDatum(
248    ACPI_INTEGER            *Datum,
249    void                    *Buffer,
250    UINT32                  BufferLength,
251    UINT32                  ByteGranularity,
252    UINT32                  BufferOffset);
253
254void
255AcpiExSetBufferDatum (
256    ACPI_INTEGER            MergedDatum,
257    void                    *Buffer,
258    UINT32                  BufferLength,
259    UINT32                  ByteGranularity,
260    UINT32                  BufferOffset);
261
262ACPI_STATUS
263AcpiExReadDataFromField (
264    ACPI_WALK_STATE         *WalkState,
265    ACPI_OPERAND_OBJECT     *ObjDesc,
266    ACPI_OPERAND_OBJECT     **RetBufferDesc);
267
268ACPI_STATUS
269AcpiExWriteDataToField (
270    ACPI_OPERAND_OBJECT     *SourceDesc,
271    ACPI_OPERAND_OBJECT     *ObjDesc,
272    ACPI_OPERAND_OBJECT     **ResultDesc);
273
274/*
275 * exmisc - ACPI AML (p-code) execution - specific opcodes
276 */
277
278ACPI_STATUS
279AcpiExOpcode_3A_0T_0R (
280    ACPI_WALK_STATE         *WalkState);
281
282ACPI_STATUS
283AcpiExOpcode_3A_1T_1R (
284    ACPI_WALK_STATE         *WalkState);
285
286ACPI_STATUS
287AcpiExOpcode_6A_0T_1R (
288    ACPI_WALK_STATE         *WalkState);
289
290BOOLEAN
291AcpiExDoMatch (
292    UINT32                  MatchOp,
293    ACPI_INTEGER            PackageValue,
294    ACPI_INTEGER            MatchValue);
295
296ACPI_STATUS
297AcpiExGetObjectReference (
298    ACPI_OPERAND_OBJECT     *ObjDesc,
299    ACPI_OPERAND_OBJECT     **ReturnDesc,
300    ACPI_WALK_STATE         *WalkState);
301
302ACPI_STATUS
303AcpiExResolveMultiple (
304    ACPI_WALK_STATE         *WalkState,
305    ACPI_OPERAND_OBJECT     *Operand,
306    ACPI_OBJECT_TYPE        *ReturnType,
307    ACPI_OPERAND_OBJECT     **ReturnDesc);
308
309ACPI_STATUS
310AcpiExConcatTemplate (
311    ACPI_OPERAND_OBJECT     *ObjDesc,
312    ACPI_OPERAND_OBJECT     *ObjDesc2,
313    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
314    ACPI_WALK_STATE         *WalkState);
315
316ACPI_STATUS
317AcpiExDoConcatenate (
318    ACPI_OPERAND_OBJECT     *ObjDesc,
319    ACPI_OPERAND_OBJECT     *ObjDesc2,
320    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
321    ACPI_WALK_STATE         *WalkState);
322
323ACPI_STATUS
324AcpiExDoLogicalNumericOp (
325    UINT16                  Opcode,
326    ACPI_INTEGER            Integer0,
327    ACPI_INTEGER            Integer1,
328    BOOLEAN                 *LogicalResult);
329
330ACPI_STATUS
331AcpiExDoLogicalOp (
332    UINT16                  Opcode,
333    ACPI_OPERAND_OBJECT     *Operand0,
334    ACPI_OPERAND_OBJECT     *Operand1,
335    BOOLEAN                 *LogicalResult);
336
337ACPI_INTEGER
338AcpiExDoMathOp (
339    UINT16                  Opcode,
340    ACPI_INTEGER            Operand0,
341    ACPI_INTEGER            Operand1);
342
343ACPI_STATUS
344AcpiExCreateMutex (
345    ACPI_WALK_STATE         *WalkState);
346
347ACPI_STATUS
348AcpiExCreateProcessor (
349    ACPI_WALK_STATE         *WalkState);
350
351ACPI_STATUS
352AcpiExCreatePowerResource (
353    ACPI_WALK_STATE         *WalkState);
354
355ACPI_STATUS
356AcpiExCreateRegion (
357    UINT8                   *AmlStart,
358    UINT32                  AmlLength,
359    UINT8                   RegionSpace,
360    ACPI_WALK_STATE         *WalkState);
361
362ACPI_STATUS
363AcpiExCreateTableRegion (
364    ACPI_WALK_STATE         *WalkState);
365
366ACPI_STATUS
367AcpiExCreateEvent (
368    ACPI_WALK_STATE         *WalkState);
369
370ACPI_STATUS
371AcpiExCreateAlias (
372    ACPI_WALK_STATE         *WalkState);
373
374ACPI_STATUS
375AcpiExCreateMethod (
376    UINT8                   *AmlStart,
377    UINT32                  AmlLength,
378    ACPI_WALK_STATE         *WalkState);
379
380
381/*
382 * exconfig - dynamic table load/unload
383 */
384
385ACPI_STATUS
386AcpiExAddTable (
387    ACPI_TABLE_HEADER       *Table,
388    ACPI_NAMESPACE_NODE     *ParentNode,
389    ACPI_OPERAND_OBJECT     **DdbHandle);
390
391ACPI_STATUS
392AcpiExLoadOp (
393    ACPI_OPERAND_OBJECT     *ObjDesc,
394    ACPI_OPERAND_OBJECT     *Target,
395    ACPI_WALK_STATE         *WalkState);
396
397ACPI_STATUS
398AcpiExLoadTableOp (
399    ACPI_WALK_STATE         *WalkState,
400    ACPI_OPERAND_OBJECT     **ReturnDesc);
401
402ACPI_STATUS
403AcpiExUnloadTable (
404    ACPI_OPERAND_OBJECT     *DdbHandle);
405
406
407/*
408 * exmutex - mutex support
409 */
410
411ACPI_STATUS
412AcpiExAcquireMutex (
413    ACPI_OPERAND_OBJECT     *TimeDesc,
414    ACPI_OPERAND_OBJECT     *ObjDesc,
415    ACPI_WALK_STATE         *WalkState);
416
417ACPI_STATUS
418AcpiExReleaseMutex (
419    ACPI_OPERAND_OBJECT     *ObjDesc,
420    ACPI_WALK_STATE         *WalkState);
421
422void
423AcpiExReleaseAllMutexes (
424    ACPI_THREAD_STATE       *Thread);
425
426void
427AcpiExUnlinkMutex (
428    ACPI_OPERAND_OBJECT     *ObjDesc);
429
430void
431AcpiExLinkMutex (
432    ACPI_OPERAND_OBJECT     *ObjDesc,
433    ACPI_THREAD_STATE       *Thread);
434
435/*
436 * exprep - ACPI AML (p-code) execution - prep utilities
437 */
438
439ACPI_STATUS
440AcpiExPrepCommonFieldObject (
441    ACPI_OPERAND_OBJECT     *ObjDesc,
442    UINT8                   FieldFlags,
443    UINT8                   FieldAttribute,
444    UINT32                  FieldBitPosition,
445    UINT32                  FieldBitLength);
446
447ACPI_STATUS
448AcpiExPrepFieldValue (
449    ACPI_CREATE_FIELD_INFO  *Info);
450
451/*
452 * exsystem - Interface to OS services
453 */
454
455ACPI_STATUS
456AcpiExSystemDoNotifyOp (
457    ACPI_OPERAND_OBJECT     *Value,
458    ACPI_OPERAND_OBJECT     *ObjDesc);
459
460ACPI_STATUS
461AcpiExSystemDoSuspend(
462    ACPI_INTEGER            Time);
463
464ACPI_STATUS
465AcpiExSystemDoStall (
466    UINT32                  Time);
467
468ACPI_STATUS
469AcpiExSystemAcquireMutex(
470    ACPI_OPERAND_OBJECT     *Time,
471    ACPI_OPERAND_OBJECT     *ObjDesc);
472
473ACPI_STATUS
474AcpiExSystemReleaseMutex(
475    ACPI_OPERAND_OBJECT     *ObjDesc);
476
477ACPI_STATUS
478AcpiExSystemSignalEvent(
479    ACPI_OPERAND_OBJECT     *ObjDesc);
480
481ACPI_STATUS
482AcpiExSystemWaitEvent(
483    ACPI_OPERAND_OBJECT     *Time,
484    ACPI_OPERAND_OBJECT     *ObjDesc);
485
486ACPI_STATUS
487AcpiExSystemResetEvent(
488    ACPI_OPERAND_OBJECT     *ObjDesc);
489
490ACPI_STATUS
491AcpiExSystemWaitSemaphore (
492    ACPI_HANDLE             Semaphore,
493    UINT16                  Timeout);
494
495
496/*
497 * exmonadic - ACPI AML (p-code) execution, monadic operators
498 */
499
500ACPI_STATUS
501AcpiExOpcode_0A_0T_1R (
502    ACPI_WALK_STATE         *WalkState);
503
504ACPI_STATUS
505AcpiExOpcode_1A_0T_0R (
506    ACPI_WALK_STATE         *WalkState);
507
508ACPI_STATUS
509AcpiExOpcode_1A_0T_1R (
510    ACPI_WALK_STATE         *WalkState);
511
512ACPI_STATUS
513AcpiExOpcode_1A_1T_1R (
514    ACPI_WALK_STATE         *WalkState);
515
516ACPI_STATUS
517AcpiExOpcode_1A_1T_0R (
518    ACPI_WALK_STATE         *WalkState);
519
520/*
521 * exdyadic - ACPI AML (p-code) execution, dyadic operators
522 */
523
524ACPI_STATUS
525AcpiExOpcode_2A_0T_0R (
526    ACPI_WALK_STATE         *WalkState);
527
528ACPI_STATUS
529AcpiExOpcode_2A_0T_1R (
530    ACPI_WALK_STATE         *WalkState);
531
532ACPI_STATUS
533AcpiExOpcode_2A_1T_1R (
534    ACPI_WALK_STATE         *WalkState);
535
536ACPI_STATUS
537AcpiExOpcode_2A_2T_1R (
538    ACPI_WALK_STATE         *WalkState);
539
540
541/*
542 * exresolv  - Object resolution and get value functions
543 */
544
545ACPI_STATUS
546AcpiExResolveToValue (
547    ACPI_OPERAND_OBJECT     **StackPtr,
548    ACPI_WALK_STATE         *WalkState);
549
550ACPI_STATUS
551AcpiExResolveNodeToValue (
552    ACPI_NAMESPACE_NODE     **StackPtr,
553    ACPI_WALK_STATE         *WalkState);
554
555ACPI_STATUS
556AcpiExResolveObjectToValue (
557    ACPI_OPERAND_OBJECT     **StackPtr,
558    ACPI_WALK_STATE         *WalkState);
559
560
561/*
562 * exdump - Interpreter debug output routines
563 */
564
565void
566AcpiExDumpOperand (
567    ACPI_OPERAND_OBJECT     *ObjDesc,
568    UINT32                  Depth);
569
570void
571AcpiExDumpOperands (
572    ACPI_OPERAND_OBJECT     **Operands,
573    ACPI_INTERPRETER_MODE   InterpreterMode,
574    char                    *Ident,
575    UINT32                  NumLevels,
576    char                    *Note,
577    char                    *ModuleName,
578    UINT32                  LineNumber);
579
580void
581AcpiExDumpObjectDescriptor (
582    ACPI_OPERAND_OBJECT     *Object,
583    UINT32                  Flags);
584
585void
586AcpiExDumpNode (
587    ACPI_NAMESPACE_NODE     *Node,
588    UINT32                  Flags);
589
590void
591AcpiExOutString (
592    char                    *Title,
593    char                    *Value);
594
595void
596AcpiExOutPointer (
597    char                    *Title,
598    void                    *Value);
599
600void
601AcpiExOutInteger (
602    char                    *Title,
603    UINT32                  Value);
604
605void
606AcpiExOutAddress (
607    char                    *Title,
608    ACPI_PHYSICAL_ADDRESS   Value);
609
610
611/*
612 * exnames - interpreter/scanner name load/execute
613 */
614
615char *
616AcpiExAllocateNameString (
617    UINT32                  PrefixCount,
618    UINT32                  NumNameSegs);
619
620UINT32
621AcpiExGoodChar (
622    UINT32                  Character);
623
624ACPI_STATUS
625AcpiExNameSegment (
626    UINT8                   **InAmlAddress,
627    char                    *NameString);
628
629ACPI_STATUS
630AcpiExGetNameString (
631    ACPI_OBJECT_TYPE        DataType,
632    UINT8                   *InAmlAddress,
633    char                    **OutNameString,
634    UINT32                  *OutNameLength);
635
636ACPI_STATUS
637AcpiExDoName (
638    ACPI_OBJECT_TYPE        DataType,
639    ACPI_INTERPRETER_MODE   LoadExecMode);
640
641
642/*
643 * exstore - Object store support
644 */
645
646ACPI_STATUS
647AcpiExStore (
648    ACPI_OPERAND_OBJECT     *ValDesc,
649    ACPI_OPERAND_OBJECT     *DestDesc,
650    ACPI_WALK_STATE         *WalkState);
651
652ACPI_STATUS
653AcpiExStoreObjectToIndex (
654    ACPI_OPERAND_OBJECT     *ValDesc,
655    ACPI_OPERAND_OBJECT     *DestDesc,
656    ACPI_WALK_STATE         *WalkState);
657
658ACPI_STATUS
659AcpiExStoreObjectToNode (
660    ACPI_OPERAND_OBJECT     *SourceDesc,
661    ACPI_NAMESPACE_NODE     *Node,
662    ACPI_WALK_STATE         *WalkState,
663    UINT8                   ImplicitConversion);
664
665#define ACPI_IMPLICIT_CONVERSION        TRUE
666#define ACPI_NO_IMPLICIT_CONVERSION     FALSE
667
668/*
669 * exstoren
670 */
671
672ACPI_STATUS
673AcpiExResolveObject (
674    ACPI_OPERAND_OBJECT     **SourceDescPtr,
675    ACPI_OBJECT_TYPE        TargetType,
676    ACPI_WALK_STATE         *WalkState);
677
678ACPI_STATUS
679AcpiExStoreObjectToObject (
680    ACPI_OPERAND_OBJECT     *SourceDesc,
681    ACPI_OPERAND_OBJECT     *DestDesc,
682    ACPI_OPERAND_OBJECT     **NewDesc,
683    ACPI_WALK_STATE         *WalkState);
684
685
686/*
687 * excopy - object copy
688 */
689
690ACPI_STATUS
691AcpiExStoreBufferToBuffer (
692    ACPI_OPERAND_OBJECT     *SourceDesc,
693    ACPI_OPERAND_OBJECT     *TargetDesc);
694
695ACPI_STATUS
696AcpiExStoreStringToString (
697    ACPI_OPERAND_OBJECT     *SourceDesc,
698    ACPI_OPERAND_OBJECT     *TargetDesc);
699
700ACPI_STATUS
701AcpiExCopyIntegerToIndexField (
702    ACPI_OPERAND_OBJECT     *SourceDesc,
703    ACPI_OPERAND_OBJECT     *TargetDesc);
704
705ACPI_STATUS
706AcpiExCopyIntegerToBankField (
707    ACPI_OPERAND_OBJECT     *SourceDesc,
708    ACPI_OPERAND_OBJECT     *TargetDesc);
709
710ACPI_STATUS
711AcpiExCopyDataToNamedField (
712    ACPI_OPERAND_OBJECT     *SourceDesc,
713    ACPI_NAMESPACE_NODE     *Node);
714
715ACPI_STATUS
716AcpiExCopyIntegerToBufferField (
717    ACPI_OPERAND_OBJECT     *SourceDesc,
718    ACPI_OPERAND_OBJECT     *TargetDesc);
719
720/*
721 * exutils - interpreter/scanner utilities
722 */
723
724ACPI_STATUS
725AcpiExEnterInterpreter (
726    void);
727
728void
729AcpiExExitInterpreter (
730    void);
731
732void
733AcpiExTruncateFor32bitTable (
734    ACPI_OPERAND_OBJECT     *ObjDesc);
735
736BOOLEAN
737AcpiExAcquireGlobalLock (
738    UINT32                  Rule);
739
740void
741AcpiExReleaseGlobalLock (
742    BOOLEAN                 Locked);
743
744UINT32
745AcpiExDigitsNeeded (
746    ACPI_INTEGER            Value,
747    UINT32                  Base);
748
749void
750AcpiExEisaIdToString (
751    UINT32                  NumericId,
752    char                    *OutString);
753
754void
755AcpiExUnsignedIntegerToString (
756    ACPI_INTEGER            Value,
757    char                    *OutString);
758
759
760/*
761 * exregion - default OpRegion handlers
762 */
763
764ACPI_STATUS
765AcpiExSystemMemorySpaceHandler (
766    UINT32                  Function,
767    ACPI_PHYSICAL_ADDRESS   Address,
768    UINT32                  BitWidth,
769    ACPI_INTEGER            *Value,
770    void                    *HandlerContext,
771    void                    *RegionContext);
772
773ACPI_STATUS
774AcpiExSystemIoSpaceHandler (
775    UINT32                  Function,
776    ACPI_PHYSICAL_ADDRESS   Address,
777    UINT32                  BitWidth,
778    ACPI_INTEGER            *Value,
779    void                    *HandlerContext,
780    void                    *RegionContext);
781
782ACPI_STATUS
783AcpiExPciConfigSpaceHandler (
784    UINT32                  Function,
785    ACPI_PHYSICAL_ADDRESS   Address,
786    UINT32                  BitWidth,
787    ACPI_INTEGER            *Value,
788    void                    *HandlerContext,
789    void                    *RegionContext);
790
791ACPI_STATUS
792AcpiExCmosSpaceHandler (
793    UINT32                  Function,
794    ACPI_PHYSICAL_ADDRESS   Address,
795    UINT32                  BitWidth,
796    ACPI_INTEGER            *Value,
797    void                    *HandlerContext,
798    void                    *RegionContext);
799
800ACPI_STATUS
801AcpiExPciBarSpaceHandler (
802    UINT32                  Function,
803    ACPI_PHYSICAL_ADDRESS   Address,
804    UINT32                  BitWidth,
805    ACPI_INTEGER            *Value,
806    void                    *HandlerContext,
807    void                    *RegionContext);
808
809ACPI_STATUS
810AcpiExEmbeddedControllerSpaceHandler (
811    UINT32                  Function,
812    ACPI_PHYSICAL_ADDRESS   Address,
813    UINT32                  BitWidth,
814    ACPI_INTEGER            *Value,
815    void                    *HandlerContext,
816    void                    *RegionContext);
817
818ACPI_STATUS
819AcpiExSmBusSpaceHandler (
820    UINT32                  Function,
821    ACPI_PHYSICAL_ADDRESS   Address,
822    UINT32                  BitWidth,
823    ACPI_INTEGER            *Value,
824    void                    *HandlerContext,
825    void                    *RegionContext);
826
827
828ACPI_STATUS
829AcpiExDataTableSpaceHandler (
830    UINT32                  Function,
831    ACPI_PHYSICAL_ADDRESS   Address,
832    UINT32                  BitWidth,
833    ACPI_INTEGER            *Value,
834    void                    *HandlerContext,
835    void                    *RegionContext);
836
837#endif /* __INTERP_H__ */
838