acinterp.h revision 117521
1/******************************************************************************
2 *
3 * Name: acinterp.h - Interpreter subcomponent prototypes and defines
4 *       $Revision: 146 $
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                  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
641
642/*
643 * exstoren
644 */
645
646ACPI_STATUS
647AcpiExResolveObject (
648    ACPI_OPERAND_OBJECT     **SourceDescPtr,
649    ACPI_OBJECT_TYPE        TargetType,
650    ACPI_WALK_STATE         *WalkState);
651
652ACPI_STATUS
653AcpiExStoreObjectToObject (
654    ACPI_OPERAND_OBJECT     *SourceDesc,
655    ACPI_OPERAND_OBJECT     *DestDesc,
656    ACPI_OPERAND_OBJECT     **NewDesc,
657    ACPI_WALK_STATE         *WalkState);
658
659
660/*
661 * excopy - object copy
662 */
663
664ACPI_STATUS
665AcpiExStoreBufferToBuffer (
666    ACPI_OPERAND_OBJECT     *SourceDesc,
667    ACPI_OPERAND_OBJECT     *TargetDesc);
668
669ACPI_STATUS
670AcpiExStoreStringToString (
671    ACPI_OPERAND_OBJECT     *SourceDesc,
672    ACPI_OPERAND_OBJECT     *TargetDesc);
673
674ACPI_STATUS
675AcpiExCopyIntegerToIndexField (
676    ACPI_OPERAND_OBJECT     *SourceDesc,
677    ACPI_OPERAND_OBJECT     *TargetDesc);
678
679ACPI_STATUS
680AcpiExCopyIntegerToBankField (
681    ACPI_OPERAND_OBJECT     *SourceDesc,
682    ACPI_OPERAND_OBJECT     *TargetDesc);
683
684ACPI_STATUS
685AcpiExCopyDataToNamedField (
686    ACPI_OPERAND_OBJECT     *SourceDesc,
687    ACPI_NAMESPACE_NODE     *Node);
688
689ACPI_STATUS
690AcpiExCopyIntegerToBufferField (
691    ACPI_OPERAND_OBJECT     *SourceDesc,
692    ACPI_OPERAND_OBJECT     *TargetDesc);
693
694/*
695 * exutils - interpreter/scanner utilities
696 */
697
698ACPI_STATUS
699AcpiExEnterInterpreter (
700    void);
701
702void
703AcpiExExitInterpreter (
704    void);
705
706void
707AcpiExTruncateFor32bitTable (
708    ACPI_OPERAND_OBJECT     *ObjDesc);
709
710BOOLEAN
711AcpiExAcquireGlobalLock (
712    UINT32                  Rule);
713
714void
715AcpiExReleaseGlobalLock (
716    BOOLEAN                 Locked);
717
718UINT32
719AcpiExDigitsNeeded (
720    ACPI_INTEGER            Value,
721    UINT32                  Base);
722
723void
724AcpiExEisaIdToString (
725    UINT32                  NumericId,
726    char                    *OutString);
727
728void
729AcpiExUnsignedIntegerToString (
730    ACPI_INTEGER            Value,
731    char                    *OutString);
732
733
734/*
735 * exregion - default OpRegion handlers
736 */
737
738ACPI_STATUS
739AcpiExSystemMemorySpaceHandler (
740    UINT32                  Function,
741    ACPI_PHYSICAL_ADDRESS   Address,
742    UINT32                  BitWidth,
743    ACPI_INTEGER            *Value,
744    void                    *HandlerContext,
745    void                    *RegionContext);
746
747ACPI_STATUS
748AcpiExSystemIoSpaceHandler (
749    UINT32                  Function,
750    ACPI_PHYSICAL_ADDRESS   Address,
751    UINT32                  BitWidth,
752    ACPI_INTEGER            *Value,
753    void                    *HandlerContext,
754    void                    *RegionContext);
755
756ACPI_STATUS
757AcpiExPciConfigSpaceHandler (
758    UINT32                  Function,
759    ACPI_PHYSICAL_ADDRESS   Address,
760    UINT32                  BitWidth,
761    ACPI_INTEGER            *Value,
762    void                    *HandlerContext,
763    void                    *RegionContext);
764
765ACPI_STATUS
766AcpiExCmosSpaceHandler (
767    UINT32                  Function,
768    ACPI_PHYSICAL_ADDRESS   Address,
769    UINT32                  BitWidth,
770    ACPI_INTEGER            *Value,
771    void                    *HandlerContext,
772    void                    *RegionContext);
773
774ACPI_STATUS
775AcpiExPciBarSpaceHandler (
776    UINT32                  Function,
777    ACPI_PHYSICAL_ADDRESS   Address,
778    UINT32                  BitWidth,
779    ACPI_INTEGER            *Value,
780    void                    *HandlerContext,
781    void                    *RegionContext);
782
783ACPI_STATUS
784AcpiExEmbeddedControllerSpaceHandler (
785    UINT32                  Function,
786    ACPI_PHYSICAL_ADDRESS   Address,
787    UINT32                  BitWidth,
788    ACPI_INTEGER            *Value,
789    void                    *HandlerContext,
790    void                    *RegionContext);
791
792ACPI_STATUS
793AcpiExSmBusSpaceHandler (
794    UINT32                  Function,
795    ACPI_PHYSICAL_ADDRESS   Address,
796    UINT32                  BitWidth,
797    ACPI_INTEGER            *Value,
798    void                    *HandlerContext,
799    void                    *RegionContext);
800
801
802ACPI_STATUS
803AcpiExDataTableSpaceHandler (
804    UINT32                  Function,
805    ACPI_PHYSICAL_ADDRESS   Address,
806    UINT32                  BitWidth,
807    ACPI_INTEGER            *Value,
808    void                    *HandlerContext,
809    void                    *RegionContext);
810
811#endif /* __INTERP_H__ */
812