acinterp.h revision 91116
167754Smsmith/******************************************************************************
267754Smsmith *
367754Smsmith * Name: acinterp.h - Interpreter subcomponent prototypes and defines
491116Smsmith *       $Revision: 132 $
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
13067754Smsmith
13167754Smsmith/*
13291116Smsmith * exxface - External interpreter interfaces
13367754Smsmith */
13467754Smsmith
13567754SmsmithACPI_STATUS
13677424SmsmithAcpiExLoadTable (
13767754Smsmith    ACPI_TABLE_TYPE         TableId);
13867754Smsmith
13967754SmsmithACPI_STATUS
14077424SmsmithAcpiExExecuteMethod (
14167754Smsmith    ACPI_NAMESPACE_NODE     *MethodNode,
14267754Smsmith    ACPI_OPERAND_OBJECT     **Params,
14367754Smsmith    ACPI_OPERAND_OBJECT     **ReturnObjDesc);
14467754Smsmith
14567754Smsmith
14667754Smsmith/*
14791116Smsmith * exconvrt - object conversion
14867754Smsmith */
14967754Smsmith
15071867SmsmithACPI_STATUS
15177424SmsmithAcpiExConvertToInteger (
15280062Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
15380062Smsmith    ACPI_OPERAND_OBJECT     **ResultDesc,
15471867Smsmith    ACPI_WALK_STATE         *WalkState);
15567754Smsmith
15667754SmsmithACPI_STATUS
15777424SmsmithAcpiExConvertToBuffer (
15880062Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
15980062Smsmith    ACPI_OPERAND_OBJECT     **ResultDesc,
16071867Smsmith    ACPI_WALK_STATE         *WalkState);
16171867Smsmith
16271867SmsmithACPI_STATUS
16377424SmsmithAcpiExConvertToString (
16480062Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
16580062Smsmith    ACPI_OPERAND_OBJECT     **ResultDesc,
16682367Smsmith    UINT32                  Base,
16780062Smsmith    UINT32                  MaxLength,
16871867Smsmith    ACPI_WALK_STATE         *WalkState);
16971867Smsmith
17071867SmsmithACPI_STATUS
17177424SmsmithAcpiExConvertToTargetType (
17291116Smsmith    ACPI_OBJECT_TYPE        DestinationType,
17391116Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
17491116Smsmith    ACPI_OPERAND_OBJECT     **ResultDesc,
17571867Smsmith    ACPI_WALK_STATE         *WalkState);
17671867Smsmith
17771867Smsmith
17871867Smsmith/*
17991116Smsmith * exfield - ACPI AML (p-code) execution - field manipulation
18071867Smsmith */
18171867Smsmith
18271867SmsmithACPI_STATUS
18377424SmsmithAcpiExExtractFromField (
18467754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
18567754Smsmith    void                    *Buffer,
18677424Smsmith    UINT32                  BufferLength);
18767754Smsmith
18867754SmsmithACPI_STATUS
18977424SmsmithAcpiExInsertIntoField (
19067754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
19167754Smsmith    void                    *Buffer,
19277424Smsmith    UINT32                  BufferLength);
19367754Smsmith
19467754SmsmithACPI_STATUS
19587031SmsmithAcpiExSetupRegion (
19667754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
19787031Smsmith    UINT32                  FieldDatumByteOffset);
19867754Smsmith
19967754SmsmithACPI_STATUS
20087031SmsmithAcpiExAccessRegion (
20167754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
20287031Smsmith    UINT32                  FieldDatumByteOffset,
20387031Smsmith    ACPI_INTEGER            *Value,
20487031Smsmith    UINT32                  ReadWrite);
20567754Smsmith
20687031SmsmithBOOLEAN
20787031SmsmithAcpiExRegisterOverflow (
20877424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
20987031Smsmith    ACPI_INTEGER            Value);
21067754Smsmith
21177424SmsmithACPI_STATUS
21287031SmsmithAcpiExFieldDatumIo (
21377424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
21487031Smsmith    UINT32                  FieldDatumByteOffset,
21587031Smsmith    ACPI_INTEGER            *Value,
21687031Smsmith    UINT32                  ReadWrite);
21777424Smsmith
21877424SmsmithACPI_STATUS
21987031SmsmithAcpiExWriteWithUpdateRule (
22077424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
22187031Smsmith    ACPI_INTEGER            Mask,
22287031Smsmith    ACPI_INTEGER            FieldValue,
22387031Smsmith    UINT32                  FieldDatumByteOffset);
22477424Smsmith
22587031Smsmithvoid
22687031SmsmithAcpiExGetBufferDatum(
22787031Smsmith    ACPI_INTEGER            *Datum,
22877424Smsmith    void                    *Buffer,
22987031Smsmith    UINT32                  ByteGranularity,
23087031Smsmith    UINT32                  Offset);
23177424Smsmith
23287031Smsmithvoid
23387031SmsmithAcpiExSetBufferDatum (
23487031Smsmith    ACPI_INTEGER            MergedDatum,
23577424Smsmith    void                    *Buffer,
23687031Smsmith    UINT32                  ByteGranularity,
23787031Smsmith    UINT32                  Offset);
23877424Smsmith
23977424SmsmithACPI_STATUS
24077424SmsmithAcpiExReadDataFromField (
24177424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
24277424Smsmith    ACPI_OPERAND_OBJECT     **RetBufferDesc);
24377424Smsmith
24477424SmsmithACPI_STATUS
24577424SmsmithAcpiExWriteDataToField (
24677424Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
24777424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
24877424Smsmith
24967754Smsmith/*
25091116Smsmith * exmisc - ACPI AML (p-code) execution - specific opcodes
25167754Smsmith */
25267754Smsmith
25367754SmsmithACPI_STATUS
25485756SmsmithAcpiExOpcode_3A_0T_0R (
25584491Smsmith    ACPI_WALK_STATE         *WalkState);
25680062Smsmith
25780062SmsmithACPI_STATUS
25885756SmsmithAcpiExOpcode_3A_1T_1R (
25984491Smsmith    ACPI_WALK_STATE         *WalkState);
26080062Smsmith
26180062SmsmithACPI_STATUS
26285756SmsmithAcpiExOpcode_6A_0T_1R (
26367754Smsmith    ACPI_WALK_STATE         *WalkState);
26467754Smsmith
26567754SmsmithACPI_STATUS
26685756SmsmithAcpiExGetObjectReference (
26785756Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
26885756Smsmith    ACPI_OPERAND_OBJECT     **ReturnDesc,
26967754Smsmith    ACPI_WALK_STATE         *WalkState);
27067754Smsmith
27167754SmsmithACPI_STATUS
27291116SmsmithAcpiExConcatTemplate (
27391116Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
27491116Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc2,
27591116Smsmith    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
27691116Smsmith    ACPI_WALK_STATE         *WalkState);
27791116Smsmith
27891116SmsmithACPI_STATUS
27985756SmsmithAcpiExDoConcatenate (
28085756Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
28185756Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc2,
28285756Smsmith    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
28385756Smsmith    ACPI_WALK_STATE         *WalkState);
28485756Smsmith
28585756SmsmithBOOLEAN
28685756SmsmithAcpiExDoLogicalOp (
28785756Smsmith    UINT16                  Opcode,
28885756Smsmith    ACPI_INTEGER            Operand0,
28985756Smsmith    ACPI_INTEGER            Operand1);
29085756Smsmith
29185756SmsmithACPI_INTEGER
29285756SmsmithAcpiExDoMathOp (
29385756Smsmith    UINT16                  Opcode,
29485756Smsmith    ACPI_INTEGER            Operand0,
29585756Smsmith    ACPI_INTEGER            Operand1);
29685756Smsmith
29785756SmsmithACPI_STATUS
29877424SmsmithAcpiExCreateMutex (
29967754Smsmith    ACPI_WALK_STATE         *WalkState);
30067754Smsmith
30167754SmsmithACPI_STATUS
30277424SmsmithAcpiExCreateProcessor (
30385756Smsmith    ACPI_WALK_STATE         *WalkState);
30467754Smsmith
30567754SmsmithACPI_STATUS
30677424SmsmithAcpiExCreatePowerResource (
30785756Smsmith    ACPI_WALK_STATE         *WalkState);
30867754Smsmith
30967754SmsmithACPI_STATUS
31077424SmsmithAcpiExCreateRegion (
31184491Smsmith    UINT8                   *AmlStart,
31277424Smsmith    UINT32                  AmlLength,
31369746Smsmith    UINT8                   RegionSpace,
31467754Smsmith    ACPI_WALK_STATE         *WalkState);
31567754Smsmith
31667754SmsmithACPI_STATUS
31784491SmsmithAcpiExCreateTableRegion (
31884491Smsmith    ACPI_WALK_STATE         *WalkState);
31984491Smsmith
32084491SmsmithACPI_STATUS
32177424SmsmithAcpiExCreateEvent (
32267754Smsmith    ACPI_WALK_STATE         *WalkState);
32367754Smsmith
32467754SmsmithACPI_STATUS
32577424SmsmithAcpiExCreateAlias (
32667754Smsmith    ACPI_WALK_STATE         *WalkState);
32767754Smsmith
32867754SmsmithACPI_STATUS
32977424SmsmithAcpiExCreateMethod (
33084491Smsmith    UINT8                   *AmlStart,
33177424Smsmith    UINT32                  AmlLength,
33285756Smsmith    ACPI_WALK_STATE         *WalkState);
33367754Smsmith
33467754Smsmith
33567754Smsmith/*
33691116Smsmith * exconfig - dynamic table load/unload
33777424Smsmith */
33877424Smsmith
33977424SmsmithACPI_STATUS
34091116SmsmithAcpiExAddTable (
34191116Smsmith    ACPI_TABLE_HEADER       *Table,
34291116Smsmith    ACPI_NAMESPACE_NODE     *ParentNode,
34391116Smsmith    ACPI_OPERAND_OBJECT     **DdbHandle);
34491116Smsmith
34591116SmsmithACPI_STATUS
34691116SmsmithAcpiExLoadOp (
34791116Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
34891116Smsmith    ACPI_OPERAND_OBJECT     *Target,
34991116Smsmith    ACPI_WALK_STATE         *WalkState);
35091116Smsmith
35191116SmsmithACPI_STATUS
35291116SmsmithAcpiExLoadTableOp (
35391116Smsmith    ACPI_WALK_STATE         *WalkState,
35491116Smsmith    ACPI_OPERAND_OBJECT     **ReturnDesc);
35591116Smsmith
35691116SmsmithACPI_STATUS
35791116SmsmithAcpiExUnloadTable (
35891116Smsmith    ACPI_OPERAND_OBJECT     *DdbHandle);
35991116Smsmith
36091116Smsmith
36191116Smsmith/*
36291116Smsmith * exmutex - mutex support
36391116Smsmith */
36491116Smsmith
36591116SmsmithACPI_STATUS
36677424SmsmithAcpiExAcquireMutex (
36777424Smsmith    ACPI_OPERAND_OBJECT     *TimeDesc,
36877424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
36977424Smsmith    ACPI_WALK_STATE         *WalkState);
37077424Smsmith
37177424SmsmithACPI_STATUS
37277424SmsmithAcpiExReleaseMutex (
37377424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
37477424Smsmith    ACPI_WALK_STATE         *WalkState);
37577424Smsmith
37677424SmsmithACPI_STATUS
37777424SmsmithAcpiExReleaseAllMutexes (
37887031Smsmith    ACPI_THREAD_STATE       *Thread);
37977424Smsmith
38077424Smsmithvoid
38177424SmsmithAcpiExUnlinkMutex (
38277424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
38377424Smsmith
38487031Smsmithvoid
38587031SmsmithAcpiExLinkMutex (
38687031Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
38787031Smsmith    ACPI_THREAD_STATE       *Thread);
38877424Smsmith
38977424Smsmith/*
39091116Smsmith * exprep - ACPI AML (p-code) execution - prep utilities
39167754Smsmith */
39267754Smsmith
39367754SmsmithACPI_STATUS
39477424SmsmithAcpiExPrepCommonFieldObject (
39577424Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
39677424Smsmith    UINT8                   FieldFlags,
39787031Smsmith    UINT8                   FieldAttribute,
39887031Smsmith    UINT32                  FieldBitPosition,
39987031Smsmith    UINT32                  FieldBitLength);
40077424Smsmith
40177424SmsmithACPI_STATUS
40285756SmsmithAcpiExPrepFieldValue (
40385756Smsmith    ACPI_CREATE_FIELD_INFO  *Info);
40467754Smsmith
40567754Smsmith/*
40691116Smsmith * exsystem - Interface to OS services
40767754Smsmith */
40867754Smsmith
40967754SmsmithACPI_STATUS
41077424SmsmithAcpiExSystemDoNotifyOp (
41167754Smsmith    ACPI_OPERAND_OBJECT     *Value,
41267754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
41367754Smsmith
41491116SmsmithACPI_STATUS
41577424SmsmithAcpiExSystemDoSuspend(
41667754Smsmith    UINT32                  Time);
41767754Smsmith
41891116SmsmithACPI_STATUS
41977424SmsmithAcpiExSystemDoStall (
42067754Smsmith    UINT32                  Time);
42167754Smsmith
42267754SmsmithACPI_STATUS
42377424SmsmithAcpiExSystemAcquireMutex(
42467754Smsmith    ACPI_OPERAND_OBJECT     *Time,
42567754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
42667754Smsmith
42767754SmsmithACPI_STATUS
42877424SmsmithAcpiExSystemReleaseMutex(
42967754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
43067754Smsmith
43167754SmsmithACPI_STATUS
43277424SmsmithAcpiExSystemSignalEvent(
43367754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
43467754Smsmith
43567754SmsmithACPI_STATUS
43677424SmsmithAcpiExSystemWaitEvent(
43767754Smsmith    ACPI_OPERAND_OBJECT     *Time,
43867754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
43967754Smsmith
44067754SmsmithACPI_STATUS
44177424SmsmithAcpiExSystemResetEvent(
44267754Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc);
44367754Smsmith
44467754SmsmithACPI_STATUS
44577424SmsmithAcpiExSystemWaitSemaphore (
44667754Smsmith    ACPI_HANDLE             Semaphore,
44767754Smsmith    UINT32                  Timeout);
44867754Smsmith
44967754Smsmith
45067754Smsmith/*
45191116Smsmith * exmonadic - ACPI AML (p-code) execution, monadic operators
45267754Smsmith */
45367754Smsmith
45467754SmsmithACPI_STATUS
45585756SmsmithAcpiExOpcode_1A_0T_0R (
45667754Smsmith    ACPI_WALK_STATE         *WalkState);
45767754Smsmith
45867754SmsmithACPI_STATUS
45985756SmsmithAcpiExOpcode_1A_0T_1R (
46084491Smsmith    ACPI_WALK_STATE         *WalkState);
46167754Smsmith
46267754SmsmithACPI_STATUS
46385756SmsmithAcpiExOpcode_1A_1T_1R (
46484491Smsmith    ACPI_WALK_STATE         *WalkState);
46567754Smsmith
46685756SmsmithACPI_STATUS
46785756SmsmithAcpiExOpcode_1A_1T_0R (
46885756Smsmith    ACPI_WALK_STATE         *WalkState);
46967754Smsmith
47067754Smsmith/*
47191116Smsmith * exdyadic - ACPI AML (p-code) execution, dyadic operators
47267754Smsmith */
47367754Smsmith
47467754SmsmithACPI_STATUS
47585756SmsmithAcpiExOpcode_2A_0T_0R (
47667754Smsmith    ACPI_WALK_STATE         *WalkState);
47767754Smsmith
47867754SmsmithACPI_STATUS
47985756SmsmithAcpiExOpcode_2A_0T_1R (
48084491Smsmith    ACPI_WALK_STATE         *WalkState);
48167754Smsmith
48267754SmsmithACPI_STATUS
48385756SmsmithAcpiExOpcode_2A_1T_1R (
48484491Smsmith    ACPI_WALK_STATE         *WalkState);
48567754Smsmith
48667754SmsmithACPI_STATUS
48785756SmsmithAcpiExOpcode_2A_2T_1R (
48884491Smsmith    ACPI_WALK_STATE         *WalkState);
48967754Smsmith
49067754Smsmith
49167754Smsmith/*
49291116Smsmith * exresolv  - Object resolution and get value functions
49367754Smsmith */
49467754Smsmith
49567754SmsmithACPI_STATUS
49677424SmsmithAcpiExResolveToValue (
49767754Smsmith    ACPI_OPERAND_OBJECT     **StackPtr,
49867754Smsmith    ACPI_WALK_STATE         *WalkState);
49967754Smsmith
50067754SmsmithACPI_STATUS
50177424SmsmithAcpiExResolveNodeToValue (
50269450Smsmith    ACPI_NAMESPACE_NODE     **StackPtr,
50369450Smsmith    ACPI_WALK_STATE         *WalkState);
50467754Smsmith
50567754SmsmithACPI_STATUS
50677424SmsmithAcpiExResolveObjectToValue (
50767754Smsmith    ACPI_OPERAND_OBJECT     **StackPtr,
50867754Smsmith    ACPI_WALK_STATE         *WalkState);
50967754Smsmith
51067754Smsmith
51167754Smsmith/*
51291116Smsmith * exdump - Scanner debug output routines
51367754Smsmith */
51467754Smsmith
51567754Smsmithvoid
51677424SmsmithAcpiExShowHexValue (
51767754Smsmith    UINT32                  ByteCount,
51884491Smsmith    UINT8                   *AmlStart,
51967754Smsmith    UINT32                  LeadSpace);
52067754Smsmith
52167754Smsmith
52267754SmsmithACPI_STATUS
52377424SmsmithAcpiExDumpOperand (
52467754Smsmith    ACPI_OPERAND_OBJECT     *EntryDesc);
52567754Smsmith
52667754Smsmithvoid
52777424SmsmithAcpiExDumpOperands (
52867754Smsmith    ACPI_OPERAND_OBJECT     **Operands,
52991116Smsmith    ACPI_INTERPRETER_MODE   InterpreterMode,
53067754Smsmith    NATIVE_CHAR             *Ident,
53167754Smsmith    UINT32                  NumLevels,
53267754Smsmith    NATIVE_CHAR             *Note,
53367754Smsmith    NATIVE_CHAR             *ModuleName,
53467754Smsmith    UINT32                  LineNumber);
53567754Smsmith
53667754Smsmithvoid
53777424SmsmithAcpiExDumpObjectDescriptor (
53867754Smsmith    ACPI_OPERAND_OBJECT     *Object,
53967754Smsmith    UINT32                  Flags);
54067754Smsmith
54167754Smsmith
54267754Smsmithvoid
54377424SmsmithAcpiExDumpNode (
54467754Smsmith    ACPI_NAMESPACE_NODE     *Node,
54567754Smsmith    UINT32                  Flags);
54667754Smsmith
54767754Smsmith
54867754Smsmith/*
54991116Smsmith * exnames - interpreter/scanner name load/execute
55067754Smsmith */
55167754Smsmith
55267754SmsmithNATIVE_CHAR *
55377424SmsmithAcpiExAllocateNameString (
55467754Smsmith    UINT32                  PrefixCount,
55567754Smsmith    UINT32                  NumNameSegs);
55667754Smsmith
55767754SmsmithUINT32
55877424SmsmithAcpiExGoodChar (
55967754Smsmith    UINT32                  Character);
56067754Smsmith
56167754SmsmithACPI_STATUS
56277424SmsmithAcpiExNameSegment (
56367754Smsmith    UINT8                   **InAmlAddress,
56467754Smsmith    NATIVE_CHAR             *NameString);
56567754Smsmith
56667754SmsmithACPI_STATUS
56777424SmsmithAcpiExGetNameString (
56891116Smsmith    ACPI_OBJECT_TYPE        DataType,
56967754Smsmith    UINT8                   *InAmlAddress,
57067754Smsmith    NATIVE_CHAR             **OutNameString,
57167754Smsmith    UINT32                  *OutNameLength);
57267754Smsmith
57367754SmsmithACPI_STATUS
57477424SmsmithAcpiExDoName (
57567754Smsmith    ACPI_OBJECT_TYPE        DataType,
57691116Smsmith    ACPI_INTERPRETER_MODE   LoadExecMode);
57767754Smsmith
57867754Smsmith
57967754Smsmith/*
58091116Smsmith * exstore - Object store support
58167754Smsmith */
58267754Smsmith
58367754SmsmithACPI_STATUS
58477424SmsmithAcpiExStore (
58567754Smsmith    ACPI_OPERAND_OBJECT     *ValDesc,
58667754Smsmith    ACPI_OPERAND_OBJECT     *DestDesc,
58767754Smsmith    ACPI_WALK_STATE         *WalkState);
58867754Smsmith
58967754SmsmithACPI_STATUS
59077424SmsmithAcpiExStoreObjectToIndex (
59167754Smsmith    ACPI_OPERAND_OBJECT     *ValDesc,
59267754Smsmith    ACPI_OPERAND_OBJECT     *DestDesc,
59367754Smsmith    ACPI_WALK_STATE         *WalkState);
59467754Smsmith
59567754SmsmithACPI_STATUS
59677424SmsmithAcpiExStoreObjectToNode (
59771867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
59867754Smsmith    ACPI_NAMESPACE_NODE     *Node,
59967754Smsmith    ACPI_WALK_STATE         *WalkState);
60067754Smsmith
60167754Smsmith
60267754Smsmith/*
60391116Smsmith * exstoren
60471867Smsmith */
60571867Smsmith
60671867SmsmithACPI_STATUS
60777424SmsmithAcpiExResolveObject (
60871867Smsmith    ACPI_OPERAND_OBJECT     **SourceDescPtr,
60991116Smsmith    ACPI_OBJECT_TYPE        TargetType,
61071867Smsmith    ACPI_WALK_STATE         *WalkState);
61171867Smsmith
61271867SmsmithACPI_STATUS
61391116SmsmithAcpiExStoreObjectToObject (
61471867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
61591116Smsmith    ACPI_OPERAND_OBJECT     *DestDesc,
61691116Smsmith    ACPI_OPERAND_OBJECT     **NewDesc,
61771867Smsmith    ACPI_WALK_STATE         *WalkState);
61871867Smsmith
61971867Smsmith
62071867Smsmith/*
62191116Smsmith * excopy - object copy
62271867Smsmith */
62371867Smsmith
62471867SmsmithACPI_STATUS
62591116SmsmithAcpiExStoreBufferToBuffer (
62671867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
62771867Smsmith    ACPI_OPERAND_OBJECT     *TargetDesc);
62871867Smsmith
62971867SmsmithACPI_STATUS
63091116SmsmithAcpiExStoreStringToString (
63171867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
63271867Smsmith    ACPI_OPERAND_OBJECT     *TargetDesc);
63371867Smsmith
63471867SmsmithACPI_STATUS
63577424SmsmithAcpiExCopyIntegerToIndexField (
63671867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
63771867Smsmith    ACPI_OPERAND_OBJECT     *TargetDesc);
63871867Smsmith
63971867SmsmithACPI_STATUS
64077424SmsmithAcpiExCopyIntegerToBankField (
64171867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
64271867Smsmith    ACPI_OPERAND_OBJECT     *TargetDesc);
64371867Smsmith
64471867SmsmithACPI_STATUS
64577424SmsmithAcpiExCopyDataToNamedField (
64671867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
64771867Smsmith    ACPI_NAMESPACE_NODE     *Node);
64871867Smsmith
64971867SmsmithACPI_STATUS
65077424SmsmithAcpiExCopyIntegerToBufferField (
65171867Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
65271867Smsmith    ACPI_OPERAND_OBJECT     *TargetDesc);
65371867Smsmith
65471867Smsmith/*
65591116Smsmith * exutils - interpreter/scanner utilities
65667754Smsmith */
65767754Smsmith
65877424SmsmithACPI_STATUS
65977424SmsmithAcpiExEnterInterpreter (
66067754Smsmith    void);
66167754Smsmith
66267754Smsmithvoid
66377424SmsmithAcpiExExitInterpreter (
66467754Smsmith    void);
66567754Smsmith
66669450Smsmithvoid
66777424SmsmithAcpiExTruncateFor32bitTable (
66869450Smsmith    ACPI_OPERAND_OBJECT     *ObjDesc,
66969450Smsmith    ACPI_WALK_STATE         *WalkState);
67069450Smsmith
67167754SmsmithBOOLEAN
67277424SmsmithAcpiExValidateObjectType (
67367754Smsmith    ACPI_OBJECT_TYPE        Type);
67467754Smsmith
67567754SmsmithBOOLEAN
67677424SmsmithAcpiExAcquireGlobalLock (
67767754Smsmith    UINT32                  Rule);
67867754Smsmith
67967754SmsmithACPI_STATUS
68077424SmsmithAcpiExReleaseGlobalLock (
68167754Smsmith    BOOLEAN                 Locked);
68267754Smsmith
68367754SmsmithUINT32
68477424SmsmithAcpiExDigitsNeeded (
68567754Smsmith    ACPI_INTEGER            Value,
68667754Smsmith    UINT32                  Base);
68767754Smsmith
68867754SmsmithACPI_STATUS
68977424SmsmithAcpiExEisaIdToString (
69067754Smsmith    UINT32                  NumericId,
69167754Smsmith    NATIVE_CHAR             *OutString);
69267754Smsmith
69367754SmsmithACPI_STATUS
69477424SmsmithAcpiExUnsignedIntegerToString (
69567754Smsmith    ACPI_INTEGER            Value,
69667754Smsmith    NATIVE_CHAR             *OutString);
69767754Smsmith
69867754Smsmith
69967754Smsmith/*
70091116Smsmith * exregion - default OpRegion handlers
70167754Smsmith */
70267754Smsmith
70367754SmsmithACPI_STATUS
70477424SmsmithAcpiExSystemMemorySpaceHandler (
70567754Smsmith    UINT32                  Function,
70669450Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
70767754Smsmith    UINT32                  BitWidth,
70887031Smsmith    ACPI_INTEGER            *Value,
70967754Smsmith    void                    *HandlerContext,
71067754Smsmith    void                    *RegionContext);
71167754Smsmith
71267754SmsmithACPI_STATUS
71377424SmsmithAcpiExSystemIoSpaceHandler (
71467754Smsmith    UINT32                  Function,
71569450Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
71667754Smsmith    UINT32                  BitWidth,
71787031Smsmith    ACPI_INTEGER            *Value,
71867754Smsmith    void                    *HandlerContext,
71967754Smsmith    void                    *RegionContext);
72067754Smsmith
72167754SmsmithACPI_STATUS
72277424SmsmithAcpiExPciConfigSpaceHandler (
72367754Smsmith    UINT32                  Function,
72469450Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
72567754Smsmith    UINT32                  BitWidth,
72687031Smsmith    ACPI_INTEGER            *Value,
72767754Smsmith    void                    *HandlerContext,
72867754Smsmith    void                    *RegionContext);
72967754Smsmith
73067754SmsmithACPI_STATUS
73184491SmsmithAcpiExCmosSpaceHandler (
73284491Smsmith    UINT32                  Function,
73384491Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
73484491Smsmith    UINT32                  BitWidth,
73587031Smsmith    ACPI_INTEGER            *Value,
73684491Smsmith    void                    *HandlerContext,
73784491Smsmith    void                    *RegionContext);
73884491Smsmith
73984491SmsmithACPI_STATUS
74084491SmsmithAcpiExPciBarSpaceHandler (
74184491Smsmith    UINT32                  Function,
74284491Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
74384491Smsmith    UINT32                  BitWidth,
74487031Smsmith    ACPI_INTEGER            *Value,
74584491Smsmith    void                    *HandlerContext,
74684491Smsmith    void                    *RegionContext);
74784491Smsmith
74884491SmsmithACPI_STATUS
74977424SmsmithAcpiExEmbeddedControllerSpaceHandler (
75067754Smsmith    UINT32                  Function,
75169450Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
75267754Smsmith    UINT32                  BitWidth,
75387031Smsmith    ACPI_INTEGER            *Value,
75467754Smsmith    void                    *HandlerContext,
75567754Smsmith    void                    *RegionContext);
75667754Smsmith
75767754SmsmithACPI_STATUS
75877424SmsmithAcpiExSmBusSpaceHandler (
75967754Smsmith    UINT32                  Function,
76069450Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
76167754Smsmith    UINT32                  BitWidth,
76287031Smsmith    ACPI_INTEGER            *Value,
76367754Smsmith    void                    *HandlerContext,
76467754Smsmith    void                    *RegionContext);
76567754Smsmith
76667754Smsmith
76791116SmsmithACPI_STATUS
76891116SmsmithAcpiExDataTableSpaceHandler (
76991116Smsmith    UINT32                  Function,
77091116Smsmith    ACPI_PHYSICAL_ADDRESS   Address,
77191116Smsmith    UINT32                  BitWidth,
77291116Smsmith    ACPI_INTEGER            *Value,
77391116Smsmith    void                    *HandlerContext,
77491116Smsmith    void                    *RegionContext);
77591116Smsmith
77667754Smsmith#endif /* __INTERP_H__ */
777