kernel: Sync ACPICA with Intel's version 20140214.
[dragonfly.git] / sys / contrib / dev / acpica / source / include / acinterp.h
1 /******************************************************************************
2  *
3  * Name: acinterp.h - Interpreter subcomponent prototypes and defines
4  *
5  *****************************************************************************/
6
7 /*
8  * Copyright (C) 2000 - 2014, Intel Corp.
9  * All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions, and the following disclaimer,
16  *    without modification.
17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18  *    substantially similar to the "NO WARRANTY" disclaimer below
19  *    ("Disclaimer") and any redistribution must be conditioned upon
20  *    including a substantially similar Disclaimer requirement for further
21  *    binary redistribution.
22  * 3. Neither the names of the above-listed copyright holders nor the names
23  *    of any contributors may be used to endorse or promote products derived
24  *    from this software without specific prior written permission.
25  *
26  * Alternatively, this software may be distributed under the terms of the
27  * GNU General Public License ("GPL") version 2 as published by the Free
28  * Software Foundation.
29  *
30  * NO WARRANTY
31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41  * POSSIBILITY OF SUCH DAMAGES.
42  */
43
44 #ifndef __ACINTERP_H__
45 #define __ACINTERP_H__
46
47
48 #pragma pack(push) /* Set default struct packing */
49
50 #define ACPI_WALK_OPERANDS          (&(WalkState->Operands [WalkState->NumOperands -1]))
51
52 /* Macros for tables used for debug output */
53
54 #define ACPI_EXD_OFFSET(f)          (UINT8) ACPI_OFFSET (ACPI_OPERAND_OBJECT,f)
55 #define ACPI_EXD_NSOFFSET(f)        (UINT8) ACPI_OFFSET (ACPI_NAMESPACE_NODE,f)
56 #define ACPI_EXD_TABLE_SIZE(name)   (sizeof(name) / sizeof (ACPI_EXDUMP_INFO))
57
58 /*
59  * If possible, pack the following structures to byte alignment, since we
60  * don't care about performance for debug output. Two cases where we cannot
61  * pack the structures:
62  *
63  * 1) Hardware does not support misaligned memory transfers
64  * 2) Compiler does not support pointers within packed structures
65  */
66 #if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED))
67 #pragma pack(1)
68 #endif
69
70 typedef const struct acpi_exdump_info
71 {
72     UINT8                   Opcode;
73     UINT8                   Offset;
74     char                    *Name;
75
76 } ACPI_EXDUMP_INFO;
77
78 /* Values for the Opcode field above */
79
80 #define ACPI_EXD_INIT                   0
81 #define ACPI_EXD_TYPE                   1
82 #define ACPI_EXD_UINT8                  2
83 #define ACPI_EXD_UINT16                 3
84 #define ACPI_EXD_UINT32                 4
85 #define ACPI_EXD_UINT64                 5
86 #define ACPI_EXD_LITERAL                6
87 #define ACPI_EXD_POINTER                7
88 #define ACPI_EXD_ADDRESS                8
89 #define ACPI_EXD_STRING                 9
90 #define ACPI_EXD_BUFFER                 10
91 #define ACPI_EXD_PACKAGE                11
92 #define ACPI_EXD_FIELD                  12
93 #define ACPI_EXD_REFERENCE              13
94 #define ACPI_EXD_LIST                   14 /* Operand object list */
95 #define ACPI_EXD_HDLR_LIST              15 /* Address Handler list */
96 #define ACPI_EXD_RGN_LIST               16 /* Region list */
97 #define ACPI_EXD_NODE                   17 /* Namespace Node */
98
99 /* restore default alignment */
100
101 #pragma pack()
102
103
104 /*
105  * exconvrt - object conversion
106  */
107 ACPI_STATUS
108 AcpiExConvertToInteger (
109     ACPI_OPERAND_OBJECT     *ObjDesc,
110     ACPI_OPERAND_OBJECT     **ResultDesc,
111     UINT32                  Flags);
112
113 ACPI_STATUS
114 AcpiExConvertToBuffer (
115     ACPI_OPERAND_OBJECT     *ObjDesc,
116     ACPI_OPERAND_OBJECT     **ResultDesc);
117
118 ACPI_STATUS
119 AcpiExConvertToString (
120     ACPI_OPERAND_OBJECT     *ObjDesc,
121     ACPI_OPERAND_OBJECT     **ResultDesc,
122     UINT32                  Type);
123
124 /* Types for ->String conversion */
125
126 #define ACPI_EXPLICIT_BYTE_COPY         0x00000000
127 #define ACPI_EXPLICIT_CONVERT_HEX       0x00000001
128 #define ACPI_IMPLICIT_CONVERT_HEX       0x00000002
129 #define ACPI_EXPLICIT_CONVERT_DECIMAL   0x00000003
130
131 ACPI_STATUS
132 AcpiExConvertToTargetType (
133     ACPI_OBJECT_TYPE        DestinationType,
134     ACPI_OPERAND_OBJECT     *SourceDesc,
135     ACPI_OPERAND_OBJECT     **ResultDesc,
136     ACPI_WALK_STATE         *WalkState);
137
138
139 /*
140  * exdebug - AML debug object
141  */
142 void
143 AcpiExDoDebugObject (
144     ACPI_OPERAND_OBJECT     *SourceDesc,
145     UINT32                  Level,
146     UINT32                  Index);
147
148
149 /*
150  * exfield - ACPI AML (p-code) execution - field manipulation
151  */
152 ACPI_STATUS
153 AcpiExCommonBufferSetup (
154     ACPI_OPERAND_OBJECT     *ObjDesc,
155     UINT32                  BufferLength,
156     UINT32                  *DatumCount);
157
158 ACPI_STATUS
159 AcpiExWriteWithUpdateRule (
160     ACPI_OPERAND_OBJECT     *ObjDesc,
161     UINT64                  Mask,
162     UINT64                  FieldValue,
163     UINT32                  FieldDatumByteOffset);
164
165 void
166 AcpiExGetBufferDatum(
167     UINT64                  *Datum,
168     void                    *Buffer,
169     UINT32                  BufferLength,
170     UINT32                  ByteGranularity,
171     UINT32                  BufferOffset);
172
173 void
174 AcpiExSetBufferDatum (
175     UINT64                  MergedDatum,
176     void                    *Buffer,
177     UINT32                  BufferLength,
178     UINT32                  ByteGranularity,
179     UINT32                  BufferOffset);
180
181 ACPI_STATUS
182 AcpiExReadDataFromField (
183     ACPI_WALK_STATE         *WalkState,
184     ACPI_OPERAND_OBJECT     *ObjDesc,
185     ACPI_OPERAND_OBJECT     **RetBufferDesc);
186
187 ACPI_STATUS
188 AcpiExWriteDataToField (
189     ACPI_OPERAND_OBJECT     *SourceDesc,
190     ACPI_OPERAND_OBJECT     *ObjDesc,
191     ACPI_OPERAND_OBJECT     **ResultDesc);
192
193
194 /*
195  * exfldio - low level field I/O
196  */
197 ACPI_STATUS
198 AcpiExExtractFromField (
199     ACPI_OPERAND_OBJECT     *ObjDesc,
200     void                    *Buffer,
201     UINT32                  BufferLength);
202
203 ACPI_STATUS
204 AcpiExInsertIntoField (
205     ACPI_OPERAND_OBJECT     *ObjDesc,
206     void                    *Buffer,
207     UINT32                  BufferLength);
208
209 ACPI_STATUS
210 AcpiExAccessRegion (
211     ACPI_OPERAND_OBJECT     *ObjDesc,
212     UINT32                  FieldDatumByteOffset,
213     UINT64                  *Value,
214     UINT32                  ReadWrite);
215
216
217 /*
218  * exmisc - misc support routines
219  */
220 ACPI_STATUS
221 AcpiExGetObjectReference (
222     ACPI_OPERAND_OBJECT     *ObjDesc,
223     ACPI_OPERAND_OBJECT     **ReturnDesc,
224     ACPI_WALK_STATE         *WalkState);
225
226 ACPI_STATUS
227 AcpiExConcatTemplate (
228     ACPI_OPERAND_OBJECT     *ObjDesc,
229     ACPI_OPERAND_OBJECT     *ObjDesc2,
230     ACPI_OPERAND_OBJECT     **ActualReturnDesc,
231     ACPI_WALK_STATE         *WalkState);
232
233 ACPI_STATUS
234 AcpiExDoConcatenate (
235     ACPI_OPERAND_OBJECT     *ObjDesc,
236     ACPI_OPERAND_OBJECT     *ObjDesc2,
237     ACPI_OPERAND_OBJECT     **ActualReturnDesc,
238     ACPI_WALK_STATE         *WalkState);
239
240 ACPI_STATUS
241 AcpiExDoLogicalNumericOp (
242     UINT16                  Opcode,
243     UINT64                  Integer0,
244     UINT64                  Integer1,
245     BOOLEAN                 *LogicalResult);
246
247 ACPI_STATUS
248 AcpiExDoLogicalOp (
249     UINT16                  Opcode,
250     ACPI_OPERAND_OBJECT     *Operand0,
251     ACPI_OPERAND_OBJECT     *Operand1,
252     BOOLEAN                 *LogicalResult);
253
254 UINT64
255 AcpiExDoMathOp (
256     UINT16                  Opcode,
257     UINT64                  Operand0,
258     UINT64                  Operand1);
259
260 ACPI_STATUS
261 AcpiExCreateMutex (
262     ACPI_WALK_STATE         *WalkState);
263
264 ACPI_STATUS
265 AcpiExCreateProcessor (
266     ACPI_WALK_STATE         *WalkState);
267
268 ACPI_STATUS
269 AcpiExCreatePowerResource (
270     ACPI_WALK_STATE         *WalkState);
271
272 ACPI_STATUS
273 AcpiExCreateRegion (
274     UINT8                   *AmlStart,
275     UINT32                  AmlLength,
276     UINT8                   RegionSpace,
277     ACPI_WALK_STATE         *WalkState);
278
279 ACPI_STATUS
280 AcpiExCreateEvent (
281     ACPI_WALK_STATE         *WalkState);
282
283 ACPI_STATUS
284 AcpiExCreateAlias (
285     ACPI_WALK_STATE         *WalkState);
286
287 ACPI_STATUS
288 AcpiExCreateMethod (
289     UINT8                   *AmlStart,
290     UINT32                  AmlLength,
291     ACPI_WALK_STATE         *WalkState);
292
293
294 /*
295  * exconfig - dynamic table load/unload
296  */
297 ACPI_STATUS
298 AcpiExLoadOp (
299     ACPI_OPERAND_OBJECT     *ObjDesc,
300     ACPI_OPERAND_OBJECT     *Target,
301     ACPI_WALK_STATE         *WalkState);
302
303 ACPI_STATUS
304 AcpiExLoadTableOp (
305     ACPI_WALK_STATE         *WalkState,
306     ACPI_OPERAND_OBJECT     **ReturnDesc);
307
308 ACPI_STATUS
309 AcpiExUnloadTable (
310     ACPI_OPERAND_OBJECT     *DdbHandle);
311
312
313 /*
314  * exmutex - mutex support
315  */
316 ACPI_STATUS
317 AcpiExAcquireMutex (
318     ACPI_OPERAND_OBJECT     *TimeDesc,
319     ACPI_OPERAND_OBJECT     *ObjDesc,
320     ACPI_WALK_STATE         *WalkState);
321
322 ACPI_STATUS
323 AcpiExAcquireMutexObject (
324     UINT16                  Timeout,
325     ACPI_OPERAND_OBJECT     *ObjDesc,
326     ACPI_THREAD_ID          ThreadId);
327
328 ACPI_STATUS
329 AcpiExReleaseMutex (
330     ACPI_OPERAND_OBJECT     *ObjDesc,
331     ACPI_WALK_STATE         *WalkState);
332
333 ACPI_STATUS
334 AcpiExReleaseMutexObject (
335     ACPI_OPERAND_OBJECT     *ObjDesc);
336
337 void
338 AcpiExReleaseAllMutexes (
339     ACPI_THREAD_STATE       *Thread);
340
341 void
342 AcpiExUnlinkMutex (
343     ACPI_OPERAND_OBJECT     *ObjDesc);
344
345
346 /*
347  * exprep - ACPI AML execution - prep utilities
348  */
349 ACPI_STATUS
350 AcpiExPrepCommonFieldObject (
351     ACPI_OPERAND_OBJECT     *ObjDesc,
352     UINT8                   FieldFlags,
353     UINT8                   FieldAttribute,
354     UINT32                  FieldBitPosition,
355     UINT32                  FieldBitLength);
356
357 ACPI_STATUS
358 AcpiExPrepFieldValue (
359     ACPI_CREATE_FIELD_INFO  *Info);
360
361
362 /*
363  * exsystem - Interface to OS services
364  */
365 ACPI_STATUS
366 AcpiExSystemDoNotifyOp (
367     ACPI_OPERAND_OBJECT     *Value,
368     ACPI_OPERAND_OBJECT     *ObjDesc);
369
370 ACPI_STATUS
371 AcpiExSystemDoSleep(
372     UINT64                  Time);
373
374 ACPI_STATUS
375 AcpiExSystemDoStall (
376     UINT32                  Time);
377
378 ACPI_STATUS
379 AcpiExSystemSignalEvent(
380     ACPI_OPERAND_OBJECT     *ObjDesc);
381
382 ACPI_STATUS
383 AcpiExSystemWaitEvent(
384     ACPI_OPERAND_OBJECT     *Time,
385     ACPI_OPERAND_OBJECT     *ObjDesc);
386
387 ACPI_STATUS
388 AcpiExSystemResetEvent(
389     ACPI_OPERAND_OBJECT     *ObjDesc);
390
391 ACPI_STATUS
392 AcpiExSystemWaitSemaphore (
393     ACPI_SEMAPHORE          Semaphore,
394     UINT16                  Timeout);
395
396 ACPI_STATUS
397 AcpiExSystemWaitMutex (
398     ACPI_MUTEX              Mutex,
399     UINT16                  Timeout);
400
401 /*
402  * exoparg1 - ACPI AML execution, 1 operand
403  */
404 ACPI_STATUS
405 AcpiExOpcode_0A_0T_1R (
406     ACPI_WALK_STATE         *WalkState);
407
408 ACPI_STATUS
409 AcpiExOpcode_1A_0T_0R (
410     ACPI_WALK_STATE         *WalkState);
411
412 ACPI_STATUS
413 AcpiExOpcode_1A_0T_1R (
414     ACPI_WALK_STATE         *WalkState);
415
416 ACPI_STATUS
417 AcpiExOpcode_1A_1T_1R (
418     ACPI_WALK_STATE         *WalkState);
419
420 ACPI_STATUS
421 AcpiExOpcode_1A_1T_0R (
422     ACPI_WALK_STATE         *WalkState);
423
424 /*
425  * exoparg2 - ACPI AML execution, 2 operands
426  */
427 ACPI_STATUS
428 AcpiExOpcode_2A_0T_0R (
429     ACPI_WALK_STATE         *WalkState);
430
431 ACPI_STATUS
432 AcpiExOpcode_2A_0T_1R (
433     ACPI_WALK_STATE         *WalkState);
434
435 ACPI_STATUS
436 AcpiExOpcode_2A_1T_1R (
437     ACPI_WALK_STATE         *WalkState);
438
439 ACPI_STATUS
440 AcpiExOpcode_2A_2T_1R (
441     ACPI_WALK_STATE         *WalkState);
442
443
444 /*
445  * exoparg3 - ACPI AML execution, 3 operands
446  */
447 ACPI_STATUS
448 AcpiExOpcode_3A_0T_0R (
449     ACPI_WALK_STATE         *WalkState);
450
451 ACPI_STATUS
452 AcpiExOpcode_3A_1T_1R (
453     ACPI_WALK_STATE         *WalkState);
454
455
456 /*
457  * exoparg6 - ACPI AML execution, 6 operands
458  */
459 ACPI_STATUS
460 AcpiExOpcode_6A_0T_1R (
461     ACPI_WALK_STATE         *WalkState);
462
463
464 /*
465  * exresolv - Object resolution and get value functions
466  */
467 ACPI_STATUS
468 AcpiExResolveToValue (
469     ACPI_OPERAND_OBJECT     **StackPtr,
470     ACPI_WALK_STATE         *WalkState);
471
472 ACPI_STATUS
473 AcpiExResolveMultiple (
474     ACPI_WALK_STATE         *WalkState,
475     ACPI_OPERAND_OBJECT     *Operand,
476     ACPI_OBJECT_TYPE        *ReturnType,
477     ACPI_OPERAND_OBJECT     **ReturnDesc);
478
479
480 /*
481  * exresnte - resolve namespace node
482  */
483 ACPI_STATUS
484 AcpiExResolveNodeToValue (
485     ACPI_NAMESPACE_NODE     **StackPtr,
486     ACPI_WALK_STATE         *WalkState);
487
488
489 /*
490  * exresop - resolve operand to value
491  */
492 ACPI_STATUS
493 AcpiExResolveOperands (
494     UINT16                  Opcode,
495     ACPI_OPERAND_OBJECT     **StackPtr,
496     ACPI_WALK_STATE         *WalkState);
497
498
499 /*
500  * exdump - Interpreter debug output routines
501  */
502 void
503 AcpiExDumpOperand (
504     ACPI_OPERAND_OBJECT     *ObjDesc,
505     UINT32                  Depth);
506
507 void
508 AcpiExDumpOperands (
509     ACPI_OPERAND_OBJECT     **Operands,
510     const char              *OpcodeName,
511     UINT32                  NumOpcodes);
512
513 void
514 AcpiExDumpObjectDescriptor (
515     ACPI_OPERAND_OBJECT     *Object,
516     UINT32                  Flags);
517
518 void
519 AcpiExDumpNamespaceNode (
520     ACPI_NAMESPACE_NODE     *Node,
521     UINT32                  Flags);
522
523
524 /*
525  * exnames - AML namestring support
526  */
527 ACPI_STATUS
528 AcpiExGetNameString (
529     ACPI_OBJECT_TYPE        DataType,
530     UINT8                   *InAmlAddress,
531     char                    **OutNameString,
532     UINT32                  *OutNameLength);
533
534
535 /*
536  * exstore - Object store support
537  */
538 ACPI_STATUS
539 AcpiExStore (
540     ACPI_OPERAND_OBJECT     *ValDesc,
541     ACPI_OPERAND_OBJECT     *DestDesc,
542     ACPI_WALK_STATE         *WalkState);
543
544 ACPI_STATUS
545 AcpiExStoreObjectToNode (
546     ACPI_OPERAND_OBJECT     *SourceDesc,
547     ACPI_NAMESPACE_NODE     *Node,
548     ACPI_WALK_STATE         *WalkState,
549     UINT8                   ImplicitConversion);
550
551 #define ACPI_IMPLICIT_CONVERSION        TRUE
552 #define ACPI_NO_IMPLICIT_CONVERSION     FALSE
553
554
555 /*
556  * exstoren - resolve/store object
557  */
558 ACPI_STATUS
559 AcpiExResolveObject (
560     ACPI_OPERAND_OBJECT     **SourceDescPtr,
561     ACPI_OBJECT_TYPE        TargetType,
562     ACPI_WALK_STATE         *WalkState);
563
564 ACPI_STATUS
565 AcpiExStoreObjectToObject (
566     ACPI_OPERAND_OBJECT     *SourceDesc,
567     ACPI_OPERAND_OBJECT     *DestDesc,
568     ACPI_OPERAND_OBJECT     **NewDesc,
569     ACPI_WALK_STATE         *WalkState);
570
571
572 /*
573  * exstorob - store object - buffer/string
574  */
575 ACPI_STATUS
576 AcpiExStoreBufferToBuffer (
577     ACPI_OPERAND_OBJECT     *SourceDesc,
578     ACPI_OPERAND_OBJECT     *TargetDesc);
579
580 ACPI_STATUS
581 AcpiExStoreStringToString (
582     ACPI_OPERAND_OBJECT     *SourceDesc,
583     ACPI_OPERAND_OBJECT     *TargetDesc);
584
585
586 /*
587  * excopy - object copy
588  */
589 ACPI_STATUS
590 AcpiExCopyIntegerToIndexField (
591     ACPI_OPERAND_OBJECT     *SourceDesc,
592     ACPI_OPERAND_OBJECT     *TargetDesc);
593
594 ACPI_STATUS
595 AcpiExCopyIntegerToBankField (
596     ACPI_OPERAND_OBJECT     *SourceDesc,
597     ACPI_OPERAND_OBJECT     *TargetDesc);
598
599 ACPI_STATUS
600 AcpiExCopyDataToNamedField (
601     ACPI_OPERAND_OBJECT     *SourceDesc,
602     ACPI_NAMESPACE_NODE     *Node);
603
604 ACPI_STATUS
605 AcpiExCopyIntegerToBufferField (
606     ACPI_OPERAND_OBJECT     *SourceDesc,
607     ACPI_OPERAND_OBJECT     *TargetDesc);
608
609
610 /*
611  * exutils - interpreter/scanner utilities
612  */
613 void
614 AcpiExEnterInterpreter (
615     void);
616
617 void
618 AcpiExExitInterpreter (
619     void);
620
621 BOOLEAN
622 AcpiExTruncateFor32bitTable (
623     ACPI_OPERAND_OBJECT     *ObjDesc);
624
625 void
626 AcpiExAcquireGlobalLock (
627     UINT32                  Rule);
628
629 void
630 AcpiExReleaseGlobalLock (
631     UINT32                  Rule);
632
633 void
634 AcpiExEisaIdToString (
635     char                    *Dest,
636     UINT64                  CompressedId);
637
638 void
639 AcpiExIntegerToString (
640     char                    *Dest,
641     UINT64                  Value);
642
643 BOOLEAN
644 AcpiIsValidSpaceId (
645     UINT8                   SpaceId);
646
647
648 /*
649  * exregion - default OpRegion handlers
650  */
651 ACPI_STATUS
652 AcpiExSystemMemorySpaceHandler (
653     UINT32                  Function,
654     ACPI_PHYSICAL_ADDRESS   Address,
655     UINT32                  BitWidth,
656     UINT64                  *Value,
657     void                    *HandlerContext,
658     void                    *RegionContext);
659
660 ACPI_STATUS
661 AcpiExSystemIoSpaceHandler (
662     UINT32                  Function,
663     ACPI_PHYSICAL_ADDRESS   Address,
664     UINT32                  BitWidth,
665     UINT64                  *Value,
666     void                    *HandlerContext,
667     void                    *RegionContext);
668
669 ACPI_STATUS
670 AcpiExPciConfigSpaceHandler (
671     UINT32                  Function,
672     ACPI_PHYSICAL_ADDRESS   Address,
673     UINT32                  BitWidth,
674     UINT64                  *Value,
675     void                    *HandlerContext,
676     void                    *RegionContext);
677
678 ACPI_STATUS
679 AcpiExCmosSpaceHandler (
680     UINT32                  Function,
681     ACPI_PHYSICAL_ADDRESS   Address,
682     UINT32                  BitWidth,
683     UINT64                  *Value,
684     void                    *HandlerContext,
685     void                    *RegionContext);
686
687 ACPI_STATUS
688 AcpiExPciBarSpaceHandler (
689     UINT32                  Function,
690     ACPI_PHYSICAL_ADDRESS   Address,
691     UINT32                  BitWidth,
692     UINT64                  *Value,
693     void                    *HandlerContext,
694     void                    *RegionContext);
695
696 ACPI_STATUS
697 AcpiExEmbeddedControllerSpaceHandler (
698     UINT32                  Function,
699     ACPI_PHYSICAL_ADDRESS   Address,
700     UINT32                  BitWidth,
701     UINT64                  *Value,
702     void                    *HandlerContext,
703     void                    *RegionContext);
704
705 ACPI_STATUS
706 AcpiExSmBusSpaceHandler (
707     UINT32                  Function,
708     ACPI_PHYSICAL_ADDRESS   Address,
709     UINT32                  BitWidth,
710     UINT64                  *Value,
711     void                    *HandlerContext,
712     void                    *RegionContext);
713
714
715 ACPI_STATUS
716 AcpiExDataTableSpaceHandler (
717     UINT32                  Function,
718     ACPI_PHYSICAL_ADDRESS   Address,
719     UINT32                  BitWidth,
720     UINT64                  *Value,
721     void                    *HandlerContext,
722     void                    *RegionContext);
723
724 #pragma pack(pop) /* Restore original struct packing */
725
726 #endif /* __INTERP_H__ */