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