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