acinterp.h revision 73561
1/******************************************************************************
2 *
3 * Name: acinterp.h - Interpreter subcomponent prototypes and defines
4 *       $Revision: 92 $
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999, 2000, 2001, 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 WALK_OPERANDS       &(WalkState->Operands [WalkState->NumOperands -1])
122
123
124/* Interpreter constants */
125
126#define AML_END_OF_BLOCK            -1
127#define PUSH_PKG_LENGTH             1
128#define DO_NOT_PUSH_PKG_LENGTH      0
129
130
131#define STACK_TOP                   0
132#define STACK_BOTTOM                (UINT32) -1
133
134/* Constants for global "WhenToParseMethods" */
135
136#define METHOD_PARSE_AT_INIT        0x0
137#define METHOD_PARSE_JUST_IN_TIME   0x1
138#define METHOD_DELETE_AT_COMPLETION 0x2
139
140
141
142ACPI_STATUS
143AcpiAmlResolveOperands (
144    UINT16                  Opcode,
145    ACPI_OPERAND_OBJECT     **StackPtr,
146    ACPI_WALK_STATE         *WalkState);
147
148
149/*
150 * amxface - External interpreter interfaces
151 */
152
153ACPI_STATUS
154AcpiAmlLoadTable (
155    ACPI_TABLE_TYPE         TableId);
156
157ACPI_STATUS
158AcpiAmlExecuteMethod (
159    ACPI_NAMESPACE_NODE     *MethodNode,
160    ACPI_OPERAND_OBJECT     **Params,
161    ACPI_OPERAND_OBJECT     **ReturnObjDesc);
162
163
164/*
165 * amconvrt - object conversion
166 */
167
168ACPI_STATUS
169AcpiAmlConvertToInteger (
170    ACPI_OPERAND_OBJECT     **ObjDesc,
171    ACPI_WALK_STATE         *WalkState);
172
173ACPI_STATUS
174AcpiAmlConvertToBuffer (
175    ACPI_OPERAND_OBJECT     **ObjDesc,
176    ACPI_WALK_STATE         *WalkState);
177
178ACPI_STATUS
179AcpiAmlConvertToString (
180    ACPI_OPERAND_OBJECT     **ObjDesc,
181    ACPI_WALK_STATE         *WalkState);
182
183ACPI_STATUS
184AcpiAmlConvertToTargetType (
185    OBJECT_TYPE_INTERNAL    DestinationType,
186    ACPI_OPERAND_OBJECT     **ObjDesc,
187    ACPI_WALK_STATE         *WalkState);
188
189
190/*
191 * amfield - ACPI AML (p-code) execution - field manipulation
192 */
193
194ACPI_STATUS
195AcpiAmlReadField (
196    ACPI_OPERAND_OBJECT     *ObjDesc,
197    void                    *Buffer,
198    UINT32                  BufferLength,
199    UINT32                  ByteLength,
200    UINT32                  DatumLength,
201    UINT32                  BitGranularity,
202    UINT32                  ByteGranularity);
203
204ACPI_STATUS
205AcpiAmlWriteField (
206    ACPI_OPERAND_OBJECT     *ObjDesc,
207    void                    *Buffer,
208    UINT32                  BufferLength,
209    UINT32                  ByteLength,
210    UINT32                  DatumLength,
211    UINT32                  BitGranularity,
212    UINT32                  ByteGranularity);
213
214ACPI_STATUS
215AcpiAmlSetupField (
216    ACPI_OPERAND_OBJECT     *ObjDesc,
217    ACPI_OPERAND_OBJECT     *RgnDesc,
218    UINT32                  FieldBitWidth);
219
220ACPI_STATUS
221AcpiAmlReadFieldData (
222    ACPI_OPERAND_OBJECT     *ObjDesc,
223    UINT32                  FieldByteOffset,
224    UINT32                  FieldBitWidth,
225    UINT32                  *Value);
226
227ACPI_STATUS
228AcpiAmlAccessNamedField (
229    UINT32                  Mode,
230    ACPI_HANDLE             NamedField,
231    void                    *Buffer,
232    UINT32                  Length);
233
234/*
235 * ammisc - ACPI AML (p-code) execution - specific opcodes
236 */
237
238ACPI_STATUS
239AcpiAmlExecCreateField (
240    UINT8                   *AmlPtr,
241    UINT32                  AmlLength,
242    ACPI_NAMESPACE_NODE     *Node,
243    ACPI_WALK_STATE         *WalkState);
244
245ACPI_STATUS
246AcpiAmlExecReconfiguration (
247    UINT16                  Opcode,
248    ACPI_WALK_STATE         *WalkState);
249
250ACPI_STATUS
251AcpiAmlExecFatal (
252    ACPI_WALK_STATE         *WalkState);
253
254ACPI_STATUS
255AcpiAmlExecIndex (
256    ACPI_WALK_STATE         *WalkState,
257    ACPI_OPERAND_OBJECT     **ReturnDesc);
258
259ACPI_STATUS
260AcpiAmlExecMatch (
261    ACPI_WALK_STATE         *WalkState,
262    ACPI_OPERAND_OBJECT     **ReturnDesc);
263
264ACPI_STATUS
265AcpiAmlExecCreateMutex (
266    ACPI_WALK_STATE         *WalkState);
267
268ACPI_STATUS
269AcpiAmlExecCreateProcessor (
270    ACPI_PARSE_OBJECT       *Op,
271    ACPI_HANDLE             ProcessorNTE);
272
273ACPI_STATUS
274AcpiAmlExecCreatePowerResource (
275    ACPI_PARSE_OBJECT       *Op,
276    ACPI_HANDLE             ProcessorNTE);
277
278ACPI_STATUS
279AcpiAmlExecCreateRegion (
280    UINT8                   *AmlPtr,
281    UINT32                  AcpiAmlLength,
282    UINT8                   RegionSpace,
283    ACPI_WALK_STATE         *WalkState);
284
285ACPI_STATUS
286AcpiAmlExecCreateEvent (
287    ACPI_WALK_STATE         *WalkState);
288
289ACPI_STATUS
290AcpiAmlExecCreateAlias (
291    ACPI_WALK_STATE         *WalkState);
292
293ACPI_STATUS
294AcpiAmlExecCreateMethod (
295    UINT8                   *AmlPtr,
296    UINT32                  AcpiAmlLength,
297    UINT32                  MethodFlags,
298    ACPI_HANDLE             Method);
299
300
301/*
302 * amprep - ACPI AML (p-code) execution - prep utilities
303 */
304
305ACPI_STATUS
306AcpiAmlPrepDefFieldValue (
307    ACPI_NAMESPACE_NODE     *Node,
308    ACPI_HANDLE             Region,
309    UINT8                   FieldFlags,
310    UINT8                   FieldAttribute,
311    UINT32                  FieldPosition,
312    UINT32                  FieldLength);
313
314ACPI_STATUS
315AcpiAmlPrepBankFieldValue (
316    ACPI_NAMESPACE_NODE     *Node,
317    ACPI_HANDLE             Region,
318    ACPI_HANDLE             BankReg,
319    UINT32                  BankVal,
320    UINT8                   FieldFlags,
321    UINT8                   FieldAttribute,
322    UINT32                  FieldPosition,
323    UINT32                  FieldLength);
324
325ACPI_STATUS
326AcpiAmlPrepIndexFieldValue (
327    ACPI_NAMESPACE_NODE     *Node,
328    ACPI_HANDLE             IndexReg,
329    ACPI_HANDLE             DataReg,
330    UINT8                   FieldFlags,
331    UINT8                   FieldAttribute,
332    UINT32                  FieldPosition,
333    UINT32                  FieldLength);
334
335
336/*
337 * amsystem - Interface to OS services
338 */
339
340UINT16
341AcpiAmlSystemThreadId (
342    void);
343
344ACPI_STATUS
345AcpiAmlSystemDoNotifyOp (
346    ACPI_OPERAND_OBJECT     *Value,
347    ACPI_OPERAND_OBJECT     *ObjDesc);
348
349void
350AcpiAmlSystemDoSuspend(
351    UINT32                  Time);
352
353void
354AcpiAmlSystemDoStall (
355    UINT32                  Time);
356
357ACPI_STATUS
358AcpiAmlSystemAcquireMutex(
359    ACPI_OPERAND_OBJECT     *Time,
360    ACPI_OPERAND_OBJECT     *ObjDesc);
361
362ACPI_STATUS
363AcpiAmlSystemReleaseMutex(
364    ACPI_OPERAND_OBJECT     *ObjDesc);
365
366ACPI_STATUS
367AcpiAmlSystemSignalEvent(
368    ACPI_OPERAND_OBJECT     *ObjDesc);
369
370ACPI_STATUS
371AcpiAmlSystemWaitEvent(
372    ACPI_OPERAND_OBJECT     *Time,
373    ACPI_OPERAND_OBJECT     *ObjDesc);
374
375ACPI_STATUS
376AcpiAmlSystemResetEvent(
377    ACPI_OPERAND_OBJECT     *ObjDesc);
378
379ACPI_STATUS
380AcpiAmlSystemWaitSemaphore (
381    ACPI_HANDLE             Semaphore,
382    UINT32                  Timeout);
383
384
385/*
386 * ammonadic - ACPI AML (p-code) execution, monadic operators
387 */
388
389ACPI_STATUS
390AcpiAmlExecMonadic1 (
391    UINT16                  Opcode,
392    ACPI_WALK_STATE         *WalkState);
393
394ACPI_STATUS
395AcpiAmlExecMonadic2 (
396    UINT16                  Opcode,
397    ACPI_WALK_STATE         *WalkState,
398    ACPI_OPERAND_OBJECT     **ReturnDesc);
399
400ACPI_STATUS
401AcpiAmlExecMonadic2R (
402    UINT16                  Opcode,
403    ACPI_WALK_STATE         *WalkState,
404    ACPI_OPERAND_OBJECT     **ReturnDesc);
405
406
407/*
408 * amdyadic - ACPI AML (p-code) execution, dyadic operators
409 */
410
411ACPI_STATUS
412AcpiAmlExecDyadic1 (
413    UINT16                  Opcode,
414    ACPI_WALK_STATE         *WalkState);
415
416ACPI_STATUS
417AcpiAmlExecDyadic2 (
418    UINT16                  Opcode,
419    ACPI_WALK_STATE         *WalkState,
420    ACPI_OPERAND_OBJECT     **ReturnDesc);
421
422ACPI_STATUS
423AcpiAmlExecDyadic2R (
424    UINT16                  Opcode,
425    ACPI_WALK_STATE         *WalkState,
426    ACPI_OPERAND_OBJECT     **ReturnDesc);
427
428ACPI_STATUS
429AcpiAmlExecDyadic2S (
430    UINT16                  Opcode,
431    ACPI_WALK_STATE         *WalkState,
432    ACPI_OPERAND_OBJECT     **ReturnDesc);
433
434
435/*
436 * amresolv  - Object resolution and get value functions
437 */
438
439ACPI_STATUS
440AcpiAmlResolveToValue (
441    ACPI_OPERAND_OBJECT     **StackPtr,
442    ACPI_WALK_STATE         *WalkState);
443
444ACPI_STATUS
445AcpiAmlResolveNodeToValue (
446    ACPI_NAMESPACE_NODE     **StackPtr,
447    ACPI_WALK_STATE         *WalkState);
448
449ACPI_STATUS
450AcpiAmlResolveObjectToValue (
451    ACPI_OPERAND_OBJECT     **StackPtr,
452    ACPI_WALK_STATE         *WalkState);
453
454ACPI_STATUS
455AcpiAmlGetFieldUnitValue (
456    ACPI_OPERAND_OBJECT     *FieldDesc,
457    ACPI_OPERAND_OBJECT     *ResultDesc);
458
459
460/*
461 * amdump - Scanner debug output routines
462 */
463
464void
465AcpiAmlShowHexValue (
466    UINT32                  ByteCount,
467    UINT8                   *AmlPtr,
468    UINT32                  LeadSpace);
469
470
471ACPI_STATUS
472AcpiAmlDumpOperand (
473    ACPI_OPERAND_OBJECT     *EntryDesc);
474
475void
476AcpiAmlDumpOperands (
477    ACPI_OPERAND_OBJECT     **Operands,
478    OPERATING_MODE          InterpreterMode,
479    NATIVE_CHAR             *Ident,
480    UINT32                  NumLevels,
481    NATIVE_CHAR             *Note,
482    NATIVE_CHAR             *ModuleName,
483    UINT32                  LineNumber);
484
485void
486AcpiAmlDumpObjectDescriptor (
487    ACPI_OPERAND_OBJECT     *Object,
488    UINT32                  Flags);
489
490
491void
492AcpiAmlDumpNode (
493    ACPI_NAMESPACE_NODE     *Node,
494    UINT32                  Flags);
495
496
497/*
498 * amnames - interpreter/scanner name load/execute
499 */
500
501NATIVE_CHAR *
502AcpiAmlAllocateNameString (
503    UINT32                  PrefixCount,
504    UINT32                  NumNameSegs);
505
506UINT32
507AcpiAmlGoodChar (
508    UINT32                  Character);
509
510ACPI_STATUS
511AcpiAmlExecNameSegment (
512    UINT8                   **InAmlAddress,
513    NATIVE_CHAR             *NameString);
514
515ACPI_STATUS
516AcpiAmlGetNameString (
517    OBJECT_TYPE_INTERNAL    DataType,
518    UINT8                   *InAmlAddress,
519    NATIVE_CHAR             **OutNameString,
520    UINT32                  *OutNameLength);
521
522ACPI_STATUS
523AcpiAmlDoName (
524    ACPI_OBJECT_TYPE        DataType,
525    OPERATING_MODE          LoadExecMode);
526
527
528/*
529 * amstore - Object store support
530 */
531
532ACPI_STATUS
533AcpiAmlExecStore (
534    ACPI_OPERAND_OBJECT     *ValDesc,
535    ACPI_OPERAND_OBJECT     *DestDesc,
536    ACPI_WALK_STATE         *WalkState);
537
538ACPI_STATUS
539AcpiAmlStoreObjectToIndex (
540    ACPI_OPERAND_OBJECT     *ValDesc,
541    ACPI_OPERAND_OBJECT     *DestDesc,
542    ACPI_WALK_STATE         *WalkState);
543
544ACPI_STATUS
545AcpiAmlStoreObjectToNode (
546    ACPI_OPERAND_OBJECT     *SourceDesc,
547    ACPI_NAMESPACE_NODE     *Node,
548    ACPI_WALK_STATE         *WalkState);
549
550ACPI_STATUS
551AcpiAmlStoreObjectToObject (
552    ACPI_OPERAND_OBJECT     *SourceDesc,
553    ACPI_OPERAND_OBJECT     *DestDesc,
554    ACPI_WALK_STATE         *WalkState);
555
556
557/*
558 *
559 */
560
561ACPI_STATUS
562AcpiAmlResolveObject (
563    ACPI_OPERAND_OBJECT     **SourceDescPtr,
564    OBJECT_TYPE_INTERNAL    TargetType,
565    ACPI_WALK_STATE         *WalkState);
566
567ACPI_STATUS
568AcpiAmlStoreObject (
569    ACPI_OPERAND_OBJECT     *SourceDesc,
570    OBJECT_TYPE_INTERNAL    TargetType,
571    ACPI_OPERAND_OBJECT     **TargetDescPtr,
572    ACPI_WALK_STATE         *WalkState);
573
574
575/*
576 * amcopy - object copy
577 */
578
579ACPI_STATUS
580AcpiAmlCopyBufferToBuffer (
581    ACPI_OPERAND_OBJECT     *SourceDesc,
582    ACPI_OPERAND_OBJECT     *TargetDesc);
583
584ACPI_STATUS
585AcpiAmlCopyStringToString (
586    ACPI_OPERAND_OBJECT     *SourceDesc,
587    ACPI_OPERAND_OBJECT     *TargetDesc);
588
589ACPI_STATUS
590AcpiAmlCopyIntegerToIndexField (
591    ACPI_OPERAND_OBJECT     *SourceDesc,
592    ACPI_OPERAND_OBJECT     *TargetDesc);
593
594ACPI_STATUS
595AcpiAmlCopyIntegerToBankField (
596    ACPI_OPERAND_OBJECT     *SourceDesc,
597    ACPI_OPERAND_OBJECT     *TargetDesc);
598
599ACPI_STATUS
600AcpiAmlCopyDataToNamedField (
601    ACPI_OPERAND_OBJECT     *SourceDesc,
602    ACPI_NAMESPACE_NODE     *Node);
603
604ACPI_STATUS
605AcpiAmlCopyIntegerToFieldUnit (
606    ACPI_OPERAND_OBJECT     *SourceDesc,
607    ACPI_OPERAND_OBJECT     *TargetDesc);
608
609/*
610 * amutils - interpreter/scanner utilities
611 */
612
613void
614AcpiAmlEnterInterpreter (
615    void);
616
617void
618AcpiAmlExitInterpreter (
619    void);
620
621void
622AcpiAmlTruncateFor32bitTable (
623    ACPI_OPERAND_OBJECT     *ObjDesc,
624    ACPI_WALK_STATE         *WalkState);
625
626BOOLEAN
627AcpiAmlValidateObjectType (
628    ACPI_OBJECT_TYPE        Type);
629
630BOOLEAN
631AcpiAmlAcquireGlobalLock (
632    UINT32                  Rule);
633
634ACPI_STATUS
635AcpiAmlReleaseGlobalLock (
636    BOOLEAN                 Locked);
637
638UINT32
639AcpiAmlDigitsNeeded (
640    ACPI_INTEGER            Value,
641    UINT32                  Base);
642
643ACPI_STATUS
644AcpiAmlEisaIdToString (
645    UINT32                  NumericId,
646    NATIVE_CHAR             *OutString);
647
648ACPI_STATUS
649AcpiAmlUnsignedIntegerToString (
650    ACPI_INTEGER            Value,
651    NATIVE_CHAR             *OutString);
652
653
654/*
655 * amregion - default OpRegion handlers
656 */
657
658ACPI_STATUS
659AcpiAmlSystemMemorySpaceHandler (
660    UINT32                  Function,
661    ACPI_PHYSICAL_ADDRESS   Address,
662    UINT32                  BitWidth,
663    UINT32                  *Value,
664    void                    *HandlerContext,
665    void                    *RegionContext);
666
667ACPI_STATUS
668AcpiAmlSystemIoSpaceHandler (
669    UINT32                  Function,
670    ACPI_PHYSICAL_ADDRESS   Address,
671    UINT32                  BitWidth,
672    UINT32                  *Value,
673    void                    *HandlerContext,
674    void                    *RegionContext);
675
676ACPI_STATUS
677AcpiAmlPciConfigSpaceHandler (
678    UINT32                  Function,
679    ACPI_PHYSICAL_ADDRESS   Address,
680    UINT32                  BitWidth,
681    UINT32                  *Value,
682    void                    *HandlerContext,
683    void                    *RegionContext);
684
685ACPI_STATUS
686AcpiAmlEmbeddedControllerSpaceHandler (
687    UINT32                  Function,
688    ACPI_PHYSICAL_ADDRESS   Address,
689    UINT32                  BitWidth,
690    UINT32                  *Value,
691    void                    *HandlerContext,
692    void                    *RegionContext);
693
694ACPI_STATUS
695AcpiAmlSmBusSpaceHandler (
696    UINT32                  Function,
697    ACPI_PHYSICAL_ADDRESS   Address,
698    UINT32                  BitWidth,
699    UINT32                  *Value,
700    void                    *HandlerContext,
701    void                    *RegionContext);
702
703
704#endif /* __INTERP_H__ */
705