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