acinterp.h revision 85756
133965Sjdp/******************************************************************************
233965Sjdp *
333965Sjdp * Name: acinterp.h - Interpreter subcomponent prototypes and defines
433965Sjdp *       $Revision: 116 $
533965Sjdp *
633965Sjdp *****************************************************************************/
733965Sjdp
833965Sjdp/******************************************************************************
933965Sjdp *
1060522Sobrien * 1. Copyright Notice
1160522Sobrien *
12218822Sdim * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp.
13218822Sdim * All rights reserved.
14218822Sdim *
15218822Sdim * 2. License
16130570Sobrien *
17130570Sobrien * 2.1. This is your license from Intel Corp. under its intellectual property
1833965Sjdp * rights.  You may have additional license terms from the party that provided
1933965Sjdp * you this software, covering your right to use that party's intellectual
20218822Sdim * property rights.
2160522Sobrien *
22218822Sdim * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
23218822Sdim * copy of the source code appearing in this file ("Covered Code") an
2433965Sjdp * irrevocable, perpetual, worldwide license under Intel's copyrights in the
25218822Sdim * base code distributed originally by Intel ("Original Intel Code") to copy,
26218822Sdim * make derivatives, distribute, use and display any portion of the Covered
27218822Sdim * Code in any form, with the right to sublicense such rights; and
28218822Sdim *
2933965Sjdp * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
30218822Sdim * license (with the right to sublicense), under only those claims of Intel
31218822Sdim * patents that are infringed by the Original Intel Code, to make, use, sell,
32218822Sdim * offer to sell, and import the Covered Code and derivative works thereof
33218822Sdim * solely to the minimum extent necessary to exercise the above copyright
34218822Sdim * license, and in no event shall the patent license extend to any additions
35218822Sdim * to or modifications of the Original Intel Code.  No other license or right
36218822Sdim * is granted directly or by implication, estoppel or otherwise;
37218822Sdim *
38218822Sdim * The above copyright and patent license is granted only if the following
39218822Sdim * conditions are met:
40218822Sdim *
41218822Sdim * 3. Conditions
42218822Sdim *
43218822Sdim * 3.1. Redistribution of Source with Rights to Further Distribute Source.
44218822Sdim * Redistribution of source code of any substantial portion of the Covered
45218822Sdim * Code or modification with rights to further distribute source must include
46218822Sdim * the above Copyright Notice, the above License, this list of Conditions,
47218822Sdim * and the following Disclaimer and Export Compliance provision.  In addition,
48218822Sdim * Licensee must cause all Covered Code to which Licensee contributes to
49218822Sdim * contain a file documenting the changes Licensee made to create that Covered
50218822Sdim * Code and the date of any change.  Licensee must include in that file the
51218822Sdim * documentation of any changes made by any predecessor Licensee.  Licensee
52218822Sdim * must include a prominent statement that the modification is derived,
53218822Sdim * directly or indirectly, from Original Intel Code.
54218822Sdim *
55218822Sdim * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
56218822Sdim * Redistribution of source code of any substantial portion of the Covered
57218822Sdim * Code or modification without rights to further distribute source must
58218822Sdim * include the following Disclaimer and Export Compliance provision in the
59218822Sdim * documentation and/or other materials provided with distribution.  In
60218822Sdim * addition, Licensee may not authorize further sublicense of source of any
61218822Sdim * portion of the Covered Code, and must include terms to the effect that the
62218822Sdim * license from Licensee to its licensee is limited to the intellectual
63218822Sdim * property embodied in the software Licensee provides to its licensee, and
64218822Sdim * not to intellectual property embodied in modifications its licensee may
65218822Sdim * make.
66218822Sdim *
67218822Sdim * 3.3. Redistribution of Executable. Redistribution in executable form of any
68218822Sdim * substantial portion of the Covered Code or modification must reproduce the
69218822Sdim * above Copyright Notice, and the following Disclaimer and Export Compliance
70218822Sdim * provision in the documentation and/or other materials provided with the
71218822Sdim * distribution.
72218822Sdim *
73218822Sdim * 3.4. Intel retains all right, title, and interest in and to the Original
74218822Sdim * Intel Code.
75218822Sdim *
76218822Sdim * 3.5. Neither the name Intel nor any other trademark owned or controlled by
77218822Sdim * Intel shall be used in advertising or otherwise to promote the sale, use or
78218822Sdim * other dealings in products derived from or relating to the Covered Code
79218822Sdim * without prior written authorization from Intel.
80218822Sdim *
81218822Sdim * 4. Disclaimer and Export Compliance
82218822Sdim *
83218822Sdim * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
84218822Sdim * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
85218822Sdim * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
86218822Sdim * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
87218822Sdim * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
88218822Sdim * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
89218822Sdim * PARTICULAR PURPOSE.
90218822Sdim *
91218822Sdim * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
92218822Sdim * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
93218822Sdim * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
94218822Sdim * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
95218822Sdim * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
96218822Sdim * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
97218822Sdim * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
98218822Sdim * LIMITED REMEDY.
99218822Sdim *
100218822Sdim * 4.3. Licensee shall not export, either directly or indirectly, any of this
101218822Sdim * software or system incorporating such software without first obtaining any
102218822Sdim * required license or other approval from the U. S. Department of Commerce or
10360522Sobrien * any other agency or department of the United States Government.  In the
104218822Sdim * event Licensee exports any such software from the United States or
10560522Sobrien * re-exports any such software from a foreign destination, Licensee shall
106218822Sdim * ensure that the distribution and export/re-export of the software is in
107218822Sdim * compliance with all laws, regulations, orders, or other restrictions of the
108218822Sdim * U.S. Export Administration Regulations. Licensee agrees that neither it nor
109130570Sobrien * any of its subsidiaries will export/re-export any technical data, process,
110218822Sdim * software, or service, directly or indirectly, to any country for which the
111218822Sdim * United States government or any agency thereof requires an export license,
112218822Sdim * other governmental approval, or letter of assurance, without first obtaining
113218822Sdim * such license, approval or letter.
114218822Sdim *
115218822Sdim *****************************************************************************/
116218822Sdim
117218822Sdim#ifndef __ACINTERP_H__
118218822Sdim#define __ACINTERP_H__
119218822Sdim
120218822Sdim
121218822Sdim#define WALK_OPERANDS       &(WalkState->Operands [WalkState->NumOperands -1])
122218822Sdim
123218822Sdim
124218822Sdim/* Interpreter constants */
125218822Sdim
126218822Sdim#define AML_END_OF_BLOCK            -1
12777316Sobrien#define PUSH_PKG_LENGTH             1
12877316Sobrien#define DO_NOT_PUSH_PKG_LENGTH      0
12977316Sobrien
130218822Sdim
131218822Sdim#define STACK_TOP                   0
132218822Sdim#define STACK_BOTTOM                (UINT32) -1
13377316Sobrien
134218822Sdim/* Constants for global "WhenToParseMethods" */
135218822Sdim
136218822Sdim#define METHOD_PARSE_AT_INIT        0x0
137218822Sdim#define METHOD_PARSE_JUST_IN_TIME   0x1
13833965Sjdp#define METHOD_DELETE_AT_COMPLETION 0x2
13960522Sobrien
14060522Sobrien
141218822SdimACPI_STATUS
14277316SobrienAcpiExResolveOperands (
143218822Sdim    UINT16                  Opcode,
14433965Sjdp    ACPI_OPERAND_OBJECT     **StackPtr,
145218822Sdim    ACPI_WALK_STATE         *WalkState);
146218822Sdim
14738891Sjdp
148218822Sdim/*
149218822Sdim * amxface - External interpreter interfaces
15033965Sjdp */
151218822Sdim
152218822SdimACPI_STATUS
153218822SdimAcpiExLoadTable (
154218822Sdim    ACPI_TABLE_TYPE         TableId);
155218822Sdim
156218822SdimACPI_STATUS
157218822SdimAcpiExExecuteMethod (
158218822Sdim    ACPI_NAMESPACE_NODE     *MethodNode,
15989871Sobrien    ACPI_OPERAND_OBJECT     **Params,
160218822Sdim    ACPI_OPERAND_OBJECT     **ReturnObjDesc);
161218822Sdim
162218822Sdim
163218822Sdim/*
164218822Sdim * amconvrt - object conversion
165218822Sdim */
166218822Sdim
16760522SobrienACPI_STATUS
168218822SdimAcpiExConvertToInteger (
16960522Sobrien    ACPI_OPERAND_OBJECT     *ObjDesc,
170130570Sobrien    ACPI_OPERAND_OBJECT     **ResultDesc,
171130570Sobrien    ACPI_WALK_STATE         *WalkState);
172130570Sobrien
173130570SobrienACPI_STATUS
174130570SobrienAcpiExConvertToBuffer (
175130570Sobrien    ACPI_OPERAND_OBJECT     *ObjDesc,
176130570Sobrien    ACPI_OPERAND_OBJECT     **ResultDesc,
177130570Sobrien    ACPI_WALK_STATE         *WalkState);
178130570Sobrien
179130570SobrienACPI_STATUS
180130570SobrienAcpiExConvertToString (
181218822Sdim    ACPI_OPERAND_OBJECT     *ObjDesc,
182130570Sobrien    ACPI_OPERAND_OBJECT     **ResultDesc,
183130570Sobrien    UINT32                  Base,
184130570Sobrien    UINT32                  MaxLength,
185130570Sobrien    ACPI_WALK_STATE         *WalkState);
186130570Sobrien
18733965SjdpACPI_STATUS
188218822SdimAcpiExConvertToTargetType (
189130570Sobrien    ACPI_OBJECT_TYPE8       DestinationType,
190218822Sdim    ACPI_OPERAND_OBJECT     **ObjDesc,
19133965Sjdp    ACPI_WALK_STATE         *WalkState);
192218822Sdim
193218822Sdim
194218822Sdim/*
195218822Sdim * amfield - ACPI AML (p-code) execution - field manipulation
19677316Sobrien */
19792833Sobrien
19892833SobrienACPI_STATUS
199218822SdimAcpiExExtractFromField (
200130570Sobrien    ACPI_OPERAND_OBJECT     *ObjDesc,
201130570Sobrien    void                    *Buffer,
202218822Sdim    UINT32                  BufferLength);
203218822Sdim
20489871SobrienACPI_STATUS
205130570SobrienAcpiExInsertIntoField (
206130570Sobrien    ACPI_OPERAND_OBJECT     *ObjDesc,
20789871Sobrien    void                    *Buffer,
208218822Sdim    UINT32                  BufferLength);
20989871Sobrien
210130570SobrienACPI_STATUS
211130570SobrienAcpiExSetupField (
212130570Sobrien    ACPI_OPERAND_OBJECT     *ObjDesc,
213130570Sobrien    UINT32                  FieldByteOffset);
214218822Sdim
215130570SobrienACPI_STATUS
216218822SdimAcpiExReadFieldDatum (
217130570Sobrien    ACPI_OPERAND_OBJECT     *ObjDesc,
218218822Sdim    UINT32                  FieldByteOffset,
21989871Sobrien    UINT32                  *Value);
22089871Sobrien
22189871SobrienACPI_STATUS
22289871SobrienAcpiExCommonAccessField (
22389871Sobrien    UINT32                  Mode,
224218822Sdim    ACPI_OPERAND_OBJECT     *ObjDesc,
225218822Sdim    void                    *Buffer,
226218822Sdim    UINT32                  BufferLength);
227218822Sdim
228130570Sobrien
229130570SobrienACPI_STATUS
230218822SdimAcpiExAccessIndexField (
231218822Sdim    UINT32                  Mode,
232218822Sdim    ACPI_OPERAND_OBJECT     *ObjDesc,
233130570Sobrien    void                    *Buffer,
234130570Sobrien    UINT32                  BufferLength);
23560522Sobrien
236130570SobrienACPI_STATUS
237130570SobrienAcpiExAccessBankField (
23891054Sobrien    UINT32                  Mode,
239130570Sobrien    ACPI_OPERAND_OBJECT     *ObjDesc,
240130570Sobrien    void                    *Buffer,
24191054Sobrien    UINT32                  BufferLength);
242218822Sdim
243218822SdimACPI_STATUS
244218822SdimAcpiExAccessRegionField (
24591054Sobrien    UINT32                  Mode,
246218822Sdim    ACPI_OPERAND_OBJECT     *ObjDesc,
247130570Sobrien    void                    *Buffer,
248130570Sobrien    UINT32                  BufferLength);
249130570Sobrien
250130570Sobrien
251130570SobrienACPI_STATUS
252130570SobrienAcpiExAccessBufferField (
253130570Sobrien    UINT32                  Mode,
25460522Sobrien    ACPI_OPERAND_OBJECT     *ObjDesc,
255130570Sobrien    void                    *Buffer,
25660522Sobrien    UINT32                  BufferLength);
257130570Sobrien
258130570SobrienACPI_STATUS
259130570SobrienAcpiExReadDataFromField (
260130570Sobrien    ACPI_OPERAND_OBJECT     *ObjDesc,
26160522Sobrien    ACPI_OPERAND_OBJECT     **RetBufferDesc);
262218822Sdim
263218822SdimACPI_STATUS
264130570SobrienAcpiExWriteDataToField (
26560522Sobrien    ACPI_OPERAND_OBJECT     *SourceDesc,
266130570Sobrien    ACPI_OPERAND_OBJECT     *ObjDesc);
267130570Sobrien
268218822Sdim/*
269218822Sdim * ammisc - ACPI AML (p-code) execution - specific opcodes
27033965Sjdp */
271218822Sdim
272218822SdimACPI_STATUS
273218822SdimAcpiExOpcode_3A_0T_0R (
27489871Sobrien    ACPI_WALK_STATE         *WalkState);
275218822Sdim
276218822SdimACPI_STATUS
277218822SdimAcpiExOpcode_3A_1T_1R (
278218822Sdim    ACPI_WALK_STATE         *WalkState);
279218822Sdim
280218822SdimACPI_STATUS
281218822SdimAcpiExOpcode_6A_0T_1R (
28233965Sjdp    ACPI_WALK_STATE         *WalkState);
283218822Sdim
284218822SdimACPI_STATUS
285218822SdimAcpiExGetObjectReference (
286218822Sdim    ACPI_OPERAND_OBJECT     *ObjDesc,
287218822Sdim    ACPI_OPERAND_OBJECT     **ReturnDesc,
288218822Sdim    ACPI_WALK_STATE         *WalkState);
289218822Sdim
29089871SobrienACPI_STATUS
291218822SdimAcpiExDoConcatenate (
292130570Sobrien    ACPI_OPERAND_OBJECT     *ObjDesc,
293218822Sdim    ACPI_OPERAND_OBJECT     *ObjDesc2,
294130570Sobrien    ACPI_OPERAND_OBJECT     **ActualReturnDesc,
295218822Sdim    ACPI_WALK_STATE         *WalkState);
29677316Sobrien
297218822SdimBOOLEAN
298218822SdimAcpiExDoLogicalOp (
299218822Sdim    UINT16                  Opcode,
300218822Sdim    ACPI_INTEGER            Operand0,
30189871Sobrien    ACPI_INTEGER            Operand1);
302218822Sdim
303218822SdimACPI_INTEGER
304218822SdimAcpiExDoMathOp (
305218822Sdim    UINT16                  Opcode,
306218822Sdim    ACPI_INTEGER            Operand0,
307218822Sdim    ACPI_INTEGER            Operand1);
308218822Sdim
309218822SdimACPI_STATUS
31033965SjdpAcpiExLoadOp (
31133965Sjdp    ACPI_OPERAND_OBJECT     *RgnDesc,
31233965Sjdp    ACPI_OPERAND_OBJECT     *DdbHandle);
31333965Sjdp
31433965SjdpACPI_STATUS
31533965SjdpAcpiExUnloadTable (
31633965Sjdp    ACPI_OPERAND_OBJECT     *DdbHandle);
31733965Sjdp
31833965SjdpACPI_STATUS
319218822SdimAcpiExCreateMutex (
320218822Sdim    ACPI_WALK_STATE         *WalkState);
32133965Sjdp
322218822SdimACPI_STATUS
323130570SobrienAcpiExCreateProcessor (
32460522Sobrien    ACPI_WALK_STATE         *WalkState);
32589871Sobrien
32689871SobrienACPI_STATUS
32789871SobrienAcpiExCreatePowerResource (
32889871Sobrien    ACPI_WALK_STATE         *WalkState);
32989871Sobrien
33089871SobrienACPI_STATUS
33189871SobrienAcpiExCreateRegion (
33233965Sjdp    UINT8                   *AmlStart,
33385824Sobrien    UINT32                  AmlLength,
334218822Sdim    UINT8                   RegionSpace,
335218822Sdim    ACPI_WALK_STATE         *WalkState);
336218822Sdim
337218822SdimACPI_STATUS
338218822SdimAcpiExCreateTableRegion (
339218822Sdim    ACPI_WALK_STATE         *WalkState);
340218822Sdim
341218822SdimACPI_STATUS
342218822SdimAcpiExCreateEvent (
343218822Sdim    ACPI_WALK_STATE         *WalkState);
344218822Sdim
34560522SobrienACPI_STATUS
34660522SobrienAcpiExCreateAlias (
34733965Sjdp    ACPI_WALK_STATE         *WalkState);
34833965Sjdp
34960522SobrienACPI_STATUS
35060522SobrienAcpiExCreateMethod (
35160522Sobrien    UINT8                   *AmlStart,
352218822Sdim    UINT32                  AmlLength,
35333965Sjdp    ACPI_WALK_STATE         *WalkState);
35433965Sjdp
35533965Sjdp
356218822Sdim/*
357218822Sdim * ammutex - mutex support
35889871Sobrien */
359218822Sdim
360218822SdimACPI_STATUS
361218822SdimAcpiExAcquireMutex (
36233965Sjdp    ACPI_OPERAND_OBJECT     *TimeDesc,
36333965Sjdp    ACPI_OPERAND_OBJECT     *ObjDesc,
36433965Sjdp    ACPI_WALK_STATE         *WalkState);
36533965Sjdp
36633965SjdpACPI_STATUS
36733965SjdpAcpiExReleaseMutex (
36833965Sjdp    ACPI_OPERAND_OBJECT     *ObjDesc,
369218822Sdim    ACPI_WALK_STATE         *WalkState);
370218822Sdim
371218822SdimACPI_STATUS
372218822SdimAcpiExReleaseAllMutexes (
37333965Sjdp    ACPI_OPERAND_OBJECT     *MutexList);
37433965Sjdp
37533965Sjdpvoid
376218822SdimAcpiExUnlinkMutex (
377218822Sdim    ACPI_OPERAND_OBJECT     *ObjDesc);
378218822Sdim
379218822Sdim
380130570Sobrien/*
381218822Sdim * amprep - ACPI AML (p-code) execution - prep utilities
382130570Sobrien */
383218822Sdim
384218822SdimACPI_STATUS
385130570SobrienAcpiExPrepCommonFieldObject (
386218822Sdim    ACPI_OPERAND_OBJECT     *ObjDesc,
387218822Sdim    UINT8                   FieldFlags,
388130570Sobrien    UINT32                  FieldPosition,
389218822Sdim    UINT32                  FieldLength);
390218822Sdim
391130570SobrienACPI_STATUS
392218822SdimAcpiExPrepRegionFieldValue (
393218822Sdim    ACPI_NAMESPACE_NODE     *Node,
394218822Sdim    ACPI_HANDLE             Region,
39533965Sjdp    UINT8                   FieldFlags,
39689871Sobrien    UINT32                  FieldPosition,
39789871Sobrien    UINT32                  FieldLength);
39889871Sobrien
399218822SdimACPI_STATUS
40033965SjdpAcpiExPrepBankFieldValue (
401218822Sdim    ACPI_NAMESPACE_NODE     *Node,
402218822Sdim    ACPI_NAMESPACE_NODE     *RegionNode,
403218822Sdim    ACPI_NAMESPACE_NODE     *BankRegisterNode,
404218822Sdim    UINT32                  BankVal,
405130570Sobrien    UINT8                   FieldFlags,
406218822Sdim    UINT32                  FieldPosition,
40777316Sobrien    UINT32                  FieldLength);
408218822Sdim
409218822SdimACPI_STATUS
41033965SjdpAcpiExPrepIndexFieldValue (
41189871Sobrien    ACPI_NAMESPACE_NODE     *Node,
41291054Sobrien    ACPI_NAMESPACE_NODE     *IndexReg,
41391054Sobrien    ACPI_NAMESPACE_NODE     *DataReg,
414218822Sdim    UINT8                   FieldFlags,
415218822Sdim    UINT32                  FieldPosition,
416218822Sdim    UINT32                  FieldLength);
417218822Sdim
41889871SobrienACPI_STATUS
419218822SdimAcpiExPrepFieldValue (
420218822Sdim    ACPI_CREATE_FIELD_INFO  *Info);
421130570Sobrien
422130570Sobrien/*
42391054Sobrien * amsystem - Interface to OS services
42477316Sobrien */
425218822Sdim
426218822SdimACPI_STATUS
427218822SdimAcpiExSystemDoNotifyOp (
428218822Sdim    ACPI_OPERAND_OBJECT     *Value,
429218822Sdim    ACPI_OPERAND_OBJECT     *ObjDesc);
430218822Sdim
431218822Sdimvoid
432218822SdimAcpiExSystemDoSuspend(
433218822Sdim    UINT32                  Time);
434218822Sdim
435218822Sdimvoid
436218822SdimAcpiExSystemDoStall (
437218822Sdim    UINT32                  Time);
438218822Sdim
439218822SdimACPI_STATUS
440218822SdimAcpiExSystemAcquireMutex(
44189871Sobrien    ACPI_OPERAND_OBJECT     *Time,
44289871Sobrien    ACPI_OPERAND_OBJECT     *ObjDesc);
443218822Sdim
444218822SdimACPI_STATUS
445218822SdimAcpiExSystemReleaseMutex(
446218822Sdim    ACPI_OPERAND_OBJECT     *ObjDesc);
447218822Sdim
448218822SdimACPI_STATUS
449218822SdimAcpiExSystemSignalEvent(
450218822Sdim    ACPI_OPERAND_OBJECT     *ObjDesc);
451218822Sdim
45289871SobrienACPI_STATUS
453218822SdimAcpiExSystemWaitEvent(
454218822Sdim    ACPI_OPERAND_OBJECT     *Time,
455218822Sdim    ACPI_OPERAND_OBJECT     *ObjDesc);
456218822Sdim
457218822SdimACPI_STATUS
458218822SdimAcpiExSystemResetEvent(
459218822Sdim    ACPI_OPERAND_OBJECT     *ObjDesc);
460218822Sdim
461218822SdimACPI_STATUS
462218822SdimAcpiExSystemWaitSemaphore (
463218822Sdim    ACPI_HANDLE             Semaphore,
464218822Sdim    UINT32                  Timeout);
465218822Sdim
466218822Sdim
467130570Sobrien/*
468130570Sobrien * ammonadic - ACPI AML (p-code) execution, monadic operators
46933965Sjdp */
47033965Sjdp
47133965SjdpACPI_STATUS
47233965SjdpAcpiExOpcode_1A_0T_0R (
47333965Sjdp    ACPI_WALK_STATE         *WalkState);
47478840Sobrien
475104845SobrienACPI_STATUS
47633965SjdpAcpiExOpcode_1A_0T_1R (
47733965Sjdp    ACPI_WALK_STATE         *WalkState);
478104845Sobrien
479218822SdimACPI_STATUS
480104845SobrienAcpiExOpcode_1A_1T_1R (
481218822Sdim    ACPI_WALK_STATE         *WalkState);
482218822Sdim
483218822SdimACPI_STATUS
484218822SdimAcpiExOpcode_1A_1T_0R (
485218822Sdim    ACPI_WALK_STATE         *WalkState);
486218822Sdim
487218822Sdim/*
488218822Sdim * amdyadic - ACPI AML (p-code) execution, dyadic operators
489218822Sdim */
490218822Sdim
491218822SdimACPI_STATUS
492218822SdimAcpiExOpcode_2A_0T_0R (
493218822Sdim    ACPI_WALK_STATE         *WalkState);
494218822Sdim
495218822SdimACPI_STATUS
496218822SdimAcpiExOpcode_2A_0T_1R (
497218822Sdim    ACPI_WALK_STATE         *WalkState);
498218822Sdim
499218822SdimACPI_STATUS
500218822SdimAcpiExOpcode_2A_1T_1R (
501218822Sdim    ACPI_WALK_STATE         *WalkState);
502218822Sdim
503218822SdimACPI_STATUS
504218822SdimAcpiExOpcode_2A_2T_1R (
505218822Sdim    ACPI_WALK_STATE         *WalkState);
506218822Sdim
507218822Sdim
508218822Sdim/*
509218822Sdim * amresolv  - Object resolution and get value functions
510218822Sdim */
511218822Sdim
512218822SdimACPI_STATUS
513218822SdimAcpiExResolveToValue (
514218822Sdim    ACPI_OPERAND_OBJECT     **StackPtr,
515218822Sdim    ACPI_WALK_STATE         *WalkState);
516218822Sdim
517218822SdimACPI_STATUS
518218822SdimAcpiExResolveNodeToValue (
519218822Sdim    ACPI_NAMESPACE_NODE     **StackPtr,
520218822Sdim    ACPI_WALK_STATE         *WalkState);
521218822Sdim
522218822SdimACPI_STATUS
523218822SdimAcpiExResolveObjectToValue (
524218822Sdim    ACPI_OPERAND_OBJECT     **StackPtr,
525218822Sdim    ACPI_WALK_STATE         *WalkState);
526218822Sdim
527218822SdimACPI_STATUS
528218822SdimAcpiExGetBufferFieldValue (
529218822Sdim    ACPI_OPERAND_OBJECT     *FieldDesc,
530218822Sdim    ACPI_OPERAND_OBJECT     *ResultDesc);
531218822Sdim
532218822Sdim
533218822Sdim/*
534218822Sdim * amdump - Scanner debug output routines
535218822Sdim */
536218822Sdim
537218822Sdimvoid
538218822SdimAcpiExShowHexValue (
539218822Sdim    UINT32                  ByteCount,
540218822Sdim    UINT8                   *AmlStart,
541218822Sdim    UINT32                  LeadSpace);
542218822Sdim
543218822Sdim
544218822SdimACPI_STATUS
545218822SdimAcpiExDumpOperand (
546218822Sdim    ACPI_OPERAND_OBJECT     *EntryDesc);
547218822Sdim
548218822Sdimvoid
549218822SdimAcpiExDumpOperands (
550218822Sdim    ACPI_OPERAND_OBJECT     **Operands,
551218822Sdim    OPERATING_MODE          InterpreterMode,
552218822Sdim    NATIVE_CHAR             *Ident,
553218822Sdim    UINT32                  NumLevels,
554218822Sdim    NATIVE_CHAR             *Note,
555218822Sdim    NATIVE_CHAR             *ModuleName,
556218822Sdim    UINT32                  LineNumber);
557218822Sdim
558218822Sdimvoid
559218822SdimAcpiExDumpObjectDescriptor (
560218822Sdim    ACPI_OPERAND_OBJECT     *Object,
561218822Sdim    UINT32                  Flags);
562218822Sdim
563218822Sdim
564218822Sdimvoid
565218822SdimAcpiExDumpNode (
566218822Sdim    ACPI_NAMESPACE_NODE     *Node,
567218822Sdim    UINT32                  Flags);
568218822Sdim
569218822Sdim
570218822Sdim/*
571218822Sdim * amnames - interpreter/scanner name load/execute
572218822Sdim */
573218822Sdim
574218822SdimNATIVE_CHAR *
575218822SdimAcpiExAllocateNameString (
576218822Sdim    UINT32                  PrefixCount,
577218822Sdim    UINT32                  NumNameSegs);
578218822Sdim
579218822SdimUINT32
580218822SdimAcpiExGoodChar (
581218822Sdim    UINT32                  Character);
582218822Sdim
583218822SdimACPI_STATUS
584218822SdimAcpiExNameSegment (
585218822Sdim    UINT8                   **InAmlAddress,
586218822Sdim    NATIVE_CHAR             *NameString);
587218822Sdim
588218822SdimACPI_STATUS
589218822SdimAcpiExGetNameString (
590218822Sdim    ACPI_OBJECT_TYPE8       DataType,
591218822Sdim    UINT8                   *InAmlAddress,
592218822Sdim    NATIVE_CHAR             **OutNameString,
593218822Sdim    UINT32                  *OutNameLength);
59438891Sjdp
59538891SjdpACPI_STATUS
596130570SobrienAcpiExDoName (
59777316Sobrien    ACPI_OBJECT_TYPE        DataType,
598218822Sdim    OPERATING_MODE          LoadExecMode);
599218822Sdim
60038891Sjdp
60160522Sobrien/*
602218822Sdim * amstore - Object store support
603218822Sdim */
604218822Sdim
605218822SdimACPI_STATUS
606218822SdimAcpiExStore (
607218822Sdim    ACPI_OPERAND_OBJECT     *ValDesc,
608218822Sdim    ACPI_OPERAND_OBJECT     *DestDesc,
609218822Sdim    ACPI_WALK_STATE         *WalkState);
610218822Sdim
611218822SdimACPI_STATUS
612218822SdimAcpiExStoreObjectToIndex (
613218822Sdim    ACPI_OPERAND_OBJECT     *ValDesc,
614218822Sdim    ACPI_OPERAND_OBJECT     *DestDesc,
615218822Sdim    ACPI_WALK_STATE         *WalkState);
616218822Sdim
617218822SdimACPI_STATUS
618218822SdimAcpiExStoreObjectToNode (
619218822Sdim    ACPI_OPERAND_OBJECT     *SourceDesc,
620218822Sdim    ACPI_NAMESPACE_NODE     *Node,
621218822Sdim    ACPI_WALK_STATE         *WalkState);
622218822Sdim
623218822SdimACPI_STATUS
624218822SdimAcpiExStoreObjectToObject (
625218822Sdim    ACPI_OPERAND_OBJECT     *SourceDesc,
626218822Sdim    ACPI_OPERAND_OBJECT     *DestDesc,
627218822Sdim    ACPI_WALK_STATE         *WalkState);
628218822Sdim
62933965Sjdp
63033965Sjdp/*
63133965Sjdp *
63233965Sjdp */
63333965Sjdp
63433965SjdpACPI_STATUS
635130570SobrienAcpiExResolveObject (
636130570Sobrien    ACPI_OPERAND_OBJECT     **SourceDescPtr,
637130570Sobrien    ACPI_OBJECT_TYPE8       TargetType,
638130570Sobrien    ACPI_WALK_STATE         *WalkState);
639130570Sobrien
640130570SobrienACPI_STATUS
641130570SobrienAcpiExStoreObject (
642130570Sobrien    ACPI_OPERAND_OBJECT     *SourceDesc,
643130570Sobrien    ACPI_OBJECT_TYPE8       TargetType,
644130570Sobrien    ACPI_OPERAND_OBJECT     **TargetDescPtr,
645130570Sobrien    ACPI_WALK_STATE         *WalkState);
646130570Sobrien
647130570Sobrien
648130570Sobrien/*
649130570Sobrien * amcopy - object copy
650130570Sobrien */
651130570Sobrien
652130570SobrienACPI_STATUS
653130570SobrienAcpiExCopyBufferToBuffer (
654130570Sobrien    ACPI_OPERAND_OBJECT     *SourceDesc,
655130570Sobrien    ACPI_OPERAND_OBJECT     *TargetDesc);
656130570Sobrien
657130570SobrienACPI_STATUS
658130570SobrienAcpiExCopyStringToString (
659130570Sobrien    ACPI_OPERAND_OBJECT     *SourceDesc,
660130570Sobrien    ACPI_OPERAND_OBJECT     *TargetDesc);
661130570Sobrien
662130570SobrienACPI_STATUS
663130570SobrienAcpiExCopyIntegerToIndexField (
664130570Sobrien    ACPI_OPERAND_OBJECT     *SourceDesc,
665130570Sobrien    ACPI_OPERAND_OBJECT     *TargetDesc);
666130570Sobrien
667218822SdimACPI_STATUS
668218822SdimAcpiExCopyIntegerToBankField (
669218822Sdim    ACPI_OPERAND_OBJECT     *SourceDesc,
670218822Sdim    ACPI_OPERAND_OBJECT     *TargetDesc);
671218822Sdim
672130570SobrienACPI_STATUS
673130570SobrienAcpiExCopyDataToNamedField (
674130570Sobrien    ACPI_OPERAND_OBJECT     *SourceDesc,
675130570Sobrien    ACPI_NAMESPACE_NODE     *Node);
676130570Sobrien
677130570SobrienACPI_STATUS
678130570SobrienAcpiExCopyIntegerToBufferField (
679130570Sobrien    ACPI_OPERAND_OBJECT     *SourceDesc,
680130570Sobrien    ACPI_OPERAND_OBJECT     *TargetDesc);
681130570Sobrien
682130570Sobrien/*
683130570Sobrien * amutils - interpreter/scanner utilities
684130570Sobrien */
685130570Sobrien
686130570SobrienACPI_STATUS
687130570SobrienAcpiExEnterInterpreter (
688130570Sobrien    void);
689130570Sobrien
690void
691AcpiExExitInterpreter (
692    void);
693
694void
695AcpiExTruncateFor32bitTable (
696    ACPI_OPERAND_OBJECT     *ObjDesc,
697    ACPI_WALK_STATE         *WalkState);
698
699BOOLEAN
700AcpiExValidateObjectType (
701    ACPI_OBJECT_TYPE        Type);
702
703BOOLEAN
704AcpiExAcquireGlobalLock (
705    UINT32                  Rule);
706
707ACPI_STATUS
708AcpiExReleaseGlobalLock (
709    BOOLEAN                 Locked);
710
711UINT32
712AcpiExDigitsNeeded (
713    ACPI_INTEGER            Value,
714    UINT32                  Base);
715
716ACPI_STATUS
717AcpiExEisaIdToString (
718    UINT32                  NumericId,
719    NATIVE_CHAR             *OutString);
720
721ACPI_STATUS
722AcpiExUnsignedIntegerToString (
723    ACPI_INTEGER            Value,
724    NATIVE_CHAR             *OutString);
725
726
727/*
728 * amregion - default OpRegion handlers
729 */
730
731ACPI_STATUS
732AcpiExSystemMemorySpaceHandler (
733    UINT32                  Function,
734    ACPI_PHYSICAL_ADDRESS   Address,
735    UINT32                  BitWidth,
736    UINT32                  *Value,
737    void                    *HandlerContext,
738    void                    *RegionContext);
739
740ACPI_STATUS
741AcpiExSystemIoSpaceHandler (
742    UINT32                  Function,
743    ACPI_PHYSICAL_ADDRESS   Address,
744    UINT32                  BitWidth,
745    UINT32                  *Value,
746    void                    *HandlerContext,
747    void                    *RegionContext);
748
749ACPI_STATUS
750AcpiExPciConfigSpaceHandler (
751    UINT32                  Function,
752    ACPI_PHYSICAL_ADDRESS   Address,
753    UINT32                  BitWidth,
754    UINT32                  *Value,
755    void                    *HandlerContext,
756    void                    *RegionContext);
757
758ACPI_STATUS
759AcpiExCmosSpaceHandler (
760    UINT32                  Function,
761    ACPI_PHYSICAL_ADDRESS   Address,
762    UINT32                  BitWidth,
763    UINT32                  *Value,
764    void                    *HandlerContext,
765    void                    *RegionContext);
766
767ACPI_STATUS
768AcpiExPciBarSpaceHandler (
769    UINT32                  Function,
770    ACPI_PHYSICAL_ADDRESS   Address,
771    UINT32                  BitWidth,
772    UINT32                  *Value,
773    void                    *HandlerContext,
774    void                    *RegionContext);
775
776ACPI_STATUS
777AcpiExEmbeddedControllerSpaceHandler (
778    UINT32                  Function,
779    ACPI_PHYSICAL_ADDRESS   Address,
780    UINT32                  BitWidth,
781    UINT32                  *Value,
782    void                    *HandlerContext,
783    void                    *RegionContext);
784
785ACPI_STATUS
786AcpiExSmBusSpaceHandler (
787    UINT32                  Function,
788    ACPI_PHYSICAL_ADDRESS   Address,
789    UINT32                  BitWidth,
790    UINT32                  *Value,
791    void                    *HandlerContext,
792    void                    *RegionContext);
793
794
795#endif /* __INTERP_H__ */
796