acinterp.h revision 99679
167754Smsmith/******************************************************************************
267754Smsmith *
367754Smsmith * Name: acinterp.h - Interpreter subcomponent prototypes and defines
499679Siwasaki *       $Revision: 138 $
567754Smsmith *
667754Smsmith *****************************************************************************/
767754Smsmith
867754Smsmith/******************************************************************************
967754Smsmith *
1067754Smsmith * 1. Copyright Notice
1167754Smsmith *
1291116Smsmith * Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
1370243Smsmith * All rights reserved.
1467754Smsmith *
1567754Smsmith * 2. License
1667754Smsmith *
1767754Smsmith * 2.1. This is your license from Intel Corp. under its intellectual property
1867754Smsmith * rights.  You may have additional license terms from the party that provided
1967754Smsmith * you this software, covering your right to use that party's intellectual
2067754Smsmith * property rights.
2167754Smsmith *
2267754Smsmith * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
2367754Smsmith * copy of the source code appearing in this file ("Covered Code") an
2467754Smsmith * irrevocable, perpetual, worldwide license under Intel's copyrights in the
2567754Smsmith * base code distributed originally by Intel ("Original Intel Code") to copy,
2667754Smsmith * make derivatives, distribute, use and display any portion of the Covered
2767754Smsmith * Code in any form, with the right to sublicense such rights; and
2867754Smsmith *
2967754Smsmith * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
3067754Smsmith * license (with the right to sublicense), under only those claims of Intel
3167754Smsmith * patents that are infringed by the Original Intel Code, to make, use, sell,
3267754Smsmith * offer to sell, and import the Covered Code and derivative works thereof
3367754Smsmith * solely to the minimum extent necessary to exercise the above copyright
3467754Smsmith * license, and in no event shall the patent license extend to any additions
3567754Smsmith * to or modifications of the Original Intel Code.  No other license or right
3667754Smsmith * is granted directly or by implication, estoppel or otherwise;
3767754Smsmith *
3867754Smsmith * The above copyright and patent license is granted only if the following
3967754Smsmith * conditions are met:
4067754Smsmith *
4167754Smsmith * 3. Conditions
4267754Smsmith *
4367754Smsmith * 3.1. Redistribution of Source with Rights to Further Distribute Source.
4467754Smsmith * Redistribution of source code of any substantial portion of the Covered
4567754Smsmith * Code or modification with rights to further distribute source must include
4667754Smsmith * the above Copyright Notice, the above License, this list of Conditions,
4767754Smsmith * and the following Disclaimer and Export Compliance provision.  In addition,
4867754Smsmith * Licensee must cause all Covered Code to which Licensee contributes to
4967754Smsmith * contain a file documenting the changes Licensee made to create that Covered
5067754Smsmith * Code and the date of any change.  Licensee must include in that file the
5167754Smsmith * documentation of any changes made by any predecessor Licensee.  Licensee
5267754Smsmith * must include a prominent statement that the modification is derived,
5367754Smsmith * directly or indirectly, from Original Intel Code.
5467754Smsmith *
5567754Smsmith * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
5667754Smsmith * Redistribution of source code of any substantial portion of the Covered
5767754Smsmith * Code or modification without rights to further distribute source must
5867754Smsmith * include the following Disclaimer and Export Compliance provision in the
5967754Smsmith * documentation and/or other materials provided with distribution.  In
6067754Smsmith * addition, Licensee may not authorize further sublicense of source of any
6167754Smsmith * portion of the Covered Code, and must include terms to the effect that the
6267754Smsmith * license from Licensee to its licensee is limited to the intellectual
6367754Smsmith * property embodied in the software Licensee provides to its licensee, and
6467754Smsmith * not to intellectual property embodied in modifications its licensee may
6567754Smsmith * make.
6667754Smsmith *
6767754Smsmith * 3.3. Redistribution of Executable. Redistribution in executable form of any
6867754Smsmith * substantial portion of the Covered Code or modification must reproduce the
6967754Smsmith * above Copyright Notice, and the following Disclaimer and Export Compliance
7067754Smsmith * provision in the documentation and/or other materials provided with the
7167754Smsmith * distribution.
7267754Smsmith *
7367754Smsmith * 3.4. Intel retains all right, title, and interest in and to the Original
7467754Smsmith * Intel Code.
7567754Smsmith *
7667754Smsmith * 3.5. Neither the name Intel nor any other trademark owned or controlled by
7767754Smsmith * Intel shall be used in advertising or otherwise to promote the sale, use or
7867754Smsmith * other dealings in products derived from or relating to the Covered Code
7967754Smsmith * without prior written authorization from Intel.
8067754Smsmith *
8167754Smsmith * 4. Disclaimer and Export Compliance
8267754Smsmith *
8367754Smsmith * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
8467754Smsmith * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
8567754Smsmith * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
8667754Smsmith * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
8767754Smsmith * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
8867754Smsmith * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
8967754Smsmith * PARTICULAR PURPOSE.
9067754Smsmith *
9167754Smsmith * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
9267754Smsmith * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
9367754Smsmith * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
9467754Smsmith * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
9567754Smsmith * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
9667754Smsmith * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
9767754Smsmith * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
9867754Smsmith * LIMITED REMEDY.
9967754Smsmith *
10067754Smsmith * 4.3. Licensee shall not export, either directly or indirectly, any of this
10167754Smsmith * software or system incorporating such software without first obtaining any
10267754Smsmith * required license or other approval from the U. S. Department of Commerce or
10367754Smsmith * any other agency or department of the United States Government.  In the
10467754Smsmith * event Licensee exports any such software from the United States or
10567754Smsmith * re-exports any such software from a foreign destination, Licensee shall
10667754Smsmith * ensure that the distribution and export/re-export of the software is in
10767754Smsmith * compliance with all laws, regulations, orders, or other restrictions of the
10867754Smsmith * U.S. Export Administration Regulations. Licensee agrees that neither it nor
10967754Smsmith * any of its subsidiaries will export/re-export any technical data, process,
11067754Smsmith * software, or service, directly or indirectly, to any country for which the
11167754Smsmith * United States government or any agency thereof requires an export license,
11267754Smsmith * other governmental approval, or letter of assurance, without first obtaining
11367754Smsmith * such license, approval or letter.
11467754Smsmith *
11567754Smsmith *****************************************************************************/
11667754Smsmith
11767754Smsmith#ifndef __ACINTERP_H__
11867754Smsmith#define __ACINTERP_H__
11967754Smsmith
12067754Smsmith
12191116Smsmith#define ACPI_WALK_OPERANDS       (&(WalkState->Operands [WalkState->NumOperands -1]))
12267754Smsmith
12367754Smsmith
12467754SmsmithACPI_STATUS
12577424SmsmithAcpiExResolveOperands (
12667754Smsmith    UINT16                  Opcode,
12767754Smsmith    ACPI_OPERAND_OBJECT     **StackPtr,
12867754Smsmith    ACPI_WALK_STATE         *WalkState);
12967754Smsmith
13099679SiwasakiACPI_STATUS
13199679SiwasakiAcpiExCheckObjectType (
13299679Siwasaki    ACPI_OBJECT_TYPE        TypeNeeded,
13399679Siwasaki    ACPI_OBJECT_TYPE        ThisType,
13499679Siwasaki    void                    *Object);
13567754Smsmith
13667754Smsmith/*
13791116Smsmith * exxface - External interpreter interfaces
13867754Smsmith */
13967754Smsmith
14067754SmsmithACPI_STATUS
14177424SmsmithAcpiExLoadTable (
14267754Smsmith    ACPI_TABLE_TYPE         TableId);
14367754Smsmith
14467754SmsmithACPI_STATUS
14577424SmsmithAcpiExExecuteMethod (
14667754Smsmith    ACPI_NAMESPACE_NODE     *MethodNode,
14767754Smsmith    ACPI_OPERAND_OBJECT     **Params,
14867754Smsmith    ACPI_OPERAND_OBJECT     **ReturnObjDesc);
14967754Smsmith
15067754Smsmith
15167754Smsmith/*
15291116Smsmith * exconvrt - object conversion
15367754Smsmith */
15467754Smsmith
15571867SmsmithACPI_STATUS
15677424SmsmithAcpiExConvertToInteger (
15780062Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
15880062Smsmith    ACPI_OPERAND_OBJECT     **ResultDesc,
15971867Smsmith    ACPI_WALK_STATE         *WalkState);
16067754Smsmith
16167754SmsmithACPI_STATUS
16277424SmsmithAcpiExConvertToBuffer (
16380062Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
16480062Smsmith    ACPI_OPERAND_OBJECT     **ResultDesc,
16571867Smsmith    ACPI_WALK_STATE         *WalkState);
16671867Smsmith
16771867SmsmithACPI_STATUS
16877424SmsmithAcpiExConvertToString (
16980062Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
17080062Smsmith    ACPI_OPERAND_OBJECT     **ResultDesc,
17182367Smsmith    UINT32                  Base,
17280062Smsmith    UINT32                  MaxLength,
17371867Smsmith    ACPI_WALK_STATE         *WalkState);
17471867Smsmith
17571867SmsmithACPI_STATUS
17677424SmsmithAcpiExConvertToTargetType (
17791116Smsmith    ACPI_OBJECT_TYPE        DestinationType,
17891116Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
17991116Smsmith    ACPI_OPERAND_OBJECT     **ResultDesc,
18071867Smsmith    ACPI_WALK_STATE         *WalkState);
18171867Smsmith
18299679SiwasakiUINT32
18399679SiwasakiAcpiExConvertToAscii (
18499679Siwasaki    ACPI_INTEGER            Integer,
18599679Siwasaki    UINT32                  Base,
18699679Siwasaki    UINT8                   *String);
18771867Smsmith
18871867Smsmith/*
18991116Smsmith * exfield - ACPI AML (p-code) execution - field manipulation
19071867Smsmith */
19171867Smsmith
19271867SmsmithACPI_STATUS
19377424SmsmithAcpiExExtractFromField (
19467754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
19567754Smsmith    void                    *Buffer,
19677424Smsmith    UINT32                  BufferLength);
19767754Smsmith
19867754SmsmithACPI_STATUS
19977424SmsmithAcpiExInsertIntoField (
20067754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
20167754Smsmith    void                    *Buffer,
20277424Smsmith    UINT32                  BufferLength);
20367754Smsmith
20467754SmsmithACPI_STATUS
20587031SmsmithAcpiExSetupRegion (
20667754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
20787031Smsmith    UINT32                  FieldDatumByteOffset);
20867754Smsmith
20967754SmsmithACPI_STATUS
21087031SmsmithAcpiExAccessRegion (
21167754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
21287031Smsmith    UINT32                  FieldDatumByteOffset,
21387031Smsmith    ACPI_INTEGER            *Value,
21487031Smsmith    UINT32                  ReadWrite);
21567754Smsmith
21687031SmsmithBOOLEAN
21787031SmsmithAcpiExRegisterOverflow (
21877424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
21987031Smsmith    ACPI_INTEGER            Value);
22067754Smsmith
22177424SmsmithACPI_STATUS
22287031SmsmithAcpiExFieldDatumIo (
22377424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
22487031Smsmith    UINT32                  FieldDatumByteOffset,
22587031Smsmith    ACPI_INTEGER            *Value,
22687031Smsmith    UINT32                  ReadWrite);
22777424Smsmith
22877424SmsmithACPI_STATUS
22987031SmsmithAcpiExWriteWithUpdateRule (
23077424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
23187031Smsmith    ACPI_INTEGER            Mask,
23287031Smsmith    ACPI_INTEGER            FieldValue,
23387031Smsmith    UINT32                  FieldDatumByteOffset);
23477424Smsmith
23587031Smsmithvoid
23687031SmsmithAcpiExGetBufferDatum(
23787031Smsmith    ACPI_INTEGER            *Datum,
23877424Smsmith    void                    *Buffer,
23987031Smsmith    UINT32                  ByteGranularity,
24087031Smsmith    UINT32                  Offset);
24177424Smsmith
24287031Smsmithvoid
24387031SmsmithAcpiExSetBufferDatum (
24487031Smsmith    ACPI_INTEGER            MergedDatum,
24577424Smsmith    void                    *Buffer,
24687031Smsmith    UINT32                  ByteGranularity,
24787031Smsmith    UINT32                  Offset);
24877424Smsmith
24977424SmsmithACPI_STATUS
25077424SmsmithAcpiExReadDataFromField (
25199146Siwasaki    ACPI_WALK_STATE         *WalkState,
25277424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
25377424Smsmith    ACPI_OPERAND_OBJECT     **RetBufferDesc);
25477424Smsmith
25577424SmsmithACPI_STATUS
25677424SmsmithAcpiExWriteDataToField (
25777424Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
25877424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
25977424Smsmith
26067754Smsmith/*
26191116Smsmith * exmisc - ACPI AML (p-code) execution - specific opcodes
26267754Smsmith */
26367754Smsmith
26467754SmsmithACPI_STATUS
26585756SmsmithAcpiExOpcode_3A_0T_0R (
26684491Smsmith    ACPI_WALK_STATE         *WalkState);
26780062Smsmith
26880062SmsmithACPI_STATUS
26985756SmsmithAcpiExOpcode_3A_1T_1R (
27084491Smsmith    ACPI_WALK_STATE         *WalkState);
27180062Smsmith
27280062SmsmithACPI_STATUS
27385756SmsmithAcpiExOpcode_6A_0T_1R (
27467754Smsmith    ACPI_WALK_STATE         *WalkState);
27567754Smsmith
27699679SiwasakiBOOLEAN
27799679SiwasakiAcpiExDoMatch (
27899679Siwasaki    UINT32                  MatchOp,
27999679Siwasaki    ACPI_INTEGER            PackageValue,
28099679Siwasaki    ACPI_INTEGER            MatchValue);
28199679Siwasaki
28267754SmsmithACPI_STATUS
28385756SmsmithAcpiExGetObjectReference (
28485756Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
28585756Smsmith    ACPI_OPERAND_OBJECT     **ReturnDesc,
28667754Smsmith    ACPI_WALK_STATE         *WalkState);
28767754Smsmith
28867754SmsmithACPI_STATUS
28991116SmsmithAcpiExConcatTemplate (
29091116Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
29191116Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc2,
29291116Smsmith    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
29391116Smsmith    ACPI_WALK_STATE         *WalkState);
29491116Smsmith
29591116SmsmithACPI_STATUS
29685756SmsmithAcpiExDoConcatenate (
29785756Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
29885756Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc2,
29985756Smsmith    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
30085756Smsmith    ACPI_WALK_STATE         *WalkState);
30185756Smsmith
30285756SmsmithBOOLEAN
30385756SmsmithAcpiExDoLogicalOp (
30485756Smsmith    UINT16                  Opcode,
30585756Smsmith    ACPI_INTEGER            Operand0,
30685756Smsmith    ACPI_INTEGER            Operand1);
30785756Smsmith
30885756SmsmithACPI_INTEGER
30985756SmsmithAcpiExDoMathOp (
31085756Smsmith    UINT16                  Opcode,
31185756Smsmith    ACPI_INTEGER            Operand0,
31285756Smsmith    ACPI_INTEGER            Operand1);
31385756Smsmith
31485756SmsmithACPI_STATUS
31577424SmsmithAcpiExCreateMutex (
31667754Smsmith    ACPI_WALK_STATE         *WalkState);
31767754Smsmith
31867754SmsmithACPI_STATUS
31977424SmsmithAcpiExCreateProcessor (
32085756Smsmith    ACPI_WALK_STATE         *WalkState);
32167754Smsmith
32267754SmsmithACPI_STATUS
32377424SmsmithAcpiExCreatePowerResource (
32485756Smsmith    ACPI_WALK_STATE         *WalkState);
32567754Smsmith
32667754SmsmithACPI_STATUS
32777424SmsmithAcpiExCreateRegion (
32884491Smsmith    UINT8                   *AmlStart,
32977424Smsmith    UINT32                  AmlLength,
33069746Smsmith    UINT8                   RegionSpace,
33167754Smsmith    ACPI_WALK_STATE         *WalkState);
33267754Smsmith
33367754SmsmithACPI_STATUS
33484491SmsmithAcpiExCreateTableRegion (
33584491Smsmith    ACPI_WALK_STATE         *WalkState);
33684491Smsmith
33784491SmsmithACPI_STATUS
33877424SmsmithAcpiExCreateEvent (
33967754Smsmith    ACPI_WALK_STATE         *WalkState);
34067754Smsmith
34167754SmsmithACPI_STATUS
34277424SmsmithAcpiExCreateAlias (
34367754Smsmith    ACPI_WALK_STATE         *WalkState);
34467754Smsmith
34567754SmsmithACPI_STATUS
34677424SmsmithAcpiExCreateMethod (
34784491Smsmith    UINT8                   *AmlStart,
34877424Smsmith    UINT32                  AmlLength,
34985756Smsmith    ACPI_WALK_STATE         *WalkState);
35067754Smsmith
35167754Smsmith
35267754Smsmith/*
35391116Smsmith * exconfig - dynamic table load/unload
35477424Smsmith */
35577424Smsmith
35677424SmsmithACPI_STATUS
35791116SmsmithAcpiExAddTable (
35891116Smsmith    ACPI_TABLE_HEADER       *Table,
35991116Smsmith    ACPI_NAMESPACE_NODE     *ParentNode,
36091116Smsmith    ACPI_OPERAND_OBJECT     **DdbHandle);
36191116Smsmith
36291116SmsmithACPI_STATUS
36391116SmsmithAcpiExLoadOp (
36491116Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
36591116Smsmith    ACPI_OPERAND_OBJECT     *Target,
36691116Smsmith    ACPI_WALK_STATE         *WalkState);
36791116Smsmith
36891116SmsmithACPI_STATUS
36991116SmsmithAcpiExLoadTableOp (
37091116Smsmith    ACPI_WALK_STATE         *WalkState,
37191116Smsmith    ACPI_OPERAND_OBJECT     **ReturnDesc);
37291116Smsmith
37391116SmsmithACPI_STATUS
37491116SmsmithAcpiExUnloadTable (
37591116Smsmith    ACPI_OPERAND_OBJECT     *DdbHandle);
37691116Smsmith
37791116Smsmith
37891116Smsmith/*
37991116Smsmith * exmutex - mutex support
38091116Smsmith */
38191116Smsmith
38291116SmsmithACPI_STATUS
38377424SmsmithAcpiExAcquireMutex (
38477424Smsmith    ACPI_OPERAND_OBJECT     *TimeDesc,
38577424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
38677424Smsmith    ACPI_WALK_STATE         *WalkState);
38777424Smsmith
38877424SmsmithACPI_STATUS
38977424SmsmithAcpiExReleaseMutex (
39077424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
39177424Smsmith    ACPI_WALK_STATE         *WalkState);
39277424Smsmith
39399679Siwasakivoid
39477424SmsmithAcpiExReleaseAllMutexes (
39587031Smsmith    ACPI_THREAD_STATE       *Thread);
39677424Smsmith
39777424Smsmithvoid
39877424SmsmithAcpiExUnlinkMutex (
39977424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
40077424Smsmith
40187031Smsmithvoid
40287031SmsmithAcpiExLinkMutex (
40387031Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
40487031Smsmith    ACPI_THREAD_STATE       *Thread);
40577424Smsmith
40677424Smsmith/*
40791116Smsmith * exprep - ACPI AML (p-code) execution - prep utilities
40867754Smsmith */
40967754Smsmith
41067754SmsmithACPI_STATUS
41177424SmsmithAcpiExPrepCommonFieldObject (
41277424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
41377424Smsmith    UINT8                   FieldFlags,
41487031Smsmith    UINT8                   FieldAttribute,
41587031Smsmith    UINT32                  FieldBitPosition,
41687031Smsmith    UINT32                  FieldBitLength);
41777424Smsmith
41877424SmsmithACPI_STATUS
41985756SmsmithAcpiExPrepFieldValue (
42085756Smsmith    ACPI_CREATE_FIELD_INFO  *Info);
42167754Smsmith
42267754Smsmith/*
42391116Smsmith * exsystem - Interface to OS services
42467754Smsmith */
42567754Smsmith
42667754SmsmithACPI_STATUS
42777424SmsmithAcpiExSystemDoNotifyOp (
42867754Smsmith    ACPI_OPERAND_OBJECT     *Value,
42967754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
43067754Smsmith
43191116SmsmithACPI_STATUS
43277424SmsmithAcpiExSystemDoSuspend(
43367754Smsmith    UINT32                  Time);
43467754Smsmith
43591116SmsmithACPI_STATUS
43677424SmsmithAcpiExSystemDoStall (
43767754Smsmith    UINT32                  Time);
43867754Smsmith
43967754SmsmithACPI_STATUS
44077424SmsmithAcpiExSystemAcquireMutex(
44167754Smsmith    ACPI_OPERAND_OBJECT     *Time,
44267754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
44367754Smsmith
44467754SmsmithACPI_STATUS
44577424SmsmithAcpiExSystemReleaseMutex(
44667754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
44767754Smsmith
44867754SmsmithACPI_STATUS
44977424SmsmithAcpiExSystemSignalEvent(
45067754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
45167754Smsmith
45267754SmsmithACPI_STATUS
45377424SmsmithAcpiExSystemWaitEvent(
45467754Smsmith    ACPI_OPERAND_OBJECT     *Time,
45567754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
45667754Smsmith
45767754SmsmithACPI_STATUS
45877424SmsmithAcpiExSystemResetEvent(
45967754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
46067754Smsmith
46167754SmsmithACPI_STATUS
46277424SmsmithAcpiExSystemWaitSemaphore (
46367754Smsmith    ACPI_HANDLE             Semaphore,
46467754Smsmith    UINT32                  Timeout);
46567754Smsmith
46667754Smsmith
46767754Smsmith/*
46891116Smsmith * exmonadic - ACPI AML (p-code) execution, monadic operators
46967754Smsmith */
47067754Smsmith
47167754SmsmithACPI_STATUS
47285756SmsmithAcpiExOpcode_1A_0T_0R (
47367754Smsmith    ACPI_WALK_STATE         *WalkState);
47467754Smsmith
47567754SmsmithACPI_STATUS
47685756SmsmithAcpiExOpcode_1A_0T_1R (
47784491Smsmith    ACPI_WALK_STATE         *WalkState);
47867754Smsmith
47967754SmsmithACPI_STATUS
48085756SmsmithAcpiExOpcode_1A_1T_1R (
48184491Smsmith    ACPI_WALK_STATE         *WalkState);
48267754Smsmith
48385756SmsmithACPI_STATUS
48485756SmsmithAcpiExOpcode_1A_1T_0R (
48585756Smsmith    ACPI_WALK_STATE         *WalkState);
48667754Smsmith
48767754Smsmith/*
48891116Smsmith * exdyadic - ACPI AML (p-code) execution, dyadic operators
48967754Smsmith */
49067754Smsmith
49167754SmsmithACPI_STATUS
49285756SmsmithAcpiExOpcode_2A_0T_0R (
49367754Smsmith    ACPI_WALK_STATE         *WalkState);
49467754Smsmith
49567754SmsmithACPI_STATUS
49685756SmsmithAcpiExOpcode_2A_0T_1R (
49784491Smsmith    ACPI_WALK_STATE         *WalkState);
49867754Smsmith
49967754SmsmithACPI_STATUS
50085756SmsmithAcpiExOpcode_2A_1T_1R (
50184491Smsmith    ACPI_WALK_STATE         *WalkState);
50267754Smsmith
50367754SmsmithACPI_STATUS
50485756SmsmithAcpiExOpcode_2A_2T_1R (
50584491Smsmith    ACPI_WALK_STATE         *WalkState);
50667754Smsmith
50767754Smsmith
50867754Smsmith/*
50991116Smsmith * exresolv  - Object resolution and get value functions
51067754Smsmith */
51167754Smsmith
51267754SmsmithACPI_STATUS
51377424SmsmithAcpiExResolveToValue (
51467754Smsmith    ACPI_OPERAND_OBJECT     **StackPtr,
51567754Smsmith    ACPI_WALK_STATE         *WalkState);
51667754Smsmith
51767754SmsmithACPI_STATUS
51877424SmsmithAcpiExResolveNodeToValue (
51969450Smsmith    ACPI_NAMESPACE_NODE     **StackPtr,
52069450Smsmith    ACPI_WALK_STATE         *WalkState);
52167754Smsmith
52267754SmsmithACPI_STATUS
52377424SmsmithAcpiExResolveObjectToValue (
52467754Smsmith    ACPI_OPERAND_OBJECT     **StackPtr,
52567754Smsmith    ACPI_WALK_STATE         *WalkState);
52667754Smsmith
52767754Smsmith
52867754Smsmith/*
52991116Smsmith * exdump - Scanner debug output routines
53067754Smsmith */
53167754Smsmith
53267754Smsmithvoid
53377424SmsmithAcpiExDumpOperand (
53467754Smsmith    ACPI_OPERAND_OBJECT     *EntryDesc);
53567754Smsmith
53667754Smsmithvoid
53777424SmsmithAcpiExDumpOperands (
53867754Smsmith    ACPI_OPERAND_OBJECT     **Operands,
53991116Smsmith    ACPI_INTERPRETER_MODE   InterpreterMode,
54067754Smsmith    NATIVE_CHAR             *Ident,
54167754Smsmith    UINT32                  NumLevels,
54267754Smsmith    NATIVE_CHAR             *Note,
54367754Smsmith    NATIVE_CHAR             *ModuleName,
54467754Smsmith    UINT32                  LineNumber);
54567754Smsmith
54667754Smsmithvoid
54777424SmsmithAcpiExDumpObjectDescriptor (
54867754Smsmith    ACPI_OPERAND_OBJECT     *Object,
54967754Smsmith    UINT32                  Flags);
55067754Smsmith
55167754Smsmithvoid
55277424SmsmithAcpiExDumpNode (
55367754Smsmith    ACPI_NAMESPACE_NODE     *Node,
55467754Smsmith    UINT32                  Flags);
55567754Smsmith
55699679Siwasakivoid
55799679SiwasakiAcpiExOutString (
55899679Siwasaki    char                    *Title,
55999679Siwasaki    char                    *Value);
56067754Smsmith
56199679Siwasakivoid
56299679SiwasakiAcpiExOutPointer (
56399679Siwasaki    char                    *Title,
56499679Siwasaki    void                    *Value);
56599679Siwasaki
56699679Siwasakivoid
56799679SiwasakiAcpiExOutInteger (
56899679Siwasaki    char                    *Title,
56999679Siwasaki    UINT32                  Value);
57099679Siwasaki
57199679Siwasakivoid
57299679SiwasakiAcpiExOutAddress (
57399679Siwasaki    char                    *Title,
57499679Siwasaki    ACPI_PHYSICAL_ADDRESS   Value);
57599679Siwasaki
57699679Siwasaki
57767754Smsmith/*
57891116Smsmith * exnames - interpreter/scanner name load/execute
57967754Smsmith */
58067754Smsmith
58167754SmsmithNATIVE_CHAR *
58277424SmsmithAcpiExAllocateNameString (
58367754Smsmith    UINT32                  PrefixCount,
58467754Smsmith    UINT32                  NumNameSegs);
58567754Smsmith
58667754SmsmithUINT32
58777424SmsmithAcpiExGoodChar (
58867754Smsmith    UINT32                  Character);
58967754Smsmith
59067754SmsmithACPI_STATUS
59177424SmsmithAcpiExNameSegment (
59267754Smsmith    UINT8                   **InAmlAddress,
59367754Smsmith    NATIVE_CHAR             *NameString);
59467754Smsmith
59567754SmsmithACPI_STATUS
59677424SmsmithAcpiExGetNameString (
59791116Smsmith    ACPI_OBJECT_TYPE        DataType,
59867754Smsmith    UINT8                   *InAmlAddress,
59967754Smsmith    NATIVE_CHAR             **OutNameString,
60067754Smsmith    UINT32                  *OutNameLength);
60167754Smsmith
60267754SmsmithACPI_STATUS
60377424SmsmithAcpiExDoName (
60467754Smsmith    ACPI_OBJECT_TYPE        DataType,
60591116Smsmith    ACPI_INTERPRETER_MODE   LoadExecMode);
60667754Smsmith
60767754Smsmith
60867754Smsmith/*
60991116Smsmith * exstore - Object store support
61067754Smsmith */
61167754Smsmith
61267754SmsmithACPI_STATUS
61377424SmsmithAcpiExStore (
61467754Smsmith    ACPI_OPERAND_OBJECT     *ValDesc,
61567754Smsmith    ACPI_OPERAND_OBJECT     *DestDesc,
61667754Smsmith    ACPI_WALK_STATE         *WalkState);
61767754Smsmith
61867754SmsmithACPI_STATUS
61977424SmsmithAcpiExStoreObjectToIndex (
62067754Smsmith    ACPI_OPERAND_OBJECT     *ValDesc,
62167754Smsmith    ACPI_OPERAND_OBJECT     *DestDesc,
62267754Smsmith    ACPI_WALK_STATE         *WalkState);
62367754Smsmith
62467754SmsmithACPI_STATUS
62577424SmsmithAcpiExStoreObjectToNode (
62671867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
62767754Smsmith    ACPI_NAMESPACE_NODE     *Node,
62867754Smsmith    ACPI_WALK_STATE         *WalkState);
62967754Smsmith
63067754Smsmith
63167754Smsmith/*
63291116Smsmith * exstoren
63371867Smsmith */
63471867Smsmith
63571867SmsmithACPI_STATUS
63677424SmsmithAcpiExResolveObject (
63771867Smsmith    ACPI_OPERAND_OBJECT     **SourceDescPtr,
63891116Smsmith    ACPI_OBJECT_TYPE        TargetType,
63971867Smsmith    ACPI_WALK_STATE         *WalkState);
64071867Smsmith
64171867SmsmithACPI_STATUS
64291116SmsmithAcpiExStoreObjectToObject (
64371867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
64491116Smsmith    ACPI_OPERAND_OBJECT     *DestDesc,
64591116Smsmith    ACPI_OPERAND_OBJECT     **NewDesc,
64671867Smsmith    ACPI_WALK_STATE         *WalkState);
64771867Smsmith
64871867Smsmith
64971867Smsmith/*
65091116Smsmith * excopy - object copy
65171867Smsmith */
65271867Smsmith
65371867SmsmithACPI_STATUS
65491116SmsmithAcpiExStoreBufferToBuffer (
65571867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
65671867Smsmith    ACPI_OPERAND_OBJECT     *TargetDesc);
65771867Smsmith
65871867SmsmithACPI_STATUS
65991116SmsmithAcpiExStoreStringToString (
66071867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
66171867Smsmith    ACPI_OPERAND_OBJECT     *TargetDesc);
66271867Smsmith
66371867SmsmithACPI_STATUS
66477424SmsmithAcpiExCopyIntegerToIndexField (
66571867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
66671867Smsmith    ACPI_OPERAND_OBJECT     *TargetDesc);
66771867Smsmith
66871867SmsmithACPI_STATUS
66977424SmsmithAcpiExCopyIntegerToBankField (
67071867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
67171867Smsmith    ACPI_OPERAND_OBJECT     *TargetDesc);
67271867Smsmith
67371867SmsmithACPI_STATUS
67477424SmsmithAcpiExCopyDataToNamedField (
67571867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
67671867Smsmith    ACPI_NAMESPACE_NODE     *Node);
67771867Smsmith
67871867SmsmithACPI_STATUS
67977424SmsmithAcpiExCopyIntegerToBufferField (
68071867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
68171867Smsmith    ACPI_OPERAND_OBJECT     *TargetDesc);
68271867Smsmith
68371867Smsmith/*
68491116Smsmith * exutils - interpreter/scanner utilities
68567754Smsmith */
68667754Smsmith
68777424SmsmithACPI_STATUS
68877424SmsmithAcpiExEnterInterpreter (
68967754Smsmith    void);
69067754Smsmith
69167754Smsmithvoid
69277424SmsmithAcpiExExitInterpreter (
69367754Smsmith    void);
69467754Smsmith
69569450Smsmithvoid
69677424SmsmithAcpiExTruncateFor32bitTable (
69799679Siwasaki    ACPI_OPERAND_OBJECT     *ObjDesc);
69869450Smsmith
69967754SmsmithBOOLEAN
70077424SmsmithAcpiExValidateObjectType (
70167754Smsmith    ACPI_OBJECT_TYPE        Type);
70267754Smsmith
70367754SmsmithBOOLEAN
70477424SmsmithAcpiExAcquireGlobalLock (
70567754Smsmith    UINT32                  Rule);
70667754Smsmith
70799679Siwasakivoid
70877424SmsmithAcpiExReleaseGlobalLock (
70967754Smsmith    BOOLEAN                 Locked);
71067754Smsmith
71167754SmsmithUINT32
71277424SmsmithAcpiExDigitsNeeded (
71367754Smsmith    ACPI_INTEGER            Value,
71467754Smsmith    UINT32                  Base);
71567754Smsmith
71699679Siwasakivoid
71777424SmsmithAcpiExEisaIdToString (
71867754Smsmith    UINT32                  NumericId,
71967754Smsmith    NATIVE_CHAR             *OutString);
72067754Smsmith
72199679Siwasakivoid
72277424SmsmithAcpiExUnsignedIntegerToString (
72367754Smsmith    ACPI_INTEGER            Value,
72467754Smsmith    NATIVE_CHAR             *OutString);
72567754Smsmith
72667754Smsmith
72767754Smsmith/*
72891116Smsmith * exregion - default OpRegion handlers
72967754Smsmith */
73067754Smsmith
73167754SmsmithACPI_STATUS
73277424SmsmithAcpiExSystemMemorySpaceHandler (
73367754Smsmith    UINT32                  Function,
73469450Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
73567754Smsmith    UINT32                  BitWidth,
73687031Smsmith    ACPI_INTEGER            *Value,
73767754Smsmith    void                    *HandlerContext,
73867754Smsmith    void                    *RegionContext);
73967754Smsmith
74067754SmsmithACPI_STATUS
74177424SmsmithAcpiExSystemIoSpaceHandler (
74267754Smsmith    UINT32                  Function,
74369450Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
74467754Smsmith    UINT32                  BitWidth,
74587031Smsmith    ACPI_INTEGER            *Value,
74667754Smsmith    void                    *HandlerContext,
74767754Smsmith    void                    *RegionContext);
74867754Smsmith
74967754SmsmithACPI_STATUS
75077424SmsmithAcpiExPciConfigSpaceHandler (
75167754Smsmith    UINT32                  Function,
75269450Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
75367754Smsmith    UINT32                  BitWidth,
75487031Smsmith    ACPI_INTEGER            *Value,
75567754Smsmith    void                    *HandlerContext,
75667754Smsmith    void                    *RegionContext);
75767754Smsmith
75867754SmsmithACPI_STATUS
75984491SmsmithAcpiExCmosSpaceHandler (
76084491Smsmith    UINT32                  Function,
76184491Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
76284491Smsmith    UINT32                  BitWidth,
76387031Smsmith    ACPI_INTEGER            *Value,
76484491Smsmith    void                    *HandlerContext,
76584491Smsmith    void                    *RegionContext);
76684491Smsmith
76784491SmsmithACPI_STATUS
76884491SmsmithAcpiExPciBarSpaceHandler (
76984491Smsmith    UINT32                  Function,
77084491Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
77184491Smsmith    UINT32                  BitWidth,
77287031Smsmith    ACPI_INTEGER            *Value,
77384491Smsmith    void                    *HandlerContext,
77484491Smsmith    void                    *RegionContext);
77584491Smsmith
77684491SmsmithACPI_STATUS
77777424SmsmithAcpiExEmbeddedControllerSpaceHandler (
77867754Smsmith    UINT32                  Function,
77969450Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
78067754Smsmith    UINT32                  BitWidth,
78187031Smsmith    ACPI_INTEGER            *Value,
78267754Smsmith    void                    *HandlerContext,
78367754Smsmith    void                    *RegionContext);
78467754Smsmith
78567754SmsmithACPI_STATUS
78677424SmsmithAcpiExSmBusSpaceHandler (
78767754Smsmith    UINT32                  Function,
78869450Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
78967754Smsmith    UINT32                  BitWidth,
79087031Smsmith    ACPI_INTEGER            *Value,
79167754Smsmith    void                    *HandlerContext,
79267754Smsmith    void                    *RegionContext);
79367754Smsmith
79467754Smsmith
79591116SmsmithACPI_STATUS
79691116SmsmithAcpiExDataTableSpaceHandler (
79791116Smsmith    UINT32                  Function,
79891116Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
79991116Smsmith    UINT32                  BitWidth,
80091116Smsmith    ACPI_INTEGER            *Value,
80191116Smsmith    void                    *HandlerContext,
80291116Smsmith    void                    *RegionContext);
80391116Smsmith
80467754Smsmith#endif /* __INTERP_H__ */
805