acinterp.h revision 241973
11638Srgrimes/******************************************************************************
21638Srgrimes *
31638Srgrimes * Name: acinterp.h - Interpreter subcomponent prototypes and defines
41638Srgrimes *
51638Srgrimes *****************************************************************************/
61638Srgrimes
71638Srgrimes/*
81638Srgrimes * Copyright (C) 2000 - 2012, Intel Corp.
91638Srgrimes * All rights reserved.
101638Srgrimes *
111638Srgrimes * Redistribution and use in source and binary forms, with or without
121638Srgrimes * modification, are permitted provided that the following conditions
131638Srgrimes * are met:
141638Srgrimes * 1. Redistributions of source code must retain the above copyright
151638Srgrimes *    notice, this list of conditions, and the following disclaimer,
161638Srgrimes *    without modification.
171638Srgrimes * 2. Redistributions in binary form must reproduce at minimum a disclaimer
181638Srgrimes *    substantially similar to the "NO WARRANTY" disclaimer below
191638Srgrimes *    ("Disclaimer") and any redistribution must be conditioned upon
201638Srgrimes *    including a substantially similar Disclaimer requirement for further
211638Srgrimes *    binary redistribution.
221638Srgrimes * 3. Neither the names of the above-listed copyright holders nor the names
231638Srgrimes *    of any contributors may be used to endorse or promote products derived
241638Srgrimes *    from this software without specific prior written permission.
251638Srgrimes *
261638Srgrimes * Alternatively, this software may be distributed under the terms of the
271638Srgrimes * GNU General Public License ("GPL") version 2 as published by the Free
281638Srgrimes * Software Foundation.
291638Srgrimes *
301638Srgrimes * NO WARRANTY
311638Srgrimes * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
321638Srgrimes * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
3350476Speter * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
341638Srgrimes * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
351638Srgrimes * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
361638Srgrimes * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
3779538Sru * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
381638Srgrimes * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
391638Srgrimes * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
401638Srgrimes * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
411638Srgrimes * POSSIBILITY OF SUCH DAMAGES.
421638Srgrimes */
43131530Sru
44131530Sru#ifndef __ACINTERP_H__
451638Srgrimes#define __ACINTERP_H__
461638Srgrimes
471638Srgrimes
48131530Sru#define ACPI_WALK_OPERANDS          (&(WalkState->Operands [WalkState->NumOperands -1]))
49131530Sru
501638Srgrimes/* Macros for tables used for debug output */
511638Srgrimes
521638Srgrimes#define ACPI_EXD_OFFSET(f)          (UINT8) ACPI_OFFSET (ACPI_OPERAND_OBJECT,f)
531638Srgrimes#define ACPI_EXD_NSOFFSET(f)        (UINT8) ACPI_OFFSET (ACPI_NAMESPACE_NODE,f)
541638Srgrimes#define ACPI_EXD_TABLE_SIZE(name)   (sizeof(name) / sizeof (ACPI_EXDUMP_INFO))
551638Srgrimes
561638Srgrimes/*
571638Srgrimes * If possible, pack the following structures to byte alignment, since we
581638Srgrimes * don't care about performance for debug output. Two cases where we cannot
591638Srgrimes * pack the structures:
601638Srgrimes *
611638Srgrimes * 1) Hardware does not support misaligned memory transfers
62131530Sru * 2) Compiler does not support pointers within packed structures
63131530Sru */
641638Srgrimes#if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED))
651638Srgrimes#pragma pack(1)
661638Srgrimes#endif
671638Srgrimes
681638Srgrimestypedef const struct acpi_exdump_info
691638Srgrimes{
70131530Sru    UINT8                   Opcode;
71131530Sru    UINT8                   Offset;
721638Srgrimes    char                    *Name;
731638Srgrimes
741638Srgrimes} ACPI_EXDUMP_INFO;
751638Srgrimes
761638Srgrimes/* Values for the Opcode field above */
771638Srgrimes
781638Srgrimes#define ACPI_EXD_INIT                   0
791638Srgrimes#define ACPI_EXD_TYPE                   1
801638Srgrimes#define ACPI_EXD_UINT8                  2
811638Srgrimes#define ACPI_EXD_UINT16                 3
821638Srgrimes#define ACPI_EXD_UINT32                 4
831638Srgrimes#define ACPI_EXD_UINT64                 5
841638Srgrimes#define ACPI_EXD_LITERAL                6
851638Srgrimes#define ACPI_EXD_POINTER                7
861638Srgrimes#define ACPI_EXD_ADDRESS                8
871638Srgrimes#define ACPI_EXD_STRING                 9
881638Srgrimes#define ACPI_EXD_BUFFER                 10
891638Srgrimes#define ACPI_EXD_PACKAGE                11
901638Srgrimes#define ACPI_EXD_FIELD                  12
911638Srgrimes#define ACPI_EXD_REFERENCE              13
921638Srgrimes
931638Srgrimes/* restore default alignment */
941638Srgrimes
951638Srgrimes#pragma pack()
961638Srgrimes
971638Srgrimes
98131530Sru/*
99131530Sru * exconvrt - object conversion
1001638Srgrimes */
1011638SrgrimesACPI_STATUS
1021638SrgrimesAcpiExConvertToInteger (
1031638Srgrimes    ACPI_OPERAND_OBJECT     *ObjDesc,
104131530Sru    ACPI_OPERAND_OBJECT     **ResultDesc,
105131530Sru    UINT32                  Flags);
1061638Srgrimes
107131530SruACPI_STATUS
108131530SruAcpiExConvertToBuffer (
1091638Srgrimes    ACPI_OPERAND_OBJECT     *ObjDesc,
1101638Srgrimes    ACPI_OPERAND_OBJECT     **ResultDesc);
1111638Srgrimes
1121638SrgrimesACPI_STATUS
1131638SrgrimesAcpiExConvertToString (
114131530Sru    ACPI_OPERAND_OBJECT     *ObjDesc,
115131530Sru    ACPI_OPERAND_OBJECT     **ResultDesc,
1161638Srgrimes    UINT32                  Type);
1171638Srgrimes
1181638Srgrimes/* Types for ->String conversion */
119131530Sru
120131530Sru#define ACPI_EXPLICIT_BYTE_COPY         0x00000000
1211638Srgrimes#define ACPI_EXPLICIT_CONVERT_HEX       0x00000001
1221638Srgrimes#define ACPI_IMPLICIT_CONVERT_HEX       0x00000002
1231638Srgrimes#define ACPI_EXPLICIT_CONVERT_DECIMAL   0x00000003
1241638Srgrimes
1251638SrgrimesACPI_STATUS
1261638SrgrimesAcpiExConvertToTargetType (
1271638Srgrimes    ACPI_OBJECT_TYPE        DestinationType,
1281638Srgrimes    ACPI_OPERAND_OBJECT     *SourceDesc,
1291638Srgrimes    ACPI_OPERAND_OBJECT     **ResultDesc,
1301638Srgrimes    ACPI_WALK_STATE         *WalkState);
1311638Srgrimes
1321638Srgrimes
1331638Srgrimes/*
1341638Srgrimes * exdebug - AML debug object
1351638Srgrimes */
1361638Srgrimesvoid
1371638SrgrimesAcpiExDoDebugObject (
1381638Srgrimes    ACPI_OPERAND_OBJECT     *SourceDesc,
1391638Srgrimes    UINT32                  Level,
140131530Sru    UINT32                  Index);
141131530Sru
1421638Srgrimes
1431638Srgrimes/*
1441638Srgrimes * exfield - ACPI AML (p-code) execution - field manipulation
14520920Swosch */
14620920SwoschACPI_STATUS
14720920SwoschAcpiExCommonBufferSetup (
14820920Swosch    ACPI_OPERAND_OBJECT     *ObjDesc,
14920920Swosch    UINT32                  BufferLength,
15020920Swosch    UINT32                  *DatumCount);
1511638Srgrimes
1521638SrgrimesACPI_STATUS
15320243SmppAcpiExWriteWithUpdateRule (
15420243Smpp    ACPI_OPERAND_OBJECT     *ObjDesc,
1551638Srgrimes    UINT64                  Mask,
1561638Srgrimes    UINT64                  FieldValue,
1571638Srgrimes    UINT32                  FieldDatumByteOffset);
1581638Srgrimes
1591638Srgrimesvoid
1601638SrgrimesAcpiExGetBufferDatum(
1611638Srgrimes    UINT64                  *Datum,
1621638Srgrimes    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
623void
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