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