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