acinterp.h revision 117521
160573Skris/******************************************************************************
260573Skris *
360573Skris * Name: acinterp.h - Interpreter subcomponent prototypes and defines
460573Skris *       $Revision: 146 $
560573Skris *
660573Skris *****************************************************************************/
760573Skris
860573Skris/******************************************************************************
960573Skris *
1060573Skris * 1. Copyright Notice
1160573Skris *
1260573Skris * Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
1360573Skris * All rights reserved.
1460573Skris *
1560573Skris * 2. License
1660573Skris *
1760573Skris * 2.1. This is your license from Intel Corp. under its intellectual property
1860573Skris * rights.  You may have additional license terms from the party that provided
1960573Skris * you this software, covering your right to use that party's intellectual
2060573Skris * property rights.
2160573Skris *
2260573Skris * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
2360573Skris * copy of the source code appearing in this file ("Covered Code") an
2460573Skris * irrevocable, perpetual, worldwide license under Intel's copyrights in the
2560573Skris * base code distributed originally by Intel ("Original Intel Code") to copy,
2669587Sgreen * make derivatives, distribute, use and display any portion of the Covered
2760573Skris * Code in any form, with the right to sublicense such rights; and
2860573Skris *
2960573Skris * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
3060573Skris * license (with the right to sublicense), under only those claims of Intel
3160573Skris * patents that are infringed by the Original Intel Code, to make, use, sell,
3260573Skris * offer to sell, and import the Covered Code and derivative works thereof
3360573Skris * solely to the minimum extent necessary to exercise the above copyright
3460573Skris * license, and in no event shall the patent license extend to any additions
3560573Skris * to or modifications of the Original Intel Code.  No other license or right
3660573Skris * is granted directly or by implication, estoppel or otherwise;
3760573Skris *
3860573Skris * The above copyright and patent license is granted only if the following
3960573Skris * conditions are met:
4060573Skris *
4160573Skris * 3. Conditions
4260573Skris *
4360573Skris * 3.1. Redistribution of Source with Rights to Further Distribute Source.
4460573Skris * Redistribution of source code of any substantial portion of the Covered
4560573Skris * Code or modification with rights to further distribute source must include
4660573Skris * the above Copyright Notice, the above License, this list of Conditions,
4760573Skris * and the following Disclaimer and Export Compliance provision.  In addition,
4860573Skris * Licensee must cause all Covered Code to which Licensee contributes to
4960573Skris * contain a file documenting the changes Licensee made to create that Covered
5060573Skris * Code and the date of any change.  Licensee must include in that file the
5169587Sgreen * documentation of any changes made by any predecessor Licensee.  Licensee
5269587Sgreen * must include a prominent statement that the modification is derived,
5365668Skris * directly or indirectly, from Original Intel Code.
5460573Skris *
5569587Sgreen * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
5669587Sgreen * Redistribution of source code of any substantial portion of the Covered
5769587Sgreen * Code or modification without rights to further distribute source must
5860573Skris * include the following Disclaimer and Export Compliance provision in the
5960573Skris * documentation and/or other materials provided with distribution.  In
6060573Skris * addition, Licensee may not authorize further sublicense of source of any
6160573Skris * portion of the Covered Code, and must include terms to the effect that the
6260573Skris * license from Licensee to its licensee is limited to the intellectual
6360573Skris * property embodied in the software Licensee provides to its licensee, and
6460573Skris * not to intellectual property embodied in modifications its licensee may
6560573Skris * make.
6660573Skris *
6760573Skris * 3.3. Redistribution of Executable. Redistribution in executable form of any
6860573Skris * substantial portion of the Covered Code or modification must reproduce the
6960573Skris * above Copyright Notice, and the following Disclaimer and Export Compliance
7060573Skris * provision in the documentation and/or other materials provided with the
7169587Sgreen * distribution.
7260573Skris *
7369587Sgreen * 3.4. Intel retains all right, title, and interest in and to the Original
7469587Sgreen * Intel Code.
7569587Sgreen *
7669587Sgreen * 3.5. Neither the name Intel nor any other trademark owned or controlled by
7769587Sgreen * Intel shall be used in advertising or otherwise to promote the sale, use or
7869587Sgreen * other dealings in products derived from or relating to the Covered Code
7969587Sgreen * without prior written authorization from Intel.
8069587Sgreen *
8169587Sgreen * 4. Disclaimer and Export Compliance
8269587Sgreen *
8369587Sgreen * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
8469587Sgreen * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
8569587Sgreen * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
8669587Sgreen * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
8769587Sgreen * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
8869587Sgreen * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
8969587Sgreen * PARTICULAR PURPOSE.
9069587Sgreen *
9169587Sgreen * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
9269587Sgreen * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
9369587Sgreen * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
9469587Sgreen * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
9569587Sgreen * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
9669587Sgreen * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
9769587Sgreen * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
9869587Sgreen * LIMITED REMEDY.
9969587Sgreen *
10069587Sgreen * 4.3. Licensee shall not export, either directly or indirectly, any of this
10169587Sgreen * software or system incorporating such software without first obtaining any
10269587Sgreen * required license or other approval from the U. S. Department of Commerce or
10369587Sgreen * any other agency or department of the United States Government.  In the
10469587Sgreen * event Licensee exports any such software from the United States or
10569587Sgreen * re-exports any such software from a foreign destination, Licensee shall
10669587Sgreen * ensure that the distribution and export/re-export of the software is in
10769587Sgreen * compliance with all laws, regulations, orders, or other restrictions of the
10869587Sgreen * U.S. Export Administration Regulations. Licensee agrees that neither it nor
10969587Sgreen * any of its subsidiaries will export/re-export any technical data, process,
11069587Sgreen * software, or service, directly or indirectly, to any country for which the
11169587Sgreen * United States government or any agency thereof requires an export license,
11269587Sgreen * other governmental approval, or letter of assurance, without first obtaining
11369587Sgreen * such license, approval or letter.
11469587Sgreen *
11569587Sgreen *****************************************************************************/
11669587Sgreen
11769587Sgreen#ifndef __ACINTERP_H__
11869587Sgreen#define __ACINTERP_H__
11969587Sgreen
12069587Sgreen
12169587Sgreen#define ACPI_WALK_OPERANDS       (&(WalkState->Operands [WalkState->NumOperands -1]))
12269587Sgreen
12369587Sgreen
12469587SgreenACPI_STATUS
12569587SgreenAcpiExResolveOperands (
12669587Sgreen    UINT16                  Opcode,
12769587Sgreen    ACPI_OPERAND_OBJECT     **StackPtr,
12869587Sgreen    ACPI_WALK_STATE         *WalkState);
12969587Sgreen
13069587SgreenACPI_STATUS
13169587SgreenAcpiExCheckObjectType (
13269587Sgreen    ACPI_OBJECT_TYPE        TypeNeeded,
13369587Sgreen    ACPI_OBJECT_TYPE        ThisType,
13469587Sgreen    void                    *Object);
13569587Sgreen
13669587Sgreen/*
13769587Sgreen * exxface - External interpreter interfaces
13869587Sgreen */
13969587Sgreen
14069587SgreenACPI_STATUS
14169587SgreenAcpiExLoadTable (
14269587Sgreen    ACPI_TABLE_TYPE         TableId);
14369587Sgreen
14469587SgreenACPI_STATUS
14569587SgreenAcpiExExecuteMethod (
14669587Sgreen    ACPI_NAMESPACE_NODE     *MethodNode,
14769587Sgreen    ACPI_OPERAND_OBJECT     **Params,
14869587Sgreen    ACPI_OPERAND_OBJECT     **ReturnObjDesc);
14969587Sgreen
15069587Sgreen
15169587Sgreen/*
15269587Sgreen * exconvrt - object conversion
15369587Sgreen */
15469587Sgreen
15569587SgreenACPI_STATUS
15669587SgreenAcpiExConvertToInteger (
15769587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc,
15869587Sgreen    ACPI_OPERAND_OBJECT     **ResultDesc,
15961209Skris    ACPI_WALK_STATE         *WalkState);
16060573Skris
16160573SkrisACPI_STATUS
16260573SkrisAcpiExConvertToBuffer (
16360573Skris    ACPI_OPERAND_OBJECT     *ObjDesc,
16460573Skris    ACPI_OPERAND_OBJECT     **ResultDesc,
16560573Skris    ACPI_WALK_STATE         *WalkState);
16660573Skris
16760573SkrisACPI_STATUS
16860573SkrisAcpiExConvertToString (
16960573Skris    ACPI_OPERAND_OBJECT     *ObjDesc,
17060573Skris    ACPI_OPERAND_OBJECT     **ResultDesc,
17160573Skris    UINT32                  Base,
17260573Skris    UINT32                  MaxLength,
17360573Skris    ACPI_WALK_STATE         *WalkState);
17460573Skris
17560573SkrisACPI_STATUS
17660573SkrisAcpiExConvertToTargetType (
17760573Skris    ACPI_OBJECT_TYPE        DestinationType,
17860573Skris    ACPI_OPERAND_OBJECT     *SourceDesc,
17960573Skris    ACPI_OPERAND_OBJECT     **ResultDesc,
18060573Skris    ACPI_WALK_STATE         *WalkState);
18160573Skris
18269587SgreenUINT32
18360573SkrisAcpiExConvertToAscii (
18469587Sgreen    ACPI_INTEGER            Integer,
18560573Skris    UINT32                  Base,
18669587Sgreen    UINT8                   *String,
18760573Skris    UINT8                   MaxLength);
18860573Skris
18960573Skris/*
19060573Skris * exfield - ACPI AML (p-code) execution - field manipulation
19160573Skris */
19260573Skris
19361209SkrisACPI_STATUS
19460573SkrisAcpiExExtractFromField (
19560573Skris    ACPI_OPERAND_OBJECT     *ObjDesc,
19660573Skris    void                    *Buffer,
19760573Skris    UINT32                  BufferLength);
19860573Skris
19960573SkrisACPI_STATUS
20060573SkrisAcpiExInsertIntoField (
20160573Skris    ACPI_OPERAND_OBJECT     *ObjDesc,
20260573Skris    void                    *Buffer,
20360573Skris    UINT32                  BufferLength);
20469587Sgreen
20560573SkrisACPI_STATUS
20660573SkrisAcpiExSetupRegion (
20760573Skris    ACPI_OPERAND_OBJECT     *ObjDesc,
20860573Skris    UINT32                  FieldDatumByteOffset);
20960573Skris
21060573SkrisACPI_STATUS
21160573SkrisAcpiExAccessRegion (
21260573Skris    ACPI_OPERAND_OBJECT     *ObjDesc,
21360573Skris    UINT32                  FieldDatumByteOffset,
21469587Sgreen    ACPI_INTEGER            *Value,
21560573Skris    UINT32                  ReadWrite);
21660573Skris
21760573SkrisBOOLEAN
21860573SkrisAcpiExRegisterOverflow (
21960573Skris    ACPI_OPERAND_OBJECT     *ObjDesc,
22060573Skris    ACPI_INTEGER            Value);
22160573Skris
22260573SkrisACPI_STATUS
22360573SkrisAcpiExFieldDatumIo (
22460573Skris    ACPI_OPERAND_OBJECT     *ObjDesc,
22560573Skris    UINT32                  FieldDatumByteOffset,
22660573Skris    ACPI_INTEGER            *Value,
22760573Skris    UINT32                  ReadWrite);
22860573Skris
22960573SkrisACPI_STATUS
23060573SkrisAcpiExWriteWithUpdateRule (
23160573Skris    ACPI_OPERAND_OBJECT     *ObjDesc,
23260573Skris    ACPI_INTEGER            Mask,
23360573Skris    ACPI_INTEGER            FieldValue,
23460573Skris    UINT32                  FieldDatumByteOffset);
23560573Skris
23660573Skrisvoid
23760573SkrisAcpiExGetBufferDatum(
23860573Skris    ACPI_INTEGER            *Datum,
23960573Skris    void                    *Buffer,
24060573Skris    UINT32                  BufferLength,
24160573Skris    UINT32                  ByteGranularity,
24260573Skris    UINT32                  BufferOffset);
24360573Skris
24460573Skrisvoid
24560573SkrisAcpiExSetBufferDatum (
24660573Skris    ACPI_INTEGER            MergedDatum,
24760573Skris    void                    *Buffer,
24860573Skris    UINT32                  BufferLength,
24960573Skris    UINT32                  ByteGranularity,
25060573Skris    UINT32                  BufferOffset);
25160573Skris
25260573SkrisACPI_STATUS
25360573SkrisAcpiExReadDataFromField (
25461209Skris    ACPI_WALK_STATE         *WalkState,
25560573Skris    ACPI_OPERAND_OBJECT     *ObjDesc,
25660573Skris    ACPI_OPERAND_OBJECT     **RetBufferDesc);
25760573Skris
25860573SkrisACPI_STATUS
25960573SkrisAcpiExWriteDataToField (
26060573Skris    ACPI_OPERAND_OBJECT     *SourceDesc,
26160573Skris    ACPI_OPERAND_OBJECT     *ObjDesc,
26260573Skris    ACPI_OPERAND_OBJECT     **ResultDesc);
26360573Skris
26460573Skris/*
26560573Skris * exmisc - ACPI AML (p-code) execution - specific opcodes
26660573Skris */
26760573Skris
26860573SkrisACPI_STATUS
26960573SkrisAcpiExOpcode_3A_0T_0R (
27060573Skris    ACPI_WALK_STATE         *WalkState);
27160573Skris
27261209SkrisACPI_STATUS
27360573SkrisAcpiExOpcode_3A_1T_1R (
27469587Sgreen    ACPI_WALK_STATE         *WalkState);
27569587Sgreen
27669587SgreenACPI_STATUS
27769587SgreenAcpiExOpcode_6A_0T_1R (
27869587Sgreen    ACPI_WALK_STATE         *WalkState);
27969587Sgreen
28069587SgreenBOOLEAN
28169587SgreenAcpiExDoMatch (
28269587Sgreen    UINT32                  MatchOp,
28369587Sgreen    ACPI_INTEGER            PackageValue,
28469587Sgreen    ACPI_INTEGER            MatchValue);
28569587Sgreen
28669587SgreenACPI_STATUS
28769587SgreenAcpiExGetObjectReference (
28869587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc,
28969587Sgreen    ACPI_OPERAND_OBJECT     **ReturnDesc,
29069587Sgreen    ACPI_WALK_STATE         *WalkState);
29169587Sgreen
29269587SgreenACPI_STATUS
29369587SgreenAcpiExResolveMultiple (
29469587Sgreen    ACPI_WALK_STATE         *WalkState,
29561209Skris    ACPI_OPERAND_OBJECT     *Operand,
29669587Sgreen    ACPI_OBJECT_TYPE        *ReturnType,
29769587Sgreen    ACPI_OPERAND_OBJECT     **ReturnDesc);
29861209Skris
29969587SgreenACPI_STATUS
30069587SgreenAcpiExConcatTemplate (
30169587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc,
30269587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc2,
30369587Sgreen    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
30469587Sgreen    ACPI_WALK_STATE         *WalkState);
30569587Sgreen
30669587SgreenACPI_STATUS
30769587SgreenAcpiExDoConcatenate (
30869587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc,
30969587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc2,
31069587Sgreen    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
31169587Sgreen    ACPI_WALK_STATE         *WalkState);
31269587Sgreen
31369587SgreenBOOLEAN
31469587SgreenAcpiExDoLogicalOp (
31561209Skris    UINT16                  Opcode,
31669587Sgreen    ACPI_INTEGER            Operand0,
31761209Skris    ACPI_INTEGER            Operand1);
31869587Sgreen
31969587SgreenACPI_INTEGER
32069587SgreenAcpiExDoMathOp (
32169587Sgreen    UINT16                  Opcode,
32269587Sgreen    ACPI_INTEGER            Operand0,
32361209Skris    ACPI_INTEGER            Operand1);
32469587Sgreen
32569587SgreenACPI_STATUS
32669587SgreenAcpiExCreateMutex (
32761209Skris    ACPI_WALK_STATE         *WalkState);
32869587Sgreen
32961209SkrisACPI_STATUS
33069587SgreenAcpiExCreateProcessor (
33161209Skris    ACPI_WALK_STATE         *WalkState);
33269587Sgreen
33360573SkrisACPI_STATUS
33469587SgreenAcpiExCreatePowerResource (
33569587Sgreen    ACPI_WALK_STATE         *WalkState);
33669587Sgreen
33769587SgreenACPI_STATUS
33869587SgreenAcpiExCreateRegion (
33969587Sgreen    UINT8                   *AmlStart,
34069587Sgreen    UINT32                  AmlLength,
34169587Sgreen    UINT8                   RegionSpace,
34269587Sgreen    ACPI_WALK_STATE         *WalkState);
34369587Sgreen
34469587SgreenACPI_STATUS
34569587SgreenAcpiExCreateTableRegion (
34669587Sgreen    ACPI_WALK_STATE         *WalkState);
34769587Sgreen
34869587SgreenACPI_STATUS
34969587SgreenAcpiExCreateEvent (
35069587Sgreen    ACPI_WALK_STATE         *WalkState);
35169587Sgreen
35269587SgreenACPI_STATUS
35369587SgreenAcpiExCreateAlias (
35469587Sgreen    ACPI_WALK_STATE         *WalkState);
35569587Sgreen
35669587SgreenACPI_STATUS
35769587SgreenAcpiExCreateMethod (
35860573Skris    UINT8                   *AmlStart,
35960573Skris    UINT32                  AmlLength,
36060573Skris    ACPI_WALK_STATE         *WalkState);
36169587Sgreen
36269587Sgreen
36369587Sgreen/*
36469587Sgreen * exconfig - dynamic table load/unload
36569587Sgreen */
36669587Sgreen
36769587SgreenACPI_STATUS
36869587SgreenAcpiExAddTable (
36969587Sgreen    ACPI_TABLE_HEADER       *Table,
37069587Sgreen    ACPI_NAMESPACE_NODE     *ParentNode,
37169587Sgreen    ACPI_OPERAND_OBJECT     **DdbHandle);
37269587Sgreen
37369587SgreenACPI_STATUS
37469587SgreenAcpiExLoadOp (
37569587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc,
37669587Sgreen    ACPI_OPERAND_OBJECT     *Target,
37769587Sgreen    ACPI_WALK_STATE         *WalkState);
37869587Sgreen
37969587SgreenACPI_STATUS
38069587SgreenAcpiExLoadTableOp (
38169587Sgreen    ACPI_WALK_STATE         *WalkState,
38260573Skris    ACPI_OPERAND_OBJECT     **ReturnDesc);
38369587Sgreen
38469587SgreenACPI_STATUS
38569587SgreenAcpiExUnloadTable (
38669587Sgreen    ACPI_OPERAND_OBJECT     *DdbHandle);
38760573Skris
38869587Sgreen
38969587Sgreen/*
39069587Sgreen * exmutex - mutex support
39169587Sgreen */
39269587Sgreen
39369587SgreenACPI_STATUS
39469587SgreenAcpiExAcquireMutex (
39569587Sgreen    ACPI_OPERAND_OBJECT     *TimeDesc,
39669587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc,
39769587Sgreen    ACPI_WALK_STATE         *WalkState);
39869587Sgreen
39969587SgreenACPI_STATUS
40069587SgreenAcpiExReleaseMutex (
40169587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc,
40269587Sgreen    ACPI_WALK_STATE         *WalkState);
40369587Sgreen
40469587Sgreenvoid
40569587SgreenAcpiExReleaseAllMutexes (
40669587Sgreen    ACPI_THREAD_STATE       *Thread);
40769587Sgreen
40869587Sgreenvoid
40969587SgreenAcpiExUnlinkMutex (
41069587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc);
41169587Sgreen
41269587Sgreenvoid
41369587SgreenAcpiExLinkMutex (
41469587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc,
41569587Sgreen    ACPI_THREAD_STATE       *Thread);
41669587Sgreen
41769587Sgreen/*
41869587Sgreen * exprep - ACPI AML (p-code) execution - prep utilities
41969587Sgreen */
42069587Sgreen
42169587SgreenACPI_STATUS
42269587SgreenAcpiExPrepCommonFieldObject (
42369587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc,
42469587Sgreen    UINT8                   FieldFlags,
42569587Sgreen    UINT8                   FieldAttribute,
42669587Sgreen    UINT32                  FieldBitPosition,
42769587Sgreen    UINT32                  FieldBitLength);
42869587Sgreen
42969587SgreenACPI_STATUS
43069587SgreenAcpiExPrepFieldValue (
43169587Sgreen    ACPI_CREATE_FIELD_INFO  *Info);
43269587Sgreen
43369587Sgreen/*
43469587Sgreen * exsystem - Interface to OS services
43569587Sgreen */
43669587Sgreen
43769587SgreenACPI_STATUS
43869587SgreenAcpiExSystemDoNotifyOp (
43969587Sgreen    ACPI_OPERAND_OBJECT     *Value,
44069587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc);
44169587Sgreen
44269587SgreenACPI_STATUS
44360573SkrisAcpiExSystemDoSuspend(
44461209Skris    UINT32                  Time);
44560573Skris
44660573SkrisACPI_STATUS
44760573SkrisAcpiExSystemDoStall (
44869587Sgreen    UINT32                  Time);
44969587Sgreen
45069587SgreenACPI_STATUS
45169587SgreenAcpiExSystemAcquireMutex(
45269587Sgreen    ACPI_OPERAND_OBJECT     *Time,
45369587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc);
45469587Sgreen
45569587SgreenACPI_STATUS
45669587SgreenAcpiExSystemReleaseMutex(
45769587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc);
45869587Sgreen
45969587SgreenACPI_STATUS
46069587SgreenAcpiExSystemSignalEvent(
46169587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc);
46269587Sgreen
46369587SgreenACPI_STATUS
46469587SgreenAcpiExSystemWaitEvent(
46569587Sgreen    ACPI_OPERAND_OBJECT     *Time,
46669587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc);
46769587Sgreen
46869587SgreenACPI_STATUS
46969587SgreenAcpiExSystemResetEvent(
47069587Sgreen    ACPI_OPERAND_OBJECT     *ObjDesc);
47169587Sgreen
47269587SgreenACPI_STATUS
47369587SgreenAcpiExSystemWaitSemaphore (
47469587Sgreen    ACPI_HANDLE             Semaphore,
47569587Sgreen    UINT16                  Timeout);
47669587Sgreen
47769587Sgreen
47869587Sgreen/*
47969587Sgreen * exmonadic - ACPI AML (p-code) execution, monadic operators
48069587Sgreen */
48169587Sgreen
48269587SgreenACPI_STATUS
48369587SgreenAcpiExOpcode_1A_0T_0R (
48469587Sgreen    ACPI_WALK_STATE         *WalkState);
48569587Sgreen
48669587SgreenACPI_STATUS
48769587SgreenAcpiExOpcode_1A_0T_1R (
48869587Sgreen    ACPI_WALK_STATE         *WalkState);
48969587Sgreen
49069587SgreenACPI_STATUS
49169587SgreenAcpiExOpcode_1A_1T_1R (
49269587Sgreen    ACPI_WALK_STATE         *WalkState);
49369587Sgreen
49469587SgreenACPI_STATUS
49569587SgreenAcpiExOpcode_1A_1T_0R (
49669587Sgreen    ACPI_WALK_STATE         *WalkState);
49769587Sgreen
49869587Sgreen/*
49969587Sgreen * exdyadic - ACPI AML (p-code) execution, dyadic operators
50069587Sgreen */
50169587Sgreen
50269587SgreenACPI_STATUS
50369587SgreenAcpiExOpcode_2A_0T_0R (
50469587Sgreen    ACPI_WALK_STATE         *WalkState);
50569587Sgreen
50669587SgreenACPI_STATUS
50769587SgreenAcpiExOpcode_2A_0T_1R (
50869587Sgreen    ACPI_WALK_STATE         *WalkState);
50969587Sgreen
51069587SgreenACPI_STATUS
51169587SgreenAcpiExOpcode_2A_1T_1R (
51269587Sgreen    ACPI_WALK_STATE         *WalkState);
51369587Sgreen
51469587SgreenACPI_STATUS
51569587SgreenAcpiExOpcode_2A_2T_1R (
51669587Sgreen    ACPI_WALK_STATE         *WalkState);
51769587Sgreen
51869587Sgreen
51969587Sgreen/*
52069587Sgreen * exresolv  - Object resolution and get value functions
52169587Sgreen */
52269587Sgreen
52369587SgreenACPI_STATUS
52469587SgreenAcpiExResolveToValue (
52569587Sgreen    ACPI_OPERAND_OBJECT     **StackPtr,
52669587Sgreen    ACPI_WALK_STATE         *WalkState);
52769587Sgreen
52869587SgreenACPI_STATUS
52969587SgreenAcpiExResolveNodeToValue (
53069587Sgreen    ACPI_NAMESPACE_NODE     **StackPtr,
53169587Sgreen    ACPI_WALK_STATE         *WalkState);
53269587Sgreen
53369587SgreenACPI_STATUS
53469587SgreenAcpiExResolveObjectToValue (
53569587Sgreen    ACPI_OPERAND_OBJECT     **StackPtr,
53669587Sgreen    ACPI_WALK_STATE         *WalkState);
53769587Sgreen
53869587Sgreen
53969587Sgreen/*
54069587Sgreen * exdump - Scanner debug output routines
54169587Sgreen */
54269587Sgreen
54369587Sgreenvoid
54469587SgreenAcpiExDumpOperand (
54569587Sgreen    ACPI_OPERAND_OBJECT     *EntryDesc);
54669587Sgreen
54769587Sgreenvoid
54869587SgreenAcpiExDumpOperands (
54969587Sgreen    ACPI_OPERAND_OBJECT     **Operands,
55069587Sgreen    ACPI_INTERPRETER_MODE   InterpreterMode,
55169587Sgreen    char                    *Ident,
55269587Sgreen    UINT32                  NumLevels,
55369587Sgreen    char                    *Note,
55469587Sgreen    char                    *ModuleName,
55569587Sgreen    UINT32                  LineNumber);
55669587Sgreen
55769587Sgreenvoid
55869587SgreenAcpiExDumpObjectDescriptor (
55969587Sgreen    ACPI_OPERAND_OBJECT     *Object,
56069587Sgreen    UINT32                  Flags);
56169587Sgreen
56269587Sgreenvoid
56369587SgreenAcpiExDumpNode (
56469587Sgreen    ACPI_NAMESPACE_NODE     *Node,
56569587Sgreen    UINT32                  Flags);
56669587Sgreen
56769587Sgreenvoid
56869587SgreenAcpiExOutString (
56969587Sgreen    char                    *Title,
57069587Sgreen    char                    *Value);
57169587Sgreen
57269587Sgreenvoid
57369587SgreenAcpiExOutPointer (
57469587Sgreen    char                    *Title,
57569587Sgreen    void                    *Value);
57669587Sgreen
57769587Sgreenvoid
57869587SgreenAcpiExOutInteger (
57969587Sgreen    char                    *Title,
58069587Sgreen    UINT32                  Value);
58169587Sgreen
58269587Sgreenvoid
58369587SgreenAcpiExOutAddress (
58469587Sgreen    char                    *Title,
58569587Sgreen    ACPI_PHYSICAL_ADDRESS   Value);
58669587Sgreen
58769587Sgreen
58869587Sgreen/*
58969587Sgreen * exnames - interpreter/scanner name load/execute
59069587Sgreen */
59169587Sgreen
59269587Sgreenchar *
59369587SgreenAcpiExAllocateNameString (
59469587Sgreen    UINT32                  PrefixCount,
59569587Sgreen    UINT32                  NumNameSegs);
59669587Sgreen
59769587SgreenUINT32
59869587SgreenAcpiExGoodChar (
59969587Sgreen    UINT32                  Character);
60069587Sgreen
60169587SgreenACPI_STATUS
60269587SgreenAcpiExNameSegment (
60369587Sgreen    UINT8                   **InAmlAddress,
60460573Skris    char                    *NameString);
60569587Sgreen
60660573SkrisACPI_STATUS
60769587SgreenAcpiExGetNameString (
60869587Sgreen    ACPI_OBJECT_TYPE        DataType,
60969587Sgreen    UINT8                   *InAmlAddress,
61069587Sgreen    char                    **OutNameString,
61169587Sgreen    UINT32                  *OutNameLength);
61269587Sgreen
61369587SgreenACPI_STATUS
61469587SgreenAcpiExDoName (
61569587Sgreen    ACPI_OBJECT_TYPE        DataType,
61669587Sgreen    ACPI_INTERPRETER_MODE   LoadExecMode);
61769587Sgreen
61869587Sgreen
61969587Sgreen/*
62060573Skris * exstore - Object store support
62160573Skris */
62260573Skris
62360573SkrisACPI_STATUS
62465668SkrisAcpiExStore (
62560573Skris    ACPI_OPERAND_OBJECT     *ValDesc,
62660573Skris    ACPI_OPERAND_OBJECT     *DestDesc,
62765668Skris    ACPI_WALK_STATE         *WalkState);
62865668Skris
62965668SkrisACPI_STATUS
63060573SkrisAcpiExStoreObjectToIndex (
63169587Sgreen    ACPI_OPERAND_OBJECT     *ValDesc,
63260573Skris    ACPI_OPERAND_OBJECT     *DestDesc,
63360573Skris    ACPI_WALK_STATE         *WalkState);
63469587Sgreen
63569587SgreenACPI_STATUS
63669587SgreenAcpiExStoreObjectToNode (
63760573Skris    ACPI_OPERAND_OBJECT     *SourceDesc,
63860573Skris    ACPI_NAMESPACE_NODE     *Node,
63960573Skris    ACPI_WALK_STATE         *WalkState);
64060573Skris
64160573Skris
64260573Skris/*
64360573Skris * exstoren
64460573Skris */
64560573Skris
64660573SkrisACPI_STATUS
64769587SgreenAcpiExResolveObject (
64860573Skris    ACPI_OPERAND_OBJECT     **SourceDescPtr,
64960573Skris    ACPI_OBJECT_TYPE        TargetType,
65060573Skris    ACPI_WALK_STATE         *WalkState);
65160573Skris
65265668SkrisACPI_STATUS
65365668SkrisAcpiExStoreObjectToObject (
65469587Sgreen    ACPI_OPERAND_OBJECT     *SourceDesc,
65560573Skris    ACPI_OPERAND_OBJECT     *DestDesc,
65660573Skris    ACPI_OPERAND_OBJECT     **NewDesc,
65760573Skris    ACPI_WALK_STATE         *WalkState);
65860573Skris
65960573Skris
66069587Sgreen/*
66169587Sgreen * excopy - object copy
66269587Sgreen */
66369587Sgreen
66465668SkrisACPI_STATUS
66565668SkrisAcpiExStoreBufferToBuffer (
66665668Skris    ACPI_OPERAND_OBJECT     *SourceDesc,
66760573Skris    ACPI_OPERAND_OBJECT     *TargetDesc);
66869587Sgreen
66960573SkrisACPI_STATUS
67060573SkrisAcpiExStoreStringToString (
67160573Skris    ACPI_OPERAND_OBJECT     *SourceDesc,
67269587Sgreen    ACPI_OPERAND_OBJECT     *TargetDesc);
67369587Sgreen
67469587SgreenACPI_STATUS
67560573SkrisAcpiExCopyIntegerToIndexField (
67660573Skris    ACPI_OPERAND_OBJECT     *SourceDesc,
67760573Skris    ACPI_OPERAND_OBJECT     *TargetDesc);
67860573Skris
67969587SgreenACPI_STATUS
68065668SkrisAcpiExCopyIntegerToBankField (
68165668Skris    ACPI_OPERAND_OBJECT     *SourceDesc,
68265668Skris    ACPI_OPERAND_OBJECT     *TargetDesc);
68365668Skris
68465668SkrisACPI_STATUS
68560573SkrisAcpiExCopyDataToNamedField (
68660573Skris    ACPI_OPERAND_OBJECT     *SourceDesc,
68760573Skris    ACPI_NAMESPACE_NODE     *Node);
68860573Skris
68960573SkrisACPI_STATUS
69060573SkrisAcpiExCopyIntegerToBufferField (
69160573Skris    ACPI_OPERAND_OBJECT     *SourceDesc,
69269587Sgreen    ACPI_OPERAND_OBJECT     *TargetDesc);
69369587Sgreen
69469587Sgreen/*
69569587Sgreen * exutils - interpreter/scanner utilities
69660573Skris */
69760573Skris
69860573SkrisACPI_STATUS
69960573SkrisAcpiExEnterInterpreter (
70060573Skris    void);
70160573Skris
70260573Skrisvoid
70360573SkrisAcpiExExitInterpreter (
70460573Skris    void);
70565668Skris
70669587Sgreenvoid
70765668SkrisAcpiExTruncateFor32bitTable (
70860573Skris    ACPI_OPERAND_OBJECT     *ObjDesc);
70960573Skris
71060573SkrisBOOLEAN
71160573SkrisAcpiExAcquireGlobalLock (
71260573Skris    UINT32                  Rule);
71360573Skris
71460573Skrisvoid
71560573SkrisAcpiExReleaseGlobalLock (
71660573Skris    BOOLEAN                 Locked);
71765668Skris
71860573SkrisUINT32
71960573SkrisAcpiExDigitsNeeded (
72060573Skris    ACPI_INTEGER            Value,
72169587Sgreen    UINT32                  Base);
72269587Sgreen
72369587Sgreenvoid
72469587SgreenAcpiExEisaIdToString (
72569587Sgreen    UINT32                  NumericId,
72669587Sgreen    char                    *OutString);
72769587Sgreen
72865668Skrisvoid
72969587SgreenAcpiExUnsignedIntegerToString (
73065668Skris    ACPI_INTEGER            Value,
73165668Skris    char                    *OutString);
73269587Sgreen
73365668Skris
73465668Skris/*
73565668Skris * exregion - default OpRegion handlers
73665668Skris */
73765668Skris
73865668SkrisACPI_STATUS
73965668SkrisAcpiExSystemMemorySpaceHandler (
74065668Skris    UINT32                  Function,
74165668Skris    ACPI_PHYSICAL_ADDRESS   Address,
74265668Skris    UINT32                  BitWidth,
74365668Skris    ACPI_INTEGER            *Value,
74465668Skris    void                    *HandlerContext,
74565668Skris    void                    *RegionContext);
74665668Skris
74769587SgreenACPI_STATUS
74869587SgreenAcpiExSystemIoSpaceHandler (
74969587Sgreen    UINT32                  Function,
75069587Sgreen    ACPI_PHYSICAL_ADDRESS   Address,
75169587Sgreen    UINT32                  BitWidth,
75269587Sgreen    ACPI_INTEGER            *Value,
75369587Sgreen    void                    *HandlerContext,
75469587Sgreen    void                    *RegionContext);
75569587Sgreen
75669587SgreenACPI_STATUS
75769587SgreenAcpiExPciConfigSpaceHandler (
75869587Sgreen    UINT32                  Function,
75969587Sgreen    ACPI_PHYSICAL_ADDRESS   Address,
76069587Sgreen    UINT32                  BitWidth,
76169587Sgreen    ACPI_INTEGER            *Value,
76269587Sgreen    void                    *HandlerContext,
76369587Sgreen    void                    *RegionContext);
76465668Skris
76565668SkrisACPI_STATUS
76665668SkrisAcpiExCmosSpaceHandler (
76765668Skris    UINT32                  Function,
76865668Skris    ACPI_PHYSICAL_ADDRESS   Address,
76969587Sgreen    UINT32                  BitWidth,
77065668Skris    ACPI_INTEGER            *Value,
77165668Skris    void                    *HandlerContext,
77265668Skris    void                    *RegionContext);
77365668Skris
77469587SgreenACPI_STATUS
77569587SgreenAcpiExPciBarSpaceHandler (
77665668Skris    UINT32                  Function,
77765668Skris    ACPI_PHYSICAL_ADDRESS   Address,
77869587Sgreen    UINT32                  BitWidth,
77965668Skris    ACPI_INTEGER            *Value,
78065668Skris    void                    *HandlerContext,
78165668Skris    void                    *RegionContext);
78269587Sgreen
78365668SkrisACPI_STATUS
78465668SkrisAcpiExEmbeddedControllerSpaceHandler (
78565668Skris    UINT32                  Function,
78665668Skris    ACPI_PHYSICAL_ADDRESS   Address,
78765668Skris    UINT32                  BitWidth,
78865668Skris    ACPI_INTEGER            *Value,
78965668Skris    void                    *HandlerContext,
79069587Sgreen    void                    *RegionContext);
79169587Sgreen
79265668SkrisACPI_STATUS
79369587SgreenAcpiExSmBusSpaceHandler (
79465668Skris    UINT32                  Function,
79569587Sgreen    ACPI_PHYSICAL_ADDRESS   Address,
79669587Sgreen    UINT32                  BitWidth,
79765668Skris    ACPI_INTEGER            *Value,
79869587Sgreen    void                    *HandlerContext,
79965668Skris    void                    *RegionContext);
80065668Skris
80169587Sgreen
80265668SkrisACPI_STATUS
80365668SkrisAcpiExDataTableSpaceHandler (
80465668Skris    UINT32                  Function,
80565668Skris    ACPI_PHYSICAL_ADDRESS   Address,
80669587Sgreen    UINT32                  BitWidth,
80769587Sgreen    ACPI_INTEGER            *Value,
80869587Sgreen    void                    *HandlerContext,
80969587Sgreen    void                    *RegionContext);
81069587Sgreen
81169587Sgreen#endif /* __INTERP_H__ */
81269587Sgreen