acinterp.h revision 82367
1/******************************************************************************
2 *
3 * Name: acinterp.h - Interpreter subcomponent prototypes and defines
4 *       $Revision: 106 $
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999, 2000, 2001, 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 WALK_OPERANDS       &(WalkState->Operands [WalkState->NumOperands -1])
122
123
124/* Interpreter constants */
125
126#define AML_END_OF_BLOCK            -1
127#define PUSH_PKG_LENGTH             1
128#define DO_NOT_PUSH_PKG_LENGTH      0
129
130
131#define STACK_TOP                   0
132#define STACK_BOTTOM                (UINT32) -1
133
134/* Constants for global "WhenToParseMethods" */
135
136#define METHOD_PARSE_AT_INIT        0x0
137#define METHOD_PARSE_JUST_IN_TIME   0x1
138#define METHOD_DELETE_AT_COMPLETION 0x2
139
140
141ACPI_STATUS
142AcpiExResolveOperands (
143    UINT16                  Opcode,
144    ACPI_OPERAND_OBJECT     **StackPtr,
145    ACPI_WALK_STATE         *WalkState);
146
147
148/*
149 * amxface - External interpreter interfaces
150 */
151
152ACPI_STATUS
153AcpiExLoadTable (
154    ACPI_TABLE_TYPE         TableId);
155
156ACPI_STATUS
157AcpiExExecuteMethod (
158    ACPI_NAMESPACE_NODE     *MethodNode,
159    ACPI_OPERAND_OBJECT     **Params,
160    ACPI_OPERAND_OBJECT     **ReturnObjDesc);
161
162
163/*
164 * amconvrt - object conversion
165 */
166
167ACPI_STATUS
168AcpiExConvertToInteger (
169    ACPI_OPERAND_OBJECT     *ObjDesc,
170    ACPI_OPERAND_OBJECT     **ResultDesc,
171    ACPI_WALK_STATE         *WalkState);
172
173ACPI_STATUS
174AcpiExConvertToBuffer (
175    ACPI_OPERAND_OBJECT     *ObjDesc,
176    ACPI_OPERAND_OBJECT     **ResultDesc,
177    ACPI_WALK_STATE         *WalkState);
178
179ACPI_STATUS
180AcpiExConvertToString (
181    ACPI_OPERAND_OBJECT     *ObjDesc,
182    ACPI_OPERAND_OBJECT     **ResultDesc,
183    UINT32                  Base,
184    UINT32                  MaxLength,
185    ACPI_WALK_STATE         *WalkState);
186
187ACPI_STATUS
188AcpiExConvertToTargetType (
189    ACPI_OBJECT_TYPE8       DestinationType,
190    ACPI_OPERAND_OBJECT     **ObjDesc,
191    ACPI_WALK_STATE         *WalkState);
192
193
194/*
195 * amfield - ACPI AML (p-code) execution - field manipulation
196 */
197
198ACPI_STATUS
199AcpiExExtractFromField (
200    ACPI_OPERAND_OBJECT     *ObjDesc,
201    void                    *Buffer,
202    UINT32                  BufferLength);
203
204ACPI_STATUS
205AcpiExInsertIntoField (
206    ACPI_OPERAND_OBJECT     *ObjDesc,
207    void                    *Buffer,
208    UINT32                  BufferLength);
209
210ACPI_STATUS
211AcpiExSetupField (
212    ACPI_OPERAND_OBJECT     *ObjDesc,
213    UINT32                  FieldByteOffset);
214
215ACPI_STATUS
216AcpiExReadFieldDatum (
217    ACPI_OPERAND_OBJECT     *ObjDesc,
218    UINT32                  FieldByteOffset,
219    UINT32                  *Value);
220
221ACPI_STATUS
222AcpiExCommonAccessField (
223    UINT32                  Mode,
224    ACPI_OPERAND_OBJECT     *ObjDesc,
225    void                    *Buffer,
226    UINT32                  BufferLength);
227
228
229ACPI_STATUS
230AcpiExAccessIndexField (
231    UINT32                  Mode,
232    ACPI_OPERAND_OBJECT     *ObjDesc,
233    void                    *Buffer,
234    UINT32                  BufferLength);
235
236ACPI_STATUS
237AcpiExAccessBankField (
238    UINT32                  Mode,
239    ACPI_OPERAND_OBJECT     *ObjDesc,
240    void                    *Buffer,
241    UINT32                  BufferLength);
242
243ACPI_STATUS
244AcpiExAccessRegionField (
245    UINT32                  Mode,
246    ACPI_OPERAND_OBJECT     *ObjDesc,
247    void                    *Buffer,
248    UINT32                  BufferLength);
249
250
251ACPI_STATUS
252AcpiExAccessBufferField (
253    UINT32                  Mode,
254    ACPI_OPERAND_OBJECT     *ObjDesc,
255    void                    *Buffer,
256    UINT32                  BufferLength);
257
258ACPI_STATUS
259AcpiExReadDataFromField (
260    ACPI_OPERAND_OBJECT     *ObjDesc,
261    ACPI_OPERAND_OBJECT     **RetBufferDesc);
262
263ACPI_STATUS
264AcpiExWriteDataToField (
265    ACPI_OPERAND_OBJECT     *SourceDesc,
266    ACPI_OPERAND_OBJECT     *ObjDesc);
267
268/*
269 * ammisc - ACPI AML (p-code) execution - specific opcodes
270 */
271
272ACPI_STATUS
273AcpiExTriadic (
274    UINT16                  Opcode,
275    ACPI_WALK_STATE         *WalkState,
276    ACPI_OPERAND_OBJECT     **ReturnDesc);
277
278ACPI_STATUS
279AcpiExHexadic (
280    UINT16                  Opcode,
281    ACPI_WALK_STATE         *WalkState,
282    ACPI_OPERAND_OBJECT     **ReturnDesc);
283
284ACPI_STATUS
285AcpiExCreateBufferField (
286    UINT8                   *AmlPtr,
287    UINT32                  AmlLength,
288    ACPI_NAMESPACE_NODE     *Node,
289    ACPI_WALK_STATE         *WalkState);
290
291ACPI_STATUS
292AcpiExReconfiguration (
293    UINT16                  Opcode,
294    ACPI_WALK_STATE         *WalkState);
295
296ACPI_STATUS
297AcpiExCreateMutex (
298    ACPI_WALK_STATE         *WalkState);
299
300ACPI_STATUS
301AcpiExCreateProcessor (
302    ACPI_PARSE_OBJECT       *Op,
303    ACPI_NAMESPACE_NODE     *ProcessorNode);
304
305ACPI_STATUS
306AcpiExCreatePowerResource (
307    ACPI_PARSE_OBJECT       *Op,
308    ACPI_NAMESPACE_NODE     *PowerNode);
309
310ACPI_STATUS
311AcpiExCreateRegion (
312    UINT8                   *AmlPtr,
313    UINT32                  AmlLength,
314    UINT8                   RegionSpace,
315    ACPI_WALK_STATE         *WalkState);
316
317ACPI_STATUS
318AcpiExCreateEvent (
319    ACPI_WALK_STATE         *WalkState);
320
321ACPI_STATUS
322AcpiExCreateAlias (
323    ACPI_WALK_STATE         *WalkState);
324
325ACPI_STATUS
326AcpiExCreateMethod (
327    UINT8                   *AmlPtr,
328    UINT32                  AmlLength,
329    UINT32                  MethodFlags,
330    ACPI_NAMESPACE_NODE     *Method);
331
332
333/*
334 * ammutex - mutex support
335 */
336
337ACPI_STATUS
338AcpiExAcquireMutex (
339    ACPI_OPERAND_OBJECT     *TimeDesc,
340    ACPI_OPERAND_OBJECT     *ObjDesc,
341    ACPI_WALK_STATE         *WalkState);
342
343ACPI_STATUS
344AcpiExReleaseMutex (
345    ACPI_OPERAND_OBJECT     *ObjDesc,
346    ACPI_WALK_STATE         *WalkState);
347
348ACPI_STATUS
349AcpiExReleaseAllMutexes (
350    ACPI_OPERAND_OBJECT     *MutexList);
351
352void
353AcpiExUnlinkMutex (
354    ACPI_OPERAND_OBJECT     *ObjDesc);
355
356
357/*
358 * amprep - ACPI AML (p-code) execution - prep utilities
359 */
360
361ACPI_STATUS
362AcpiExPrepCommonFieldObject (
363    ACPI_OPERAND_OBJECT     *ObjDesc,
364    UINT8                   FieldFlags,
365    UINT32                  FieldPosition,
366    UINT32                  FieldLength);
367
368ACPI_STATUS
369AcpiExPrepRegionFieldValue (
370    ACPI_NAMESPACE_NODE     *Node,
371    ACPI_HANDLE             Region,
372    UINT8                   FieldFlags,
373    UINT32                  FieldPosition,
374    UINT32                  FieldLength);
375
376ACPI_STATUS
377AcpiExPrepBankFieldValue (
378    ACPI_NAMESPACE_NODE     *Node,
379    ACPI_NAMESPACE_NODE     *RegionNode,
380    ACPI_NAMESPACE_NODE     *BankRegisterNode,
381    UINT32                  BankVal,
382    UINT8                   FieldFlags,
383    UINT32                  FieldPosition,
384    UINT32                  FieldLength);
385
386ACPI_STATUS
387AcpiExPrepIndexFieldValue (
388    ACPI_NAMESPACE_NODE     *Node,
389    ACPI_NAMESPACE_NODE     *IndexReg,
390    ACPI_NAMESPACE_NODE     *DataReg,
391    UINT8                   FieldFlags,
392    UINT32                  FieldPosition,
393    UINT32                  FieldLength);
394
395
396/*
397 * amsystem - Interface to OS services
398 */
399
400ACPI_STATUS
401AcpiExSystemDoNotifyOp (
402    ACPI_OPERAND_OBJECT     *Value,
403    ACPI_OPERAND_OBJECT     *ObjDesc);
404
405void
406AcpiExSystemDoSuspend(
407    UINT32                  Time);
408
409void
410AcpiExSystemDoStall (
411    UINT32                  Time);
412
413ACPI_STATUS
414AcpiExSystemAcquireMutex(
415    ACPI_OPERAND_OBJECT     *Time,
416    ACPI_OPERAND_OBJECT     *ObjDesc);
417
418ACPI_STATUS
419AcpiExSystemReleaseMutex(
420    ACPI_OPERAND_OBJECT     *ObjDesc);
421
422ACPI_STATUS
423AcpiExSystemSignalEvent(
424    ACPI_OPERAND_OBJECT     *ObjDesc);
425
426ACPI_STATUS
427AcpiExSystemWaitEvent(
428    ACPI_OPERAND_OBJECT     *Time,
429    ACPI_OPERAND_OBJECT     *ObjDesc);
430
431ACPI_STATUS
432AcpiExSystemResetEvent(
433    ACPI_OPERAND_OBJECT     *ObjDesc);
434
435ACPI_STATUS
436AcpiExSystemWaitSemaphore (
437    ACPI_HANDLE             Semaphore,
438    UINT32                  Timeout);
439
440
441/*
442 * ammonadic - ACPI AML (p-code) execution, monadic operators
443 */
444
445ACPI_STATUS
446AcpiExMonadic1 (
447    UINT16                  Opcode,
448    ACPI_WALK_STATE         *WalkState);
449
450ACPI_STATUS
451AcpiExMonadic2 (
452    UINT16                  Opcode,
453    ACPI_WALK_STATE         *WalkState,
454    ACPI_OPERAND_OBJECT     **ReturnDesc);
455
456ACPI_STATUS
457AcpiExMonadic2R (
458    UINT16                  Opcode,
459    ACPI_WALK_STATE         *WalkState,
460    ACPI_OPERAND_OBJECT     **ReturnDesc);
461
462
463/*
464 * amdyadic - ACPI AML (p-code) execution, dyadic operators
465 */
466
467ACPI_STATUS
468AcpiExDyadic1 (
469    UINT16                  Opcode,
470    ACPI_WALK_STATE         *WalkState);
471
472ACPI_STATUS
473AcpiExDyadic2 (
474    UINT16                  Opcode,
475    ACPI_WALK_STATE         *WalkState,
476    ACPI_OPERAND_OBJECT     **ReturnDesc);
477
478ACPI_STATUS
479AcpiExDyadic2R (
480    UINT16                  Opcode,
481    ACPI_WALK_STATE         *WalkState,
482    ACPI_OPERAND_OBJECT     **ReturnDesc);
483
484ACPI_STATUS
485AcpiExDyadic2S (
486    UINT16                  Opcode,
487    ACPI_WALK_STATE         *WalkState,
488    ACPI_OPERAND_OBJECT     **ReturnDesc);
489
490
491/*
492 * amresolv  - Object resolution and get value functions
493 */
494
495ACPI_STATUS
496AcpiExResolveToValue (
497    ACPI_OPERAND_OBJECT     **StackPtr,
498    ACPI_WALK_STATE         *WalkState);
499
500ACPI_STATUS
501AcpiExResolveNodeToValue (
502    ACPI_NAMESPACE_NODE     **StackPtr,
503    ACPI_WALK_STATE         *WalkState);
504
505ACPI_STATUS
506AcpiExResolveObjectToValue (
507    ACPI_OPERAND_OBJECT     **StackPtr,
508    ACPI_WALK_STATE         *WalkState);
509
510ACPI_STATUS
511AcpiExGetBufferFieldValue (
512    ACPI_OPERAND_OBJECT     *FieldDesc,
513    ACPI_OPERAND_OBJECT     *ResultDesc);
514
515
516/*
517 * amdump - Scanner debug output routines
518 */
519
520void
521AcpiExShowHexValue (
522    UINT32                  ByteCount,
523    UINT8                   *AmlPtr,
524    UINT32                  LeadSpace);
525
526
527ACPI_STATUS
528AcpiExDumpOperand (
529    ACPI_OPERAND_OBJECT     *EntryDesc);
530
531void
532AcpiExDumpOperands (
533    ACPI_OPERAND_OBJECT     **Operands,
534    OPERATING_MODE          InterpreterMode,
535    NATIVE_CHAR             *Ident,
536    UINT32                  NumLevels,
537    NATIVE_CHAR             *Note,
538    NATIVE_CHAR             *ModuleName,
539    UINT32                  LineNumber);
540
541void
542AcpiExDumpObjectDescriptor (
543    ACPI_OPERAND_OBJECT     *Object,
544    UINT32                  Flags);
545
546
547void
548AcpiExDumpNode (
549    ACPI_NAMESPACE_NODE     *Node,
550    UINT32                  Flags);
551
552
553/*
554 * amnames - interpreter/scanner name load/execute
555 */
556
557NATIVE_CHAR *
558AcpiExAllocateNameString (
559    UINT32                  PrefixCount,
560    UINT32                  NumNameSegs);
561
562UINT32
563AcpiExGoodChar (
564    UINT32                  Character);
565
566ACPI_STATUS
567AcpiExNameSegment (
568    UINT8                   **InAmlAddress,
569    NATIVE_CHAR             *NameString);
570
571ACPI_STATUS
572AcpiExGetNameString (
573    ACPI_OBJECT_TYPE8       DataType,
574    UINT8                   *InAmlAddress,
575    NATIVE_CHAR             **OutNameString,
576    UINT32                  *OutNameLength);
577
578ACPI_STATUS
579AcpiExDoName (
580    ACPI_OBJECT_TYPE        DataType,
581    OPERATING_MODE          LoadExecMode);
582
583
584/*
585 * amstore - Object store support
586 */
587
588ACPI_STATUS
589AcpiExStore (
590    ACPI_OPERAND_OBJECT     *ValDesc,
591    ACPI_OPERAND_OBJECT     *DestDesc,
592    ACPI_WALK_STATE         *WalkState);
593
594ACPI_STATUS
595AcpiExStoreObjectToIndex (
596    ACPI_OPERAND_OBJECT     *ValDesc,
597    ACPI_OPERAND_OBJECT     *DestDesc,
598    ACPI_WALK_STATE         *WalkState);
599
600ACPI_STATUS
601AcpiExStoreObjectToNode (
602    ACPI_OPERAND_OBJECT     *SourceDesc,
603    ACPI_NAMESPACE_NODE     *Node,
604    ACPI_WALK_STATE         *WalkState);
605
606ACPI_STATUS
607AcpiExStoreObjectToObject (
608    ACPI_OPERAND_OBJECT     *SourceDesc,
609    ACPI_OPERAND_OBJECT     *DestDesc,
610    ACPI_WALK_STATE         *WalkState);
611
612
613/*
614 *
615 */
616
617ACPI_STATUS
618AcpiExResolveObject (
619    ACPI_OPERAND_OBJECT     **SourceDescPtr,
620    ACPI_OBJECT_TYPE8       TargetType,
621    ACPI_WALK_STATE         *WalkState);
622
623ACPI_STATUS
624AcpiExStoreObject (
625    ACPI_OPERAND_OBJECT     *SourceDesc,
626    ACPI_OBJECT_TYPE8       TargetType,
627    ACPI_OPERAND_OBJECT     **TargetDescPtr,
628    ACPI_WALK_STATE         *WalkState);
629
630
631/*
632 * amcopy - object copy
633 */
634
635ACPI_STATUS
636AcpiExCopyBufferToBuffer (
637    ACPI_OPERAND_OBJECT     *SourceDesc,
638    ACPI_OPERAND_OBJECT     *TargetDesc);
639
640ACPI_STATUS
641AcpiExCopyStringToString (
642    ACPI_OPERAND_OBJECT     *SourceDesc,
643    ACPI_OPERAND_OBJECT     *TargetDesc);
644
645ACPI_STATUS
646AcpiExCopyIntegerToIndexField (
647    ACPI_OPERAND_OBJECT     *SourceDesc,
648    ACPI_OPERAND_OBJECT     *TargetDesc);
649
650ACPI_STATUS
651AcpiExCopyIntegerToBankField (
652    ACPI_OPERAND_OBJECT     *SourceDesc,
653    ACPI_OPERAND_OBJECT     *TargetDesc);
654
655ACPI_STATUS
656AcpiExCopyDataToNamedField (
657    ACPI_OPERAND_OBJECT     *SourceDesc,
658    ACPI_NAMESPACE_NODE     *Node);
659
660ACPI_STATUS
661AcpiExCopyIntegerToBufferField (
662    ACPI_OPERAND_OBJECT     *SourceDesc,
663    ACPI_OPERAND_OBJECT     *TargetDesc);
664
665/*
666 * amutils - interpreter/scanner utilities
667 */
668
669ACPI_STATUS
670AcpiExEnterInterpreter (
671    void);
672
673void
674AcpiExExitInterpreter (
675    void);
676
677void
678AcpiExTruncateFor32bitTable (
679    ACPI_OPERAND_OBJECT     *ObjDesc,
680    ACPI_WALK_STATE         *WalkState);
681
682BOOLEAN
683AcpiExValidateObjectType (
684    ACPI_OBJECT_TYPE        Type);
685
686BOOLEAN
687AcpiExAcquireGlobalLock (
688    UINT32                  Rule);
689
690ACPI_STATUS
691AcpiExReleaseGlobalLock (
692    BOOLEAN                 Locked);
693
694UINT32
695AcpiExDigitsNeeded (
696    ACPI_INTEGER            Value,
697    UINT32                  Base);
698
699ACPI_STATUS
700AcpiExEisaIdToString (
701    UINT32                  NumericId,
702    NATIVE_CHAR             *OutString);
703
704ACPI_STATUS
705AcpiExUnsignedIntegerToString (
706    ACPI_INTEGER            Value,
707    NATIVE_CHAR             *OutString);
708
709
710/*
711 * amregion - default OpRegion handlers
712 */
713
714ACPI_STATUS
715AcpiExSystemMemorySpaceHandler (
716    UINT32                  Function,
717    ACPI_PHYSICAL_ADDRESS   Address,
718    UINT32                  BitWidth,
719    UINT32                  *Value,
720    void                    *HandlerContext,
721    void                    *RegionContext);
722
723ACPI_STATUS
724AcpiExSystemIoSpaceHandler (
725    UINT32                  Function,
726    ACPI_PHYSICAL_ADDRESS   Address,
727    UINT32                  BitWidth,
728    UINT32                  *Value,
729    void                    *HandlerContext,
730    void                    *RegionContext);
731
732ACPI_STATUS
733AcpiExPciConfigSpaceHandler (
734    UINT32                  Function,
735    ACPI_PHYSICAL_ADDRESS   Address,
736    UINT32                  BitWidth,
737    UINT32                  *Value,
738    void                    *HandlerContext,
739    void                    *RegionContext);
740
741ACPI_STATUS
742AcpiExEmbeddedControllerSpaceHandler (
743    UINT32                  Function,
744    ACPI_PHYSICAL_ADDRESS   Address,
745    UINT32                  BitWidth,
746    UINT32                  *Value,
747    void                    *HandlerContext,
748    void                    *RegionContext);
749
750ACPI_STATUS
751AcpiExSmBusSpaceHandler (
752    UINT32                  Function,
753    ACPI_PHYSICAL_ADDRESS   Address,
754    UINT32                  BitWidth,
755    UINT32                  *Value,
756    void                    *HandlerContext,
757    void                    *RegionContext);
758
759
760#endif /* __INTERP_H__ */
761