acinterp.h revision 131440
1/******************************************************************************
2 *
3 * Name: acinterp.h - Interpreter subcomponent prototypes and defines
4 *       $Revision: 149 $
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999 - 2004, Intel Corp.
13 * All rights reserved.
14 *
15 * 2. License
16 *
17 * 2.1. This is your license from Intel Corp. under its intellectual property
18 * rights.  You may have additional license terms from the party that provided
19 * you this software, covering your right to use that party's intellectual
20 * property rights.
21 *
22 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
23 * copy of the source code appearing in this file ("Covered Code") an
24 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
25 * base code distributed originally by Intel ("Original Intel Code") to copy,
26 * make derivatives, distribute, use and display any portion of the Covered
27 * Code in any form, with the right to sublicense such rights; and
28 *
29 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
30 * license (with the right to sublicense), under only those claims of Intel
31 * patents that are infringed by the Original Intel Code, to make, use, sell,
32 * offer to sell, and import the Covered Code and derivative works thereof
33 * solely to the minimum extent necessary to exercise the above copyright
34 * license, and in no event shall the patent license extend to any additions
35 * to or modifications of the Original Intel Code.  No other license or right
36 * is granted directly or by implication, estoppel or otherwise;
37 *
38 * The above copyright and patent license is granted only if the following
39 * conditions are met:
40 *
41 * 3. Conditions
42 *
43 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
44 * Redistribution of source code of any substantial portion of the Covered
45 * Code or modification with rights to further distribute source must include
46 * the above Copyright Notice, the above License, this list of Conditions,
47 * and the following Disclaimer and Export Compliance provision.  In addition,
48 * Licensee must cause all Covered Code to which Licensee contributes to
49 * contain a file documenting the changes Licensee made to create that Covered
50 * Code and the date of any change.  Licensee must include in that file the
51 * documentation of any changes made by any predecessor Licensee.  Licensee
52 * must include a prominent statement that the modification is derived,
53 * directly or indirectly, from Original Intel Code.
54 *
55 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
56 * Redistribution of source code of any substantial portion of the Covered
57 * Code or modification without rights to further distribute source must
58 * include the following Disclaimer and Export Compliance provision in the
59 * documentation and/or other materials provided with distribution.  In
60 * addition, Licensee may not authorize further sublicense of source of any
61 * portion of the Covered Code, and must include terms to the effect that the
62 * license from Licensee to its licensee is limited to the intellectual
63 * property embodied in the software Licensee provides to its licensee, and
64 * not to intellectual property embodied in modifications its licensee may
65 * make.
66 *
67 * 3.3. Redistribution of Executable. Redistribution in executable form of any
68 * substantial portion of the Covered Code or modification must reproduce the
69 * above Copyright Notice, and the following Disclaimer and Export Compliance
70 * provision in the documentation and/or other materials provided with the
71 * distribution.
72 *
73 * 3.4. Intel retains all right, title, and interest in and to the Original
74 * Intel Code.
75 *
76 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
77 * Intel shall be used in advertising or otherwise to promote the sale, use or
78 * other dealings in products derived from or relating to the Covered Code
79 * without prior written authorization from Intel.
80 *
81 * 4. Disclaimer and Export Compliance
82 *
83 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
84 * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
85 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
86 * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
87 * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
88 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
89 * PARTICULAR PURPOSE.
90 *
91 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
92 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
93 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
94 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
95 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
96 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
97 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
98 * LIMITED REMEDY.
99 *
100 * 4.3. Licensee shall not export, either directly or indirectly, any of this
101 * software or system incorporating such software without first obtaining any
102 * required license or other approval from the U. S. Department of Commerce or
103 * any other agency or department of the United States Government.  In the
104 * event Licensee exports any such software from the United States or
105 * re-exports any such software from a foreign destination, Licensee shall
106 * ensure that the distribution and export/re-export of the software is in
107 * compliance with all laws, regulations, orders, or other restrictions of the
108 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
109 * any of its subsidiaries will export/re-export any technical data, process,
110 * software, or service, directly or indirectly, to any country for which the
111 * United States government or any agency thereof requires an export license,
112 * other governmental approval, or letter of assurance, without first obtaining
113 * such license, approval or letter.
114 *
115 *****************************************************************************/
116
117#ifndef __ACINTERP_H__
118#define __ACINTERP_H__
119
120
121#define ACPI_WALK_OPERANDS       (&(WalkState->Operands [WalkState->NumOperands -1]))
122
123
124ACPI_STATUS
125AcpiExResolveOperands (
126    UINT16                  Opcode,
127    ACPI_OPERAND_OBJECT     **StackPtr,
128    ACPI_WALK_STATE         *WalkState);
129
130ACPI_STATUS
131AcpiExCheckObjectType (
132    ACPI_OBJECT_TYPE        TypeNeeded,
133    ACPI_OBJECT_TYPE        ThisType,
134    void                    *Object);
135
136/*
137 * exxface - External interpreter interfaces
138 */
139
140ACPI_STATUS
141AcpiExLoadTable (
142    ACPI_TABLE_TYPE         TableId);
143
144ACPI_STATUS
145AcpiExExecuteMethod (
146    ACPI_NAMESPACE_NODE     *MethodNode,
147    ACPI_OPERAND_OBJECT     **Params,
148    ACPI_OPERAND_OBJECT     **ReturnObjDesc);
149
150
151/*
152 * exconvrt - object conversion
153 */
154
155ACPI_STATUS
156AcpiExConvertToInteger (
157    ACPI_OPERAND_OBJECT     *ObjDesc,
158    ACPI_OPERAND_OBJECT     **ResultDesc,
159    ACPI_WALK_STATE         *WalkState);
160
161ACPI_STATUS
162AcpiExConvertToBuffer (
163    ACPI_OPERAND_OBJECT     *ObjDesc,
164    ACPI_OPERAND_OBJECT     **ResultDesc,
165    ACPI_WALK_STATE         *WalkState);
166
167ACPI_STATUS
168AcpiExConvertToString (
169    ACPI_OPERAND_OBJECT     *ObjDesc,
170    ACPI_OPERAND_OBJECT     **ResultDesc,
171    UINT32                  Base,
172    UINT32                  MaxLength,
173    ACPI_WALK_STATE         *WalkState);
174
175ACPI_STATUS
176AcpiExConvertToTargetType (
177    ACPI_OBJECT_TYPE        DestinationType,
178    ACPI_OPERAND_OBJECT     *SourceDesc,
179    ACPI_OPERAND_OBJECT     **ResultDesc,
180    ACPI_WALK_STATE         *WalkState);
181
182UINT32
183AcpiExConvertToAscii (
184    ACPI_INTEGER            Integer,
185    UINT32                  Base,
186    UINT8                   *String,
187    UINT8                   MaxLength);
188
189/*
190 * exfield - ACPI AML (p-code) execution - field manipulation
191 */
192
193ACPI_STATUS
194AcpiExCommonBufferSetup (
195    ACPI_OPERAND_OBJECT     *ObjDesc,
196    UINT32                  BufferLength,
197    UINT32                  *DatumCount);
198
199ACPI_STATUS
200AcpiExExtractFromField (
201    ACPI_OPERAND_OBJECT     *ObjDesc,
202    void                    *Buffer,
203    UINT32                  BufferLength);
204
205ACPI_STATUS
206AcpiExInsertIntoField (
207    ACPI_OPERAND_OBJECT     *ObjDesc,
208    void                    *Buffer,
209    UINT32                  BufferLength);
210
211ACPI_STATUS
212AcpiExSetupRegion (
213    ACPI_OPERAND_OBJECT     *ObjDesc,
214    UINT32                  FieldDatumByteOffset);
215
216ACPI_STATUS
217AcpiExAccessRegion (
218    ACPI_OPERAND_OBJECT     *ObjDesc,
219    UINT32                  FieldDatumByteOffset,
220    ACPI_INTEGER            *Value,
221    UINT32                  ReadWrite);
222
223BOOLEAN
224AcpiExRegisterOverflow (
225    ACPI_OPERAND_OBJECT     *ObjDesc,
226    ACPI_INTEGER            Value);
227
228ACPI_STATUS
229AcpiExFieldDatumIo (
230    ACPI_OPERAND_OBJECT     *ObjDesc,
231    UINT32                  FieldDatumByteOffset,
232    ACPI_INTEGER            *Value,
233    UINT32                  ReadWrite);
234
235ACPI_STATUS
236AcpiExWriteWithUpdateRule (
237    ACPI_OPERAND_OBJECT     *ObjDesc,
238    ACPI_INTEGER            Mask,
239    ACPI_INTEGER            FieldValue,
240    UINT32                  FieldDatumByteOffset);
241
242void
243AcpiExGetBufferDatum(
244    ACPI_INTEGER            *Datum,
245    void                    *Buffer,
246    UINT32                  BufferLength,
247    UINT32                  ByteGranularity,
248    UINT32                  BufferOffset);
249
250void
251AcpiExSetBufferDatum (
252    ACPI_INTEGER            MergedDatum,
253    void                    *Buffer,
254    UINT32                  BufferLength,
255    UINT32                  ByteGranularity,
256    UINT32                  BufferOffset);
257
258ACPI_STATUS
259AcpiExReadDataFromField (
260    ACPI_WALK_STATE         *WalkState,
261    ACPI_OPERAND_OBJECT     *ObjDesc,
262    ACPI_OPERAND_OBJECT     **RetBufferDesc);
263
264ACPI_STATUS
265AcpiExWriteDataToField (
266    ACPI_OPERAND_OBJECT     *SourceDesc,
267    ACPI_OPERAND_OBJECT     *ObjDesc,
268    ACPI_OPERAND_OBJECT     **ResultDesc);
269
270/*
271 * exmisc - ACPI AML (p-code) execution - specific opcodes
272 */
273
274ACPI_STATUS
275AcpiExOpcode_3A_0T_0R (
276    ACPI_WALK_STATE         *WalkState);
277
278ACPI_STATUS
279AcpiExOpcode_3A_1T_1R (
280    ACPI_WALK_STATE         *WalkState);
281
282ACPI_STATUS
283AcpiExOpcode_6A_0T_1R (
284    ACPI_WALK_STATE         *WalkState);
285
286BOOLEAN
287AcpiExDoMatch (
288    UINT32                  MatchOp,
289    ACPI_INTEGER            PackageValue,
290    ACPI_INTEGER            MatchValue);
291
292ACPI_STATUS
293AcpiExGetObjectReference (
294    ACPI_OPERAND_OBJECT     *ObjDesc,
295    ACPI_OPERAND_OBJECT     **ReturnDesc,
296    ACPI_WALK_STATE         *WalkState);
297
298ACPI_STATUS
299AcpiExResolveMultiple (
300    ACPI_WALK_STATE         *WalkState,
301    ACPI_OPERAND_OBJECT     *Operand,
302    ACPI_OBJECT_TYPE        *ReturnType,
303    ACPI_OPERAND_OBJECT     **ReturnDesc);
304
305ACPI_STATUS
306AcpiExConcatTemplate (
307    ACPI_OPERAND_OBJECT     *ObjDesc,
308    ACPI_OPERAND_OBJECT     *ObjDesc2,
309    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
310    ACPI_WALK_STATE         *WalkState);
311
312ACPI_STATUS
313AcpiExDoConcatenate (
314    ACPI_OPERAND_OBJECT     *ObjDesc,
315    ACPI_OPERAND_OBJECT     *ObjDesc2,
316    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
317    ACPI_WALK_STATE         *WalkState);
318
319BOOLEAN
320AcpiExDoLogicalOp (
321    UINT16                  Opcode,
322    ACPI_INTEGER            Operand0,
323    ACPI_INTEGER            Operand1);
324
325ACPI_INTEGER
326AcpiExDoMathOp (
327    UINT16                  Opcode,
328    ACPI_INTEGER            Operand0,
329    ACPI_INTEGER            Operand1);
330
331ACPI_STATUS
332AcpiExCreateMutex (
333    ACPI_WALK_STATE         *WalkState);
334
335ACPI_STATUS
336AcpiExCreateProcessor (
337    ACPI_WALK_STATE         *WalkState);
338
339ACPI_STATUS
340AcpiExCreatePowerResource (
341    ACPI_WALK_STATE         *WalkState);
342
343ACPI_STATUS
344AcpiExCreateRegion (
345    UINT8                   *AmlStart,
346    UINT32                  AmlLength,
347    UINT8                   RegionSpace,
348    ACPI_WALK_STATE         *WalkState);
349
350ACPI_STATUS
351AcpiExCreateTableRegion (
352    ACPI_WALK_STATE         *WalkState);
353
354ACPI_STATUS
355AcpiExCreateEvent (
356    ACPI_WALK_STATE         *WalkState);
357
358ACPI_STATUS
359AcpiExCreateAlias (
360    ACPI_WALK_STATE         *WalkState);
361
362ACPI_STATUS
363AcpiExCreateMethod (
364    UINT8                   *AmlStart,
365    UINT32                  AmlLength,
366    ACPI_WALK_STATE         *WalkState);
367
368
369/*
370 * exconfig - dynamic table load/unload
371 */
372
373ACPI_STATUS
374AcpiExAddTable (
375    ACPI_TABLE_HEADER       *Table,
376    ACPI_NAMESPACE_NODE     *ParentNode,
377    ACPI_OPERAND_OBJECT     **DdbHandle);
378
379ACPI_STATUS
380AcpiExLoadOp (
381    ACPI_OPERAND_OBJECT     *ObjDesc,
382    ACPI_OPERAND_OBJECT     *Target,
383    ACPI_WALK_STATE         *WalkState);
384
385ACPI_STATUS
386AcpiExLoadTableOp (
387    ACPI_WALK_STATE         *WalkState,
388    ACPI_OPERAND_OBJECT     **ReturnDesc);
389
390ACPI_STATUS
391AcpiExUnloadTable (
392    ACPI_OPERAND_OBJECT     *DdbHandle);
393
394
395/*
396 * exmutex - mutex support
397 */
398
399ACPI_STATUS
400AcpiExAcquireMutex (
401    ACPI_OPERAND_OBJECT     *TimeDesc,
402    ACPI_OPERAND_OBJECT     *ObjDesc,
403    ACPI_WALK_STATE         *WalkState);
404
405ACPI_STATUS
406AcpiExReleaseMutex (
407    ACPI_OPERAND_OBJECT     *ObjDesc,
408    ACPI_WALK_STATE         *WalkState);
409
410void
411AcpiExReleaseAllMutexes (
412    ACPI_THREAD_STATE       *Thread);
413
414void
415AcpiExUnlinkMutex (
416    ACPI_OPERAND_OBJECT     *ObjDesc);
417
418void
419AcpiExLinkMutex (
420    ACPI_OPERAND_OBJECT     *ObjDesc,
421    ACPI_THREAD_STATE       *Thread);
422
423/*
424 * exprep - ACPI AML (p-code) execution - prep utilities
425 */
426
427ACPI_STATUS
428AcpiExPrepCommonFieldObject (
429    ACPI_OPERAND_OBJECT     *ObjDesc,
430    UINT8                   FieldFlags,
431    UINT8                   FieldAttribute,
432    UINT32                  FieldBitPosition,
433    UINT32                  FieldBitLength);
434
435ACPI_STATUS
436AcpiExPrepFieldValue (
437    ACPI_CREATE_FIELD_INFO  *Info);
438
439/*
440 * exsystem - Interface to OS services
441 */
442
443ACPI_STATUS
444AcpiExSystemDoNotifyOp (
445    ACPI_OPERAND_OBJECT     *Value,
446    ACPI_OPERAND_OBJECT     *ObjDesc);
447
448ACPI_STATUS
449AcpiExSystemDoSuspend(
450    UINT32                  Time);
451
452ACPI_STATUS
453AcpiExSystemDoStall (
454    UINT32                  Time);
455
456ACPI_STATUS
457AcpiExSystemAcquireMutex(
458    ACPI_OPERAND_OBJECT     *Time,
459    ACPI_OPERAND_OBJECT     *ObjDesc);
460
461ACPI_STATUS
462AcpiExSystemReleaseMutex(
463    ACPI_OPERAND_OBJECT     *ObjDesc);
464
465ACPI_STATUS
466AcpiExSystemSignalEvent(
467    ACPI_OPERAND_OBJECT     *ObjDesc);
468
469ACPI_STATUS
470AcpiExSystemWaitEvent(
471    ACPI_OPERAND_OBJECT     *Time,
472    ACPI_OPERAND_OBJECT     *ObjDesc);
473
474ACPI_STATUS
475AcpiExSystemResetEvent(
476    ACPI_OPERAND_OBJECT     *ObjDesc);
477
478ACPI_STATUS
479AcpiExSystemWaitSemaphore (
480    ACPI_HANDLE             Semaphore,
481    UINT16                  Timeout);
482
483
484/*
485 * exmonadic - ACPI AML (p-code) execution, monadic operators
486 */
487
488ACPI_STATUS
489AcpiExOpcode_1A_0T_0R (
490    ACPI_WALK_STATE         *WalkState);
491
492ACPI_STATUS
493AcpiExOpcode_1A_0T_1R (
494    ACPI_WALK_STATE         *WalkState);
495
496ACPI_STATUS
497AcpiExOpcode_1A_1T_1R (
498    ACPI_WALK_STATE         *WalkState);
499
500ACPI_STATUS
501AcpiExOpcode_1A_1T_0R (
502    ACPI_WALK_STATE         *WalkState);
503
504/*
505 * exdyadic - ACPI AML (p-code) execution, dyadic operators
506 */
507
508ACPI_STATUS
509AcpiExOpcode_2A_0T_0R (
510    ACPI_WALK_STATE         *WalkState);
511
512ACPI_STATUS
513AcpiExOpcode_2A_0T_1R (
514    ACPI_WALK_STATE         *WalkState);
515
516ACPI_STATUS
517AcpiExOpcode_2A_1T_1R (
518    ACPI_WALK_STATE         *WalkState);
519
520ACPI_STATUS
521AcpiExOpcode_2A_2T_1R (
522    ACPI_WALK_STATE         *WalkState);
523
524
525/*
526 * exresolv  - Object resolution and get value functions
527 */
528
529ACPI_STATUS
530AcpiExResolveToValue (
531    ACPI_OPERAND_OBJECT     **StackPtr,
532    ACPI_WALK_STATE         *WalkState);
533
534ACPI_STATUS
535AcpiExResolveNodeToValue (
536    ACPI_NAMESPACE_NODE     **StackPtr,
537    ACPI_WALK_STATE         *WalkState);
538
539ACPI_STATUS
540AcpiExResolveObjectToValue (
541    ACPI_OPERAND_OBJECT     **StackPtr,
542    ACPI_WALK_STATE         *WalkState);
543
544
545/*
546 * exdump - Scanner debug output routines
547 */
548
549void
550AcpiExDumpOperand (
551    ACPI_OPERAND_OBJECT     *EntryDesc);
552
553void
554AcpiExDumpOperands (
555    ACPI_OPERAND_OBJECT     **Operands,
556    ACPI_INTERPRETER_MODE   InterpreterMode,
557    char                    *Ident,
558    UINT32                  NumLevels,
559    char                    *Note,
560    char                    *ModuleName,
561    UINT32                  LineNumber);
562
563void
564AcpiExDumpObjectDescriptor (
565    ACPI_OPERAND_OBJECT     *Object,
566    UINT32                  Flags);
567
568void
569AcpiExDumpNode (
570    ACPI_NAMESPACE_NODE     *Node,
571    UINT32                  Flags);
572
573void
574AcpiExOutString (
575    char                    *Title,
576    char                    *Value);
577
578void
579AcpiExOutPointer (
580    char                    *Title,
581    void                    *Value);
582
583void
584AcpiExOutInteger (
585    char                    *Title,
586    UINT32                  Value);
587
588void
589AcpiExOutAddress (
590    char                    *Title,
591    ACPI_PHYSICAL_ADDRESS   Value);
592
593
594/*
595 * exnames - interpreter/scanner name load/execute
596 */
597
598char *
599AcpiExAllocateNameString (
600    UINT32                  PrefixCount,
601    UINT32                  NumNameSegs);
602
603UINT32
604AcpiExGoodChar (
605    UINT32                  Character);
606
607ACPI_STATUS
608AcpiExNameSegment (
609    UINT8                   **InAmlAddress,
610    char                    *NameString);
611
612ACPI_STATUS
613AcpiExGetNameString (
614    ACPI_OBJECT_TYPE        DataType,
615    UINT8                   *InAmlAddress,
616    char                    **OutNameString,
617    UINT32                  *OutNameLength);
618
619ACPI_STATUS
620AcpiExDoName (
621    ACPI_OBJECT_TYPE        DataType,
622    ACPI_INTERPRETER_MODE   LoadExecMode);
623
624
625/*
626 * exstore - Object store support
627 */
628
629ACPI_STATUS
630AcpiExStore (
631    ACPI_OPERAND_OBJECT     *ValDesc,
632    ACPI_OPERAND_OBJECT     *DestDesc,
633    ACPI_WALK_STATE         *WalkState);
634
635ACPI_STATUS
636AcpiExStoreObjectToIndex (
637    ACPI_OPERAND_OBJECT     *ValDesc,
638    ACPI_OPERAND_OBJECT     *DestDesc,
639    ACPI_WALK_STATE         *WalkState);
640
641ACPI_STATUS
642AcpiExStoreObjectToNode (
643    ACPI_OPERAND_OBJECT     *SourceDesc,
644    ACPI_NAMESPACE_NODE     *Node,
645    ACPI_WALK_STATE         *WalkState,
646    UINT8                   ImplicitConversion);
647
648#define ACPI_IMPLICIT_CONVERSION        TRUE
649#define ACPI_NO_IMPLICIT_CONVERSION     FALSE
650
651/*
652 * exstoren
653 */
654
655ACPI_STATUS
656AcpiExResolveObject (
657    ACPI_OPERAND_OBJECT     **SourceDescPtr,
658    ACPI_OBJECT_TYPE        TargetType,
659    ACPI_WALK_STATE         *WalkState);
660
661ACPI_STATUS
662AcpiExStoreObjectToObject (
663    ACPI_OPERAND_OBJECT     *SourceDesc,
664    ACPI_OPERAND_OBJECT     *DestDesc,
665    ACPI_OPERAND_OBJECT     **NewDesc,
666    ACPI_WALK_STATE         *WalkState);
667
668
669/*
670 * excopy - object copy
671 */
672
673ACPI_STATUS
674AcpiExStoreBufferToBuffer (
675    ACPI_OPERAND_OBJECT     *SourceDesc,
676    ACPI_OPERAND_OBJECT     *TargetDesc);
677
678ACPI_STATUS
679AcpiExStoreStringToString (
680    ACPI_OPERAND_OBJECT     *SourceDesc,
681    ACPI_OPERAND_OBJECT     *TargetDesc);
682
683ACPI_STATUS
684AcpiExCopyIntegerToIndexField (
685    ACPI_OPERAND_OBJECT     *SourceDesc,
686    ACPI_OPERAND_OBJECT     *TargetDesc);
687
688ACPI_STATUS
689AcpiExCopyIntegerToBankField (
690    ACPI_OPERAND_OBJECT     *SourceDesc,
691    ACPI_OPERAND_OBJECT     *TargetDesc);
692
693ACPI_STATUS
694AcpiExCopyDataToNamedField (
695    ACPI_OPERAND_OBJECT     *SourceDesc,
696    ACPI_NAMESPACE_NODE     *Node);
697
698ACPI_STATUS
699AcpiExCopyIntegerToBufferField (
700    ACPI_OPERAND_OBJECT     *SourceDesc,
701    ACPI_OPERAND_OBJECT     *TargetDesc);
702
703/*
704 * exutils - interpreter/scanner utilities
705 */
706
707ACPI_STATUS
708AcpiExEnterInterpreter (
709    void);
710
711void
712AcpiExExitInterpreter (
713    void);
714
715void
716AcpiExTruncateFor32bitTable (
717    ACPI_OPERAND_OBJECT     *ObjDesc);
718
719BOOLEAN
720AcpiExAcquireGlobalLock (
721    UINT32                  Rule);
722
723void
724AcpiExReleaseGlobalLock (
725    BOOLEAN                 Locked);
726
727UINT32
728AcpiExDigitsNeeded (
729    ACPI_INTEGER            Value,
730    UINT32                  Base);
731
732void
733AcpiExEisaIdToString (
734    UINT32                  NumericId,
735    char                    *OutString);
736
737void
738AcpiExUnsignedIntegerToString (
739    ACPI_INTEGER            Value,
740    char                    *OutString);
741
742
743/*
744 * exregion - default OpRegion handlers
745 */
746
747ACPI_STATUS
748AcpiExSystemMemorySpaceHandler (
749    UINT32                  Function,
750    ACPI_PHYSICAL_ADDRESS   Address,
751    UINT32                  BitWidth,
752    ACPI_INTEGER            *Value,
753    void                    *HandlerContext,
754    void                    *RegionContext);
755
756ACPI_STATUS
757AcpiExSystemIoSpaceHandler (
758    UINT32                  Function,
759    ACPI_PHYSICAL_ADDRESS   Address,
760    UINT32                  BitWidth,
761    ACPI_INTEGER            *Value,
762    void                    *HandlerContext,
763    void                    *RegionContext);
764
765ACPI_STATUS
766AcpiExPciConfigSpaceHandler (
767    UINT32                  Function,
768    ACPI_PHYSICAL_ADDRESS   Address,
769    UINT32                  BitWidth,
770    ACPI_INTEGER            *Value,
771    void                    *HandlerContext,
772    void                    *RegionContext);
773
774ACPI_STATUS
775AcpiExCmosSpaceHandler (
776    UINT32                  Function,
777    ACPI_PHYSICAL_ADDRESS   Address,
778    UINT32                  BitWidth,
779    ACPI_INTEGER            *Value,
780    void                    *HandlerContext,
781    void                    *RegionContext);
782
783ACPI_STATUS
784AcpiExPciBarSpaceHandler (
785    UINT32                  Function,
786    ACPI_PHYSICAL_ADDRESS   Address,
787    UINT32                  BitWidth,
788    ACPI_INTEGER            *Value,
789    void                    *HandlerContext,
790    void                    *RegionContext);
791
792ACPI_STATUS
793AcpiExEmbeddedControllerSpaceHandler (
794    UINT32                  Function,
795    ACPI_PHYSICAL_ADDRESS   Address,
796    UINT32                  BitWidth,
797    ACPI_INTEGER            *Value,
798    void                    *HandlerContext,
799    void                    *RegionContext);
800
801ACPI_STATUS
802AcpiExSmBusSpaceHandler (
803    UINT32                  Function,
804    ACPI_PHYSICAL_ADDRESS   Address,
805    UINT32                  BitWidth,
806    ACPI_INTEGER            *Value,
807    void                    *HandlerContext,
808    void                    *RegionContext);
809
810
811ACPI_STATUS
812AcpiExDataTableSpaceHandler (
813    UINT32                  Function,
814    ACPI_PHYSICAL_ADDRESS   Address,
815    UINT32                  BitWidth,
816    ACPI_INTEGER            *Value,
817    void                    *HandlerContext,
818    void                    *RegionContext);
819
820#endif /* __INTERP_H__ */
821