acinterp.h revision 114237
1/******************************************************************************
2 *
3 * Name: acinterp.h - Interpreter subcomponent prototypes and defines
4 *       $Revision: 145 $
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999 - 2003, 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    ACPI_WALK_STATE         *WalkState);
160
161ACPI_STATUS
162AcpiExConvertToBuffer (
163    ACPI_OPERAND_OBJECT     *ObjDesc,
164    ACPI_OPERAND_OBJECT     **ResultDesc,
165    ACPI_WALK_STATE         *WalkState);
166
167ACPI_STATUS
168AcpiExConvertToString (
169    ACPI_OPERAND_OBJECT     *ObjDesc,
170    ACPI_OPERAND_OBJECT     **ResultDesc,
171    UINT32                  Base,
172    UINT32                  MaxLength,
173    ACPI_WALK_STATE         *WalkState);
174
175ACPI_STATUS
176AcpiExConvertToTargetType (
177    ACPI_OBJECT_TYPE        DestinationType,
178    ACPI_OPERAND_OBJECT     *SourceDesc,
179    ACPI_OPERAND_OBJECT     **ResultDesc,
180    ACPI_WALK_STATE         *WalkState);
181
182UINT32
183AcpiExConvertToAscii (
184    ACPI_INTEGER            Integer,
185    UINT32                  Base,
186    UINT8                   *String,
187    UINT8                   MaxLength);
188
189/*
190 * exfield - ACPI AML (p-code) execution - field manipulation
191 */
192
193ACPI_STATUS
194AcpiExExtractFromField (
195    ACPI_OPERAND_OBJECT     *ObjDesc,
196    void                    *Buffer,
197    UINT32                  BufferLength);
198
199ACPI_STATUS
200AcpiExInsertIntoField (
201    ACPI_OPERAND_OBJECT     *ObjDesc,
202    void                    *Buffer,
203    UINT32                  BufferLength);
204
205ACPI_STATUS
206AcpiExSetupRegion (
207    ACPI_OPERAND_OBJECT     *ObjDesc,
208    UINT32                  FieldDatumByteOffset);
209
210ACPI_STATUS
211AcpiExAccessRegion (
212    ACPI_OPERAND_OBJECT     *ObjDesc,
213    UINT32                  FieldDatumByteOffset,
214    ACPI_INTEGER            *Value,
215    UINT32                  ReadWrite);
216
217BOOLEAN
218AcpiExRegisterOverflow (
219    ACPI_OPERAND_OBJECT     *ObjDesc,
220    ACPI_INTEGER            Value);
221
222ACPI_STATUS
223AcpiExFieldDatumIo (
224    ACPI_OPERAND_OBJECT     *ObjDesc,
225    UINT32                  FieldDatumByteOffset,
226    ACPI_INTEGER            *Value,
227    UINT32                  ReadWrite);
228
229ACPI_STATUS
230AcpiExWriteWithUpdateRule (
231    ACPI_OPERAND_OBJECT     *ObjDesc,
232    ACPI_INTEGER            Mask,
233    ACPI_INTEGER            FieldValue,
234    UINT32                  FieldDatumByteOffset);
235
236void
237AcpiExGetBufferDatum(
238    ACPI_INTEGER            *Datum,
239    void                    *Buffer,
240    UINT32                  ByteGranularity,
241    UINT32                  Offset);
242
243void
244AcpiExSetBufferDatum (
245    ACPI_INTEGER            MergedDatum,
246    void                    *Buffer,
247    UINT32                  ByteGranularity,
248    UINT32                  Offset);
249
250ACPI_STATUS
251AcpiExReadDataFromField (
252    ACPI_WALK_STATE         *WalkState,
253    ACPI_OPERAND_OBJECT     *ObjDesc,
254    ACPI_OPERAND_OBJECT     **RetBufferDesc);
255
256ACPI_STATUS
257AcpiExWriteDataToField (
258    ACPI_OPERAND_OBJECT     *SourceDesc,
259    ACPI_OPERAND_OBJECT     *ObjDesc,
260    ACPI_OPERAND_OBJECT     **ResultDesc);
261
262/*
263 * exmisc - ACPI AML (p-code) execution - specific opcodes
264 */
265
266ACPI_STATUS
267AcpiExOpcode_3A_0T_0R (
268    ACPI_WALK_STATE         *WalkState);
269
270ACPI_STATUS
271AcpiExOpcode_3A_1T_1R (
272    ACPI_WALK_STATE         *WalkState);
273
274ACPI_STATUS
275AcpiExOpcode_6A_0T_1R (
276    ACPI_WALK_STATE         *WalkState);
277
278BOOLEAN
279AcpiExDoMatch (
280    UINT32                  MatchOp,
281    ACPI_INTEGER            PackageValue,
282    ACPI_INTEGER            MatchValue);
283
284ACPI_STATUS
285AcpiExGetObjectReference (
286    ACPI_OPERAND_OBJECT     *ObjDesc,
287    ACPI_OPERAND_OBJECT     **ReturnDesc,
288    ACPI_WALK_STATE         *WalkState);
289
290ACPI_STATUS
291AcpiExResolveMultiple (
292    ACPI_WALK_STATE         *WalkState,
293    ACPI_OPERAND_OBJECT     *Operand,
294    ACPI_OBJECT_TYPE        *ReturnType,
295    ACPI_OPERAND_OBJECT     **ReturnDesc);
296
297ACPI_STATUS
298AcpiExConcatTemplate (
299    ACPI_OPERAND_OBJECT     *ObjDesc,
300    ACPI_OPERAND_OBJECT     *ObjDesc2,
301    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
302    ACPI_WALK_STATE         *WalkState);
303
304ACPI_STATUS
305AcpiExDoConcatenate (
306    ACPI_OPERAND_OBJECT     *ObjDesc,
307    ACPI_OPERAND_OBJECT     *ObjDesc2,
308    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
309    ACPI_WALK_STATE         *WalkState);
310
311BOOLEAN
312AcpiExDoLogicalOp (
313    UINT16                  Opcode,
314    ACPI_INTEGER            Operand0,
315    ACPI_INTEGER            Operand1);
316
317ACPI_INTEGER
318AcpiExDoMathOp (
319    UINT16                  Opcode,
320    ACPI_INTEGER            Operand0,
321    ACPI_INTEGER            Operand1);
322
323ACPI_STATUS
324AcpiExCreateMutex (
325    ACPI_WALK_STATE         *WalkState);
326
327ACPI_STATUS
328AcpiExCreateProcessor (
329    ACPI_WALK_STATE         *WalkState);
330
331ACPI_STATUS
332AcpiExCreatePowerResource (
333    ACPI_WALK_STATE         *WalkState);
334
335ACPI_STATUS
336AcpiExCreateRegion (
337    UINT8                   *AmlStart,
338    UINT32                  AmlLength,
339    UINT8                   RegionSpace,
340    ACPI_WALK_STATE         *WalkState);
341
342ACPI_STATUS
343AcpiExCreateTableRegion (
344    ACPI_WALK_STATE         *WalkState);
345
346ACPI_STATUS
347AcpiExCreateEvent (
348    ACPI_WALK_STATE         *WalkState);
349
350ACPI_STATUS
351AcpiExCreateAlias (
352    ACPI_WALK_STATE         *WalkState);
353
354ACPI_STATUS
355AcpiExCreateMethod (
356    UINT8                   *AmlStart,
357    UINT32                  AmlLength,
358    ACPI_WALK_STATE         *WalkState);
359
360
361/*
362 * exconfig - dynamic table load/unload
363 */
364
365ACPI_STATUS
366AcpiExAddTable (
367    ACPI_TABLE_HEADER       *Table,
368    ACPI_NAMESPACE_NODE     *ParentNode,
369    ACPI_OPERAND_OBJECT     **DdbHandle);
370
371ACPI_STATUS
372AcpiExLoadOp (
373    ACPI_OPERAND_OBJECT     *ObjDesc,
374    ACPI_OPERAND_OBJECT     *Target,
375    ACPI_WALK_STATE         *WalkState);
376
377ACPI_STATUS
378AcpiExLoadTableOp (
379    ACPI_WALK_STATE         *WalkState,
380    ACPI_OPERAND_OBJECT     **ReturnDesc);
381
382ACPI_STATUS
383AcpiExUnloadTable (
384    ACPI_OPERAND_OBJECT     *DdbHandle);
385
386
387/*
388 * exmutex - mutex support
389 */
390
391ACPI_STATUS
392AcpiExAcquireMutex (
393    ACPI_OPERAND_OBJECT     *TimeDesc,
394    ACPI_OPERAND_OBJECT     *ObjDesc,
395    ACPI_WALK_STATE         *WalkState);
396
397ACPI_STATUS
398AcpiExReleaseMutex (
399    ACPI_OPERAND_OBJECT     *ObjDesc,
400    ACPI_WALK_STATE         *WalkState);
401
402void
403AcpiExReleaseAllMutexes (
404    ACPI_THREAD_STATE       *Thread);
405
406void
407AcpiExUnlinkMutex (
408    ACPI_OPERAND_OBJECT     *ObjDesc);
409
410void
411AcpiExLinkMutex (
412    ACPI_OPERAND_OBJECT     *ObjDesc,
413    ACPI_THREAD_STATE       *Thread);
414
415/*
416 * exprep - ACPI AML (p-code) execution - prep utilities
417 */
418
419ACPI_STATUS
420AcpiExPrepCommonFieldObject (
421    ACPI_OPERAND_OBJECT     *ObjDesc,
422    UINT8                   FieldFlags,
423    UINT8                   FieldAttribute,
424    UINT32                  FieldBitPosition,
425    UINT32                  FieldBitLength);
426
427ACPI_STATUS
428AcpiExPrepFieldValue (
429    ACPI_CREATE_FIELD_INFO  *Info);
430
431/*
432 * exsystem - Interface to OS services
433 */
434
435ACPI_STATUS
436AcpiExSystemDoNotifyOp (
437    ACPI_OPERAND_OBJECT     *Value,
438    ACPI_OPERAND_OBJECT     *ObjDesc);
439
440ACPI_STATUS
441AcpiExSystemDoSuspend(
442    UINT32                  Time);
443
444ACPI_STATUS
445AcpiExSystemDoStall (
446    UINT32                  Time);
447
448ACPI_STATUS
449AcpiExSystemAcquireMutex(
450    ACPI_OPERAND_OBJECT     *Time,
451    ACPI_OPERAND_OBJECT     *ObjDesc);
452
453ACPI_STATUS
454AcpiExSystemReleaseMutex(
455    ACPI_OPERAND_OBJECT     *ObjDesc);
456
457ACPI_STATUS
458AcpiExSystemSignalEvent(
459    ACPI_OPERAND_OBJECT     *ObjDesc);
460
461ACPI_STATUS
462AcpiExSystemWaitEvent(
463    ACPI_OPERAND_OBJECT     *Time,
464    ACPI_OPERAND_OBJECT     *ObjDesc);
465
466ACPI_STATUS
467AcpiExSystemResetEvent(
468    ACPI_OPERAND_OBJECT     *ObjDesc);
469
470ACPI_STATUS
471AcpiExSystemWaitSemaphore (
472    ACPI_HANDLE             Semaphore,
473    UINT16                  Timeout);
474
475
476/*
477 * exmonadic - ACPI AML (p-code) execution, monadic operators
478 */
479
480ACPI_STATUS
481AcpiExOpcode_1A_0T_0R (
482    ACPI_WALK_STATE         *WalkState);
483
484ACPI_STATUS
485AcpiExOpcode_1A_0T_1R (
486    ACPI_WALK_STATE         *WalkState);
487
488ACPI_STATUS
489AcpiExOpcode_1A_1T_1R (
490    ACPI_WALK_STATE         *WalkState);
491
492ACPI_STATUS
493AcpiExOpcode_1A_1T_0R (
494    ACPI_WALK_STATE         *WalkState);
495
496/*
497 * exdyadic - ACPI AML (p-code) execution, dyadic operators
498 */
499
500ACPI_STATUS
501AcpiExOpcode_2A_0T_0R (
502    ACPI_WALK_STATE         *WalkState);
503
504ACPI_STATUS
505AcpiExOpcode_2A_0T_1R (
506    ACPI_WALK_STATE         *WalkState);
507
508ACPI_STATUS
509AcpiExOpcode_2A_1T_1R (
510    ACPI_WALK_STATE         *WalkState);
511
512ACPI_STATUS
513AcpiExOpcode_2A_2T_1R (
514    ACPI_WALK_STATE         *WalkState);
515
516
517/*
518 * exresolv  - Object resolution and get value functions
519 */
520
521ACPI_STATUS
522AcpiExResolveToValue (
523    ACPI_OPERAND_OBJECT     **StackPtr,
524    ACPI_WALK_STATE         *WalkState);
525
526ACPI_STATUS
527AcpiExResolveNodeToValue (
528    ACPI_NAMESPACE_NODE     **StackPtr,
529    ACPI_WALK_STATE         *WalkState);
530
531ACPI_STATUS
532AcpiExResolveObjectToValue (
533    ACPI_OPERAND_OBJECT     **StackPtr,
534    ACPI_WALK_STATE         *WalkState);
535
536
537/*
538 * exdump - Scanner debug output routines
539 */
540
541void
542AcpiExDumpOperand (
543    ACPI_OPERAND_OBJECT     *EntryDesc);
544
545void
546AcpiExDumpOperands (
547    ACPI_OPERAND_OBJECT     **Operands,
548    ACPI_INTERPRETER_MODE   InterpreterMode,
549    char                    *Ident,
550    UINT32                  NumLevels,
551    char                    *Note,
552    char                    *ModuleName,
553    UINT32                  LineNumber);
554
555void
556AcpiExDumpObjectDescriptor (
557    ACPI_OPERAND_OBJECT     *Object,
558    UINT32                  Flags);
559
560void
561AcpiExDumpNode (
562    ACPI_NAMESPACE_NODE     *Node,
563    UINT32                  Flags);
564
565void
566AcpiExOutString (
567    char                    *Title,
568    char                    *Value);
569
570void
571AcpiExOutPointer (
572    char                    *Title,
573    void                    *Value);
574
575void
576AcpiExOutInteger (
577    char                    *Title,
578    UINT32                  Value);
579
580void
581AcpiExOutAddress (
582    char                    *Title,
583    ACPI_PHYSICAL_ADDRESS   Value);
584
585
586/*
587 * exnames - interpreter/scanner name load/execute
588 */
589
590char *
591AcpiExAllocateNameString (
592    UINT32                  PrefixCount,
593    UINT32                  NumNameSegs);
594
595UINT32
596AcpiExGoodChar (
597    UINT32                  Character);
598
599ACPI_STATUS
600AcpiExNameSegment (
601    UINT8                   **InAmlAddress,
602    char                    *NameString);
603
604ACPI_STATUS
605AcpiExGetNameString (
606    ACPI_OBJECT_TYPE        DataType,
607    UINT8                   *InAmlAddress,
608    char                    **OutNameString,
609    UINT32                  *OutNameLength);
610
611ACPI_STATUS
612AcpiExDoName (
613    ACPI_OBJECT_TYPE        DataType,
614    ACPI_INTERPRETER_MODE   LoadExecMode);
615
616
617/*
618 * exstore - Object store support
619 */
620
621ACPI_STATUS
622AcpiExStore (
623    ACPI_OPERAND_OBJECT     *ValDesc,
624    ACPI_OPERAND_OBJECT     *DestDesc,
625    ACPI_WALK_STATE         *WalkState);
626
627ACPI_STATUS
628AcpiExStoreObjectToIndex (
629    ACPI_OPERAND_OBJECT     *ValDesc,
630    ACPI_OPERAND_OBJECT     *DestDesc,
631    ACPI_WALK_STATE         *WalkState);
632
633ACPI_STATUS
634AcpiExStoreObjectToNode (
635    ACPI_OPERAND_OBJECT     *SourceDesc,
636    ACPI_NAMESPACE_NODE     *Node,
637    ACPI_WALK_STATE         *WalkState);
638
639
640/*
641 * exstoren
642 */
643
644ACPI_STATUS
645AcpiExResolveObject (
646    ACPI_OPERAND_OBJECT     **SourceDescPtr,
647    ACPI_OBJECT_TYPE        TargetType,
648    ACPI_WALK_STATE         *WalkState);
649
650ACPI_STATUS
651AcpiExStoreObjectToObject (
652    ACPI_OPERAND_OBJECT     *SourceDesc,
653    ACPI_OPERAND_OBJECT     *DestDesc,
654    ACPI_OPERAND_OBJECT     **NewDesc,
655    ACPI_WALK_STATE         *WalkState);
656
657
658/*
659 * excopy - object copy
660 */
661
662ACPI_STATUS
663AcpiExStoreBufferToBuffer (
664    ACPI_OPERAND_OBJECT     *SourceDesc,
665    ACPI_OPERAND_OBJECT     *TargetDesc);
666
667ACPI_STATUS
668AcpiExStoreStringToString (
669    ACPI_OPERAND_OBJECT     *SourceDesc,
670    ACPI_OPERAND_OBJECT     *TargetDesc);
671
672ACPI_STATUS
673AcpiExCopyIntegerToIndexField (
674    ACPI_OPERAND_OBJECT     *SourceDesc,
675    ACPI_OPERAND_OBJECT     *TargetDesc);
676
677ACPI_STATUS
678AcpiExCopyIntegerToBankField (
679    ACPI_OPERAND_OBJECT     *SourceDesc,
680    ACPI_OPERAND_OBJECT     *TargetDesc);
681
682ACPI_STATUS
683AcpiExCopyDataToNamedField (
684    ACPI_OPERAND_OBJECT     *SourceDesc,
685    ACPI_NAMESPACE_NODE     *Node);
686
687ACPI_STATUS
688AcpiExCopyIntegerToBufferField (
689    ACPI_OPERAND_OBJECT     *SourceDesc,
690    ACPI_OPERAND_OBJECT     *TargetDesc);
691
692/*
693 * exutils - interpreter/scanner utilities
694 */
695
696ACPI_STATUS
697AcpiExEnterInterpreter (
698    void);
699
700void
701AcpiExExitInterpreter (
702    void);
703
704void
705AcpiExTruncateFor32bitTable (
706    ACPI_OPERAND_OBJECT     *ObjDesc);
707
708BOOLEAN
709AcpiExAcquireGlobalLock (
710    UINT32                  Rule);
711
712void
713AcpiExReleaseGlobalLock (
714    BOOLEAN                 Locked);
715
716UINT32
717AcpiExDigitsNeeded (
718    ACPI_INTEGER            Value,
719    UINT32                  Base);
720
721void
722AcpiExEisaIdToString (
723    UINT32                  NumericId,
724    char                    *OutString);
725
726void
727AcpiExUnsignedIntegerToString (
728    ACPI_INTEGER            Value,
729    char                    *OutString);
730
731
732/*
733 * exregion - default OpRegion handlers
734 */
735
736ACPI_STATUS
737AcpiExSystemMemorySpaceHandler (
738    UINT32                  Function,
739    ACPI_PHYSICAL_ADDRESS   Address,
740    UINT32                  BitWidth,
741    ACPI_INTEGER            *Value,
742    void                    *HandlerContext,
743    void                    *RegionContext);
744
745ACPI_STATUS
746AcpiExSystemIoSpaceHandler (
747    UINT32                  Function,
748    ACPI_PHYSICAL_ADDRESS   Address,
749    UINT32                  BitWidth,
750    ACPI_INTEGER            *Value,
751    void                    *HandlerContext,
752    void                    *RegionContext);
753
754ACPI_STATUS
755AcpiExPciConfigSpaceHandler (
756    UINT32                  Function,
757    ACPI_PHYSICAL_ADDRESS   Address,
758    UINT32                  BitWidth,
759    ACPI_INTEGER            *Value,
760    void                    *HandlerContext,
761    void                    *RegionContext);
762
763ACPI_STATUS
764AcpiExCmosSpaceHandler (
765    UINT32                  Function,
766    ACPI_PHYSICAL_ADDRESS   Address,
767    UINT32                  BitWidth,
768    ACPI_INTEGER            *Value,
769    void                    *HandlerContext,
770    void                    *RegionContext);
771
772ACPI_STATUS
773AcpiExPciBarSpaceHandler (
774    UINT32                  Function,
775    ACPI_PHYSICAL_ADDRESS   Address,
776    UINT32                  BitWidth,
777    ACPI_INTEGER            *Value,
778    void                    *HandlerContext,
779    void                    *RegionContext);
780
781ACPI_STATUS
782AcpiExEmbeddedControllerSpaceHandler (
783    UINT32                  Function,
784    ACPI_PHYSICAL_ADDRESS   Address,
785    UINT32                  BitWidth,
786    ACPI_INTEGER            *Value,
787    void                    *HandlerContext,
788    void                    *RegionContext);
789
790ACPI_STATUS
791AcpiExSmBusSpaceHandler (
792    UINT32                  Function,
793    ACPI_PHYSICAL_ADDRESS   Address,
794    UINT32                  BitWidth,
795    ACPI_INTEGER            *Value,
796    void                    *HandlerContext,
797    void                    *RegionContext);
798
799
800ACPI_STATUS
801AcpiExDataTableSpaceHandler (
802    UINT32                  Function,
803    ACPI_PHYSICAL_ADDRESS   Address,
804    UINT32                  BitWidth,
805    ACPI_INTEGER            *Value,
806    void                    *HandlerContext,
807    void                    *RegionContext);
808
809#endif /* __INTERP_H__ */
810