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