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 /* 8f8146b88SJung-uk Kim * Copyright (C) 2000 - 2016, 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 */ 1183920312eSJung-uk Kim #ifndef ACPI_MSG_ERROR 119a9d8d09cSJung-uk Kim #define ACPI_MSG_ERROR "ACPI Error: " 1203920312eSJung-uk Kim #endif 1213920312eSJung-uk Kim #ifndef ACPI_MSG_EXCEPTION 122a9d8d09cSJung-uk Kim #define ACPI_MSG_EXCEPTION "ACPI Exception: " 1233920312eSJung-uk Kim #endif 1243920312eSJung-uk Kim #ifndef ACPI_MSG_WARNING 125a9d8d09cSJung-uk Kim #define ACPI_MSG_WARNING "ACPI Warning: " 1263920312eSJung-uk Kim #endif 1273920312eSJung-uk Kim #ifndef ACPI_MSG_INFO 128a9d8d09cSJung-uk Kim #define ACPI_MSG_INFO "ACPI: " 1293920312eSJung-uk Kim #endif 130a9d8d09cSJung-uk Kim 1313920312eSJung-uk Kim #ifndef ACPI_MSG_BIOS_ERROR 132a9d8d09cSJung-uk Kim #define ACPI_MSG_BIOS_ERROR "ACPI BIOS Error (bug): " 1333920312eSJung-uk Kim #endif 1343920312eSJung-uk Kim #ifndef ACPI_MSG_BIOS_WARNING 135a9d8d09cSJung-uk Kim #define ACPI_MSG_BIOS_WARNING "ACPI BIOS Warning (bug): " 1363920312eSJung-uk Kim #endif 137a9d8d09cSJung-uk Kim 138a9d8d09cSJung-uk Kim /* 139a9d8d09cSJung-uk Kim * Common message suffix 140a9d8d09cSJung-uk Kim */ 141a9d8d09cSJung-uk Kim #define ACPI_MSG_SUFFIX \ 142a9d8d09cSJung-uk Kim AcpiOsPrintf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, ModuleName, LineNumber) 143a9d8d09cSJung-uk Kim 144a9d8d09cSJung-uk Kim 145a9f12690SJung-uk Kim /* Types for Resource descriptor entries */ 146a9f12690SJung-uk Kim 147a9f12690SJung-uk Kim #define ACPI_INVALID_RESOURCE 0 148a9f12690SJung-uk Kim #define ACPI_FIXED_LENGTH 1 149a9f12690SJung-uk Kim #define ACPI_VARIABLE_LENGTH 2 150a9f12690SJung-uk Kim #define ACPI_SMALL_VARIABLE_LENGTH 3 151a9f12690SJung-uk Kim 152a9f12690SJung-uk Kim typedef 153a9f12690SJung-uk Kim ACPI_STATUS (*ACPI_WALK_AML_CALLBACK) ( 154a9f12690SJung-uk Kim UINT8 *Aml, 155a9f12690SJung-uk Kim UINT32 Length, 156a9f12690SJung-uk Kim UINT32 Offset, 157a9f12690SJung-uk Kim UINT8 ResourceIndex, 158efcc2a30SJung-uk Kim void **Context); 159a9f12690SJung-uk Kim 160a9f12690SJung-uk Kim typedef 161a9f12690SJung-uk Kim ACPI_STATUS (*ACPI_PKG_CALLBACK) ( 162a9f12690SJung-uk Kim UINT8 ObjectType, 163a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceObject, 164a9f12690SJung-uk Kim ACPI_GENERIC_STATE *State, 165a9f12690SJung-uk Kim void *Context); 166a9f12690SJung-uk Kim 167a9f12690SJung-uk Kim typedef struct acpi_pkg_info 168a9f12690SJung-uk Kim { 169a9f12690SJung-uk Kim UINT8 *FreeSpace; 170a9f12690SJung-uk Kim ACPI_SIZE Length; 171a9f12690SJung-uk Kim UINT32 ObjectSpace; 172a9f12690SJung-uk Kim UINT32 NumPackages; 173a9f12690SJung-uk Kim 174a9f12690SJung-uk Kim } ACPI_PKG_INFO; 175a9f12690SJung-uk Kim 1769c7c683cSJung-uk Kim /* Object reference counts */ 1779c7c683cSJung-uk Kim 178a9f12690SJung-uk Kim #define REF_INCREMENT (UINT16) 0 179a9f12690SJung-uk Kim #define REF_DECREMENT (UINT16) 1 180a9f12690SJung-uk Kim 181a9f12690SJung-uk Kim /* AcpiUtDumpBuffer */ 182a9f12690SJung-uk Kim 183a9f12690SJung-uk Kim #define DB_BYTE_DISPLAY 1 184a9f12690SJung-uk Kim #define DB_WORD_DISPLAY 2 185a9f12690SJung-uk Kim #define DB_DWORD_DISPLAY 4 186a9f12690SJung-uk Kim #define DB_QWORD_DISPLAY 8 187a9f12690SJung-uk Kim 188fe0f0bbbSJung-uk Kim 189fe0f0bbbSJung-uk Kim /* 190f8146b88SJung-uk Kim * utascii - ASCII utilities 191f8146b88SJung-uk Kim */ 192f8146b88SJung-uk Kim BOOLEAN 193f8146b88SJung-uk Kim AcpiUtValidNameseg ( 194f8146b88SJung-uk Kim char *Signature); 195f8146b88SJung-uk Kim 196f8146b88SJung-uk Kim BOOLEAN 197f8146b88SJung-uk Kim AcpiUtValidNameChar ( 198f8146b88SJung-uk Kim char Character, 199f8146b88SJung-uk Kim UINT32 Position); 200f8146b88SJung-uk Kim 201f8146b88SJung-uk Kim void 202f8146b88SJung-uk Kim AcpiUtCheckAndRepairAscii ( 203f8146b88SJung-uk Kim UINT8 *Name, 204f8146b88SJung-uk Kim char *RepairedName, 205f8146b88SJung-uk Kim UINT32 Count); 206f8146b88SJung-uk Kim 207f8146b88SJung-uk Kim 208f8146b88SJung-uk Kim /* 209fe0f0bbbSJung-uk Kim * utnonansi - Non-ANSI C library functions 210fe0f0bbbSJung-uk Kim */ 211fe0f0bbbSJung-uk Kim void 212fe0f0bbbSJung-uk Kim AcpiUtStrupr ( 213fe0f0bbbSJung-uk Kim char *SrcString); 214fe0f0bbbSJung-uk Kim 215fe0f0bbbSJung-uk Kim void 216fe0f0bbbSJung-uk Kim AcpiUtStrlwr ( 217fe0f0bbbSJung-uk Kim char *SrcString); 218fe0f0bbbSJung-uk Kim 219fe0f0bbbSJung-uk Kim int 220fe0f0bbbSJung-uk Kim AcpiUtStricmp ( 221fe0f0bbbSJung-uk Kim char *String1, 222fe0f0bbbSJung-uk Kim char *String2); 223fe0f0bbbSJung-uk Kim 224fe0f0bbbSJung-uk Kim ACPI_STATUS 225fe0f0bbbSJung-uk Kim AcpiUtStrtoul64 ( 226fe0f0bbbSJung-uk Kim char *String, 227493deb39SJung-uk Kim UINT32 Flags, 228fe0f0bbbSJung-uk Kim UINT64 *RetInteger); 229fe0f0bbbSJung-uk Kim 230493deb39SJung-uk Kim /* 231493deb39SJung-uk Kim * Values for Flags above 232493deb39SJung-uk Kim * Note: LIMIT values correspond to AcpiGbl_IntegerByteWidth values (4/8) 233493deb39SJung-uk Kim */ 234493deb39SJung-uk Kim #define ACPI_STRTOUL_32BIT 0x04 /* 4 bytes */ 235493deb39SJung-uk Kim #define ACPI_STRTOUL_64BIT 0x08 /* 8 bytes */ 236493deb39SJung-uk Kim #define ACPI_STRTOUL_BASE16 0x10 /* Default: Base10/16 */ 237f8146b88SJung-uk Kim 238fe0f0bbbSJung-uk Kim 239a9f12690SJung-uk Kim /* 240a9f12690SJung-uk Kim * utglobal - Global data structures and procedures 241a9f12690SJung-uk Kim */ 242a9f12690SJung-uk Kim ACPI_STATUS 243a9f12690SJung-uk Kim AcpiUtInitGlobals ( 244a9f12690SJung-uk Kim void); 245a9f12690SJung-uk Kim 246a9f12690SJung-uk Kim #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 247a9f12690SJung-uk Kim 248f8146b88SJung-uk Kim const char * 249a9f12690SJung-uk Kim AcpiUtGetMutexName ( 250a9f12690SJung-uk Kim UINT32 MutexId); 251a9f12690SJung-uk Kim 252a9f12690SJung-uk Kim const char * 253a9f12690SJung-uk Kim AcpiUtGetNotifyName ( 254313a0c13SJung-uk Kim UINT32 NotifyValue, 255313a0c13SJung-uk Kim ACPI_OBJECT_TYPE Type); 256a9f12690SJung-uk Kim #endif 257a9f12690SJung-uk Kim 258f8146b88SJung-uk Kim const char * 259a9f12690SJung-uk Kim AcpiUtGetTypeName ( 260a9f12690SJung-uk Kim ACPI_OBJECT_TYPE Type); 261a9f12690SJung-uk Kim 262f8146b88SJung-uk Kim const char * 263a9f12690SJung-uk Kim AcpiUtGetNodeName ( 264a9f12690SJung-uk Kim void *Object); 265a9f12690SJung-uk Kim 266f8146b88SJung-uk Kim const char * 267a9f12690SJung-uk Kim AcpiUtGetDescriptorName ( 268a9f12690SJung-uk Kim void *Object); 269a9f12690SJung-uk Kim 270a9f12690SJung-uk Kim const char * 271a9f12690SJung-uk Kim AcpiUtGetReferenceName ( 272a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 273a9f12690SJung-uk Kim 274f8146b88SJung-uk Kim const char * 275a9f12690SJung-uk Kim AcpiUtGetObjectTypeName ( 276a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc); 277a9f12690SJung-uk Kim 278f8146b88SJung-uk Kim const char * 279a9f12690SJung-uk Kim AcpiUtGetRegionName ( 280a9f12690SJung-uk Kim UINT8 SpaceId); 281a9f12690SJung-uk Kim 282f8146b88SJung-uk Kim const char * 283a9f12690SJung-uk Kim AcpiUtGetEventName ( 284a9f12690SJung-uk Kim UINT32 EventId); 285a9f12690SJung-uk Kim 286*1cc50d6bSJung-uk Kim const char * 287*1cc50d6bSJung-uk Kim AcpiUtGetArgumentTypeName ( 288*1cc50d6bSJung-uk Kim UINT32 ArgType); 289*1cc50d6bSJung-uk Kim 290a9f12690SJung-uk Kim char 291a9f12690SJung-uk Kim AcpiUtHexToAsciiChar ( 2929a179dd8SJung-uk Kim UINT64 Integer, 293a9f12690SJung-uk Kim UINT32 Position); 294a9f12690SJung-uk Kim 295493deb39SJung-uk Kim ACPI_STATUS 296493deb39SJung-uk Kim AcpiUtAsciiToHexByte ( 297493deb39SJung-uk Kim char *TwoAsciiChars, 298493deb39SJung-uk Kim UINT8 *ReturnByte); 299493deb39SJung-uk Kim 300313a0c13SJung-uk Kim UINT8 301313a0c13SJung-uk Kim AcpiUtAsciiCharToHex ( 302313a0c13SJung-uk Kim int HexChar); 303313a0c13SJung-uk Kim 304a9f12690SJung-uk Kim BOOLEAN 305a9f12690SJung-uk Kim AcpiUtValidObjectType ( 306a9f12690SJung-uk Kim ACPI_OBJECT_TYPE Type); 307a9f12690SJung-uk Kim 308a9f12690SJung-uk Kim 309a9f12690SJung-uk Kim /* 310a9f12690SJung-uk Kim * utinit - miscellaneous initialization and shutdown 311a9f12690SJung-uk Kim */ 312a9f12690SJung-uk Kim ACPI_STATUS 313a9f12690SJung-uk Kim AcpiUtHardwareInitialize ( 314a9f12690SJung-uk Kim void); 315a9f12690SJung-uk Kim 316a9f12690SJung-uk Kim void 317a9f12690SJung-uk Kim AcpiUtSubsystemShutdown ( 318a9f12690SJung-uk Kim void); 319a9f12690SJung-uk Kim 320a9f12690SJung-uk Kim 321a9f12690SJung-uk Kim /* 322a9f12690SJung-uk Kim * utcopy - Object construction and conversion interfaces 323a9f12690SJung-uk Kim */ 324a9f12690SJung-uk Kim ACPI_STATUS 325a9f12690SJung-uk Kim AcpiUtBuildSimpleObject( 326a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 327a9f12690SJung-uk Kim ACPI_OBJECT *UserObj, 328a9f12690SJung-uk Kim UINT8 *DataSpace, 329a9f12690SJung-uk Kim UINT32 *BufferSpaceUsed); 330a9f12690SJung-uk Kim 331a9f12690SJung-uk Kim ACPI_STATUS 332a9f12690SJung-uk Kim AcpiUtBuildPackageObject ( 333a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 334a9f12690SJung-uk Kim UINT8 *Buffer, 335a9f12690SJung-uk Kim UINT32 *SpaceUsed); 336a9f12690SJung-uk Kim 337a9f12690SJung-uk Kim ACPI_STATUS 338a9f12690SJung-uk Kim AcpiUtCopyIobjectToEobject ( 339a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 340a9f12690SJung-uk Kim ACPI_BUFFER *RetBuffer); 341a9f12690SJung-uk Kim 342a9f12690SJung-uk Kim ACPI_STATUS 343a9f12690SJung-uk Kim AcpiUtCopyEobjectToIobject ( 344a9f12690SJung-uk Kim ACPI_OBJECT *Obj, 345a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **InternalObj); 346a9f12690SJung-uk Kim 347a9f12690SJung-uk Kim ACPI_STATUS 348a9f12690SJung-uk Kim AcpiUtCopyISimpleToIsimple ( 349a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceObj, 350a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *DestObj); 351a9f12690SJung-uk Kim 352a9f12690SJung-uk Kim ACPI_STATUS 353a9f12690SJung-uk Kim AcpiUtCopyIobjectToIobject ( 354a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 355a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **DestDesc, 356a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 357a9f12690SJung-uk Kim 358a9f12690SJung-uk Kim 359a9f12690SJung-uk Kim /* 360a9f12690SJung-uk Kim * utcreate - Object creation 361a9f12690SJung-uk Kim */ 362a9f12690SJung-uk Kim ACPI_STATUS 363a9f12690SJung-uk Kim AcpiUtUpdateObjectReference ( 364a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object, 365a9f12690SJung-uk Kim UINT16 Action); 366a9f12690SJung-uk Kim 367a9f12690SJung-uk Kim 368a9f12690SJung-uk Kim /* 369a9f12690SJung-uk Kim * utdebug - Debug interfaces 370a9f12690SJung-uk Kim */ 371a9f12690SJung-uk Kim void 372a9f12690SJung-uk Kim AcpiUtInitStackPtrTrace ( 373a9f12690SJung-uk Kim void); 374a9f12690SJung-uk Kim 375a9f12690SJung-uk Kim void 376a9f12690SJung-uk Kim AcpiUtTrackStackPtr ( 377a9f12690SJung-uk Kim void); 378a9f12690SJung-uk Kim 379a9f12690SJung-uk Kim void 380a9f12690SJung-uk Kim AcpiUtTrace ( 381a9f12690SJung-uk Kim UINT32 LineNumber, 382a9f12690SJung-uk Kim const char *FunctionName, 383a9f12690SJung-uk Kim const char *ModuleName, 384a9f12690SJung-uk Kim UINT32 ComponentId); 385a9f12690SJung-uk Kim 386a9f12690SJung-uk Kim void 387a9f12690SJung-uk Kim AcpiUtTracePtr ( 388a9f12690SJung-uk Kim UINT32 LineNumber, 389a9f12690SJung-uk Kim const char *FunctionName, 390a9f12690SJung-uk Kim const char *ModuleName, 391a9f12690SJung-uk Kim UINT32 ComponentId, 392f8146b88SJung-uk Kim const void *Pointer); 393a9f12690SJung-uk Kim 394a9f12690SJung-uk Kim void 395a9f12690SJung-uk Kim AcpiUtTraceU32 ( 396a9f12690SJung-uk Kim UINT32 LineNumber, 397a9f12690SJung-uk Kim const char *FunctionName, 398a9f12690SJung-uk Kim const char *ModuleName, 399a9f12690SJung-uk Kim UINT32 ComponentId, 400a9f12690SJung-uk Kim UINT32 Integer); 401a9f12690SJung-uk Kim 402a9f12690SJung-uk Kim void 403a9f12690SJung-uk Kim AcpiUtTraceStr ( 404a9f12690SJung-uk Kim UINT32 LineNumber, 405a9f12690SJung-uk Kim const char *FunctionName, 406a9f12690SJung-uk Kim const char *ModuleName, 407a9f12690SJung-uk Kim UINT32 ComponentId, 408f8146b88SJung-uk Kim const char *String); 409a9f12690SJung-uk Kim 410a9f12690SJung-uk Kim void 411a9f12690SJung-uk Kim AcpiUtExit ( 412a9f12690SJung-uk Kim UINT32 LineNumber, 413a9f12690SJung-uk Kim const char *FunctionName, 414a9f12690SJung-uk Kim const char *ModuleName, 415a9f12690SJung-uk Kim UINT32 ComponentId); 416a9f12690SJung-uk Kim 417a9f12690SJung-uk Kim void 418a9f12690SJung-uk Kim AcpiUtStatusExit ( 419a9f12690SJung-uk Kim UINT32 LineNumber, 420a9f12690SJung-uk Kim const char *FunctionName, 421a9f12690SJung-uk Kim const char *ModuleName, 422a9f12690SJung-uk Kim UINT32 ComponentId, 423a9f12690SJung-uk Kim ACPI_STATUS Status); 424a9f12690SJung-uk Kim 425a9f12690SJung-uk Kim void 426a9f12690SJung-uk Kim AcpiUtValueExit ( 427a9f12690SJung-uk Kim UINT32 LineNumber, 428a9f12690SJung-uk Kim const char *FunctionName, 429a9f12690SJung-uk Kim const char *ModuleName, 430a9f12690SJung-uk Kim UINT32 ComponentId, 4319a179dd8SJung-uk Kim UINT64 Value); 432a9f12690SJung-uk Kim 433a9f12690SJung-uk Kim void 434a9f12690SJung-uk Kim AcpiUtPtrExit ( 435a9f12690SJung-uk Kim UINT32 LineNumber, 436a9f12690SJung-uk Kim const char *FunctionName, 437a9f12690SJung-uk Kim const char *ModuleName, 438a9f12690SJung-uk Kim UINT32 ComponentId, 439a9f12690SJung-uk Kim UINT8 *Ptr); 440a9f12690SJung-uk Kim 441a9f12690SJung-uk Kim void 442f8146b88SJung-uk Kim AcpiUtStrExit ( 443f8146b88SJung-uk Kim UINT32 LineNumber, 444f8146b88SJung-uk Kim const char *FunctionName, 445f8146b88SJung-uk Kim const char *ModuleName, 446f8146b88SJung-uk Kim UINT32 ComponentId, 447f8146b88SJung-uk Kim const char *String); 448f8146b88SJung-uk Kim 449f8146b88SJung-uk Kim void 4508ef1a331SJung-uk Kim AcpiUtDebugDumpBuffer ( 451a9f12690SJung-uk Kim UINT8 *Buffer, 452a9f12690SJung-uk Kim UINT32 Count, 453a9f12690SJung-uk Kim UINT32 Display, 454f38b0f21SJung-uk Kim UINT32 ComponentId); 455a9f12690SJung-uk Kim 456a9f12690SJung-uk Kim void 4578ef1a331SJung-uk Kim AcpiUtDumpBuffer ( 458a9f12690SJung-uk Kim UINT8 *Buffer, 459a9f12690SJung-uk Kim UINT32 Count, 4608ef1a331SJung-uk Kim UINT32 Display, 4618ef1a331SJung-uk Kim UINT32 Offset); 462a9f12690SJung-uk Kim 463313a0c13SJung-uk Kim #ifdef ACPI_APPLICATION 464313a0c13SJung-uk Kim void 465313a0c13SJung-uk Kim AcpiUtDumpBufferToFile ( 466313a0c13SJung-uk Kim ACPI_FILE File, 467313a0c13SJung-uk Kim UINT8 *Buffer, 468313a0c13SJung-uk Kim UINT32 Count, 469313a0c13SJung-uk Kim UINT32 Display, 470313a0c13SJung-uk Kim UINT32 BaseOffset); 471313a0c13SJung-uk Kim #endif 472313a0c13SJung-uk Kim 473a9f12690SJung-uk Kim void 474a9f12690SJung-uk Kim AcpiUtReportError ( 475a9f12690SJung-uk Kim char *ModuleName, 476a9f12690SJung-uk Kim UINT32 LineNumber); 477a9f12690SJung-uk Kim 478a9f12690SJung-uk Kim void 479a9f12690SJung-uk Kim AcpiUtReportInfo ( 480a9f12690SJung-uk Kim char *ModuleName, 481a9f12690SJung-uk Kim UINT32 LineNumber); 482a9f12690SJung-uk Kim 483a9f12690SJung-uk Kim void 484a9f12690SJung-uk Kim AcpiUtReportWarning ( 485a9f12690SJung-uk Kim char *ModuleName, 486a9f12690SJung-uk Kim UINT32 LineNumber); 487a9f12690SJung-uk Kim 488fe0f0bbbSJung-uk Kim 489a9f12690SJung-uk Kim /* 490a9f12690SJung-uk Kim * utdelete - Object deletion and reference counts 491a9f12690SJung-uk Kim */ 492a9f12690SJung-uk Kim void 493a9f12690SJung-uk Kim AcpiUtAddReference ( 494a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 495a9f12690SJung-uk Kim 496a9f12690SJung-uk Kim void 497a9f12690SJung-uk Kim AcpiUtRemoveReference ( 498a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 499a9f12690SJung-uk Kim 500a9f12690SJung-uk Kim void 501a9f12690SJung-uk Kim AcpiUtDeleteInternalPackageObject ( 502a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 503a9f12690SJung-uk Kim 504a9f12690SJung-uk Kim void 505a9f12690SJung-uk Kim AcpiUtDeleteInternalSimpleObject ( 506a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 507a9f12690SJung-uk Kim 508a9f12690SJung-uk Kim void 509a9f12690SJung-uk Kim AcpiUtDeleteInternalObjectList ( 510a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ObjList); 511a9f12690SJung-uk Kim 512a9f12690SJung-uk Kim 513a9f12690SJung-uk Kim /* 514a9f12690SJung-uk Kim * uteval - object evaluation 515a9f12690SJung-uk Kim */ 516a9f12690SJung-uk Kim ACPI_STATUS 517a9f12690SJung-uk Kim AcpiUtEvaluateObject ( 518a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *PrefixNode, 519f8146b88SJung-uk Kim const char *Path, 520a9f12690SJung-uk Kim UINT32 ExpectedReturnBtypes, 521a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ReturnDesc); 522a9f12690SJung-uk Kim 523a9f12690SJung-uk Kim ACPI_STATUS 524a9f12690SJung-uk Kim AcpiUtEvaluateNumericObject ( 525f8146b88SJung-uk Kim const char *ObjectName, 526a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 5279a179dd8SJung-uk Kim UINT64 *Value); 528a9f12690SJung-uk Kim 529a9f12690SJung-uk Kim ACPI_STATUS 530a9f12690SJung-uk Kim AcpiUtExecute_STA ( 531a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 532a9f12690SJung-uk Kim UINT32 *StatusFlags); 533a9f12690SJung-uk Kim 534a9f12690SJung-uk Kim ACPI_STATUS 535d6dd1baeSJung-uk Kim AcpiUtExecutePowerMethods ( 536a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 537d6dd1baeSJung-uk Kim const char **MethodNames, 538d6dd1baeSJung-uk Kim UINT8 MethodCount, 539d6dd1baeSJung-uk Kim UINT8 *OutValues); 540d6dd1baeSJung-uk Kim 541d6dd1baeSJung-uk Kim 542d6dd1baeSJung-uk Kim /* 543d6dd1baeSJung-uk Kim * utids - device ID support 544d6dd1baeSJung-uk Kim */ 545d6dd1baeSJung-uk Kim ACPI_STATUS 546d6dd1baeSJung-uk Kim AcpiUtExecute_HID ( 547d6dd1baeSJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 5488ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID **ReturnId); 549a9f12690SJung-uk Kim 550a9f12690SJung-uk Kim ACPI_STATUS 551d6dd1baeSJung-uk Kim AcpiUtExecute_UID ( 552a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 5538ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID **ReturnId); 5548ef1a331SJung-uk Kim 5558ef1a331SJung-uk Kim ACPI_STATUS 556d6dd1baeSJung-uk Kim AcpiUtExecute_CID ( 557d6dd1baeSJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 5588ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID_LIST **ReturnCidList); 559d6dd1baeSJung-uk Kim 5605ef50723SJung-uk Kim ACPI_STATUS 5615ef50723SJung-uk Kim AcpiUtExecute_CLS ( 5625ef50723SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 5635ef50723SJung-uk Kim ACPI_PNP_DEVICE_ID **ReturnId); 5645ef50723SJung-uk Kim 565a9f12690SJung-uk Kim 566a9f12690SJung-uk Kim /* 567a9f12690SJung-uk Kim * utlock - reader/writer locks 568a9f12690SJung-uk Kim */ 569a9f12690SJung-uk Kim ACPI_STATUS 570a9f12690SJung-uk Kim AcpiUtCreateRwLock ( 571a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 572a9f12690SJung-uk Kim 573a9f12690SJung-uk Kim void 574a9f12690SJung-uk Kim AcpiUtDeleteRwLock ( 575a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 576a9f12690SJung-uk Kim 577a9f12690SJung-uk Kim ACPI_STATUS 578a9f12690SJung-uk Kim AcpiUtAcquireReadLock ( 579a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 580a9f12690SJung-uk Kim 581a9f12690SJung-uk Kim ACPI_STATUS 582a9f12690SJung-uk Kim AcpiUtReleaseReadLock ( 583a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 584a9f12690SJung-uk Kim 585a9f12690SJung-uk Kim ACPI_STATUS 586a9f12690SJung-uk Kim AcpiUtAcquireWriteLock ( 587a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 588a9f12690SJung-uk Kim 589a9f12690SJung-uk Kim void 590a9f12690SJung-uk Kim AcpiUtReleaseWriteLock ( 591a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 592a9f12690SJung-uk Kim 593a9f12690SJung-uk Kim 594a9f12690SJung-uk Kim /* 595a9f12690SJung-uk Kim * utobject - internal object create/delete/cache routines 596a9f12690SJung-uk Kim */ 597a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 598a9f12690SJung-uk Kim AcpiUtCreateInternalObjectDbg ( 599a9f12690SJung-uk Kim const char *ModuleName, 600a9f12690SJung-uk Kim UINT32 LineNumber, 601a9f12690SJung-uk Kim UINT32 ComponentId, 602a9f12690SJung-uk Kim ACPI_OBJECT_TYPE Type); 603a9f12690SJung-uk Kim 604a9f12690SJung-uk Kim void * 605a9f12690SJung-uk Kim AcpiUtAllocateObjectDescDbg ( 606a9f12690SJung-uk Kim const char *ModuleName, 607a9f12690SJung-uk Kim UINT32 LineNumber, 608a9f12690SJung-uk Kim UINT32 ComponentId); 609a9f12690SJung-uk Kim 610a9f12690SJung-uk Kim #define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t) 611a9f12690SJung-uk Kim #define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT) 612a9f12690SJung-uk Kim 613a9f12690SJung-uk Kim void 614a9f12690SJung-uk Kim AcpiUtDeleteObjectDesc ( 615a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 616a9f12690SJung-uk Kim 617a9f12690SJung-uk Kim BOOLEAN 618a9f12690SJung-uk Kim AcpiUtValidInternalObject ( 619a9f12690SJung-uk Kim void *Object); 620a9f12690SJung-uk Kim 621a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 622a9f12690SJung-uk Kim AcpiUtCreatePackageObject ( 623a9f12690SJung-uk Kim UINT32 Count); 624a9f12690SJung-uk Kim 625a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 6262272d050SJung-uk Kim AcpiUtCreateIntegerObject ( 6272272d050SJung-uk Kim UINT64 Value); 6282272d050SJung-uk Kim 6292272d050SJung-uk Kim ACPI_OPERAND_OBJECT * 630a9f12690SJung-uk Kim AcpiUtCreateBufferObject ( 631a9f12690SJung-uk Kim ACPI_SIZE BufferSize); 632a9f12690SJung-uk Kim 633a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 634a9f12690SJung-uk Kim AcpiUtCreateStringObject ( 635a9f12690SJung-uk Kim ACPI_SIZE StringSize); 636a9f12690SJung-uk Kim 637a9f12690SJung-uk Kim ACPI_STATUS 638a9f12690SJung-uk Kim AcpiUtGetObjectSize( 639a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 640a9f12690SJung-uk Kim ACPI_SIZE *ObjLength); 641a9f12690SJung-uk Kim 642a9f12690SJung-uk Kim 643a9f12690SJung-uk Kim /* 644709fac06SJung-uk Kim * utosi - Support for the _OSI predefined control method 645709fac06SJung-uk Kim */ 646709fac06SJung-uk Kim ACPI_STATUS 647709fac06SJung-uk Kim AcpiUtInitializeInterfaces ( 648709fac06SJung-uk Kim void); 649709fac06SJung-uk Kim 6509c7c683cSJung-uk Kim ACPI_STATUS 651709fac06SJung-uk Kim AcpiUtInterfaceTerminate ( 652709fac06SJung-uk Kim void); 653709fac06SJung-uk Kim 654709fac06SJung-uk Kim ACPI_STATUS 655709fac06SJung-uk Kim AcpiUtInstallInterface ( 656709fac06SJung-uk Kim ACPI_STRING InterfaceName); 657709fac06SJung-uk Kim 658709fac06SJung-uk Kim ACPI_STATUS 659709fac06SJung-uk Kim AcpiUtRemoveInterface ( 660709fac06SJung-uk Kim ACPI_STRING InterfaceName); 661709fac06SJung-uk Kim 662bf6fac21SJung-uk Kim ACPI_STATUS 663bf6fac21SJung-uk Kim AcpiUtUpdateInterfaces ( 664bf6fac21SJung-uk Kim UINT8 Action); 665bf6fac21SJung-uk Kim 666709fac06SJung-uk Kim ACPI_INTERFACE_INFO * 667709fac06SJung-uk Kim AcpiUtGetInterface ( 668709fac06SJung-uk Kim ACPI_STRING InterfaceName); 669709fac06SJung-uk Kim 670709fac06SJung-uk Kim ACPI_STATUS 671709fac06SJung-uk Kim AcpiUtOsiImplementation ( 672709fac06SJung-uk Kim ACPI_WALK_STATE *WalkState); 673709fac06SJung-uk Kim 674709fac06SJung-uk Kim 675709fac06SJung-uk Kim /* 6769c7c683cSJung-uk Kim * utpredef - support for predefined names 6779c7c683cSJung-uk Kim */ 6789c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO * 6799c7c683cSJung-uk Kim AcpiUtGetNextPredefinedMethod ( 6809c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO *ThisName); 6819c7c683cSJung-uk Kim 6829c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO * 6839c7c683cSJung-uk Kim AcpiUtMatchPredefinedMethod ( 6849c7c683cSJung-uk Kim char *Name); 6859c7c683cSJung-uk Kim 6867cf3e94aSJung-uk Kim void 6877cf3e94aSJung-uk Kim AcpiUtGetExpectedReturnTypes ( 6887cf3e94aSJung-uk Kim char *Buffer, 6897cf3e94aSJung-uk Kim UINT32 ExpectedBtypes); 6907cf3e94aSJung-uk Kim 6917cf3e94aSJung-uk Kim #if (defined ACPI_ASL_COMPILER || defined ACPI_HELP_APP) 6929c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO * 6939c7c683cSJung-uk Kim AcpiUtMatchResourceName ( 6949c7c683cSJung-uk Kim char *Name); 6959c7c683cSJung-uk Kim 6969c7c683cSJung-uk Kim void 6979c7c683cSJung-uk Kim AcpiUtDisplayPredefinedMethod ( 6989c7c683cSJung-uk Kim char *Buffer, 6999c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO *ThisName, 7009c7c683cSJung-uk Kim BOOLEAN MultiLine); 7019c7c683cSJung-uk Kim 7029c7c683cSJung-uk Kim UINT32 7039c7c683cSJung-uk Kim AcpiUtGetResourceBitWidth ( 7049c7c683cSJung-uk Kim char *Buffer, 7059c7c683cSJung-uk Kim UINT16 Types); 7067cf3e94aSJung-uk Kim #endif 7079c7c683cSJung-uk Kim 7089c7c683cSJung-uk Kim 7099c7c683cSJung-uk Kim /* 710a9f12690SJung-uk Kim * utstate - Generic state creation/cache routines 711a9f12690SJung-uk Kim */ 712a9f12690SJung-uk Kim void 713a9f12690SJung-uk Kim AcpiUtPushGenericState ( 714a9f12690SJung-uk Kim ACPI_GENERIC_STATE **ListHead, 715a9f12690SJung-uk Kim ACPI_GENERIC_STATE *State); 716a9f12690SJung-uk Kim 717a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 718a9f12690SJung-uk Kim AcpiUtPopGenericState ( 719a9f12690SJung-uk Kim ACPI_GENERIC_STATE **ListHead); 720a9f12690SJung-uk Kim 721a9f12690SJung-uk Kim 722a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 723a9f12690SJung-uk Kim AcpiUtCreateGenericState ( 724a9f12690SJung-uk Kim void); 725a9f12690SJung-uk Kim 726a9f12690SJung-uk Kim ACPI_THREAD_STATE * 727a9f12690SJung-uk Kim AcpiUtCreateThreadState ( 728a9f12690SJung-uk Kim void); 729a9f12690SJung-uk Kim 730a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 731a9f12690SJung-uk Kim AcpiUtCreateUpdateState ( 732a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object, 733a9f12690SJung-uk Kim UINT16 Action); 734a9f12690SJung-uk Kim 735a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 736a9f12690SJung-uk Kim AcpiUtCreatePkgState ( 737a9f12690SJung-uk Kim void *InternalObject, 738a9f12690SJung-uk Kim void *ExternalObject, 739a9f12690SJung-uk Kim UINT16 Index); 740a9f12690SJung-uk Kim 741a9f12690SJung-uk Kim ACPI_STATUS 742a9f12690SJung-uk Kim AcpiUtCreateUpdateStateAndPush ( 743a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object, 744a9f12690SJung-uk Kim UINT16 Action, 745a9f12690SJung-uk Kim ACPI_GENERIC_STATE **StateList); 746a9f12690SJung-uk Kim 747a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 748a9f12690SJung-uk Kim AcpiUtCreateControlState ( 749a9f12690SJung-uk Kim void); 750a9f12690SJung-uk Kim 751a9f12690SJung-uk Kim void 752a9f12690SJung-uk Kim AcpiUtDeleteGenericState ( 753a9f12690SJung-uk Kim ACPI_GENERIC_STATE *State); 754a9f12690SJung-uk Kim 755a9f12690SJung-uk Kim 756a9f12690SJung-uk Kim /* 757a9f12690SJung-uk Kim * utmath 758a9f12690SJung-uk Kim */ 759a9f12690SJung-uk Kim ACPI_STATUS 760a9f12690SJung-uk Kim AcpiUtDivide ( 7619a179dd8SJung-uk Kim UINT64 InDividend, 7629a179dd8SJung-uk Kim UINT64 InDivisor, 7639a179dd8SJung-uk Kim UINT64 *OutQuotient, 7649a179dd8SJung-uk Kim UINT64 *OutRemainder); 765a9f12690SJung-uk Kim 766a9f12690SJung-uk Kim ACPI_STATUS 767a9f12690SJung-uk Kim AcpiUtShortDivide ( 7689a179dd8SJung-uk Kim UINT64 InDividend, 769a9f12690SJung-uk Kim UINT32 Divisor, 7709a179dd8SJung-uk Kim UINT64 *OutQuotient, 771a9f12690SJung-uk Kim UINT32 *OutRemainder); 772a9f12690SJung-uk Kim 7739c48c75eSJung-uk Kim 774a9f12690SJung-uk Kim /* 775a9f12690SJung-uk Kim * utmisc 776a9f12690SJung-uk Kim */ 7779c48c75eSJung-uk Kim const ACPI_EXCEPTION_INFO * 778a9f12690SJung-uk Kim AcpiUtValidateException ( 779a9f12690SJung-uk Kim ACPI_STATUS Status); 780a9f12690SJung-uk Kim 781a9f12690SJung-uk Kim BOOLEAN 782d6dd1baeSJung-uk Kim AcpiUtIsPciRootBridge ( 783d6dd1baeSJung-uk Kim char *Id); 784d6dd1baeSJung-uk Kim 78570e6ab8fSJung-uk Kim #if (defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP || defined ACPI_NAMES_APP) 786d6dd1baeSJung-uk Kim BOOLEAN 787a9f12690SJung-uk Kim AcpiUtIsAmlTable ( 788a9f12690SJung-uk Kim ACPI_TABLE_HEADER *Table); 7897cf3e94aSJung-uk Kim #endif 790a9f12690SJung-uk Kim 791a9f12690SJung-uk Kim ACPI_STATUS 792a9f12690SJung-uk Kim AcpiUtWalkPackageTree ( 793a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceObject, 794a9f12690SJung-uk Kim void *TargetObject, 795a9f12690SJung-uk Kim ACPI_PKG_CALLBACK WalkCallback, 796a9f12690SJung-uk Kim void *Context); 797a9f12690SJung-uk Kim 798a9f12690SJung-uk Kim /* Values for Base above (16=Hex, 10=Decimal) */ 799a9f12690SJung-uk Kim 800a9f12690SJung-uk Kim #define ACPI_ANY_BASE 0 801a9f12690SJung-uk Kim 802fe0f0bbbSJung-uk Kim 803a9f12690SJung-uk Kim UINT32 804a9f12690SJung-uk Kim AcpiUtDwordByteSwap ( 805a9f12690SJung-uk Kim UINT32 Value); 806a9f12690SJung-uk Kim 807a9f12690SJung-uk Kim void 808a9f12690SJung-uk Kim AcpiUtSetIntegerWidth ( 809a9f12690SJung-uk Kim UINT8 Revision); 810a9f12690SJung-uk Kim 811a9f12690SJung-uk Kim #ifdef ACPI_DEBUG_OUTPUT 812a9f12690SJung-uk Kim void 813a9f12690SJung-uk Kim AcpiUtDisplayInitPathname ( 814a9f12690SJung-uk Kim UINT8 Type, 815a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *ObjHandle, 816f8146b88SJung-uk Kim const char *Path); 817a9f12690SJung-uk Kim #endif 818a9f12690SJung-uk Kim 819a9f12690SJung-uk Kim 820a9f12690SJung-uk Kim /* 821efcc2a30SJung-uk Kim * utownerid - Support for Table/Method Owner IDs 822efcc2a30SJung-uk Kim */ 823efcc2a30SJung-uk Kim ACPI_STATUS 824efcc2a30SJung-uk Kim AcpiUtAllocateOwnerId ( 825efcc2a30SJung-uk Kim ACPI_OWNER_ID *OwnerId); 826efcc2a30SJung-uk Kim 827efcc2a30SJung-uk Kim void 828efcc2a30SJung-uk Kim AcpiUtReleaseOwnerId ( 829efcc2a30SJung-uk Kim ACPI_OWNER_ID *OwnerId); 830efcc2a30SJung-uk Kim 831efcc2a30SJung-uk Kim 832efcc2a30SJung-uk Kim /* 833a9f12690SJung-uk Kim * utresrc 834a9f12690SJung-uk Kim */ 835a9f12690SJung-uk Kim ACPI_STATUS 836a9f12690SJung-uk Kim AcpiUtWalkAmlResources ( 837ed17e06eSJung-uk Kim ACPI_WALK_STATE *WalkState, 838a9f12690SJung-uk Kim UINT8 *Aml, 839a9f12690SJung-uk Kim ACPI_SIZE AmlLength, 840a9f12690SJung-uk Kim ACPI_WALK_AML_CALLBACK UserFunction, 841efcc2a30SJung-uk Kim void **Context); 842a9f12690SJung-uk Kim 843a9f12690SJung-uk Kim ACPI_STATUS 844a9f12690SJung-uk Kim AcpiUtValidateResource ( 845ed17e06eSJung-uk Kim ACPI_WALK_STATE *WalkState, 846a9f12690SJung-uk Kim void *Aml, 847a9f12690SJung-uk Kim UINT8 *ReturnIndex); 848a9f12690SJung-uk Kim 849a9f12690SJung-uk Kim UINT32 850a9f12690SJung-uk Kim AcpiUtGetDescriptorLength ( 851a9f12690SJung-uk Kim void *Aml); 852a9f12690SJung-uk Kim 853a9f12690SJung-uk Kim UINT16 854a9f12690SJung-uk Kim AcpiUtGetResourceLength ( 855a9f12690SJung-uk Kim void *Aml); 856a9f12690SJung-uk Kim 857a9f12690SJung-uk Kim UINT8 858a9f12690SJung-uk Kim AcpiUtGetResourceHeaderLength ( 859a9f12690SJung-uk Kim void *Aml); 860a9f12690SJung-uk Kim 861a9f12690SJung-uk Kim UINT8 862a9f12690SJung-uk Kim AcpiUtGetResourceType ( 863a9f12690SJung-uk Kim void *Aml); 864a9f12690SJung-uk Kim 865a9f12690SJung-uk Kim ACPI_STATUS 866a9f12690SJung-uk Kim AcpiUtGetResourceEndTag ( 867a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 868a9f12690SJung-uk Kim UINT8 **EndTag); 869a9f12690SJung-uk Kim 870a9f12690SJung-uk Kim 871a9f12690SJung-uk Kim /* 872efcc2a30SJung-uk Kim * utstring - String and character utilities 873efcc2a30SJung-uk Kim */ 874efcc2a30SJung-uk Kim void 875efcc2a30SJung-uk Kim AcpiUtPrintString ( 876efcc2a30SJung-uk Kim char *String, 8778d744e47SJung-uk Kim UINT16 MaxLength); 878efcc2a30SJung-uk Kim 8797cf3e94aSJung-uk Kim #if defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP 880efcc2a30SJung-uk Kim void 881efcc2a30SJung-uk Kim UtConvertBackslashes ( 882efcc2a30SJung-uk Kim char *Pathname); 8837cf3e94aSJung-uk Kim #endif 884efcc2a30SJung-uk Kim 885efcc2a30SJung-uk Kim void 886efcc2a30SJung-uk Kim AcpiUtRepairName ( 887efcc2a30SJung-uk Kim char *Name); 888efcc2a30SJung-uk Kim 889313a0c13SJung-uk Kim #if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION) 890313a0c13SJung-uk Kim BOOLEAN 891313a0c13SJung-uk Kim AcpiUtSafeStrcpy ( 892313a0c13SJung-uk Kim char *Dest, 893313a0c13SJung-uk Kim ACPI_SIZE DestSize, 894313a0c13SJung-uk Kim char *Source); 895313a0c13SJung-uk Kim 896313a0c13SJung-uk Kim BOOLEAN 897313a0c13SJung-uk Kim AcpiUtSafeStrcat ( 898313a0c13SJung-uk Kim char *Dest, 899313a0c13SJung-uk Kim ACPI_SIZE DestSize, 900313a0c13SJung-uk Kim char *Source); 901f8146b88SJung-uk Kim 902f8146b88SJung-uk Kim BOOLEAN 903f8146b88SJung-uk Kim AcpiUtSafeStrncat ( 904f8146b88SJung-uk Kim char *Dest, 905f8146b88SJung-uk Kim ACPI_SIZE DestSize, 906f8146b88SJung-uk Kim char *Source, 907f8146b88SJung-uk Kim ACPI_SIZE MaxTransferLength); 908313a0c13SJung-uk Kim #endif 909313a0c13SJung-uk Kim 910efcc2a30SJung-uk Kim 911efcc2a30SJung-uk Kim /* 912a9f12690SJung-uk Kim * utmutex - mutex support 913a9f12690SJung-uk Kim */ 914a9f12690SJung-uk Kim ACPI_STATUS 915a9f12690SJung-uk Kim AcpiUtMutexInitialize ( 916a9f12690SJung-uk Kim void); 917a9f12690SJung-uk Kim 918a9f12690SJung-uk Kim void 919a9f12690SJung-uk Kim AcpiUtMutexTerminate ( 920a9f12690SJung-uk Kim void); 921a9f12690SJung-uk Kim 922a9f12690SJung-uk Kim ACPI_STATUS 923a9f12690SJung-uk Kim AcpiUtAcquireMutex ( 924a9f12690SJung-uk Kim ACPI_MUTEX_HANDLE MutexId); 925a9f12690SJung-uk Kim 926a9f12690SJung-uk Kim ACPI_STATUS 927a9f12690SJung-uk Kim AcpiUtReleaseMutex ( 928a9f12690SJung-uk Kim ACPI_MUTEX_HANDLE MutexId); 929a9f12690SJung-uk Kim 930a9f12690SJung-uk Kim 931a9f12690SJung-uk Kim /* 932a9f12690SJung-uk Kim * utalloc - memory allocation and object caching 933a9f12690SJung-uk Kim */ 934a9f12690SJung-uk Kim ACPI_STATUS 935a9f12690SJung-uk Kim AcpiUtCreateCaches ( 936a9f12690SJung-uk Kim void); 937a9f12690SJung-uk Kim 938a9f12690SJung-uk Kim ACPI_STATUS 939a9f12690SJung-uk Kim AcpiUtDeleteCaches ( 940a9f12690SJung-uk Kim void); 941a9f12690SJung-uk Kim 942a9f12690SJung-uk Kim ACPI_STATUS 943a9f12690SJung-uk Kim AcpiUtValidateBuffer ( 944a9f12690SJung-uk Kim ACPI_BUFFER *Buffer); 945a9f12690SJung-uk Kim 946a9f12690SJung-uk Kim ACPI_STATUS 947a9f12690SJung-uk Kim AcpiUtInitializeBuffer ( 948a9f12690SJung-uk Kim ACPI_BUFFER *Buffer, 949a9f12690SJung-uk Kim ACPI_SIZE RequiredLength); 950a9f12690SJung-uk Kim 951a9f12690SJung-uk Kim #ifdef ACPI_DBG_TRACK_ALLOCATIONS 952a9f12690SJung-uk Kim void * 953a9f12690SJung-uk Kim AcpiUtAllocateAndTrack ( 954a9f12690SJung-uk Kim ACPI_SIZE Size, 955a9f12690SJung-uk Kim UINT32 Component, 956a9f12690SJung-uk Kim const char *Module, 957a9f12690SJung-uk Kim UINT32 Line); 958a9f12690SJung-uk Kim 959a9f12690SJung-uk Kim void * 960a9f12690SJung-uk Kim AcpiUtAllocateZeroedAndTrack ( 961a9f12690SJung-uk Kim ACPI_SIZE Size, 962a9f12690SJung-uk Kim UINT32 Component, 963a9f12690SJung-uk Kim const char *Module, 964a9f12690SJung-uk Kim UINT32 Line); 965a9f12690SJung-uk Kim 966a9f12690SJung-uk Kim void 967a9f12690SJung-uk Kim AcpiUtFreeAndTrack ( 968a9f12690SJung-uk Kim void *Address, 969a9f12690SJung-uk Kim UINT32 Component, 970a9f12690SJung-uk Kim const char *Module, 971a9f12690SJung-uk Kim UINT32 Line); 972a9f12690SJung-uk Kim 973a9f12690SJung-uk Kim void 974a9f12690SJung-uk Kim AcpiUtDumpAllocationInfo ( 975a9f12690SJung-uk Kim void); 976a9f12690SJung-uk Kim 977a9f12690SJung-uk Kim void 978a9f12690SJung-uk Kim AcpiUtDumpAllocations ( 979a9f12690SJung-uk Kim UINT32 Component, 980a9f12690SJung-uk Kim const char *Module); 981a9f12690SJung-uk Kim 982a9f12690SJung-uk Kim ACPI_STATUS 983a9f12690SJung-uk Kim AcpiUtCreateList ( 984f8146b88SJung-uk Kim const char *ListName, 985a9f12690SJung-uk Kim UINT16 ObjectSize, 986a9f12690SJung-uk Kim ACPI_MEMORY_LIST **ReturnCache); 987a9f12690SJung-uk Kim 98842fecd12SJung-uk Kim #endif /* ACPI_DBG_TRACK_ALLOCATIONS */ 989a9f12690SJung-uk Kim 990fe0f0bbbSJung-uk Kim 991ec3fc72fSJung-uk Kim /* 992ec3fc72fSJung-uk Kim * utaddress - address range check 993ec3fc72fSJung-uk Kim */ 994ec3fc72fSJung-uk Kim ACPI_STATUS 995ec3fc72fSJung-uk Kim AcpiUtAddAddressRange ( 996ec3fc72fSJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 997ec3fc72fSJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 998ec3fc72fSJung-uk Kim UINT32 Length, 999ec3fc72fSJung-uk Kim ACPI_NAMESPACE_NODE *RegionNode); 1000ec3fc72fSJung-uk Kim 1001ec3fc72fSJung-uk Kim void 1002ec3fc72fSJung-uk Kim AcpiUtRemoveAddressRange ( 1003ec3fc72fSJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 1004ec3fc72fSJung-uk Kim ACPI_NAMESPACE_NODE *RegionNode); 1005ec3fc72fSJung-uk Kim 1006ec3fc72fSJung-uk Kim UINT32 1007ec3fc72fSJung-uk Kim AcpiUtCheckAddressRange ( 1008ec3fc72fSJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 1009ec3fc72fSJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 1010ec3fc72fSJung-uk Kim UINT32 Length, 1011ec3fc72fSJung-uk Kim BOOLEAN Warn); 1012ec3fc72fSJung-uk Kim 1013ec3fc72fSJung-uk Kim void 1014ec3fc72fSJung-uk Kim AcpiUtDeleteAddressLists ( 1015ec3fc72fSJung-uk Kim void); 101642fecd12SJung-uk Kim 1017fe0f0bbbSJung-uk Kim 101842fecd12SJung-uk Kim /* 101942fecd12SJung-uk Kim * utxferror - various error/warning output functions 102042fecd12SJung-uk Kim */ 102142fecd12SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE 102242fecd12SJung-uk Kim AcpiUtPredefinedWarning ( 102342fecd12SJung-uk Kim const char *ModuleName, 102442fecd12SJung-uk Kim UINT32 LineNumber, 102542fecd12SJung-uk Kim char *Pathname, 102642fecd12SJung-uk Kim UINT8 NodeFlags, 102742fecd12SJung-uk Kim const char *Format, 102842fecd12SJung-uk Kim ...); 102942fecd12SJung-uk Kim 103042fecd12SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE 103142fecd12SJung-uk Kim AcpiUtPredefinedInfo ( 103242fecd12SJung-uk Kim const char *ModuleName, 103342fecd12SJung-uk Kim UINT32 LineNumber, 103442fecd12SJung-uk Kim char *Pathname, 103542fecd12SJung-uk Kim UINT8 NodeFlags, 103642fecd12SJung-uk Kim const char *Format, 103742fecd12SJung-uk Kim ...); 103842fecd12SJung-uk Kim 1039895f26a9SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE 1040895f26a9SJung-uk Kim AcpiUtPredefinedBiosError ( 1041895f26a9SJung-uk Kim const char *ModuleName, 1042895f26a9SJung-uk Kim UINT32 LineNumber, 1043895f26a9SJung-uk Kim char *Pathname, 1044895f26a9SJung-uk Kim UINT8 NodeFlags, 1045895f26a9SJung-uk Kim const char *Format, 1046895f26a9SJung-uk Kim ...); 1047895f26a9SJung-uk Kim 104842fecd12SJung-uk Kim void 104942fecd12SJung-uk Kim AcpiUtNamespaceError ( 105042fecd12SJung-uk Kim const char *ModuleName, 105142fecd12SJung-uk Kim UINT32 LineNumber, 105242fecd12SJung-uk Kim const char *InternalName, 105342fecd12SJung-uk Kim ACPI_STATUS LookupStatus); 105442fecd12SJung-uk Kim 105542fecd12SJung-uk Kim void 105642fecd12SJung-uk Kim AcpiUtMethodError ( 105742fecd12SJung-uk Kim const char *ModuleName, 105842fecd12SJung-uk Kim UINT32 LineNumber, 105942fecd12SJung-uk Kim const char *Message, 106042fecd12SJung-uk Kim ACPI_NAMESPACE_NODE *Node, 106142fecd12SJung-uk Kim const char *Path, 106242fecd12SJung-uk Kim ACPI_STATUS LookupStatus); 1063a9f12690SJung-uk Kim 1064fe0f0bbbSJung-uk Kim 1065313a0c13SJung-uk Kim /* 1066313a0c13SJung-uk Kim * Utility functions for ACPI names and IDs 1067313a0c13SJung-uk Kim */ 1068313a0c13SJung-uk Kim const AH_PREDEFINED_NAME * 1069313a0c13SJung-uk Kim AcpiAhMatchPredefinedName ( 1070313a0c13SJung-uk Kim char *Nameseg); 1071313a0c13SJung-uk Kim 1072313a0c13SJung-uk Kim const AH_DEVICE_ID * 1073313a0c13SJung-uk Kim AcpiAhMatchHardwareId ( 1074313a0c13SJung-uk Kim char *Hid); 1075313a0c13SJung-uk Kim 1076313a0c13SJung-uk Kim const char * 1077313a0c13SJung-uk Kim AcpiAhMatchUuid ( 1078313a0c13SJung-uk Kim UINT8 *Data); 1079313a0c13SJung-uk Kim 1080fe0f0bbbSJung-uk Kim 1081313a0c13SJung-uk Kim /* 1082313a0c13SJung-uk Kim * utuuid -- UUID support functions 1083313a0c13SJung-uk Kim */ 10847cf3e94aSJung-uk Kim #if (defined ACPI_ASL_COMPILER || defined ACPI_DISASSEMBLER || defined ACPI_EXEC_APP || defined ACPI_HELP_APP) 1085313a0c13SJung-uk Kim void 1086313a0c13SJung-uk Kim AcpiUtConvertStringToUuid ( 1087313a0c13SJung-uk Kim char *InString, 1088313a0c13SJung-uk Kim UINT8 *UuidBuffer); 10897cf3e94aSJung-uk Kim #endif 1090313a0c13SJung-uk Kim 1091a9f12690SJung-uk Kim #endif /* _ACUTILS_H */ 1092