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