1a9f12690SJung-uk Kim /****************************************************************************** 2a9f12690SJung-uk Kim * 3a9f12690SJung-uk Kim * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures 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 _ACUTILS_H 45a9f12690SJung-uk Kim #define _ACUTILS_H 46a9f12690SJung-uk Kim 47a9f12690SJung-uk Kim 48a9f12690SJung-uk Kim extern const UINT8 AcpiGbl_ResourceAmlSizes[]; 493f0275a0SJung-uk Kim extern const UINT8 AcpiGbl_ResourceAmlSerialBusSizes[]; 50a9f12690SJung-uk Kim 51a9f12690SJung-uk Kim /* Strings used by the disassembler and debugger resource dump routines */ 52a9f12690SJung-uk Kim 53313a0c13SJung-uk Kim #if defined(ACPI_DEBUG_OUTPUT) || defined (ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER) 54a9f12690SJung-uk Kim 55a9f12690SJung-uk Kim extern const char *AcpiGbl_BmDecode[]; 56a9f12690SJung-uk Kim extern const char *AcpiGbl_ConfigDecode[]; 57a9f12690SJung-uk Kim extern const char *AcpiGbl_ConsumeDecode[]; 58a9f12690SJung-uk Kim extern const char *AcpiGbl_DecDecode[]; 59a9f12690SJung-uk Kim extern const char *AcpiGbl_HeDecode[]; 60a9f12690SJung-uk Kim extern const char *AcpiGbl_IoDecode[]; 61a9f12690SJung-uk Kim extern const char *AcpiGbl_LlDecode[]; 62a9f12690SJung-uk Kim extern const char *AcpiGbl_MaxDecode[]; 63a9f12690SJung-uk Kim extern const char *AcpiGbl_MemDecode[]; 64a9f12690SJung-uk Kim extern const char *AcpiGbl_MinDecode[]; 65a9f12690SJung-uk Kim extern const char *AcpiGbl_MtpDecode[]; 66a9f12690SJung-uk Kim extern const char *AcpiGbl_RngDecode[]; 67a9f12690SJung-uk Kim extern const char *AcpiGbl_RwDecode[]; 68a9f12690SJung-uk Kim extern const char *AcpiGbl_ShrDecode[]; 69a9f12690SJung-uk Kim extern const char *AcpiGbl_SizDecode[]; 70a9f12690SJung-uk Kim extern const char *AcpiGbl_TrsDecode[]; 71a9f12690SJung-uk Kim extern const char *AcpiGbl_TtpDecode[]; 72a9f12690SJung-uk Kim extern const char *AcpiGbl_TypDecode[]; 733f0275a0SJung-uk Kim extern const char *AcpiGbl_PpcDecode[]; 743f0275a0SJung-uk Kim extern const char *AcpiGbl_IorDecode[]; 753f0275a0SJung-uk Kim extern const char *AcpiGbl_DtsDecode[]; 763f0275a0SJung-uk Kim extern const char *AcpiGbl_CtDecode[]; 773f0275a0SJung-uk Kim extern const char *AcpiGbl_SbtDecode[]; 783f0275a0SJung-uk Kim extern const char *AcpiGbl_AmDecode[]; 793f0275a0SJung-uk Kim extern const char *AcpiGbl_SmDecode[]; 803f0275a0SJung-uk Kim extern const char *AcpiGbl_WmDecode[]; 813f0275a0SJung-uk Kim extern const char *AcpiGbl_CphDecode[]; 823f0275a0SJung-uk Kim extern const char *AcpiGbl_CpoDecode[]; 833f0275a0SJung-uk Kim extern const char *AcpiGbl_DpDecode[]; 843f0275a0SJung-uk Kim extern const char *AcpiGbl_EdDecode[]; 853f0275a0SJung-uk Kim extern const char *AcpiGbl_BpbDecode[]; 863f0275a0SJung-uk Kim extern const char *AcpiGbl_SbDecode[]; 873f0275a0SJung-uk Kim extern const char *AcpiGbl_FcDecode[]; 883f0275a0SJung-uk Kim extern const char *AcpiGbl_PtDecode[]; 89a9f12690SJung-uk Kim #endif 90a9f12690SJung-uk Kim 91a9d8d09cSJung-uk Kim /* 92a9d8d09cSJung-uk Kim * For the iASL compiler case, the output is redirected to stderr so that 93a9d8d09cSJung-uk Kim * any of the various ACPI errors and warnings do not appear in the output 94a9d8d09cSJung-uk Kim * files, for either the compiler or disassembler portions of the tool. 95a9d8d09cSJung-uk Kim */ 96a9d8d09cSJung-uk Kim #ifdef ACPI_ASL_COMPILER 97a9d8d09cSJung-uk Kim 98a9d8d09cSJung-uk Kim #include <stdio.h> 99a9d8d09cSJung-uk Kim 100a9d8d09cSJung-uk Kim #define ACPI_MSG_REDIRECT_BEGIN \ 101a9d8d09cSJung-uk Kim FILE *OutputFile = AcpiGbl_OutputFile; \ 102a9d8d09cSJung-uk Kim AcpiOsRedirectOutput (stderr); 103a9d8d09cSJung-uk Kim 104a9d8d09cSJung-uk Kim #define ACPI_MSG_REDIRECT_END \ 105a9d8d09cSJung-uk Kim AcpiOsRedirectOutput (OutputFile); 106a9d8d09cSJung-uk Kim 107a9d8d09cSJung-uk Kim #else 108a9d8d09cSJung-uk Kim /* 109a9d8d09cSJung-uk Kim * non-iASL case - no redirection, nothing to do 110a9d8d09cSJung-uk Kim */ 111a9d8d09cSJung-uk Kim #define ACPI_MSG_REDIRECT_BEGIN 112a9d8d09cSJung-uk Kim #define ACPI_MSG_REDIRECT_END 113a9d8d09cSJung-uk Kim #endif 114a9d8d09cSJung-uk Kim 115a9d8d09cSJung-uk Kim /* 116a9d8d09cSJung-uk Kim * Common error message prefixes 117a9d8d09cSJung-uk Kim */ 118a9d8d09cSJung-uk Kim #define ACPI_MSG_ERROR "ACPI Error: " 119a9d8d09cSJung-uk Kim #define ACPI_MSG_EXCEPTION "ACPI Exception: " 120a9d8d09cSJung-uk Kim #define ACPI_MSG_WARNING "ACPI Warning: " 121a9d8d09cSJung-uk Kim #define ACPI_MSG_INFO "ACPI: " 122a9d8d09cSJung-uk Kim 123a9d8d09cSJung-uk Kim #define ACPI_MSG_BIOS_ERROR "ACPI BIOS Error (bug): " 124a9d8d09cSJung-uk Kim #define ACPI_MSG_BIOS_WARNING "ACPI BIOS Warning (bug): " 125a9d8d09cSJung-uk Kim 126a9d8d09cSJung-uk Kim /* 127a9d8d09cSJung-uk Kim * Common message suffix 128a9d8d09cSJung-uk Kim */ 129a9d8d09cSJung-uk Kim #define ACPI_MSG_SUFFIX \ 130a9d8d09cSJung-uk Kim AcpiOsPrintf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, ModuleName, LineNumber) 131a9d8d09cSJung-uk Kim 132a9d8d09cSJung-uk Kim 133a9f12690SJung-uk Kim /* Types for Resource descriptor entries */ 134a9f12690SJung-uk Kim 135a9f12690SJung-uk Kim #define ACPI_INVALID_RESOURCE 0 136a9f12690SJung-uk Kim #define ACPI_FIXED_LENGTH 1 137a9f12690SJung-uk Kim #define ACPI_VARIABLE_LENGTH 2 138a9f12690SJung-uk Kim #define ACPI_SMALL_VARIABLE_LENGTH 3 139a9f12690SJung-uk Kim 140a9f12690SJung-uk Kim typedef 141a9f12690SJung-uk Kim ACPI_STATUS (*ACPI_WALK_AML_CALLBACK) ( 142a9f12690SJung-uk Kim UINT8 *Aml, 143a9f12690SJung-uk Kim UINT32 Length, 144a9f12690SJung-uk Kim UINT32 Offset, 145a9f12690SJung-uk Kim UINT8 ResourceIndex, 146efcc2a30SJung-uk Kim void **Context); 147a9f12690SJung-uk Kim 148a9f12690SJung-uk Kim typedef 149a9f12690SJung-uk Kim ACPI_STATUS (*ACPI_PKG_CALLBACK) ( 150a9f12690SJung-uk Kim UINT8 ObjectType, 151a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceObject, 152a9f12690SJung-uk Kim ACPI_GENERIC_STATE *State, 153a9f12690SJung-uk Kim void *Context); 154a9f12690SJung-uk Kim 155a9f12690SJung-uk Kim typedef struct acpi_pkg_info 156a9f12690SJung-uk Kim { 157a9f12690SJung-uk Kim UINT8 *FreeSpace; 158a9f12690SJung-uk Kim ACPI_SIZE Length; 159a9f12690SJung-uk Kim UINT32 ObjectSpace; 160a9f12690SJung-uk Kim UINT32 NumPackages; 161a9f12690SJung-uk Kim 162a9f12690SJung-uk Kim } ACPI_PKG_INFO; 163a9f12690SJung-uk Kim 1649c7c683cSJung-uk Kim /* Object reference counts */ 1659c7c683cSJung-uk Kim 166a9f12690SJung-uk Kim #define REF_INCREMENT (UINT16) 0 167a9f12690SJung-uk Kim #define REF_DECREMENT (UINT16) 1 168a9f12690SJung-uk Kim 169a9f12690SJung-uk Kim /* AcpiUtDumpBuffer */ 170a9f12690SJung-uk Kim 171a9f12690SJung-uk Kim #define DB_BYTE_DISPLAY 1 172a9f12690SJung-uk Kim #define DB_WORD_DISPLAY 2 173a9f12690SJung-uk Kim #define DB_DWORD_DISPLAY 4 174a9f12690SJung-uk Kim #define DB_QWORD_DISPLAY 8 175a9f12690SJung-uk Kim 176a9f12690SJung-uk Kim /* 177a9f12690SJung-uk Kim * utglobal - Global data structures and procedures 178a9f12690SJung-uk Kim */ 179a9f12690SJung-uk Kim ACPI_STATUS 180a9f12690SJung-uk Kim AcpiUtInitGlobals ( 181a9f12690SJung-uk Kim void); 182a9f12690SJung-uk Kim 183a9f12690SJung-uk Kim #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 184a9f12690SJung-uk Kim 185a9f12690SJung-uk Kim char * 186a9f12690SJung-uk Kim AcpiUtGetMutexName ( 187a9f12690SJung-uk Kim UINT32 MutexId); 188a9f12690SJung-uk Kim 189a9f12690SJung-uk Kim const char * 190a9f12690SJung-uk Kim AcpiUtGetNotifyName ( 191313a0c13SJung-uk Kim UINT32 NotifyValue, 192313a0c13SJung-uk Kim ACPI_OBJECT_TYPE Type); 193a9f12690SJung-uk Kim #endif 194a9f12690SJung-uk Kim 195a9f12690SJung-uk Kim char * 196a9f12690SJung-uk Kim AcpiUtGetTypeName ( 197a9f12690SJung-uk Kim ACPI_OBJECT_TYPE Type); 198a9f12690SJung-uk Kim 199a9f12690SJung-uk Kim char * 200a9f12690SJung-uk Kim AcpiUtGetNodeName ( 201a9f12690SJung-uk Kim void *Object); 202a9f12690SJung-uk Kim 203a9f12690SJung-uk Kim char * 204a9f12690SJung-uk Kim AcpiUtGetDescriptorName ( 205a9f12690SJung-uk Kim void *Object); 206a9f12690SJung-uk Kim 207a9f12690SJung-uk Kim const char * 208a9f12690SJung-uk Kim AcpiUtGetReferenceName ( 209a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 210a9f12690SJung-uk Kim 211a9f12690SJung-uk Kim char * 212a9f12690SJung-uk Kim AcpiUtGetObjectTypeName ( 213a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc); 214a9f12690SJung-uk Kim 215a9f12690SJung-uk Kim char * 216a9f12690SJung-uk Kim AcpiUtGetRegionName ( 217a9f12690SJung-uk Kim UINT8 SpaceId); 218a9f12690SJung-uk Kim 219a9f12690SJung-uk Kim char * 220a9f12690SJung-uk Kim AcpiUtGetEventName ( 221a9f12690SJung-uk Kim UINT32 EventId); 222a9f12690SJung-uk Kim 223a9f12690SJung-uk Kim char 224a9f12690SJung-uk Kim AcpiUtHexToAsciiChar ( 2259a179dd8SJung-uk Kim UINT64 Integer, 226a9f12690SJung-uk Kim UINT32 Position); 227a9f12690SJung-uk Kim 228313a0c13SJung-uk Kim UINT8 229313a0c13SJung-uk Kim AcpiUtAsciiCharToHex ( 230313a0c13SJung-uk Kim int HexChar); 231313a0c13SJung-uk Kim 232a9f12690SJung-uk Kim BOOLEAN 233a9f12690SJung-uk Kim AcpiUtValidObjectType ( 234a9f12690SJung-uk Kim ACPI_OBJECT_TYPE Type); 235a9f12690SJung-uk Kim 236a9f12690SJung-uk Kim 237a9f12690SJung-uk Kim /* 238a9f12690SJung-uk Kim * utinit - miscellaneous initialization and shutdown 239a9f12690SJung-uk Kim */ 240a9f12690SJung-uk Kim ACPI_STATUS 241a9f12690SJung-uk Kim AcpiUtHardwareInitialize ( 242a9f12690SJung-uk Kim void); 243a9f12690SJung-uk Kim 244a9f12690SJung-uk Kim void 245a9f12690SJung-uk Kim AcpiUtSubsystemShutdown ( 246a9f12690SJung-uk Kim void); 247a9f12690SJung-uk Kim 248a9f12690SJung-uk Kim 249a9f12690SJung-uk Kim #define ACPI_IS_ASCII(c) ((c) < 0x80) 250a9f12690SJung-uk Kim 251a9f12690SJung-uk Kim /* 252a9f12690SJung-uk Kim * utcopy - Object construction and conversion interfaces 253a9f12690SJung-uk Kim */ 254a9f12690SJung-uk Kim ACPI_STATUS 255a9f12690SJung-uk Kim AcpiUtBuildSimpleObject( 256a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 257a9f12690SJung-uk Kim ACPI_OBJECT *UserObj, 258a9f12690SJung-uk Kim UINT8 *DataSpace, 259a9f12690SJung-uk Kim UINT32 *BufferSpaceUsed); 260a9f12690SJung-uk Kim 261a9f12690SJung-uk Kim ACPI_STATUS 262a9f12690SJung-uk Kim AcpiUtBuildPackageObject ( 263a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 264a9f12690SJung-uk Kim UINT8 *Buffer, 265a9f12690SJung-uk Kim UINT32 *SpaceUsed); 266a9f12690SJung-uk Kim 267a9f12690SJung-uk Kim ACPI_STATUS 268a9f12690SJung-uk Kim AcpiUtCopyIobjectToEobject ( 269a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 270a9f12690SJung-uk Kim ACPI_BUFFER *RetBuffer); 271a9f12690SJung-uk Kim 272a9f12690SJung-uk Kim ACPI_STATUS 273a9f12690SJung-uk Kim AcpiUtCopyEobjectToIobject ( 274a9f12690SJung-uk Kim ACPI_OBJECT *Obj, 275a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **InternalObj); 276a9f12690SJung-uk Kim 277a9f12690SJung-uk Kim ACPI_STATUS 278a9f12690SJung-uk Kim AcpiUtCopyISimpleToIsimple ( 279a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceObj, 280a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *DestObj); 281a9f12690SJung-uk Kim 282a9f12690SJung-uk Kim ACPI_STATUS 283a9f12690SJung-uk Kim AcpiUtCopyIobjectToIobject ( 284a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 285a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **DestDesc, 286a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 287a9f12690SJung-uk Kim 288a9f12690SJung-uk Kim 289a9f12690SJung-uk Kim /* 290a9f12690SJung-uk Kim * utcreate - Object creation 291a9f12690SJung-uk Kim */ 292a9f12690SJung-uk Kim ACPI_STATUS 293a9f12690SJung-uk Kim AcpiUtUpdateObjectReference ( 294a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object, 295a9f12690SJung-uk Kim UINT16 Action); 296a9f12690SJung-uk Kim 297a9f12690SJung-uk Kim 298a9f12690SJung-uk Kim /* 299a9f12690SJung-uk Kim * utdebug - Debug interfaces 300a9f12690SJung-uk Kim */ 301a9f12690SJung-uk Kim void 302a9f12690SJung-uk Kim AcpiUtInitStackPtrTrace ( 303a9f12690SJung-uk Kim void); 304a9f12690SJung-uk Kim 305a9f12690SJung-uk Kim void 306a9f12690SJung-uk Kim AcpiUtTrackStackPtr ( 307a9f12690SJung-uk Kim void); 308a9f12690SJung-uk Kim 309a9f12690SJung-uk Kim void 310a9f12690SJung-uk Kim AcpiUtTrace ( 311a9f12690SJung-uk Kim UINT32 LineNumber, 312a9f12690SJung-uk Kim const char *FunctionName, 313a9f12690SJung-uk Kim const char *ModuleName, 314a9f12690SJung-uk Kim UINT32 ComponentId); 315a9f12690SJung-uk Kim 316a9f12690SJung-uk Kim void 317a9f12690SJung-uk Kim AcpiUtTracePtr ( 318a9f12690SJung-uk Kim UINT32 LineNumber, 319a9f12690SJung-uk Kim const char *FunctionName, 320a9f12690SJung-uk Kim const char *ModuleName, 321a9f12690SJung-uk Kim UINT32 ComponentId, 322a9f12690SJung-uk Kim void *Pointer); 323a9f12690SJung-uk Kim 324a9f12690SJung-uk Kim void 325a9f12690SJung-uk Kim AcpiUtTraceU32 ( 326a9f12690SJung-uk Kim UINT32 LineNumber, 327a9f12690SJung-uk Kim const char *FunctionName, 328a9f12690SJung-uk Kim const char *ModuleName, 329a9f12690SJung-uk Kim UINT32 ComponentId, 330a9f12690SJung-uk Kim UINT32 Integer); 331a9f12690SJung-uk Kim 332a9f12690SJung-uk Kim void 333a9f12690SJung-uk Kim AcpiUtTraceStr ( 334a9f12690SJung-uk Kim UINT32 LineNumber, 335a9f12690SJung-uk Kim const char *FunctionName, 336a9f12690SJung-uk Kim const char *ModuleName, 337a9f12690SJung-uk Kim UINT32 ComponentId, 338a9f12690SJung-uk Kim char *String); 339a9f12690SJung-uk Kim 340a9f12690SJung-uk Kim void 341a9f12690SJung-uk Kim AcpiUtExit ( 342a9f12690SJung-uk Kim UINT32 LineNumber, 343a9f12690SJung-uk Kim const char *FunctionName, 344a9f12690SJung-uk Kim const char *ModuleName, 345a9f12690SJung-uk Kim UINT32 ComponentId); 346a9f12690SJung-uk Kim 347a9f12690SJung-uk Kim void 348a9f12690SJung-uk Kim AcpiUtStatusExit ( 349a9f12690SJung-uk Kim UINT32 LineNumber, 350a9f12690SJung-uk Kim const char *FunctionName, 351a9f12690SJung-uk Kim const char *ModuleName, 352a9f12690SJung-uk Kim UINT32 ComponentId, 353a9f12690SJung-uk Kim ACPI_STATUS Status); 354a9f12690SJung-uk Kim 355a9f12690SJung-uk Kim void 356a9f12690SJung-uk Kim AcpiUtValueExit ( 357a9f12690SJung-uk Kim UINT32 LineNumber, 358a9f12690SJung-uk Kim const char *FunctionName, 359a9f12690SJung-uk Kim const char *ModuleName, 360a9f12690SJung-uk Kim UINT32 ComponentId, 3619a179dd8SJung-uk Kim UINT64 Value); 362a9f12690SJung-uk Kim 363a9f12690SJung-uk Kim void 364a9f12690SJung-uk Kim AcpiUtPtrExit ( 365a9f12690SJung-uk Kim UINT32 LineNumber, 366a9f12690SJung-uk Kim const char *FunctionName, 367a9f12690SJung-uk Kim const char *ModuleName, 368a9f12690SJung-uk Kim UINT32 ComponentId, 369a9f12690SJung-uk Kim UINT8 *Ptr); 370a9f12690SJung-uk Kim 371a9f12690SJung-uk Kim void 3728ef1a331SJung-uk Kim AcpiUtDebugDumpBuffer ( 373a9f12690SJung-uk Kim UINT8 *Buffer, 374a9f12690SJung-uk Kim UINT32 Count, 375a9f12690SJung-uk Kim UINT32 Display, 376f38b0f21SJung-uk Kim UINT32 ComponentId); 377a9f12690SJung-uk Kim 378a9f12690SJung-uk Kim void 3798ef1a331SJung-uk Kim AcpiUtDumpBuffer ( 380a9f12690SJung-uk Kim UINT8 *Buffer, 381a9f12690SJung-uk Kim UINT32 Count, 3828ef1a331SJung-uk Kim UINT32 Display, 3838ef1a331SJung-uk Kim UINT32 Offset); 384a9f12690SJung-uk Kim 385313a0c13SJung-uk Kim #ifdef ACPI_APPLICATION 386313a0c13SJung-uk Kim void 387313a0c13SJung-uk Kim AcpiUtDumpBufferToFile ( 388313a0c13SJung-uk Kim ACPI_FILE File, 389313a0c13SJung-uk Kim UINT8 *Buffer, 390313a0c13SJung-uk Kim UINT32 Count, 391313a0c13SJung-uk Kim UINT32 Display, 392313a0c13SJung-uk Kim UINT32 BaseOffset); 393313a0c13SJung-uk Kim #endif 394313a0c13SJung-uk Kim 395a9f12690SJung-uk Kim void 396a9f12690SJung-uk Kim AcpiUtReportError ( 397a9f12690SJung-uk Kim char *ModuleName, 398a9f12690SJung-uk Kim UINT32 LineNumber); 399a9f12690SJung-uk Kim 400a9f12690SJung-uk Kim void 401a9f12690SJung-uk Kim AcpiUtReportInfo ( 402a9f12690SJung-uk Kim char *ModuleName, 403a9f12690SJung-uk Kim UINT32 LineNumber); 404a9f12690SJung-uk Kim 405a9f12690SJung-uk Kim void 406a9f12690SJung-uk Kim AcpiUtReportWarning ( 407a9f12690SJung-uk Kim char *ModuleName, 408a9f12690SJung-uk Kim UINT32 LineNumber); 409a9f12690SJung-uk Kim 410a9f12690SJung-uk Kim /* 411a9f12690SJung-uk Kim * utdelete - Object deletion and reference counts 412a9f12690SJung-uk Kim */ 413a9f12690SJung-uk Kim void 414a9f12690SJung-uk Kim AcpiUtAddReference ( 415a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 416a9f12690SJung-uk Kim 417a9f12690SJung-uk Kim void 418a9f12690SJung-uk Kim AcpiUtRemoveReference ( 419a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 420a9f12690SJung-uk Kim 421a9f12690SJung-uk Kim void 422a9f12690SJung-uk Kim AcpiUtDeleteInternalPackageObject ( 423a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 424a9f12690SJung-uk Kim 425a9f12690SJung-uk Kim void 426a9f12690SJung-uk Kim AcpiUtDeleteInternalSimpleObject ( 427a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 428a9f12690SJung-uk Kim 429a9f12690SJung-uk Kim void 430a9f12690SJung-uk Kim AcpiUtDeleteInternalObjectList ( 431a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ObjList); 432a9f12690SJung-uk Kim 433a9f12690SJung-uk Kim 434a9f12690SJung-uk Kim /* 435a9f12690SJung-uk Kim * uteval - object evaluation 436a9f12690SJung-uk Kim */ 437a9f12690SJung-uk Kim ACPI_STATUS 438a9f12690SJung-uk Kim AcpiUtEvaluateObject ( 439a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *PrefixNode, 440a9f12690SJung-uk Kim char *Path, 441a9f12690SJung-uk Kim UINT32 ExpectedReturnBtypes, 442a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ReturnDesc); 443a9f12690SJung-uk Kim 444a9f12690SJung-uk Kim ACPI_STATUS 445a9f12690SJung-uk Kim AcpiUtEvaluateNumericObject ( 446a9f12690SJung-uk Kim char *ObjectName, 447a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 4489a179dd8SJung-uk Kim UINT64 *Value); 449a9f12690SJung-uk Kim 450a9f12690SJung-uk Kim ACPI_STATUS 451a9f12690SJung-uk Kim AcpiUtExecute_STA ( 452a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 453a9f12690SJung-uk Kim UINT32 *StatusFlags); 454a9f12690SJung-uk Kim 455a9f12690SJung-uk Kim ACPI_STATUS 456d6dd1baeSJung-uk Kim AcpiUtExecutePowerMethods ( 457a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 458d6dd1baeSJung-uk Kim const char **MethodNames, 459d6dd1baeSJung-uk Kim UINT8 MethodCount, 460d6dd1baeSJung-uk Kim UINT8 *OutValues); 461d6dd1baeSJung-uk Kim 462d6dd1baeSJung-uk Kim 463d6dd1baeSJung-uk Kim /* 464313a0c13SJung-uk Kim * utfileio - file operations 465313a0c13SJung-uk Kim */ 466313a0c13SJung-uk Kim #ifdef ACPI_APPLICATION 467313a0c13SJung-uk Kim ACPI_STATUS 468313a0c13SJung-uk Kim AcpiUtReadTableFromFile ( 469313a0c13SJung-uk Kim char *Filename, 470313a0c13SJung-uk Kim ACPI_TABLE_HEADER **Table); 471313a0c13SJung-uk Kim #endif 472313a0c13SJung-uk Kim 473313a0c13SJung-uk Kim 474313a0c13SJung-uk Kim /* 475d6dd1baeSJung-uk Kim * utids - device ID support 476d6dd1baeSJung-uk Kim */ 477d6dd1baeSJung-uk Kim ACPI_STATUS 478d6dd1baeSJung-uk Kim AcpiUtExecute_HID ( 479d6dd1baeSJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 4808ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID **ReturnId); 481a9f12690SJung-uk Kim 482a9f12690SJung-uk Kim ACPI_STATUS 483d6dd1baeSJung-uk Kim AcpiUtExecute_UID ( 484a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 4858ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID **ReturnId); 4868ef1a331SJung-uk Kim 4878ef1a331SJung-uk Kim ACPI_STATUS 4888ef1a331SJung-uk Kim AcpiUtExecute_SUB ( 4898ef1a331SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 4908ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID **ReturnId); 491d6dd1baeSJung-uk Kim 492d6dd1baeSJung-uk Kim ACPI_STATUS 493d6dd1baeSJung-uk Kim AcpiUtExecute_CID ( 494d6dd1baeSJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 4958ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID_LIST **ReturnCidList); 496d6dd1baeSJung-uk Kim 497*5ef50723SJung-uk Kim ACPI_STATUS 498*5ef50723SJung-uk Kim AcpiUtExecute_CLS ( 499*5ef50723SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 500*5ef50723SJung-uk Kim ACPI_PNP_DEVICE_ID **ReturnId); 501*5ef50723SJung-uk Kim 502a9f12690SJung-uk Kim 503a9f12690SJung-uk Kim /* 504a9f12690SJung-uk Kim * utlock - reader/writer locks 505a9f12690SJung-uk Kim */ 506a9f12690SJung-uk Kim ACPI_STATUS 507a9f12690SJung-uk Kim AcpiUtCreateRwLock ( 508a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 509a9f12690SJung-uk Kim 510a9f12690SJung-uk Kim void 511a9f12690SJung-uk Kim AcpiUtDeleteRwLock ( 512a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 513a9f12690SJung-uk Kim 514a9f12690SJung-uk Kim ACPI_STATUS 515a9f12690SJung-uk Kim AcpiUtAcquireReadLock ( 516a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 517a9f12690SJung-uk Kim 518a9f12690SJung-uk Kim ACPI_STATUS 519a9f12690SJung-uk Kim AcpiUtReleaseReadLock ( 520a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 521a9f12690SJung-uk Kim 522a9f12690SJung-uk Kim ACPI_STATUS 523a9f12690SJung-uk Kim AcpiUtAcquireWriteLock ( 524a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 525a9f12690SJung-uk Kim 526a9f12690SJung-uk Kim void 527a9f12690SJung-uk Kim AcpiUtReleaseWriteLock ( 528a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 529a9f12690SJung-uk Kim 530a9f12690SJung-uk Kim 531a9f12690SJung-uk Kim /* 532a9f12690SJung-uk Kim * utobject - internal object create/delete/cache routines 533a9f12690SJung-uk Kim */ 534a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 535a9f12690SJung-uk Kim AcpiUtCreateInternalObjectDbg ( 536a9f12690SJung-uk Kim const char *ModuleName, 537a9f12690SJung-uk Kim UINT32 LineNumber, 538a9f12690SJung-uk Kim UINT32 ComponentId, 539a9f12690SJung-uk Kim ACPI_OBJECT_TYPE Type); 540a9f12690SJung-uk Kim 541a9f12690SJung-uk Kim void * 542a9f12690SJung-uk Kim AcpiUtAllocateObjectDescDbg ( 543a9f12690SJung-uk Kim const char *ModuleName, 544a9f12690SJung-uk Kim UINT32 LineNumber, 545a9f12690SJung-uk Kim UINT32 ComponentId); 546a9f12690SJung-uk Kim 547a9f12690SJung-uk Kim #define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t) 548a9f12690SJung-uk Kim #define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT) 549a9f12690SJung-uk Kim 550a9f12690SJung-uk Kim void 551a9f12690SJung-uk Kim AcpiUtDeleteObjectDesc ( 552a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 553a9f12690SJung-uk Kim 554a9f12690SJung-uk Kim BOOLEAN 555a9f12690SJung-uk Kim AcpiUtValidInternalObject ( 556a9f12690SJung-uk Kim void *Object); 557a9f12690SJung-uk Kim 558a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 559a9f12690SJung-uk Kim AcpiUtCreatePackageObject ( 560a9f12690SJung-uk Kim UINT32 Count); 561a9f12690SJung-uk Kim 562a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 5632272d050SJung-uk Kim AcpiUtCreateIntegerObject ( 5642272d050SJung-uk Kim UINT64 Value); 5652272d050SJung-uk Kim 5662272d050SJung-uk Kim ACPI_OPERAND_OBJECT * 567a9f12690SJung-uk Kim AcpiUtCreateBufferObject ( 568a9f12690SJung-uk Kim ACPI_SIZE BufferSize); 569a9f12690SJung-uk Kim 570a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 571a9f12690SJung-uk Kim AcpiUtCreateStringObject ( 572a9f12690SJung-uk Kim ACPI_SIZE StringSize); 573a9f12690SJung-uk Kim 574a9f12690SJung-uk Kim ACPI_STATUS 575a9f12690SJung-uk Kim AcpiUtGetObjectSize( 576a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 577a9f12690SJung-uk Kim ACPI_SIZE *ObjLength); 578a9f12690SJung-uk Kim 579a9f12690SJung-uk Kim 580a9f12690SJung-uk Kim /* 581709fac06SJung-uk Kim * utosi - Support for the _OSI predefined control method 582709fac06SJung-uk Kim */ 583709fac06SJung-uk Kim ACPI_STATUS 584709fac06SJung-uk Kim AcpiUtInitializeInterfaces ( 585709fac06SJung-uk Kim void); 586709fac06SJung-uk Kim 5879c7c683cSJung-uk Kim ACPI_STATUS 588709fac06SJung-uk Kim AcpiUtInterfaceTerminate ( 589709fac06SJung-uk Kim void); 590709fac06SJung-uk Kim 591709fac06SJung-uk Kim ACPI_STATUS 592709fac06SJung-uk Kim AcpiUtInstallInterface ( 593709fac06SJung-uk Kim ACPI_STRING InterfaceName); 594709fac06SJung-uk Kim 595709fac06SJung-uk Kim ACPI_STATUS 596709fac06SJung-uk Kim AcpiUtRemoveInterface ( 597709fac06SJung-uk Kim ACPI_STRING InterfaceName); 598709fac06SJung-uk Kim 599bf6fac21SJung-uk Kim ACPI_STATUS 600bf6fac21SJung-uk Kim AcpiUtUpdateInterfaces ( 601bf6fac21SJung-uk Kim UINT8 Action); 602bf6fac21SJung-uk Kim 603709fac06SJung-uk Kim ACPI_INTERFACE_INFO * 604709fac06SJung-uk Kim AcpiUtGetInterface ( 605709fac06SJung-uk Kim ACPI_STRING InterfaceName); 606709fac06SJung-uk Kim 607709fac06SJung-uk Kim ACPI_STATUS 608709fac06SJung-uk Kim AcpiUtOsiImplementation ( 609709fac06SJung-uk Kim ACPI_WALK_STATE *WalkState); 610709fac06SJung-uk Kim 611709fac06SJung-uk Kim 612709fac06SJung-uk Kim /* 6139c7c683cSJung-uk Kim * utpredef - support for predefined names 6149c7c683cSJung-uk Kim */ 6159c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO * 6169c7c683cSJung-uk Kim AcpiUtGetNextPredefinedMethod ( 6179c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO *ThisName); 6189c7c683cSJung-uk Kim 6199c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO * 6209c7c683cSJung-uk Kim AcpiUtMatchPredefinedMethod ( 6219c7c683cSJung-uk Kim char *Name); 6229c7c683cSJung-uk Kim 6237cf3e94aSJung-uk Kim void 6247cf3e94aSJung-uk Kim AcpiUtGetExpectedReturnTypes ( 6257cf3e94aSJung-uk Kim char *Buffer, 6267cf3e94aSJung-uk Kim UINT32 ExpectedBtypes); 6277cf3e94aSJung-uk Kim 6287cf3e94aSJung-uk Kim #if (defined ACPI_ASL_COMPILER || defined ACPI_HELP_APP) 6299c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO * 6309c7c683cSJung-uk Kim AcpiUtMatchResourceName ( 6319c7c683cSJung-uk Kim char *Name); 6329c7c683cSJung-uk Kim 6339c7c683cSJung-uk Kim void 6349c7c683cSJung-uk Kim AcpiUtDisplayPredefinedMethod ( 6359c7c683cSJung-uk Kim char *Buffer, 6369c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO *ThisName, 6379c7c683cSJung-uk Kim BOOLEAN MultiLine); 6389c7c683cSJung-uk Kim 6399c7c683cSJung-uk Kim UINT32 6409c7c683cSJung-uk Kim AcpiUtGetResourceBitWidth ( 6419c7c683cSJung-uk Kim char *Buffer, 6429c7c683cSJung-uk Kim UINT16 Types); 6437cf3e94aSJung-uk Kim #endif 6449c7c683cSJung-uk Kim 6459c7c683cSJung-uk Kim 6469c7c683cSJung-uk Kim /* 647a9f12690SJung-uk Kim * utstate - Generic state creation/cache routines 648a9f12690SJung-uk Kim */ 649a9f12690SJung-uk Kim void 650a9f12690SJung-uk Kim AcpiUtPushGenericState ( 651a9f12690SJung-uk Kim ACPI_GENERIC_STATE **ListHead, 652a9f12690SJung-uk Kim ACPI_GENERIC_STATE *State); 653a9f12690SJung-uk Kim 654a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 655a9f12690SJung-uk Kim AcpiUtPopGenericState ( 656a9f12690SJung-uk Kim ACPI_GENERIC_STATE **ListHead); 657a9f12690SJung-uk Kim 658a9f12690SJung-uk Kim 659a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 660a9f12690SJung-uk Kim AcpiUtCreateGenericState ( 661a9f12690SJung-uk Kim void); 662a9f12690SJung-uk Kim 663a9f12690SJung-uk Kim ACPI_THREAD_STATE * 664a9f12690SJung-uk Kim AcpiUtCreateThreadState ( 665a9f12690SJung-uk Kim void); 666a9f12690SJung-uk Kim 667a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 668a9f12690SJung-uk Kim AcpiUtCreateUpdateState ( 669a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object, 670a9f12690SJung-uk Kim UINT16 Action); 671a9f12690SJung-uk Kim 672a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 673a9f12690SJung-uk Kim AcpiUtCreatePkgState ( 674a9f12690SJung-uk Kim void *InternalObject, 675a9f12690SJung-uk Kim void *ExternalObject, 676a9f12690SJung-uk Kim UINT16 Index); 677a9f12690SJung-uk Kim 678a9f12690SJung-uk Kim ACPI_STATUS 679a9f12690SJung-uk Kim AcpiUtCreateUpdateStateAndPush ( 680a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object, 681a9f12690SJung-uk Kim UINT16 Action, 682a9f12690SJung-uk Kim ACPI_GENERIC_STATE **StateList); 683a9f12690SJung-uk Kim 684a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 685a9f12690SJung-uk Kim AcpiUtCreateControlState ( 686a9f12690SJung-uk Kim void); 687a9f12690SJung-uk Kim 688a9f12690SJung-uk Kim void 689a9f12690SJung-uk Kim AcpiUtDeleteGenericState ( 690a9f12690SJung-uk Kim ACPI_GENERIC_STATE *State); 691a9f12690SJung-uk Kim 692a9f12690SJung-uk Kim 693a9f12690SJung-uk Kim /* 694a9f12690SJung-uk Kim * utmath 695a9f12690SJung-uk Kim */ 696a9f12690SJung-uk Kim ACPI_STATUS 697a9f12690SJung-uk Kim AcpiUtDivide ( 6989a179dd8SJung-uk Kim UINT64 InDividend, 6999a179dd8SJung-uk Kim UINT64 InDivisor, 7009a179dd8SJung-uk Kim UINT64 *OutQuotient, 7019a179dd8SJung-uk Kim UINT64 *OutRemainder); 702a9f12690SJung-uk Kim 703a9f12690SJung-uk Kim ACPI_STATUS 704a9f12690SJung-uk Kim AcpiUtShortDivide ( 7059a179dd8SJung-uk Kim UINT64 InDividend, 706a9f12690SJung-uk Kim UINT32 Divisor, 7079a179dd8SJung-uk Kim UINT64 *OutQuotient, 708a9f12690SJung-uk Kim UINT32 *OutRemainder); 709a9f12690SJung-uk Kim 7109c48c75eSJung-uk Kim 711a9f12690SJung-uk Kim /* 712a9f12690SJung-uk Kim * utmisc 713a9f12690SJung-uk Kim */ 7149c48c75eSJung-uk Kim const ACPI_EXCEPTION_INFO * 715a9f12690SJung-uk Kim AcpiUtValidateException ( 716a9f12690SJung-uk Kim ACPI_STATUS Status); 717a9f12690SJung-uk Kim 718a9f12690SJung-uk Kim BOOLEAN 719d6dd1baeSJung-uk Kim AcpiUtIsPciRootBridge ( 720d6dd1baeSJung-uk Kim char *Id); 721d6dd1baeSJung-uk Kim 7227cf3e94aSJung-uk Kim #if (defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP) 723d6dd1baeSJung-uk Kim BOOLEAN 724a9f12690SJung-uk Kim AcpiUtIsAmlTable ( 725a9f12690SJung-uk Kim ACPI_TABLE_HEADER *Table); 7267cf3e94aSJung-uk Kim #endif 727a9f12690SJung-uk Kim 728a9f12690SJung-uk Kim ACPI_STATUS 729a9f12690SJung-uk Kim AcpiUtWalkPackageTree ( 730a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceObject, 731a9f12690SJung-uk Kim void *TargetObject, 732a9f12690SJung-uk Kim ACPI_PKG_CALLBACK WalkCallback, 733a9f12690SJung-uk Kim void *Context); 734a9f12690SJung-uk Kim 735a9f12690SJung-uk Kim 736a9f12690SJung-uk Kim /* Values for Base above (16=Hex, 10=Decimal) */ 737a9f12690SJung-uk Kim 738a9f12690SJung-uk Kim #define ACPI_ANY_BASE 0 739a9f12690SJung-uk Kim 740a9f12690SJung-uk Kim UINT32 741a9f12690SJung-uk Kim AcpiUtDwordByteSwap ( 742a9f12690SJung-uk Kim UINT32 Value); 743a9f12690SJung-uk Kim 744a9f12690SJung-uk Kim void 745a9f12690SJung-uk Kim AcpiUtSetIntegerWidth ( 746a9f12690SJung-uk Kim UINT8 Revision); 747a9f12690SJung-uk Kim 748a9f12690SJung-uk Kim #ifdef ACPI_DEBUG_OUTPUT 749a9f12690SJung-uk Kim void 750a9f12690SJung-uk Kim AcpiUtDisplayInitPathname ( 751a9f12690SJung-uk Kim UINT8 Type, 752a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *ObjHandle, 753a9f12690SJung-uk Kim char *Path); 754a9f12690SJung-uk Kim #endif 755a9f12690SJung-uk Kim 756a9f12690SJung-uk Kim 757a9f12690SJung-uk Kim /* 758efcc2a30SJung-uk Kim * utownerid - Support for Table/Method Owner IDs 759efcc2a30SJung-uk Kim */ 760efcc2a30SJung-uk Kim ACPI_STATUS 761efcc2a30SJung-uk Kim AcpiUtAllocateOwnerId ( 762efcc2a30SJung-uk Kim ACPI_OWNER_ID *OwnerId); 763efcc2a30SJung-uk Kim 764efcc2a30SJung-uk Kim void 765efcc2a30SJung-uk Kim AcpiUtReleaseOwnerId ( 766efcc2a30SJung-uk Kim ACPI_OWNER_ID *OwnerId); 767efcc2a30SJung-uk Kim 768efcc2a30SJung-uk Kim 769efcc2a30SJung-uk Kim /* 770a9f12690SJung-uk Kim * utresrc 771a9f12690SJung-uk Kim */ 772a9f12690SJung-uk Kim ACPI_STATUS 773a9f12690SJung-uk Kim AcpiUtWalkAmlResources ( 774ed17e06eSJung-uk Kim ACPI_WALK_STATE *WalkState, 775a9f12690SJung-uk Kim UINT8 *Aml, 776a9f12690SJung-uk Kim ACPI_SIZE AmlLength, 777a9f12690SJung-uk Kim ACPI_WALK_AML_CALLBACK UserFunction, 778efcc2a30SJung-uk Kim void **Context); 779a9f12690SJung-uk Kim 780a9f12690SJung-uk Kim ACPI_STATUS 781a9f12690SJung-uk Kim AcpiUtValidateResource ( 782ed17e06eSJung-uk Kim ACPI_WALK_STATE *WalkState, 783a9f12690SJung-uk Kim void *Aml, 784a9f12690SJung-uk Kim UINT8 *ReturnIndex); 785a9f12690SJung-uk Kim 786a9f12690SJung-uk Kim UINT32 787a9f12690SJung-uk Kim AcpiUtGetDescriptorLength ( 788a9f12690SJung-uk Kim void *Aml); 789a9f12690SJung-uk Kim 790a9f12690SJung-uk Kim UINT16 791a9f12690SJung-uk Kim AcpiUtGetResourceLength ( 792a9f12690SJung-uk Kim void *Aml); 793a9f12690SJung-uk Kim 794a9f12690SJung-uk Kim UINT8 795a9f12690SJung-uk Kim AcpiUtGetResourceHeaderLength ( 796a9f12690SJung-uk Kim void *Aml); 797a9f12690SJung-uk Kim 798a9f12690SJung-uk Kim UINT8 799a9f12690SJung-uk Kim AcpiUtGetResourceType ( 800a9f12690SJung-uk Kim void *Aml); 801a9f12690SJung-uk Kim 802a9f12690SJung-uk Kim ACPI_STATUS 803a9f12690SJung-uk Kim AcpiUtGetResourceEndTag ( 804a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 805a9f12690SJung-uk Kim UINT8 **EndTag); 806a9f12690SJung-uk Kim 807a9f12690SJung-uk Kim 808a9f12690SJung-uk Kim /* 809efcc2a30SJung-uk Kim * utstring - String and character utilities 810efcc2a30SJung-uk Kim */ 811efcc2a30SJung-uk Kim void 812efcc2a30SJung-uk Kim AcpiUtStrupr ( 813efcc2a30SJung-uk Kim char *SrcString); 814efcc2a30SJung-uk Kim 8157cf3e94aSJung-uk Kim #ifdef ACPI_ASL_COMPILER 816efcc2a30SJung-uk Kim void 817efcc2a30SJung-uk Kim AcpiUtStrlwr ( 818efcc2a30SJung-uk Kim char *SrcString); 819efcc2a30SJung-uk Kim 820efcc2a30SJung-uk Kim int 821efcc2a30SJung-uk Kim AcpiUtStricmp ( 822efcc2a30SJung-uk Kim char *String1, 823efcc2a30SJung-uk Kim char *String2); 8247cf3e94aSJung-uk Kim #endif 825efcc2a30SJung-uk Kim 826efcc2a30SJung-uk Kim ACPI_STATUS 827efcc2a30SJung-uk Kim AcpiUtStrtoul64 ( 828efcc2a30SJung-uk Kim char *String, 829efcc2a30SJung-uk Kim UINT32 Base, 830efcc2a30SJung-uk Kim UINT64 *RetInteger); 831efcc2a30SJung-uk Kim 832efcc2a30SJung-uk Kim void 833efcc2a30SJung-uk Kim AcpiUtPrintString ( 834efcc2a30SJung-uk Kim char *String, 8358d744e47SJung-uk Kim UINT16 MaxLength); 836efcc2a30SJung-uk Kim 8377cf3e94aSJung-uk Kim #if defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP 838efcc2a30SJung-uk Kim void 839efcc2a30SJung-uk Kim UtConvertBackslashes ( 840efcc2a30SJung-uk Kim char *Pathname); 8417cf3e94aSJung-uk Kim #endif 842efcc2a30SJung-uk Kim 843efcc2a30SJung-uk Kim BOOLEAN 844efcc2a30SJung-uk Kim AcpiUtValidAcpiName ( 845a9d8d09cSJung-uk Kim char *Name); 846efcc2a30SJung-uk Kim 847efcc2a30SJung-uk Kim BOOLEAN 848efcc2a30SJung-uk Kim AcpiUtValidAcpiChar ( 849efcc2a30SJung-uk Kim char Character, 850efcc2a30SJung-uk Kim UINT32 Position); 851efcc2a30SJung-uk Kim 852efcc2a30SJung-uk Kim void 853efcc2a30SJung-uk Kim AcpiUtRepairName ( 854efcc2a30SJung-uk Kim char *Name); 855efcc2a30SJung-uk Kim 856313a0c13SJung-uk Kim #if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION) 857313a0c13SJung-uk Kim BOOLEAN 858313a0c13SJung-uk Kim AcpiUtSafeStrcpy ( 859313a0c13SJung-uk Kim char *Dest, 860313a0c13SJung-uk Kim ACPI_SIZE DestSize, 861313a0c13SJung-uk Kim char *Source); 862313a0c13SJung-uk Kim 863313a0c13SJung-uk Kim BOOLEAN 864313a0c13SJung-uk Kim AcpiUtSafeStrcat ( 865313a0c13SJung-uk Kim char *Dest, 866313a0c13SJung-uk Kim ACPI_SIZE DestSize, 867313a0c13SJung-uk Kim char *Source); 868313a0c13SJung-uk Kim 869313a0c13SJung-uk Kim #ifndef _KERNEL 870313a0c13SJung-uk Kim BOOLEAN 871313a0c13SJung-uk Kim AcpiUtSafeStrncat ( 872313a0c13SJung-uk Kim char *Dest, 873313a0c13SJung-uk Kim ACPI_SIZE DestSize, 874313a0c13SJung-uk Kim char *Source, 875313a0c13SJung-uk Kim ACPI_SIZE MaxTransferLength); 876313a0c13SJung-uk Kim #endif 877313a0c13SJung-uk Kim #endif 878313a0c13SJung-uk Kim 879efcc2a30SJung-uk Kim 880efcc2a30SJung-uk Kim /* 881a9f12690SJung-uk Kim * utmutex - mutex support 882a9f12690SJung-uk Kim */ 883a9f12690SJung-uk Kim ACPI_STATUS 884a9f12690SJung-uk Kim AcpiUtMutexInitialize ( 885a9f12690SJung-uk Kim void); 886a9f12690SJung-uk Kim 887a9f12690SJung-uk Kim void 888a9f12690SJung-uk Kim AcpiUtMutexTerminate ( 889a9f12690SJung-uk Kim void); 890a9f12690SJung-uk Kim 891a9f12690SJung-uk Kim ACPI_STATUS 892a9f12690SJung-uk Kim AcpiUtAcquireMutex ( 893a9f12690SJung-uk Kim ACPI_MUTEX_HANDLE MutexId); 894a9f12690SJung-uk Kim 895a9f12690SJung-uk Kim ACPI_STATUS 896a9f12690SJung-uk Kim AcpiUtReleaseMutex ( 897a9f12690SJung-uk Kim ACPI_MUTEX_HANDLE MutexId); 898a9f12690SJung-uk Kim 899a9f12690SJung-uk Kim 900a9f12690SJung-uk Kim /* 901a9f12690SJung-uk Kim * utalloc - memory allocation and object caching 902a9f12690SJung-uk Kim */ 903a9f12690SJung-uk Kim ACPI_STATUS 904a9f12690SJung-uk Kim AcpiUtCreateCaches ( 905a9f12690SJung-uk Kim void); 906a9f12690SJung-uk Kim 907a9f12690SJung-uk Kim ACPI_STATUS 908a9f12690SJung-uk Kim AcpiUtDeleteCaches ( 909a9f12690SJung-uk Kim void); 910a9f12690SJung-uk Kim 911a9f12690SJung-uk Kim ACPI_STATUS 912a9f12690SJung-uk Kim AcpiUtValidateBuffer ( 913a9f12690SJung-uk Kim ACPI_BUFFER *Buffer); 914a9f12690SJung-uk Kim 915a9f12690SJung-uk Kim ACPI_STATUS 916a9f12690SJung-uk Kim AcpiUtInitializeBuffer ( 917a9f12690SJung-uk Kim ACPI_BUFFER *Buffer, 918a9f12690SJung-uk Kim ACPI_SIZE RequiredLength); 919a9f12690SJung-uk Kim 920a9f12690SJung-uk Kim #ifdef ACPI_DBG_TRACK_ALLOCATIONS 921a9f12690SJung-uk Kim void * 922a9f12690SJung-uk Kim AcpiUtAllocateAndTrack ( 923a9f12690SJung-uk Kim ACPI_SIZE Size, 924a9f12690SJung-uk Kim UINT32 Component, 925a9f12690SJung-uk Kim const char *Module, 926a9f12690SJung-uk Kim UINT32 Line); 927a9f12690SJung-uk Kim 928a9f12690SJung-uk Kim void * 929a9f12690SJung-uk Kim AcpiUtAllocateZeroedAndTrack ( 930a9f12690SJung-uk Kim ACPI_SIZE Size, 931a9f12690SJung-uk Kim UINT32 Component, 932a9f12690SJung-uk Kim const char *Module, 933a9f12690SJung-uk Kim UINT32 Line); 934a9f12690SJung-uk Kim 935a9f12690SJung-uk Kim void 936a9f12690SJung-uk Kim AcpiUtFreeAndTrack ( 937a9f12690SJung-uk Kim void *Address, 938a9f12690SJung-uk Kim UINT32 Component, 939a9f12690SJung-uk Kim const char *Module, 940a9f12690SJung-uk Kim UINT32 Line); 941a9f12690SJung-uk Kim 942a9f12690SJung-uk Kim void 943a9f12690SJung-uk Kim AcpiUtDumpAllocationInfo ( 944a9f12690SJung-uk Kim void); 945a9f12690SJung-uk Kim 946a9f12690SJung-uk Kim void 947a9f12690SJung-uk Kim AcpiUtDumpAllocations ( 948a9f12690SJung-uk Kim UINT32 Component, 949a9f12690SJung-uk Kim const char *Module); 950a9f12690SJung-uk Kim 951a9f12690SJung-uk Kim ACPI_STATUS 952a9f12690SJung-uk Kim AcpiUtCreateList ( 953a9f12690SJung-uk Kim char *ListName, 954a9f12690SJung-uk Kim UINT16 ObjectSize, 955a9f12690SJung-uk Kim ACPI_MEMORY_LIST **ReturnCache); 956a9f12690SJung-uk Kim 95742fecd12SJung-uk Kim #endif /* ACPI_DBG_TRACK_ALLOCATIONS */ 958a9f12690SJung-uk Kim 959ec3fc72fSJung-uk Kim /* 960ec3fc72fSJung-uk Kim * utaddress - address range check 961ec3fc72fSJung-uk Kim */ 962ec3fc72fSJung-uk Kim ACPI_STATUS 963ec3fc72fSJung-uk Kim AcpiUtAddAddressRange ( 964ec3fc72fSJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 965ec3fc72fSJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 966ec3fc72fSJung-uk Kim UINT32 Length, 967ec3fc72fSJung-uk Kim ACPI_NAMESPACE_NODE *RegionNode); 968ec3fc72fSJung-uk Kim 969ec3fc72fSJung-uk Kim void 970ec3fc72fSJung-uk Kim AcpiUtRemoveAddressRange ( 971ec3fc72fSJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 972ec3fc72fSJung-uk Kim ACPI_NAMESPACE_NODE *RegionNode); 973ec3fc72fSJung-uk Kim 974ec3fc72fSJung-uk Kim UINT32 975ec3fc72fSJung-uk Kim AcpiUtCheckAddressRange ( 976ec3fc72fSJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 977ec3fc72fSJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 978ec3fc72fSJung-uk Kim UINT32 Length, 979ec3fc72fSJung-uk Kim BOOLEAN Warn); 980ec3fc72fSJung-uk Kim 981ec3fc72fSJung-uk Kim void 982ec3fc72fSJung-uk Kim AcpiUtDeleteAddressLists ( 983ec3fc72fSJung-uk Kim void); 98442fecd12SJung-uk Kim 98542fecd12SJung-uk Kim /* 98642fecd12SJung-uk Kim * utxferror - various error/warning output functions 98742fecd12SJung-uk Kim */ 98842fecd12SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE 98942fecd12SJung-uk Kim AcpiUtPredefinedWarning ( 99042fecd12SJung-uk Kim const char *ModuleName, 99142fecd12SJung-uk Kim UINT32 LineNumber, 99242fecd12SJung-uk Kim char *Pathname, 99342fecd12SJung-uk Kim UINT8 NodeFlags, 99442fecd12SJung-uk Kim const char *Format, 99542fecd12SJung-uk Kim ...); 99642fecd12SJung-uk Kim 99742fecd12SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE 99842fecd12SJung-uk Kim AcpiUtPredefinedInfo ( 99942fecd12SJung-uk Kim const char *ModuleName, 100042fecd12SJung-uk Kim UINT32 LineNumber, 100142fecd12SJung-uk Kim char *Pathname, 100242fecd12SJung-uk Kim UINT8 NodeFlags, 100342fecd12SJung-uk Kim const char *Format, 100442fecd12SJung-uk Kim ...); 100542fecd12SJung-uk Kim 1006895f26a9SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE 1007895f26a9SJung-uk Kim AcpiUtPredefinedBiosError ( 1008895f26a9SJung-uk Kim const char *ModuleName, 1009895f26a9SJung-uk Kim UINT32 LineNumber, 1010895f26a9SJung-uk Kim char *Pathname, 1011895f26a9SJung-uk Kim UINT8 NodeFlags, 1012895f26a9SJung-uk Kim const char *Format, 1013895f26a9SJung-uk Kim ...); 1014895f26a9SJung-uk Kim 101542fecd12SJung-uk Kim void 101642fecd12SJung-uk Kim AcpiUtNamespaceError ( 101742fecd12SJung-uk Kim const char *ModuleName, 101842fecd12SJung-uk Kim UINT32 LineNumber, 101942fecd12SJung-uk Kim const char *InternalName, 102042fecd12SJung-uk Kim ACPI_STATUS LookupStatus); 102142fecd12SJung-uk Kim 102242fecd12SJung-uk Kim void 102342fecd12SJung-uk Kim AcpiUtMethodError ( 102442fecd12SJung-uk Kim const char *ModuleName, 102542fecd12SJung-uk Kim UINT32 LineNumber, 102642fecd12SJung-uk Kim const char *Message, 102742fecd12SJung-uk Kim ACPI_NAMESPACE_NODE *Node, 102842fecd12SJung-uk Kim const char *Path, 102942fecd12SJung-uk Kim ACPI_STATUS LookupStatus); 1030a9f12690SJung-uk Kim 1031313a0c13SJung-uk Kim /* 1032313a0c13SJung-uk Kim * Utility functions for ACPI names and IDs 1033313a0c13SJung-uk Kim */ 1034313a0c13SJung-uk Kim const AH_PREDEFINED_NAME * 1035313a0c13SJung-uk Kim AcpiAhMatchPredefinedName ( 1036313a0c13SJung-uk Kim char *Nameseg); 1037313a0c13SJung-uk Kim 1038313a0c13SJung-uk Kim const AH_DEVICE_ID * 1039313a0c13SJung-uk Kim AcpiAhMatchHardwareId ( 1040313a0c13SJung-uk Kim char *Hid); 1041313a0c13SJung-uk Kim 1042313a0c13SJung-uk Kim const char * 1043313a0c13SJung-uk Kim AcpiAhMatchUuid ( 1044313a0c13SJung-uk Kim UINT8 *Data); 1045313a0c13SJung-uk Kim 1046313a0c13SJung-uk Kim /* 1047313a0c13SJung-uk Kim * utprint - printf/vprintf output functions 1048313a0c13SJung-uk Kim */ 1049313a0c13SJung-uk Kim const char * 1050313a0c13SJung-uk Kim AcpiUtScanNumber ( 1051313a0c13SJung-uk Kim const char *String, 1052313a0c13SJung-uk Kim UINT64 *NumberPtr); 1053313a0c13SJung-uk Kim 1054313a0c13SJung-uk Kim const char * 1055313a0c13SJung-uk Kim AcpiUtPrintNumber ( 1056313a0c13SJung-uk Kim char *String, 1057313a0c13SJung-uk Kim UINT64 Number); 1058313a0c13SJung-uk Kim 1059313a0c13SJung-uk Kim int 1060313a0c13SJung-uk Kim AcpiUtVsnprintf ( 1061313a0c13SJung-uk Kim char *String, 1062313a0c13SJung-uk Kim ACPI_SIZE Size, 1063313a0c13SJung-uk Kim const char *Format, 1064313a0c13SJung-uk Kim va_list Args); 1065313a0c13SJung-uk Kim 1066313a0c13SJung-uk Kim int 1067313a0c13SJung-uk Kim AcpiUtSnprintf ( 1068313a0c13SJung-uk Kim char *String, 1069313a0c13SJung-uk Kim ACPI_SIZE Size, 1070313a0c13SJung-uk Kim const char *Format, 1071313a0c13SJung-uk Kim ...); 1072313a0c13SJung-uk Kim 1073313a0c13SJung-uk Kim #ifdef ACPI_APPLICATION 1074313a0c13SJung-uk Kim int 1075313a0c13SJung-uk Kim AcpiUtFileVprintf ( 1076313a0c13SJung-uk Kim ACPI_FILE File, 1077313a0c13SJung-uk Kim const char *Format, 1078313a0c13SJung-uk Kim va_list Args); 1079313a0c13SJung-uk Kim 1080313a0c13SJung-uk Kim int 1081313a0c13SJung-uk Kim AcpiUtFilePrintf ( 1082313a0c13SJung-uk Kim ACPI_FILE File, 1083313a0c13SJung-uk Kim const char *Format, 1084313a0c13SJung-uk Kim ...); 1085313a0c13SJung-uk Kim #endif 1086313a0c13SJung-uk Kim 1087313a0c13SJung-uk Kim /* 1088313a0c13SJung-uk Kim * utuuid -- UUID support functions 1089313a0c13SJung-uk Kim */ 10907cf3e94aSJung-uk Kim #if (defined ACPI_ASL_COMPILER || defined ACPI_DISASSEMBLER || defined ACPI_EXEC_APP || defined ACPI_HELP_APP) 1091313a0c13SJung-uk Kim void 1092313a0c13SJung-uk Kim AcpiUtConvertStringToUuid ( 1093313a0c13SJung-uk Kim char *InString, 1094313a0c13SJung-uk Kim UINT8 *UuidBuffer); 10957cf3e94aSJung-uk Kim #endif 1096313a0c13SJung-uk Kim 1097a9f12690SJung-uk Kim #endif /* _ACUTILS_H */ 1098