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