acinterp.h revision 99146
1/******************************************************************************
2 *
3 * Name: acinterp.h - Interpreter subcomponent prototypes and defines
4 *       $Revision: 133 $
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
130
131/*
132 * exxface - External interpreter interfaces
133 */
134
135ACPI_STATUS
136AcpiExLoadTable (
137    ACPI_TABLE_TYPE         TableId);
138
139ACPI_STATUS
140AcpiExExecuteMethod (
141    ACPI_NAMESPACE_NODE     *MethodNode,
142    ACPI_OPERAND_OBJECT     **Params,
143    ACPI_OPERAND_OBJECT     **ReturnObjDesc);
144
145
146/*
147 * exconvrt - object conversion
148 */
149
150ACPI_STATUS
151AcpiExConvertToInteger (
152    ACPI_OPERAND_OBJECT     *ObjDesc,
153    ACPI_OPERAND_OBJECT     **ResultDesc,
154    ACPI_WALK_STATE         *WalkState);
155
156ACPI_STATUS
157AcpiExConvertToBuffer (
158    ACPI_OPERAND_OBJECT     *ObjDesc,
159    ACPI_OPERAND_OBJECT     **ResultDesc,
160    ACPI_WALK_STATE         *WalkState);
161
162ACPI_STATUS
163AcpiExConvertToString (
164    ACPI_OPERAND_OBJECT     *ObjDesc,
165    ACPI_OPERAND_OBJECT     **ResultDesc,
166    UINT32                  Base,
167    UINT32                  MaxLength,
168    ACPI_WALK_STATE         *WalkState);
169
170ACPI_STATUS
171AcpiExConvertToTargetType (
172    ACPI_OBJECT_TYPE        DestinationType,
173    ACPI_OPERAND_OBJECT     *SourceDesc,
174    ACPI_OPERAND_OBJECT     **ResultDesc,
175    ACPI_WALK_STATE         *WalkState);
176
177
178/*
179 * exfield - ACPI AML (p-code) execution - field manipulation
180 */
181
182ACPI_STATUS
183AcpiExExtractFromField (
184    ACPI_OPERAND_OBJECT     *ObjDesc,
185    void                    *Buffer,
186    UINT32                  BufferLength);
187
188ACPI_STATUS
189AcpiExInsertIntoField (
190    ACPI_OPERAND_OBJECT     *ObjDesc,
191    void                    *Buffer,
192    UINT32                  BufferLength);
193
194ACPI_STATUS
195AcpiExSetupRegion (
196    ACPI_OPERAND_OBJECT     *ObjDesc,
197    UINT32                  FieldDatumByteOffset);
198
199ACPI_STATUS
200AcpiExAccessRegion (
201    ACPI_OPERAND_OBJECT     *ObjDesc,
202    UINT32                  FieldDatumByteOffset,
203    ACPI_INTEGER            *Value,
204    UINT32                  ReadWrite);
205
206BOOLEAN
207AcpiExRegisterOverflow (
208    ACPI_OPERAND_OBJECT     *ObjDesc,
209    ACPI_INTEGER            Value);
210
211ACPI_STATUS
212AcpiExFieldDatumIo (
213    ACPI_OPERAND_OBJECT     *ObjDesc,
214    UINT32                  FieldDatumByteOffset,
215    ACPI_INTEGER            *Value,
216    UINT32                  ReadWrite);
217
218ACPI_STATUS
219AcpiExWriteWithUpdateRule (
220    ACPI_OPERAND_OBJECT     *ObjDesc,
221    ACPI_INTEGER            Mask,
222    ACPI_INTEGER            FieldValue,
223    UINT32                  FieldDatumByteOffset);
224
225void
226AcpiExGetBufferDatum(
227    ACPI_INTEGER            *Datum,
228    void                    *Buffer,
229    UINT32                  ByteGranularity,
230    UINT32                  Offset);
231
232void
233AcpiExSetBufferDatum (
234    ACPI_INTEGER            MergedDatum,
235    void                    *Buffer,
236    UINT32                  ByteGranularity,
237    UINT32                  Offset);
238
239ACPI_STATUS
240AcpiExReadDataFromField (
241    ACPI_WALK_STATE         *WalkState,
242    ACPI_OPERAND_OBJECT     *ObjDesc,
243    ACPI_OPERAND_OBJECT     **RetBufferDesc);
244
245ACPI_STATUS
246AcpiExWriteDataToField (
247    ACPI_OPERAND_OBJECT     *SourceDesc,
248    ACPI_OPERAND_OBJECT     *ObjDesc);
249
250/*
251 * exmisc - ACPI AML (p-code) execution - specific opcodes
252 */
253
254ACPI_STATUS
255AcpiExOpcode_3A_0T_0R (
256    ACPI_WALK_STATE         *WalkState);
257
258ACPI_STATUS
259AcpiExOpcode_3A_1T_1R (
260    ACPI_WALK_STATE         *WalkState);
261
262ACPI_STATUS
263AcpiExOpcode_6A_0T_1R (
264    ACPI_WALK_STATE         *WalkState);
265
266ACPI_STATUS
267AcpiExGetObjectReference (
268    ACPI_OPERAND_OBJECT     *ObjDesc,
269    ACPI_OPERAND_OBJECT     **ReturnDesc,
270    ACPI_WALK_STATE         *WalkState);
271
272ACPI_STATUS
273AcpiExConcatTemplate (
274    ACPI_OPERAND_OBJECT     *ObjDesc,
275    ACPI_OPERAND_OBJECT     *ObjDesc2,
276    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
277    ACPI_WALK_STATE         *WalkState);
278
279ACPI_STATUS
280AcpiExDoConcatenate (
281    ACPI_OPERAND_OBJECT     *ObjDesc,
282    ACPI_OPERAND_OBJECT     *ObjDesc2,
283    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
284    ACPI_WALK_STATE         *WalkState);
285
286BOOLEAN
287AcpiExDoLogicalOp (
288    UINT16                  Opcode,
289    ACPI_INTEGER            Operand0,
290    ACPI_INTEGER            Operand1);
291
292ACPI_INTEGER
293AcpiExDoMathOp (
294    UINT16                  Opcode,
295    ACPI_INTEGER            Operand0,
296    ACPI_INTEGER            Operand1);
297
298ACPI_STATUS
299AcpiExCreateMutex (
300    ACPI_WALK_STATE         *WalkState);
301
302ACPI_STATUS
303AcpiExCreateProcessor (
304    ACPI_WALK_STATE         *WalkState);
305
306ACPI_STATUS
307AcpiExCreatePowerResource (
308    ACPI_WALK_STATE         *WalkState);
309
310ACPI_STATUS
311AcpiExCreateRegion (
312    UINT8                   *AmlStart,
313    UINT32                  AmlLength,
314    UINT8                   RegionSpace,
315    ACPI_WALK_STATE         *WalkState);
316
317ACPI_STATUS
318AcpiExCreateTableRegion (
319    ACPI_WALK_STATE         *WalkState);
320
321ACPI_STATUS
322AcpiExCreateEvent (
323    ACPI_WALK_STATE         *WalkState);
324
325ACPI_STATUS
326AcpiExCreateAlias (
327    ACPI_WALK_STATE         *WalkState);
328
329ACPI_STATUS
330AcpiExCreateMethod (
331    UINT8                   *AmlStart,
332    UINT32                  AmlLength,
333    ACPI_WALK_STATE         *WalkState);
334
335
336/*
337 * exconfig - dynamic table load/unload
338 */
339
340ACPI_STATUS
341AcpiExAddTable (
342    ACPI_TABLE_HEADER       *Table,
343    ACPI_NAMESPACE_NODE     *ParentNode,
344    ACPI_OPERAND_OBJECT     **DdbHandle);
345
346ACPI_STATUS
347AcpiExLoadOp (
348    ACPI_OPERAND_OBJECT     *ObjDesc,
349    ACPI_OPERAND_OBJECT     *Target,
350    ACPI_WALK_STATE         *WalkState);
351
352ACPI_STATUS
353AcpiExLoadTableOp (
354    ACPI_WALK_STATE         *WalkState,
355    ACPI_OPERAND_OBJECT     **ReturnDesc);
356
357ACPI_STATUS
358AcpiExUnloadTable (
359    ACPI_OPERAND_OBJECT     *DdbHandle);
360
361
362/*
363 * exmutex - mutex support
364 */
365
366ACPI_STATUS
367AcpiExAcquireMutex (
368    ACPI_OPERAND_OBJECT     *TimeDesc,
369    ACPI_OPERAND_OBJECT     *ObjDesc,
370    ACPI_WALK_STATE         *WalkState);
371
372ACPI_STATUS
373AcpiExReleaseMutex (
374    ACPI_OPERAND_OBJECT     *ObjDesc,
375    ACPI_WALK_STATE         *WalkState);
376
377ACPI_STATUS
378AcpiExReleaseAllMutexes (
379    ACPI_THREAD_STATE       *Thread);
380
381void
382AcpiExUnlinkMutex (
383    ACPI_OPERAND_OBJECT     *ObjDesc);
384
385void
386AcpiExLinkMutex (
387    ACPI_OPERAND_OBJECT     *ObjDesc,
388    ACPI_THREAD_STATE       *Thread);
389
390/*
391 * exprep - ACPI AML (p-code) execution - prep utilities
392 */
393
394ACPI_STATUS
395AcpiExPrepCommonFieldObject (
396    ACPI_OPERAND_OBJECT     *ObjDesc,
397    UINT8                   FieldFlags,
398    UINT8                   FieldAttribute,
399    UINT32                  FieldBitPosition,
400    UINT32                  FieldBitLength);
401
402ACPI_STATUS
403AcpiExPrepFieldValue (
404    ACPI_CREATE_FIELD_INFO  *Info);
405
406/*
407 * exsystem - Interface to OS services
408 */
409
410ACPI_STATUS
411AcpiExSystemDoNotifyOp (
412    ACPI_OPERAND_OBJECT     *Value,
413    ACPI_OPERAND_OBJECT     *ObjDesc);
414
415ACPI_STATUS
416AcpiExSystemDoSuspend(
417    UINT32                  Time);
418
419ACPI_STATUS
420AcpiExSystemDoStall (
421    UINT32                  Time);
422
423ACPI_STATUS
424AcpiExSystemAcquireMutex(
425    ACPI_OPERAND_OBJECT     *Time,
426    ACPI_OPERAND_OBJECT     *ObjDesc);
427
428ACPI_STATUS
429AcpiExSystemReleaseMutex(
430    ACPI_OPERAND_OBJECT     *ObjDesc);
431
432ACPI_STATUS
433AcpiExSystemSignalEvent(
434    ACPI_OPERAND_OBJECT     *ObjDesc);
435
436ACPI_STATUS
437AcpiExSystemWaitEvent(
438    ACPI_OPERAND_OBJECT     *Time,
439    ACPI_OPERAND_OBJECT     *ObjDesc);
440
441ACPI_STATUS
442AcpiExSystemResetEvent(
443    ACPI_OPERAND_OBJECT     *ObjDesc);
444
445ACPI_STATUS
446AcpiExSystemWaitSemaphore (
447    ACPI_HANDLE             Semaphore,
448    UINT32                  Timeout);
449
450
451/*
452 * exmonadic - ACPI AML (p-code) execution, monadic operators
453 */
454
455ACPI_STATUS
456AcpiExOpcode_1A_0T_0R (
457    ACPI_WALK_STATE         *WalkState);
458
459ACPI_STATUS
460AcpiExOpcode_1A_0T_1R (
461    ACPI_WALK_STATE         *WalkState);
462
463ACPI_STATUS
464AcpiExOpcode_1A_1T_1R (
465    ACPI_WALK_STATE         *WalkState);
466
467ACPI_STATUS
468AcpiExOpcode_1A_1T_0R (
469    ACPI_WALK_STATE         *WalkState);
470
471/*
472 * exdyadic - ACPI AML (p-code) execution, dyadic operators
473 */
474
475ACPI_STATUS
476AcpiExOpcode_2A_0T_0R (
477    ACPI_WALK_STATE         *WalkState);
478
479ACPI_STATUS
480AcpiExOpcode_2A_0T_1R (
481    ACPI_WALK_STATE         *WalkState);
482
483ACPI_STATUS
484AcpiExOpcode_2A_1T_1R (
485    ACPI_WALK_STATE         *WalkState);
486
487ACPI_STATUS
488AcpiExOpcode_2A_2T_1R (
489    ACPI_WALK_STATE         *WalkState);
490
491
492/*
493 * exresolv  - Object resolution and get value functions
494 */
495
496ACPI_STATUS
497AcpiExResolveToValue (
498    ACPI_OPERAND_OBJECT     **StackPtr,
499    ACPI_WALK_STATE         *WalkState);
500
501ACPI_STATUS
502AcpiExResolveNodeToValue (
503    ACPI_NAMESPACE_NODE     **StackPtr,
504    ACPI_WALK_STATE         *WalkState);
505
506ACPI_STATUS
507AcpiExResolveObjectToValue (
508    ACPI_OPERAND_OBJECT     **StackPtr,
509    ACPI_WALK_STATE         *WalkState);
510
511
512/*
513 * exdump - Scanner debug output routines
514 */
515
516void
517AcpiExShowHexValue (
518    UINT32                  ByteCount,
519    UINT8                   *AmlStart,
520    UINT32                  LeadSpace);
521
522
523ACPI_STATUS
524AcpiExDumpOperand (
525    ACPI_OPERAND_OBJECT     *EntryDesc);
526
527void
528AcpiExDumpOperands (
529    ACPI_OPERAND_OBJECT     **Operands,
530    ACPI_INTERPRETER_MODE   InterpreterMode,
531    NATIVE_CHAR             *Ident,
532    UINT32                  NumLevels,
533    NATIVE_CHAR             *Note,
534    NATIVE_CHAR             *ModuleName,
535    UINT32                  LineNumber);
536
537void
538AcpiExDumpObjectDescriptor (
539    ACPI_OPERAND_OBJECT     *Object,
540    UINT32                  Flags);
541
542
543void
544AcpiExDumpNode (
545    ACPI_NAMESPACE_NODE     *Node,
546    UINT32                  Flags);
547
548
549/*
550 * exnames - interpreter/scanner name load/execute
551 */
552
553NATIVE_CHAR *
554AcpiExAllocateNameString (
555    UINT32                  PrefixCount,
556    UINT32                  NumNameSegs);
557
558UINT32
559AcpiExGoodChar (
560    UINT32                  Character);
561
562ACPI_STATUS
563AcpiExNameSegment (
564    UINT8                   **InAmlAddress,
565    NATIVE_CHAR             *NameString);
566
567ACPI_STATUS
568AcpiExGetNameString (
569    ACPI_OBJECT_TYPE        DataType,
570    UINT8                   *InAmlAddress,
571    NATIVE_CHAR             **OutNameString,
572    UINT32                  *OutNameLength);
573
574ACPI_STATUS
575AcpiExDoName (
576    ACPI_OBJECT_TYPE        DataType,
577    ACPI_INTERPRETER_MODE   LoadExecMode);
578
579
580/*
581 * exstore - Object store support
582 */
583
584ACPI_STATUS
585AcpiExStore (
586    ACPI_OPERAND_OBJECT     *ValDesc,
587    ACPI_OPERAND_OBJECT     *DestDesc,
588    ACPI_WALK_STATE         *WalkState);
589
590ACPI_STATUS
591AcpiExStoreObjectToIndex (
592    ACPI_OPERAND_OBJECT     *ValDesc,
593    ACPI_OPERAND_OBJECT     *DestDesc,
594    ACPI_WALK_STATE         *WalkState);
595
596ACPI_STATUS
597AcpiExStoreObjectToNode (
598    ACPI_OPERAND_OBJECT     *SourceDesc,
599    ACPI_NAMESPACE_NODE     *Node,
600    ACPI_WALK_STATE         *WalkState);
601
602
603/*
604 * exstoren
605 */
606
607ACPI_STATUS
608AcpiExResolveObject (
609    ACPI_OPERAND_OBJECT     **SourceDescPtr,
610    ACPI_OBJECT_TYPE        TargetType,
611    ACPI_WALK_STATE         *WalkState);
612
613ACPI_STATUS
614AcpiExStoreObjectToObject (
615    ACPI_OPERAND_OBJECT     *SourceDesc,
616    ACPI_OPERAND_OBJECT     *DestDesc,
617    ACPI_OPERAND_OBJECT     **NewDesc,
618    ACPI_WALK_STATE         *WalkState);
619
620
621/*
622 * excopy - object copy
623 */
624
625ACPI_STATUS
626AcpiExStoreBufferToBuffer (
627    ACPI_OPERAND_OBJECT     *SourceDesc,
628    ACPI_OPERAND_OBJECT     *TargetDesc);
629
630ACPI_STATUS
631AcpiExStoreStringToString (
632    ACPI_OPERAND_OBJECT     *SourceDesc,
633    ACPI_OPERAND_OBJECT     *TargetDesc);
634
635ACPI_STATUS
636AcpiExCopyIntegerToIndexField (
637    ACPI_OPERAND_OBJECT     *SourceDesc,
638    ACPI_OPERAND_OBJECT     *TargetDesc);
639
640ACPI_STATUS
641AcpiExCopyIntegerToBankField (
642    ACPI_OPERAND_OBJECT     *SourceDesc,
643    ACPI_OPERAND_OBJECT     *TargetDesc);
644
645ACPI_STATUS
646AcpiExCopyDataToNamedField (
647    ACPI_OPERAND_OBJECT     *SourceDesc,
648    ACPI_NAMESPACE_NODE     *Node);
649
650ACPI_STATUS
651AcpiExCopyIntegerToBufferField (
652    ACPI_OPERAND_OBJECT     *SourceDesc,
653    ACPI_OPERAND_OBJECT     *TargetDesc);
654
655/*
656 * exutils - interpreter/scanner utilities
657 */
658
659ACPI_STATUS
660AcpiExEnterInterpreter (
661    void);
662
663void
664AcpiExExitInterpreter (
665    void);
666
667void
668AcpiExTruncateFor32bitTable (
669    ACPI_OPERAND_OBJECT     *ObjDesc,
670    ACPI_WALK_STATE         *WalkState);
671
672BOOLEAN
673AcpiExValidateObjectType (
674    ACPI_OBJECT_TYPE        Type);
675
676BOOLEAN
677AcpiExAcquireGlobalLock (
678    UINT32                  Rule);
679
680ACPI_STATUS
681AcpiExReleaseGlobalLock (
682    BOOLEAN                 Locked);
683
684UINT32
685AcpiExDigitsNeeded (
686    ACPI_INTEGER            Value,
687    UINT32                  Base);
688
689ACPI_STATUS
690AcpiExEisaIdToString (
691    UINT32                  NumericId,
692    NATIVE_CHAR             *OutString);
693
694ACPI_STATUS
695AcpiExUnsignedIntegerToString (
696    ACPI_INTEGER            Value,
697    NATIVE_CHAR             *OutString);
698
699
700/*
701 * exregion - default OpRegion handlers
702 */
703
704ACPI_STATUS
705AcpiExSystemMemorySpaceHandler (
706    UINT32                  Function,
707    ACPI_PHYSICAL_ADDRESS   Address,
708    UINT32                  BitWidth,
709    ACPI_INTEGER            *Value,
710    void                    *HandlerContext,
711    void                    *RegionContext);
712
713ACPI_STATUS
714AcpiExSystemIoSpaceHandler (
715    UINT32                  Function,
716    ACPI_PHYSICAL_ADDRESS   Address,
717    UINT32                  BitWidth,
718    ACPI_INTEGER            *Value,
719    void                    *HandlerContext,
720    void                    *RegionContext);
721
722ACPI_STATUS
723AcpiExPciConfigSpaceHandler (
724    UINT32                  Function,
725    ACPI_PHYSICAL_ADDRESS   Address,
726    UINT32                  BitWidth,
727    ACPI_INTEGER            *Value,
728    void                    *HandlerContext,
729    void                    *RegionContext);
730
731ACPI_STATUS
732AcpiExCmosSpaceHandler (
733    UINT32                  Function,
734    ACPI_PHYSICAL_ADDRESS   Address,
735    UINT32                  BitWidth,
736    ACPI_INTEGER            *Value,
737    void                    *HandlerContext,
738    void                    *RegionContext);
739
740ACPI_STATUS
741AcpiExPciBarSpaceHandler (
742    UINT32                  Function,
743    ACPI_PHYSICAL_ADDRESS   Address,
744    UINT32                  BitWidth,
745    ACPI_INTEGER            *Value,
746    void                    *HandlerContext,
747    void                    *RegionContext);
748
749ACPI_STATUS
750AcpiExEmbeddedControllerSpaceHandler (
751    UINT32                  Function,
752    ACPI_PHYSICAL_ADDRESS   Address,
753    UINT32                  BitWidth,
754    ACPI_INTEGER            *Value,
755    void                    *HandlerContext,
756    void                    *RegionContext);
757
758ACPI_STATUS
759AcpiExSmBusSpaceHandler (
760    UINT32                  Function,
761    ACPI_PHYSICAL_ADDRESS   Address,
762    UINT32                  BitWidth,
763    ACPI_INTEGER            *Value,
764    void                    *HandlerContext,
765    void                    *RegionContext);
766
767
768ACPI_STATUS
769AcpiExDataTableSpaceHandler (
770    UINT32                  Function,
771    ACPI_PHYSICAL_ADDRESS   Address,
772    UINT32                  BitWidth,
773    ACPI_INTEGER            *Value,
774    void                    *HandlerContext,
775    void                    *RegionContext);
776
777#endif /* __INTERP_H__ */
778