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