1a9f12690SJung-uk Kim /****************************************************************************** 2a9f12690SJung-uk Kim * 3a9f12690SJung-uk Kim * Name: acinterp.h - Interpreter subcomponent prototypes and defines 4a9f12690SJung-uk Kim * 5a9f12690SJung-uk Kim *****************************************************************************/ 6a9f12690SJung-uk Kim 7*d244b227SJung-uk Kim /* 8*d244b227SJung-uk Kim * Copyright (C) 2000 - 2011, Intel Corp. 9a9f12690SJung-uk Kim * All rights reserved. 10a9f12690SJung-uk Kim * 11*d244b227SJung-uk Kim * Redistribution and use in source and binary forms, with or without 12*d244b227SJung-uk Kim * modification, are permitted provided that the following conditions 13*d244b227SJung-uk Kim * are met: 14*d244b227SJung-uk Kim * 1. Redistributions of source code must retain the above copyright 15*d244b227SJung-uk Kim * notice, this list of conditions, and the following disclaimer, 16*d244b227SJung-uk Kim * without modification. 17*d244b227SJung-uk Kim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18*d244b227SJung-uk Kim * substantially similar to the "NO WARRANTY" disclaimer below 19*d244b227SJung-uk Kim * ("Disclaimer") and any redistribution must be conditioned upon 20*d244b227SJung-uk Kim * including a substantially similar Disclaimer requirement for further 21*d244b227SJung-uk Kim * binary redistribution. 22*d244b227SJung-uk Kim * 3. Neither the names of the above-listed copyright holders nor the names 23*d244b227SJung-uk Kim * of any contributors may be used to endorse or promote products derived 24*d244b227SJung-uk Kim * from this software without specific prior written permission. 25a9f12690SJung-uk Kim * 26*d244b227SJung-uk Kim * Alternatively, this software may be distributed under the terms of the 27*d244b227SJung-uk Kim * GNU General Public License ("GPL") version 2 as published by the Free 28*d244b227SJung-uk Kim * Software Foundation. 29a9f12690SJung-uk Kim * 30*d244b227SJung-uk Kim * NO WARRANTY 31*d244b227SJung-uk Kim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32*d244b227SJung-uk Kim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33*d244b227SJung-uk Kim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34*d244b227SJung-uk Kim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35*d244b227SJung-uk Kim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36*d244b227SJung-uk Kim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37*d244b227SJung-uk Kim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38*d244b227SJung-uk Kim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39*d244b227SJung-uk Kim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40*d244b227SJung-uk Kim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41*d244b227SJung-uk Kim * POSSIBILITY OF SUCH DAMAGES. 42*d244b227SJung-uk Kim */ 43a9f12690SJung-uk Kim 44a9f12690SJung-uk Kim #ifndef __ACINTERP_H__ 45a9f12690SJung-uk Kim #define __ACINTERP_H__ 46a9f12690SJung-uk Kim 47a9f12690SJung-uk Kim 48a9f12690SJung-uk Kim #define ACPI_WALK_OPERANDS (&(WalkState->Operands [WalkState->NumOperands -1])) 49a9f12690SJung-uk Kim 50a9f12690SJung-uk Kim /* Macros for tables used for debug output */ 51a9f12690SJung-uk Kim 52a9f12690SJung-uk Kim #define ACPI_EXD_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_OPERAND_OBJECT,f) 53a9f12690SJung-uk Kim #define ACPI_EXD_NSOFFSET(f) (UINT8) ACPI_OFFSET (ACPI_NAMESPACE_NODE,f) 54a9f12690SJung-uk Kim #define ACPI_EXD_TABLE_SIZE(name) (sizeof(name) / sizeof (ACPI_EXDUMP_INFO)) 55a9f12690SJung-uk Kim 56a9f12690SJung-uk Kim /* 57a9f12690SJung-uk Kim * If possible, pack the following structures to byte alignment, since we 58a9f12690SJung-uk Kim * don't care about performance for debug output. Two cases where we cannot 59a9f12690SJung-uk Kim * pack the structures: 60a9f12690SJung-uk Kim * 61a9f12690SJung-uk Kim * 1) Hardware does not support misaligned memory transfers 62a9f12690SJung-uk Kim * 2) Compiler does not support pointers within packed structures 63a9f12690SJung-uk Kim */ 64a9f12690SJung-uk Kim #if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED)) 65a9f12690SJung-uk Kim #pragma pack(1) 66a9f12690SJung-uk Kim #endif 67a9f12690SJung-uk Kim 68a9f12690SJung-uk Kim typedef const struct acpi_exdump_info 69a9f12690SJung-uk Kim { 70a9f12690SJung-uk Kim UINT8 Opcode; 71a9f12690SJung-uk Kim UINT8 Offset; 72a9f12690SJung-uk Kim char *Name; 73a9f12690SJung-uk Kim 74a9f12690SJung-uk Kim } ACPI_EXDUMP_INFO; 75a9f12690SJung-uk Kim 76a9f12690SJung-uk Kim /* Values for the Opcode field above */ 77a9f12690SJung-uk Kim 78a9f12690SJung-uk Kim #define ACPI_EXD_INIT 0 79a9f12690SJung-uk Kim #define ACPI_EXD_TYPE 1 80a9f12690SJung-uk Kim #define ACPI_EXD_UINT8 2 81a9f12690SJung-uk Kim #define ACPI_EXD_UINT16 3 82a9f12690SJung-uk Kim #define ACPI_EXD_UINT32 4 83a9f12690SJung-uk Kim #define ACPI_EXD_UINT64 5 84a9f12690SJung-uk Kim #define ACPI_EXD_LITERAL 6 85a9f12690SJung-uk Kim #define ACPI_EXD_POINTER 7 86a9f12690SJung-uk Kim #define ACPI_EXD_ADDRESS 8 87a9f12690SJung-uk Kim #define ACPI_EXD_STRING 9 88a9f12690SJung-uk Kim #define ACPI_EXD_BUFFER 10 89a9f12690SJung-uk Kim #define ACPI_EXD_PACKAGE 11 90a9f12690SJung-uk Kim #define ACPI_EXD_FIELD 12 91a9f12690SJung-uk Kim #define ACPI_EXD_REFERENCE 13 92a9f12690SJung-uk Kim 93a9f12690SJung-uk Kim /* restore default alignment */ 94a9f12690SJung-uk Kim 95a9f12690SJung-uk Kim #pragma pack() 96a9f12690SJung-uk Kim 97a9f12690SJung-uk Kim 98a9f12690SJung-uk Kim /* 99a9f12690SJung-uk Kim * exconvrt - object conversion 100a9f12690SJung-uk Kim */ 101a9f12690SJung-uk Kim ACPI_STATUS 102a9f12690SJung-uk Kim AcpiExConvertToInteger ( 103a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 104a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ResultDesc, 105a9f12690SJung-uk Kim UINT32 Flags); 106a9f12690SJung-uk Kim 107a9f12690SJung-uk Kim ACPI_STATUS 108a9f12690SJung-uk Kim AcpiExConvertToBuffer ( 109a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 110a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ResultDesc); 111a9f12690SJung-uk Kim 112a9f12690SJung-uk Kim ACPI_STATUS 113a9f12690SJung-uk Kim AcpiExConvertToString ( 114a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 115a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ResultDesc, 116a9f12690SJung-uk Kim UINT32 Type); 117a9f12690SJung-uk Kim 118a9f12690SJung-uk Kim /* Types for ->String conversion */ 119a9f12690SJung-uk Kim 120a9f12690SJung-uk Kim #define ACPI_EXPLICIT_BYTE_COPY 0x00000000 121a9f12690SJung-uk Kim #define ACPI_EXPLICIT_CONVERT_HEX 0x00000001 122a9f12690SJung-uk Kim #define ACPI_IMPLICIT_CONVERT_HEX 0x00000002 123a9f12690SJung-uk Kim #define ACPI_EXPLICIT_CONVERT_DECIMAL 0x00000003 124a9f12690SJung-uk Kim 125a9f12690SJung-uk Kim ACPI_STATUS 126a9f12690SJung-uk Kim AcpiExConvertToTargetType ( 127a9f12690SJung-uk Kim ACPI_OBJECT_TYPE DestinationType, 128a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 129a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ResultDesc, 130a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 131a9f12690SJung-uk Kim 132a9f12690SJung-uk Kim 133a9f12690SJung-uk Kim /* 134ca3cf4faSJung-uk Kim * exdebug - AML debug object 135ca3cf4faSJung-uk Kim */ 136ca3cf4faSJung-uk Kim void 137ca3cf4faSJung-uk Kim AcpiExDoDebugObject ( 138ca3cf4faSJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 139ca3cf4faSJung-uk Kim UINT32 Level, 140ca3cf4faSJung-uk Kim UINT32 Index); 141ca3cf4faSJung-uk Kim 142ca3cf4faSJung-uk Kim 143ca3cf4faSJung-uk Kim /* 144a9f12690SJung-uk Kim * exfield - ACPI AML (p-code) execution - field manipulation 145a9f12690SJung-uk Kim */ 146a9f12690SJung-uk Kim ACPI_STATUS 147a9f12690SJung-uk Kim AcpiExCommonBufferSetup ( 148a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 149a9f12690SJung-uk Kim UINT32 BufferLength, 150a9f12690SJung-uk Kim UINT32 *DatumCount); 151a9f12690SJung-uk Kim 152a9f12690SJung-uk Kim ACPI_STATUS 153a9f12690SJung-uk Kim AcpiExWriteWithUpdateRule ( 154a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 1559a179dd8SJung-uk Kim UINT64 Mask, 1569a179dd8SJung-uk Kim UINT64 FieldValue, 157a9f12690SJung-uk Kim UINT32 FieldDatumByteOffset); 158a9f12690SJung-uk Kim 159a9f12690SJung-uk Kim void 160a9f12690SJung-uk Kim AcpiExGetBufferDatum( 1619a179dd8SJung-uk Kim UINT64 *Datum, 162a9f12690SJung-uk Kim void *Buffer, 163a9f12690SJung-uk Kim UINT32 BufferLength, 164a9f12690SJung-uk Kim UINT32 ByteGranularity, 165a9f12690SJung-uk Kim UINT32 BufferOffset); 166a9f12690SJung-uk Kim 167a9f12690SJung-uk Kim void 168a9f12690SJung-uk Kim AcpiExSetBufferDatum ( 1699a179dd8SJung-uk Kim UINT64 MergedDatum, 170a9f12690SJung-uk Kim void *Buffer, 171a9f12690SJung-uk Kim UINT32 BufferLength, 172a9f12690SJung-uk Kim UINT32 ByteGranularity, 173a9f12690SJung-uk Kim UINT32 BufferOffset); 174a9f12690SJung-uk Kim 175a9f12690SJung-uk Kim ACPI_STATUS 176a9f12690SJung-uk Kim AcpiExReadDataFromField ( 177a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState, 178a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 179a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **RetBufferDesc); 180a9f12690SJung-uk Kim 181a9f12690SJung-uk Kim ACPI_STATUS 182a9f12690SJung-uk Kim AcpiExWriteDataToField ( 183a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 184a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 185a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ResultDesc); 186a9f12690SJung-uk Kim 187a9f12690SJung-uk Kim 188a9f12690SJung-uk Kim /* 189a9f12690SJung-uk Kim * exfldio - low level field I/O 190a9f12690SJung-uk Kim */ 191a9f12690SJung-uk Kim ACPI_STATUS 192a9f12690SJung-uk Kim AcpiExExtractFromField ( 193a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 194a9f12690SJung-uk Kim void *Buffer, 195a9f12690SJung-uk Kim UINT32 BufferLength); 196a9f12690SJung-uk Kim 197a9f12690SJung-uk Kim ACPI_STATUS 198a9f12690SJung-uk Kim AcpiExInsertIntoField ( 199a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 200a9f12690SJung-uk Kim void *Buffer, 201a9f12690SJung-uk Kim UINT32 BufferLength); 202a9f12690SJung-uk Kim 203a9f12690SJung-uk Kim ACPI_STATUS 204a9f12690SJung-uk Kim AcpiExAccessRegion ( 205a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 206a9f12690SJung-uk Kim UINT32 FieldDatumByteOffset, 2079a179dd8SJung-uk Kim UINT64 *Value, 208a9f12690SJung-uk Kim UINT32 ReadWrite); 209a9f12690SJung-uk Kim 210a9f12690SJung-uk Kim 211a9f12690SJung-uk Kim /* 212a9f12690SJung-uk Kim * exmisc - misc support routines 213a9f12690SJung-uk Kim */ 214a9f12690SJung-uk Kim ACPI_STATUS 215a9f12690SJung-uk Kim AcpiExGetObjectReference ( 216a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 217a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ReturnDesc, 218a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 219a9f12690SJung-uk Kim 220a9f12690SJung-uk Kim ACPI_STATUS 221a9f12690SJung-uk Kim AcpiExConcatTemplate ( 222a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 223a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc2, 224a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ActualReturnDesc, 225a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 226a9f12690SJung-uk Kim 227a9f12690SJung-uk Kim ACPI_STATUS 228a9f12690SJung-uk Kim AcpiExDoConcatenate ( 229a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 230a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc2, 231a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ActualReturnDesc, 232a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 233a9f12690SJung-uk Kim 234a9f12690SJung-uk Kim ACPI_STATUS 235a9f12690SJung-uk Kim AcpiExDoLogicalNumericOp ( 236a9f12690SJung-uk Kim UINT16 Opcode, 2379a179dd8SJung-uk Kim UINT64 Integer0, 2389a179dd8SJung-uk Kim UINT64 Integer1, 239a9f12690SJung-uk Kim BOOLEAN *LogicalResult); 240a9f12690SJung-uk Kim 241a9f12690SJung-uk Kim ACPI_STATUS 242a9f12690SJung-uk Kim AcpiExDoLogicalOp ( 243a9f12690SJung-uk Kim UINT16 Opcode, 244a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Operand0, 245a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Operand1, 246a9f12690SJung-uk Kim BOOLEAN *LogicalResult); 247a9f12690SJung-uk Kim 2489a179dd8SJung-uk Kim UINT64 249a9f12690SJung-uk Kim AcpiExDoMathOp ( 250a9f12690SJung-uk Kim UINT16 Opcode, 2519a179dd8SJung-uk Kim UINT64 Operand0, 2529a179dd8SJung-uk Kim UINT64 Operand1); 253a9f12690SJung-uk Kim 254a9f12690SJung-uk Kim ACPI_STATUS 255a9f12690SJung-uk Kim AcpiExCreateMutex ( 256a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 257a9f12690SJung-uk Kim 258a9f12690SJung-uk Kim ACPI_STATUS 259a9f12690SJung-uk Kim AcpiExCreateProcessor ( 260a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 261a9f12690SJung-uk Kim 262a9f12690SJung-uk Kim ACPI_STATUS 263a9f12690SJung-uk Kim AcpiExCreatePowerResource ( 264a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 265a9f12690SJung-uk Kim 266a9f12690SJung-uk Kim ACPI_STATUS 267a9f12690SJung-uk Kim AcpiExCreateRegion ( 268a9f12690SJung-uk Kim UINT8 *AmlStart, 269a9f12690SJung-uk Kim UINT32 AmlLength, 270a9f12690SJung-uk Kim UINT8 RegionSpace, 271a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 272a9f12690SJung-uk Kim 273a9f12690SJung-uk Kim ACPI_STATUS 274a9f12690SJung-uk Kim AcpiExCreateEvent ( 275a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 276a9f12690SJung-uk Kim 277a9f12690SJung-uk Kim ACPI_STATUS 278a9f12690SJung-uk Kim AcpiExCreateAlias ( 279a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 280a9f12690SJung-uk Kim 281a9f12690SJung-uk Kim ACPI_STATUS 282a9f12690SJung-uk Kim AcpiExCreateMethod ( 283a9f12690SJung-uk Kim UINT8 *AmlStart, 284a9f12690SJung-uk Kim UINT32 AmlLength, 285a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 286a9f12690SJung-uk Kim 287a9f12690SJung-uk Kim 288a9f12690SJung-uk Kim /* 289a9f12690SJung-uk Kim * exconfig - dynamic table load/unload 290a9f12690SJung-uk Kim */ 291a9f12690SJung-uk Kim ACPI_STATUS 292a9f12690SJung-uk Kim AcpiExLoadOp ( 293a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 294a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Target, 295a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 296a9f12690SJung-uk Kim 297a9f12690SJung-uk Kim ACPI_STATUS 298a9f12690SJung-uk Kim AcpiExLoadTableOp ( 299a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState, 300a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ReturnDesc); 301a9f12690SJung-uk Kim 302a9f12690SJung-uk Kim ACPI_STATUS 303a9f12690SJung-uk Kim AcpiExUnloadTable ( 304a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *DdbHandle); 305a9f12690SJung-uk Kim 306a9f12690SJung-uk Kim 307a9f12690SJung-uk Kim /* 308a9f12690SJung-uk Kim * exmutex - mutex support 309a9f12690SJung-uk Kim */ 310a9f12690SJung-uk Kim ACPI_STATUS 311a9f12690SJung-uk Kim AcpiExAcquireMutex ( 312a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *TimeDesc, 313a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 314a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 315a9f12690SJung-uk Kim 316a9f12690SJung-uk Kim ACPI_STATUS 317a9f12690SJung-uk Kim AcpiExAcquireMutexObject ( 318a9f12690SJung-uk Kim UINT16 Timeout, 319a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 320a9f12690SJung-uk Kim ACPI_THREAD_ID ThreadId); 321a9f12690SJung-uk Kim 322a9f12690SJung-uk Kim ACPI_STATUS 323a9f12690SJung-uk Kim AcpiExReleaseMutex ( 324a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 325a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 326a9f12690SJung-uk Kim 327a9f12690SJung-uk Kim ACPI_STATUS 328a9f12690SJung-uk Kim AcpiExReleaseMutexObject ( 329a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc); 330a9f12690SJung-uk Kim 331a9f12690SJung-uk Kim void 332a9f12690SJung-uk Kim AcpiExReleaseAllMutexes ( 333a9f12690SJung-uk Kim ACPI_THREAD_STATE *Thread); 334a9f12690SJung-uk Kim 335a9f12690SJung-uk Kim void 336a9f12690SJung-uk Kim AcpiExUnlinkMutex ( 337a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc); 338a9f12690SJung-uk Kim 339a9f12690SJung-uk Kim 340a9f12690SJung-uk Kim /* 341a9f12690SJung-uk Kim * exprep - ACPI AML execution - prep utilities 342a9f12690SJung-uk Kim */ 343a9f12690SJung-uk Kim ACPI_STATUS 344a9f12690SJung-uk Kim AcpiExPrepCommonFieldObject ( 345a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 346a9f12690SJung-uk Kim UINT8 FieldFlags, 347a9f12690SJung-uk Kim UINT8 FieldAttribute, 348a9f12690SJung-uk Kim UINT32 FieldBitPosition, 349a9f12690SJung-uk Kim UINT32 FieldBitLength); 350a9f12690SJung-uk Kim 351a9f12690SJung-uk Kim ACPI_STATUS 352a9f12690SJung-uk Kim AcpiExPrepFieldValue ( 353a9f12690SJung-uk Kim ACPI_CREATE_FIELD_INFO *Info); 354a9f12690SJung-uk Kim 355a9f12690SJung-uk Kim 356a9f12690SJung-uk Kim /* 357a9f12690SJung-uk Kim * exsystem - Interface to OS services 358a9f12690SJung-uk Kim */ 359a9f12690SJung-uk Kim ACPI_STATUS 360a9f12690SJung-uk Kim AcpiExSystemDoNotifyOp ( 361a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Value, 362a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc); 363a9f12690SJung-uk Kim 364a9f12690SJung-uk Kim ACPI_STATUS 3653f5e024cSJung-uk Kim AcpiExSystemDoSleep( 3669a179dd8SJung-uk Kim UINT64 Time); 367a9f12690SJung-uk Kim 368a9f12690SJung-uk Kim ACPI_STATUS 369a9f12690SJung-uk Kim AcpiExSystemDoStall ( 370a9f12690SJung-uk Kim UINT32 Time); 371a9f12690SJung-uk Kim 372a9f12690SJung-uk Kim ACPI_STATUS 373a9f12690SJung-uk Kim AcpiExSystemSignalEvent( 374a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc); 375a9f12690SJung-uk Kim 376a9f12690SJung-uk Kim ACPI_STATUS 377a9f12690SJung-uk Kim AcpiExSystemWaitEvent( 378a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Time, 379a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc); 380a9f12690SJung-uk Kim 381a9f12690SJung-uk Kim ACPI_STATUS 382a9f12690SJung-uk Kim AcpiExSystemResetEvent( 383a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc); 384a9f12690SJung-uk Kim 385a9f12690SJung-uk Kim ACPI_STATUS 386a9f12690SJung-uk Kim AcpiExSystemWaitSemaphore ( 387a9f12690SJung-uk Kim ACPI_SEMAPHORE Semaphore, 388a9f12690SJung-uk Kim UINT16 Timeout); 389a9f12690SJung-uk Kim 390a9f12690SJung-uk Kim ACPI_STATUS 391a9f12690SJung-uk Kim AcpiExSystemWaitMutex ( 392a9f12690SJung-uk Kim ACPI_MUTEX Mutex, 393a9f12690SJung-uk Kim UINT16 Timeout); 394a9f12690SJung-uk Kim 395a9f12690SJung-uk Kim /* 396a9f12690SJung-uk Kim * exoparg1 - ACPI AML execution, 1 operand 397a9f12690SJung-uk Kim */ 398a9f12690SJung-uk Kim ACPI_STATUS 399a9f12690SJung-uk Kim AcpiExOpcode_0A_0T_1R ( 400a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 401a9f12690SJung-uk Kim 402a9f12690SJung-uk Kim ACPI_STATUS 403a9f12690SJung-uk Kim AcpiExOpcode_1A_0T_0R ( 404a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 405a9f12690SJung-uk Kim 406a9f12690SJung-uk Kim ACPI_STATUS 407a9f12690SJung-uk Kim AcpiExOpcode_1A_0T_1R ( 408a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 409a9f12690SJung-uk Kim 410a9f12690SJung-uk Kim ACPI_STATUS 411a9f12690SJung-uk Kim AcpiExOpcode_1A_1T_1R ( 412a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 413a9f12690SJung-uk Kim 414a9f12690SJung-uk Kim ACPI_STATUS 415a9f12690SJung-uk Kim AcpiExOpcode_1A_1T_0R ( 416a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 417a9f12690SJung-uk Kim 418a9f12690SJung-uk Kim /* 419a9f12690SJung-uk Kim * exoparg2 - ACPI AML execution, 2 operands 420a9f12690SJung-uk Kim */ 421a9f12690SJung-uk Kim ACPI_STATUS 422a9f12690SJung-uk Kim AcpiExOpcode_2A_0T_0R ( 423a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 424a9f12690SJung-uk Kim 425a9f12690SJung-uk Kim ACPI_STATUS 426a9f12690SJung-uk Kim AcpiExOpcode_2A_0T_1R ( 427a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 428a9f12690SJung-uk Kim 429a9f12690SJung-uk Kim ACPI_STATUS 430a9f12690SJung-uk Kim AcpiExOpcode_2A_1T_1R ( 431a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 432a9f12690SJung-uk Kim 433a9f12690SJung-uk Kim ACPI_STATUS 434a9f12690SJung-uk Kim AcpiExOpcode_2A_2T_1R ( 435a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 436a9f12690SJung-uk Kim 437a9f12690SJung-uk Kim 438a9f12690SJung-uk Kim /* 439a9f12690SJung-uk Kim * exoparg3 - ACPI AML execution, 3 operands 440a9f12690SJung-uk Kim */ 441a9f12690SJung-uk Kim ACPI_STATUS 442a9f12690SJung-uk Kim AcpiExOpcode_3A_0T_0R ( 443a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 444a9f12690SJung-uk Kim 445a9f12690SJung-uk Kim ACPI_STATUS 446a9f12690SJung-uk Kim AcpiExOpcode_3A_1T_1R ( 447a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 448a9f12690SJung-uk Kim 449a9f12690SJung-uk Kim 450a9f12690SJung-uk Kim /* 451a9f12690SJung-uk Kim * exoparg6 - ACPI AML execution, 6 operands 452a9f12690SJung-uk Kim */ 453a9f12690SJung-uk Kim ACPI_STATUS 454a9f12690SJung-uk Kim AcpiExOpcode_6A_0T_1R ( 455a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 456a9f12690SJung-uk Kim 457a9f12690SJung-uk Kim 458a9f12690SJung-uk Kim /* 459a9f12690SJung-uk Kim * exresolv - Object resolution and get value functions 460a9f12690SJung-uk Kim */ 461a9f12690SJung-uk Kim ACPI_STATUS 462a9f12690SJung-uk Kim AcpiExResolveToValue ( 463a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **StackPtr, 464a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 465a9f12690SJung-uk Kim 466a9f12690SJung-uk Kim ACPI_STATUS 467a9f12690SJung-uk Kim AcpiExResolveMultiple ( 468a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState, 469a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Operand, 470a9f12690SJung-uk Kim ACPI_OBJECT_TYPE *ReturnType, 471a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ReturnDesc); 472a9f12690SJung-uk Kim 473a9f12690SJung-uk Kim 474a9f12690SJung-uk Kim /* 475a9f12690SJung-uk Kim * exresnte - resolve namespace node 476a9f12690SJung-uk Kim */ 477a9f12690SJung-uk Kim ACPI_STATUS 478a9f12690SJung-uk Kim AcpiExResolveNodeToValue ( 479a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE **StackPtr, 480a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 481a9f12690SJung-uk Kim 482a9f12690SJung-uk Kim 483a9f12690SJung-uk Kim /* 484a9f12690SJung-uk Kim * exresop - resolve operand to value 485a9f12690SJung-uk Kim */ 486a9f12690SJung-uk Kim ACPI_STATUS 487a9f12690SJung-uk Kim AcpiExResolveOperands ( 488a9f12690SJung-uk Kim UINT16 Opcode, 489a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **StackPtr, 490a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 491a9f12690SJung-uk Kim 492a9f12690SJung-uk Kim 493a9f12690SJung-uk Kim /* 494a9f12690SJung-uk Kim * exdump - Interpreter debug output routines 495a9f12690SJung-uk Kim */ 496a9f12690SJung-uk Kim void 497a9f12690SJung-uk Kim AcpiExDumpOperand ( 498a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 499a9f12690SJung-uk Kim UINT32 Depth); 500a9f12690SJung-uk Kim 501a9f12690SJung-uk Kim void 502a9f12690SJung-uk Kim AcpiExDumpOperands ( 503a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **Operands, 504a9f12690SJung-uk Kim const char *OpcodeName, 505a9f12690SJung-uk Kim UINT32 NumOpcodes); 506a9f12690SJung-uk Kim 507a9f12690SJung-uk Kim void 508a9f12690SJung-uk Kim AcpiExDumpObjectDescriptor ( 509a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object, 510a9f12690SJung-uk Kim UINT32 Flags); 511a9f12690SJung-uk Kim 512a9f12690SJung-uk Kim void 513a9f12690SJung-uk Kim AcpiExDumpNamespaceNode ( 514a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *Node, 515a9f12690SJung-uk Kim UINT32 Flags); 516a9f12690SJung-uk Kim 517a9f12690SJung-uk Kim 518a9f12690SJung-uk Kim /* 519a9f12690SJung-uk Kim * exnames - AML namestring support 520a9f12690SJung-uk Kim */ 521a9f12690SJung-uk Kim ACPI_STATUS 522a9f12690SJung-uk Kim AcpiExGetNameString ( 523a9f12690SJung-uk Kim ACPI_OBJECT_TYPE DataType, 524a9f12690SJung-uk Kim UINT8 *InAmlAddress, 525a9f12690SJung-uk Kim char **OutNameString, 526a9f12690SJung-uk Kim UINT32 *OutNameLength); 527a9f12690SJung-uk Kim 528a9f12690SJung-uk Kim 529a9f12690SJung-uk Kim /* 530a9f12690SJung-uk Kim * exstore - Object store support 531a9f12690SJung-uk Kim */ 532a9f12690SJung-uk Kim ACPI_STATUS 533a9f12690SJung-uk Kim AcpiExStore ( 534a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ValDesc, 535a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *DestDesc, 536a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 537a9f12690SJung-uk Kim 538a9f12690SJung-uk Kim ACPI_STATUS 539a9f12690SJung-uk Kim AcpiExStoreObjectToNode ( 540a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 541a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *Node, 542a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState, 543a9f12690SJung-uk Kim UINT8 ImplicitConversion); 544a9f12690SJung-uk Kim 545a9f12690SJung-uk Kim #define ACPI_IMPLICIT_CONVERSION TRUE 546a9f12690SJung-uk Kim #define ACPI_NO_IMPLICIT_CONVERSION FALSE 547a9f12690SJung-uk Kim 548a9f12690SJung-uk Kim 549a9f12690SJung-uk Kim /* 550a9f12690SJung-uk Kim * exstoren - resolve/store object 551a9f12690SJung-uk Kim */ 552a9f12690SJung-uk Kim ACPI_STATUS 553a9f12690SJung-uk Kim AcpiExResolveObject ( 554a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **SourceDescPtr, 555a9f12690SJung-uk Kim ACPI_OBJECT_TYPE TargetType, 556a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 557a9f12690SJung-uk Kim 558a9f12690SJung-uk Kim ACPI_STATUS 559a9f12690SJung-uk Kim AcpiExStoreObjectToObject ( 560a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 561a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *DestDesc, 562a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **NewDesc, 563a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 564a9f12690SJung-uk Kim 565a9f12690SJung-uk Kim 566a9f12690SJung-uk Kim /* 567a9f12690SJung-uk Kim * exstorob - store object - buffer/string 568a9f12690SJung-uk Kim */ 569a9f12690SJung-uk Kim ACPI_STATUS 570a9f12690SJung-uk Kim AcpiExStoreBufferToBuffer ( 571a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 572a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *TargetDesc); 573a9f12690SJung-uk Kim 574a9f12690SJung-uk Kim ACPI_STATUS 575a9f12690SJung-uk Kim AcpiExStoreStringToString ( 576a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 577a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *TargetDesc); 578a9f12690SJung-uk Kim 579a9f12690SJung-uk Kim 580a9f12690SJung-uk Kim /* 581a9f12690SJung-uk Kim * excopy - object copy 582a9f12690SJung-uk Kim */ 583a9f12690SJung-uk Kim ACPI_STATUS 584a9f12690SJung-uk Kim AcpiExCopyIntegerToIndexField ( 585a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 586a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *TargetDesc); 587a9f12690SJung-uk Kim 588a9f12690SJung-uk Kim ACPI_STATUS 589a9f12690SJung-uk Kim AcpiExCopyIntegerToBankField ( 590a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 591a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *TargetDesc); 592a9f12690SJung-uk Kim 593a9f12690SJung-uk Kim ACPI_STATUS 594a9f12690SJung-uk Kim AcpiExCopyDataToNamedField ( 595a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 596a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *Node); 597a9f12690SJung-uk Kim 598a9f12690SJung-uk Kim ACPI_STATUS 599a9f12690SJung-uk Kim AcpiExCopyIntegerToBufferField ( 600a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 601a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *TargetDesc); 602a9f12690SJung-uk Kim 603a9f12690SJung-uk Kim 604a9f12690SJung-uk Kim /* 605a9f12690SJung-uk Kim * exutils - interpreter/scanner utilities 606a9f12690SJung-uk Kim */ 607a9f12690SJung-uk Kim void 608a9f12690SJung-uk Kim AcpiExEnterInterpreter ( 609a9f12690SJung-uk Kim void); 610a9f12690SJung-uk Kim 611a9f12690SJung-uk Kim void 612a9f12690SJung-uk Kim AcpiExExitInterpreter ( 613a9f12690SJung-uk Kim void); 614a9f12690SJung-uk Kim 615a9f12690SJung-uk Kim void 616a9f12690SJung-uk Kim AcpiExReacquireInterpreter ( 617a9f12690SJung-uk Kim void); 618a9f12690SJung-uk Kim 619a9f12690SJung-uk Kim void 620a9f12690SJung-uk Kim AcpiExRelinquishInterpreter ( 621a9f12690SJung-uk Kim void); 622a9f12690SJung-uk Kim 623a9f12690SJung-uk Kim void 624a9f12690SJung-uk Kim AcpiExTruncateFor32bitTable ( 625a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc); 626a9f12690SJung-uk Kim 627a9f12690SJung-uk Kim void 628a9f12690SJung-uk Kim AcpiExAcquireGlobalLock ( 629a9f12690SJung-uk Kim UINT32 Rule); 630a9f12690SJung-uk Kim 631a9f12690SJung-uk Kim void 632a9f12690SJung-uk Kim AcpiExReleaseGlobalLock ( 633a9f12690SJung-uk Kim UINT32 Rule); 634a9f12690SJung-uk Kim 635a9f12690SJung-uk Kim void 636a9f12690SJung-uk Kim AcpiExEisaIdToString ( 637d6dd1baeSJung-uk Kim char *Dest, 6389a179dd8SJung-uk Kim UINT64 CompressedId); 639a9f12690SJung-uk Kim 640a9f12690SJung-uk Kim void 641d6dd1baeSJung-uk Kim AcpiExIntegerToString ( 642d6dd1baeSJung-uk Kim char *Dest, 6439a179dd8SJung-uk Kim UINT64 Value); 644a9f12690SJung-uk Kim 645a9f12690SJung-uk Kim 646a9f12690SJung-uk Kim /* 647a9f12690SJung-uk Kim * exregion - default OpRegion handlers 648a9f12690SJung-uk Kim */ 649a9f12690SJung-uk Kim ACPI_STATUS 650a9f12690SJung-uk Kim AcpiExSystemMemorySpaceHandler ( 651a9f12690SJung-uk Kim UINT32 Function, 652a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 653a9f12690SJung-uk Kim UINT32 BitWidth, 6549a179dd8SJung-uk Kim UINT64 *Value, 655a9f12690SJung-uk Kim void *HandlerContext, 656a9f12690SJung-uk Kim void *RegionContext); 657a9f12690SJung-uk Kim 658a9f12690SJung-uk Kim ACPI_STATUS 659a9f12690SJung-uk Kim AcpiExSystemIoSpaceHandler ( 660a9f12690SJung-uk Kim UINT32 Function, 661a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 662a9f12690SJung-uk Kim UINT32 BitWidth, 6639a179dd8SJung-uk Kim UINT64 *Value, 664a9f12690SJung-uk Kim void *HandlerContext, 665a9f12690SJung-uk Kim void *RegionContext); 666a9f12690SJung-uk Kim 667a9f12690SJung-uk Kim ACPI_STATUS 668a9f12690SJung-uk Kim AcpiExPciConfigSpaceHandler ( 669a9f12690SJung-uk Kim UINT32 Function, 670a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 671a9f12690SJung-uk Kim UINT32 BitWidth, 6729a179dd8SJung-uk Kim UINT64 *Value, 673a9f12690SJung-uk Kim void *HandlerContext, 674a9f12690SJung-uk Kim void *RegionContext); 675a9f12690SJung-uk Kim 676a9f12690SJung-uk Kim ACPI_STATUS 677a9f12690SJung-uk Kim AcpiExCmosSpaceHandler ( 678a9f12690SJung-uk Kim UINT32 Function, 679a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 680a9f12690SJung-uk Kim UINT32 BitWidth, 6819a179dd8SJung-uk Kim UINT64 *Value, 682a9f12690SJung-uk Kim void *HandlerContext, 683a9f12690SJung-uk Kim void *RegionContext); 684a9f12690SJung-uk Kim 685a9f12690SJung-uk Kim ACPI_STATUS 686a9f12690SJung-uk Kim AcpiExPciBarSpaceHandler ( 687a9f12690SJung-uk Kim UINT32 Function, 688a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 689a9f12690SJung-uk Kim UINT32 BitWidth, 6909a179dd8SJung-uk Kim UINT64 *Value, 691a9f12690SJung-uk Kim void *HandlerContext, 692a9f12690SJung-uk Kim void *RegionContext); 693a9f12690SJung-uk Kim 694a9f12690SJung-uk Kim ACPI_STATUS 695a9f12690SJung-uk Kim AcpiExEmbeddedControllerSpaceHandler ( 696a9f12690SJung-uk Kim UINT32 Function, 697a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 698a9f12690SJung-uk Kim UINT32 BitWidth, 6999a179dd8SJung-uk Kim UINT64 *Value, 700a9f12690SJung-uk Kim void *HandlerContext, 701a9f12690SJung-uk Kim void *RegionContext); 702a9f12690SJung-uk Kim 703a9f12690SJung-uk Kim ACPI_STATUS 704a9f12690SJung-uk Kim AcpiExSmBusSpaceHandler ( 705a9f12690SJung-uk Kim UINT32 Function, 706a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 707a9f12690SJung-uk Kim UINT32 BitWidth, 7089a179dd8SJung-uk Kim UINT64 *Value, 709a9f12690SJung-uk Kim void *HandlerContext, 710a9f12690SJung-uk Kim void *RegionContext); 711a9f12690SJung-uk Kim 712a9f12690SJung-uk Kim 713a9f12690SJung-uk Kim ACPI_STATUS 714a9f12690SJung-uk Kim AcpiExDataTableSpaceHandler ( 715a9f12690SJung-uk Kim UINT32 Function, 716a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 717a9f12690SJung-uk Kim UINT32 BitWidth, 7189a179dd8SJung-uk Kim UINT64 *Value, 719a9f12690SJung-uk Kim void *HandlerContext, 720a9f12690SJung-uk Kim void *RegionContext); 721a9f12690SJung-uk Kim 722a9f12690SJung-uk Kim #endif /* __INTERP_H__ */ 723