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 /* 8efcc2a30SJung-uk Kim * Copyright (C) 2000 - 2013, 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 53a9f12690SJung-uk Kim #if 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 91a9f12690SJung-uk Kim /* Types for Resource descriptor entries */ 92a9f12690SJung-uk Kim 93a9f12690SJung-uk Kim #define ACPI_INVALID_RESOURCE 0 94a9f12690SJung-uk Kim #define ACPI_FIXED_LENGTH 1 95a9f12690SJung-uk Kim #define ACPI_VARIABLE_LENGTH 2 96a9f12690SJung-uk Kim #define ACPI_SMALL_VARIABLE_LENGTH 3 97a9f12690SJung-uk Kim 98a9f12690SJung-uk Kim typedef 99a9f12690SJung-uk Kim ACPI_STATUS (*ACPI_WALK_AML_CALLBACK) ( 100a9f12690SJung-uk Kim UINT8 *Aml, 101a9f12690SJung-uk Kim UINT32 Length, 102a9f12690SJung-uk Kim UINT32 Offset, 103a9f12690SJung-uk Kim UINT8 ResourceIndex, 104efcc2a30SJung-uk Kim void **Context); 105a9f12690SJung-uk Kim 106a9f12690SJung-uk Kim typedef 107a9f12690SJung-uk Kim ACPI_STATUS (*ACPI_PKG_CALLBACK) ( 108a9f12690SJung-uk Kim UINT8 ObjectType, 109a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceObject, 110a9f12690SJung-uk Kim ACPI_GENERIC_STATE *State, 111a9f12690SJung-uk Kim void *Context); 112a9f12690SJung-uk Kim 113a9f12690SJung-uk Kim typedef struct acpi_pkg_info 114a9f12690SJung-uk Kim { 115a9f12690SJung-uk Kim UINT8 *FreeSpace; 116a9f12690SJung-uk Kim ACPI_SIZE Length; 117a9f12690SJung-uk Kim UINT32 ObjectSpace; 118a9f12690SJung-uk Kim UINT32 NumPackages; 119a9f12690SJung-uk Kim 120a9f12690SJung-uk Kim } ACPI_PKG_INFO; 121a9f12690SJung-uk Kim 122a9f12690SJung-uk Kim #define REF_INCREMENT (UINT16) 0 123a9f12690SJung-uk Kim #define REF_DECREMENT (UINT16) 1 124a9f12690SJung-uk Kim #define REF_FORCE_DELETE (UINT16) 2 125a9f12690SJung-uk Kim 126a9f12690SJung-uk Kim /* AcpiUtDumpBuffer */ 127a9f12690SJung-uk Kim 128a9f12690SJung-uk Kim #define DB_BYTE_DISPLAY 1 129a9f12690SJung-uk Kim #define DB_WORD_DISPLAY 2 130a9f12690SJung-uk Kim #define DB_DWORD_DISPLAY 4 131a9f12690SJung-uk Kim #define DB_QWORD_DISPLAY 8 132a9f12690SJung-uk Kim 133a9f12690SJung-uk Kim /* 134a9f12690SJung-uk Kim * utglobal - Global data structures and procedures 135a9f12690SJung-uk Kim */ 136a9f12690SJung-uk Kim ACPI_STATUS 137a9f12690SJung-uk Kim AcpiUtInitGlobals ( 138a9f12690SJung-uk Kim void); 139a9f12690SJung-uk Kim 140a9f12690SJung-uk Kim #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 141a9f12690SJung-uk Kim 142a9f12690SJung-uk Kim char * 143a9f12690SJung-uk Kim AcpiUtGetMutexName ( 144a9f12690SJung-uk Kim UINT32 MutexId); 145a9f12690SJung-uk Kim 146a9f12690SJung-uk Kim const char * 147a9f12690SJung-uk Kim AcpiUtGetNotifyName ( 148a9f12690SJung-uk Kim UINT32 NotifyValue); 149a9f12690SJung-uk Kim 150a9f12690SJung-uk Kim #endif 151a9f12690SJung-uk Kim 152a9f12690SJung-uk Kim char * 153a9f12690SJung-uk Kim AcpiUtGetTypeName ( 154a9f12690SJung-uk Kim ACPI_OBJECT_TYPE Type); 155a9f12690SJung-uk Kim 156a9f12690SJung-uk Kim char * 157a9f12690SJung-uk Kim AcpiUtGetNodeName ( 158a9f12690SJung-uk Kim void *Object); 159a9f12690SJung-uk Kim 160a9f12690SJung-uk Kim char * 161a9f12690SJung-uk Kim AcpiUtGetDescriptorName ( 162a9f12690SJung-uk Kim void *Object); 163a9f12690SJung-uk Kim 164a9f12690SJung-uk Kim const char * 165a9f12690SJung-uk Kim AcpiUtGetReferenceName ( 166a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 167a9f12690SJung-uk Kim 168a9f12690SJung-uk Kim char * 169a9f12690SJung-uk Kim AcpiUtGetObjectTypeName ( 170a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc); 171a9f12690SJung-uk Kim 172a9f12690SJung-uk Kim char * 173a9f12690SJung-uk Kim AcpiUtGetRegionName ( 174a9f12690SJung-uk Kim UINT8 SpaceId); 175a9f12690SJung-uk Kim 176a9f12690SJung-uk Kim char * 177a9f12690SJung-uk Kim AcpiUtGetEventName ( 178a9f12690SJung-uk Kim UINT32 EventId); 179a9f12690SJung-uk Kim 180a9f12690SJung-uk Kim char 181a9f12690SJung-uk Kim AcpiUtHexToAsciiChar ( 1829a179dd8SJung-uk Kim UINT64 Integer, 183a9f12690SJung-uk Kim UINT32 Position); 184a9f12690SJung-uk Kim 185a9f12690SJung-uk Kim BOOLEAN 186a9f12690SJung-uk Kim AcpiUtValidObjectType ( 187a9f12690SJung-uk Kim ACPI_OBJECT_TYPE Type); 188a9f12690SJung-uk Kim 189a9f12690SJung-uk Kim 190a9f12690SJung-uk Kim /* 191a9f12690SJung-uk Kim * utinit - miscellaneous initialization and shutdown 192a9f12690SJung-uk Kim */ 193a9f12690SJung-uk Kim ACPI_STATUS 194a9f12690SJung-uk Kim AcpiUtHardwareInitialize ( 195a9f12690SJung-uk Kim void); 196a9f12690SJung-uk Kim 197a9f12690SJung-uk Kim void 198a9f12690SJung-uk Kim AcpiUtSubsystemShutdown ( 199a9f12690SJung-uk Kim void); 200a9f12690SJung-uk Kim 201a9f12690SJung-uk Kim 202a9f12690SJung-uk Kim /* 203a9f12690SJung-uk Kim * utclib - Local implementations of C library functions 204a9f12690SJung-uk Kim */ 205a9f12690SJung-uk Kim #ifndef ACPI_USE_SYSTEM_CLIBRARY 206a9f12690SJung-uk Kim 207a9f12690SJung-uk Kim ACPI_SIZE 208a9f12690SJung-uk Kim AcpiUtStrlen ( 209a9f12690SJung-uk Kim const char *String); 210a9f12690SJung-uk Kim 211a9f12690SJung-uk Kim char * 212a9f12690SJung-uk Kim AcpiUtStrcpy ( 213a9f12690SJung-uk Kim char *DstString, 214a9f12690SJung-uk Kim const char *SrcString); 215a9f12690SJung-uk Kim 216a9f12690SJung-uk Kim char * 217a9f12690SJung-uk Kim AcpiUtStrncpy ( 218a9f12690SJung-uk Kim char *DstString, 219a9f12690SJung-uk Kim const char *SrcString, 220a9f12690SJung-uk Kim ACPI_SIZE Count); 221a9f12690SJung-uk Kim 222a9f12690SJung-uk Kim int 223a9f12690SJung-uk Kim AcpiUtMemcmp ( 224a9f12690SJung-uk Kim const char *Buffer1, 225a9f12690SJung-uk Kim const char *Buffer2, 226a9f12690SJung-uk Kim ACPI_SIZE Count); 227a9f12690SJung-uk Kim 228a9f12690SJung-uk Kim int 229a9f12690SJung-uk Kim AcpiUtStrncmp ( 230a9f12690SJung-uk Kim const char *String1, 231a9f12690SJung-uk Kim const char *String2, 232a9f12690SJung-uk Kim ACPI_SIZE Count); 233a9f12690SJung-uk Kim 234a9f12690SJung-uk Kim int 235a9f12690SJung-uk Kim AcpiUtStrcmp ( 236a9f12690SJung-uk Kim const char *String1, 237a9f12690SJung-uk Kim const char *String2); 238a9f12690SJung-uk Kim 239a9f12690SJung-uk Kim char * 240a9f12690SJung-uk Kim AcpiUtStrcat ( 241a9f12690SJung-uk Kim char *DstString, 242a9f12690SJung-uk Kim const char *SrcString); 243a9f12690SJung-uk Kim 244a9f12690SJung-uk Kim char * 245a9f12690SJung-uk Kim AcpiUtStrncat ( 246a9f12690SJung-uk Kim char *DstString, 247a9f12690SJung-uk Kim const char *SrcString, 248a9f12690SJung-uk Kim ACPI_SIZE Count); 249a9f12690SJung-uk Kim 250a9f12690SJung-uk Kim UINT32 251a9f12690SJung-uk Kim AcpiUtStrtoul ( 252a9f12690SJung-uk Kim const char *String, 253a9f12690SJung-uk Kim char **Terminator, 254a9f12690SJung-uk Kim UINT32 Base); 255a9f12690SJung-uk Kim 256a9f12690SJung-uk Kim char * 257a9f12690SJung-uk Kim AcpiUtStrstr ( 258a9f12690SJung-uk Kim char *String1, 259a9f12690SJung-uk Kim char *String2); 260a9f12690SJung-uk Kim 261a9f12690SJung-uk Kim void * 262a9f12690SJung-uk Kim AcpiUtMemcpy ( 263a9f12690SJung-uk Kim void *Dest, 264a9f12690SJung-uk Kim const void *Src, 265a9f12690SJung-uk Kim ACPI_SIZE Count); 266a9f12690SJung-uk Kim 267a9f12690SJung-uk Kim void * 268a9f12690SJung-uk Kim AcpiUtMemset ( 269a9f12690SJung-uk Kim void *Dest, 270a9f12690SJung-uk Kim UINT8 Value, 271a9f12690SJung-uk Kim ACPI_SIZE Count); 272a9f12690SJung-uk Kim 273a9f12690SJung-uk Kim int 274a9f12690SJung-uk Kim AcpiUtToUpper ( 275a9f12690SJung-uk Kim int c); 276a9f12690SJung-uk Kim 277a9f12690SJung-uk Kim int 278a9f12690SJung-uk Kim AcpiUtToLower ( 279a9f12690SJung-uk Kim int c); 280a9f12690SJung-uk Kim 281a9f12690SJung-uk Kim extern const UINT8 _acpi_ctype[]; 282a9f12690SJung-uk Kim 283a9f12690SJung-uk Kim #define _ACPI_XA 0x00 /* extra alphabetic - not supported */ 284a9f12690SJung-uk Kim #define _ACPI_XS 0x40 /* extra space */ 285a9f12690SJung-uk Kim #define _ACPI_BB 0x00 /* BEL, BS, etc. - not supported */ 286a9f12690SJung-uk Kim #define _ACPI_CN 0x20 /* CR, FF, HT, NL, VT */ 287a9f12690SJung-uk Kim #define _ACPI_DI 0x04 /* '0'-'9' */ 288a9f12690SJung-uk Kim #define _ACPI_LO 0x02 /* 'a'-'z' */ 289a9f12690SJung-uk Kim #define _ACPI_PU 0x10 /* punctuation */ 290a9f12690SJung-uk Kim #define _ACPI_SP 0x08 /* space */ 291a9f12690SJung-uk Kim #define _ACPI_UP 0x01 /* 'A'-'Z' */ 292a9f12690SJung-uk Kim #define _ACPI_XD 0x80 /* '0'-'9', 'A'-'F', 'a'-'f' */ 293a9f12690SJung-uk Kim 294a9f12690SJung-uk Kim #define ACPI_IS_DIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_DI)) 295a9f12690SJung-uk Kim #define ACPI_IS_SPACE(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_SP)) 296a9f12690SJung-uk Kim #define ACPI_IS_XDIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_XD)) 297a9f12690SJung-uk Kim #define ACPI_IS_UPPER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_UP)) 298a9f12690SJung-uk Kim #define ACPI_IS_LOWER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO)) 299a9f12690SJung-uk Kim #define ACPI_IS_PRINT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_SP | _ACPI_PU)) 300a9f12690SJung-uk Kim #define ACPI_IS_ALPHA(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP)) 301a9f12690SJung-uk Kim 302a9f12690SJung-uk Kim #endif /* !ACPI_USE_SYSTEM_CLIBRARY */ 303a9f12690SJung-uk Kim 304a9f12690SJung-uk Kim #define ACPI_IS_ASCII(c) ((c) < 0x80) 305a9f12690SJung-uk Kim 306a9f12690SJung-uk Kim 307a9f12690SJung-uk Kim /* 308a9f12690SJung-uk Kim * utcopy - Object construction and conversion interfaces 309a9f12690SJung-uk Kim */ 310a9f12690SJung-uk Kim ACPI_STATUS 311a9f12690SJung-uk Kim AcpiUtBuildSimpleObject( 312a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 313a9f12690SJung-uk Kim ACPI_OBJECT *UserObj, 314a9f12690SJung-uk Kim UINT8 *DataSpace, 315a9f12690SJung-uk Kim UINT32 *BufferSpaceUsed); 316a9f12690SJung-uk Kim 317a9f12690SJung-uk Kim ACPI_STATUS 318a9f12690SJung-uk Kim AcpiUtBuildPackageObject ( 319a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 320a9f12690SJung-uk Kim UINT8 *Buffer, 321a9f12690SJung-uk Kim UINT32 *SpaceUsed); 322a9f12690SJung-uk Kim 323a9f12690SJung-uk Kim ACPI_STATUS 324a9f12690SJung-uk Kim AcpiUtCopyIobjectToEobject ( 325a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 326a9f12690SJung-uk Kim ACPI_BUFFER *RetBuffer); 327a9f12690SJung-uk Kim 328a9f12690SJung-uk Kim ACPI_STATUS 329a9f12690SJung-uk Kim AcpiUtCopyEobjectToIobject ( 330a9f12690SJung-uk Kim ACPI_OBJECT *Obj, 331a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **InternalObj); 332a9f12690SJung-uk Kim 333a9f12690SJung-uk Kim ACPI_STATUS 334a9f12690SJung-uk Kim AcpiUtCopyISimpleToIsimple ( 335a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceObj, 336a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *DestObj); 337a9f12690SJung-uk Kim 338a9f12690SJung-uk Kim ACPI_STATUS 339a9f12690SJung-uk Kim AcpiUtCopyIobjectToIobject ( 340a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 341a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **DestDesc, 342a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 343a9f12690SJung-uk Kim 344a9f12690SJung-uk Kim 345a9f12690SJung-uk Kim /* 346a9f12690SJung-uk Kim * utcreate - Object creation 347a9f12690SJung-uk Kim */ 348a9f12690SJung-uk Kim ACPI_STATUS 349a9f12690SJung-uk Kim AcpiUtUpdateObjectReference ( 350a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object, 351a9f12690SJung-uk Kim UINT16 Action); 352a9f12690SJung-uk Kim 353a9f12690SJung-uk Kim 354a9f12690SJung-uk Kim /* 355a9f12690SJung-uk Kim * utdebug - Debug interfaces 356a9f12690SJung-uk Kim */ 357a9f12690SJung-uk Kim void 358a9f12690SJung-uk Kim AcpiUtInitStackPtrTrace ( 359a9f12690SJung-uk Kim void); 360a9f12690SJung-uk Kim 361a9f12690SJung-uk Kim void 362a9f12690SJung-uk Kim AcpiUtTrackStackPtr ( 363a9f12690SJung-uk Kim void); 364a9f12690SJung-uk Kim 365a9f12690SJung-uk Kim void 366a9f12690SJung-uk Kim AcpiUtTrace ( 367a9f12690SJung-uk Kim UINT32 LineNumber, 368a9f12690SJung-uk Kim const char *FunctionName, 369a9f12690SJung-uk Kim const char *ModuleName, 370a9f12690SJung-uk Kim UINT32 ComponentId); 371a9f12690SJung-uk Kim 372a9f12690SJung-uk Kim void 373a9f12690SJung-uk Kim AcpiUtTracePtr ( 374a9f12690SJung-uk Kim UINT32 LineNumber, 375a9f12690SJung-uk Kim const char *FunctionName, 376a9f12690SJung-uk Kim const char *ModuleName, 377a9f12690SJung-uk Kim UINT32 ComponentId, 378a9f12690SJung-uk Kim void *Pointer); 379a9f12690SJung-uk Kim 380a9f12690SJung-uk Kim void 381a9f12690SJung-uk Kim AcpiUtTraceU32 ( 382a9f12690SJung-uk Kim UINT32 LineNumber, 383a9f12690SJung-uk Kim const char *FunctionName, 384a9f12690SJung-uk Kim const char *ModuleName, 385a9f12690SJung-uk Kim UINT32 ComponentId, 386a9f12690SJung-uk Kim UINT32 Integer); 387a9f12690SJung-uk Kim 388a9f12690SJung-uk Kim void 389a9f12690SJung-uk Kim AcpiUtTraceStr ( 390a9f12690SJung-uk Kim UINT32 LineNumber, 391a9f12690SJung-uk Kim const char *FunctionName, 392a9f12690SJung-uk Kim const char *ModuleName, 393a9f12690SJung-uk Kim UINT32 ComponentId, 394a9f12690SJung-uk Kim char *String); 395a9f12690SJung-uk Kim 396a9f12690SJung-uk Kim void 397a9f12690SJung-uk Kim AcpiUtExit ( 398a9f12690SJung-uk Kim UINT32 LineNumber, 399a9f12690SJung-uk Kim const char *FunctionName, 400a9f12690SJung-uk Kim const char *ModuleName, 401a9f12690SJung-uk Kim UINT32 ComponentId); 402a9f12690SJung-uk Kim 403a9f12690SJung-uk Kim void 404a9f12690SJung-uk Kim AcpiUtStatusExit ( 405a9f12690SJung-uk Kim UINT32 LineNumber, 406a9f12690SJung-uk Kim const char *FunctionName, 407a9f12690SJung-uk Kim const char *ModuleName, 408a9f12690SJung-uk Kim UINT32 ComponentId, 409a9f12690SJung-uk Kim ACPI_STATUS Status); 410a9f12690SJung-uk Kim 411a9f12690SJung-uk Kim void 412a9f12690SJung-uk Kim AcpiUtValueExit ( 413a9f12690SJung-uk Kim UINT32 LineNumber, 414a9f12690SJung-uk Kim const char *FunctionName, 415a9f12690SJung-uk Kim const char *ModuleName, 416a9f12690SJung-uk Kim UINT32 ComponentId, 4179a179dd8SJung-uk Kim UINT64 Value); 418a9f12690SJung-uk Kim 419a9f12690SJung-uk Kim void 420a9f12690SJung-uk Kim AcpiUtPtrExit ( 421a9f12690SJung-uk Kim UINT32 LineNumber, 422a9f12690SJung-uk Kim const char *FunctionName, 423a9f12690SJung-uk Kim const char *ModuleName, 424a9f12690SJung-uk Kim UINT32 ComponentId, 425a9f12690SJung-uk Kim UINT8 *Ptr); 426a9f12690SJung-uk Kim 427a9f12690SJung-uk Kim void 4288ef1a331SJung-uk Kim AcpiUtDebugDumpBuffer ( 429a9f12690SJung-uk Kim UINT8 *Buffer, 430a9f12690SJung-uk Kim UINT32 Count, 431a9f12690SJung-uk Kim UINT32 Display, 432f38b0f21SJung-uk Kim UINT32 ComponentId); 433a9f12690SJung-uk Kim 434a9f12690SJung-uk Kim void 4358ef1a331SJung-uk Kim AcpiUtDumpBuffer ( 436a9f12690SJung-uk Kim UINT8 *Buffer, 437a9f12690SJung-uk Kim UINT32 Count, 4388ef1a331SJung-uk Kim UINT32 Display, 4398ef1a331SJung-uk Kim UINT32 Offset); 440a9f12690SJung-uk Kim 441a9f12690SJung-uk Kim void 442a9f12690SJung-uk Kim AcpiUtReportError ( 443a9f12690SJung-uk Kim char *ModuleName, 444a9f12690SJung-uk Kim UINT32 LineNumber); 445a9f12690SJung-uk Kim 446a9f12690SJung-uk Kim void 447a9f12690SJung-uk Kim AcpiUtReportInfo ( 448a9f12690SJung-uk Kim char *ModuleName, 449a9f12690SJung-uk Kim UINT32 LineNumber); 450a9f12690SJung-uk Kim 451a9f12690SJung-uk Kim void 452a9f12690SJung-uk Kim AcpiUtReportWarning ( 453a9f12690SJung-uk Kim char *ModuleName, 454a9f12690SJung-uk Kim UINT32 LineNumber); 455a9f12690SJung-uk Kim 456a9f12690SJung-uk Kim /* 457a9f12690SJung-uk Kim * utdelete - Object deletion and reference counts 458a9f12690SJung-uk Kim */ 459a9f12690SJung-uk Kim void 460a9f12690SJung-uk Kim AcpiUtAddReference ( 461a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 462a9f12690SJung-uk Kim 463a9f12690SJung-uk Kim void 464a9f12690SJung-uk Kim AcpiUtRemoveReference ( 465a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 466a9f12690SJung-uk Kim 467a9f12690SJung-uk Kim void 468a9f12690SJung-uk Kim AcpiUtDeleteInternalPackageObject ( 469a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 470a9f12690SJung-uk Kim 471a9f12690SJung-uk Kim void 472a9f12690SJung-uk Kim AcpiUtDeleteInternalSimpleObject ( 473a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 474a9f12690SJung-uk Kim 475a9f12690SJung-uk Kim void 476a9f12690SJung-uk Kim AcpiUtDeleteInternalObjectList ( 477a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ObjList); 478a9f12690SJung-uk Kim 479a9f12690SJung-uk Kim 480a9f12690SJung-uk Kim /* 481a9f12690SJung-uk Kim * uteval - object evaluation 482a9f12690SJung-uk Kim */ 483a9f12690SJung-uk Kim ACPI_STATUS 484a9f12690SJung-uk Kim AcpiUtEvaluateObject ( 485a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *PrefixNode, 486a9f12690SJung-uk Kim char *Path, 487a9f12690SJung-uk Kim UINT32 ExpectedReturnBtypes, 488a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ReturnDesc); 489a9f12690SJung-uk Kim 490a9f12690SJung-uk Kim ACPI_STATUS 491a9f12690SJung-uk Kim AcpiUtEvaluateNumericObject ( 492a9f12690SJung-uk Kim char *ObjectName, 493a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 4949a179dd8SJung-uk Kim UINT64 *Value); 495a9f12690SJung-uk Kim 496a9f12690SJung-uk Kim ACPI_STATUS 497a9f12690SJung-uk Kim AcpiUtExecute_STA ( 498a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 499a9f12690SJung-uk Kim UINT32 *StatusFlags); 500a9f12690SJung-uk Kim 501a9f12690SJung-uk Kim ACPI_STATUS 502d6dd1baeSJung-uk Kim AcpiUtExecutePowerMethods ( 503a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 504d6dd1baeSJung-uk Kim const char **MethodNames, 505d6dd1baeSJung-uk Kim UINT8 MethodCount, 506d6dd1baeSJung-uk Kim UINT8 *OutValues); 507d6dd1baeSJung-uk Kim 508d6dd1baeSJung-uk Kim 509d6dd1baeSJung-uk Kim /* 510d6dd1baeSJung-uk Kim * utids - device ID support 511d6dd1baeSJung-uk Kim */ 512d6dd1baeSJung-uk Kim ACPI_STATUS 513d6dd1baeSJung-uk Kim AcpiUtExecute_HID ( 514d6dd1baeSJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 5158ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID **ReturnId); 516a9f12690SJung-uk Kim 517a9f12690SJung-uk Kim ACPI_STATUS 518d6dd1baeSJung-uk Kim AcpiUtExecute_UID ( 519a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 5208ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID **ReturnId); 5218ef1a331SJung-uk Kim 5228ef1a331SJung-uk Kim ACPI_STATUS 5238ef1a331SJung-uk Kim AcpiUtExecute_SUB ( 5248ef1a331SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 5258ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID **ReturnId); 526d6dd1baeSJung-uk Kim 527d6dd1baeSJung-uk Kim ACPI_STATUS 528d6dd1baeSJung-uk Kim AcpiUtExecute_CID ( 529d6dd1baeSJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 5308ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID_LIST **ReturnCidList); 531d6dd1baeSJung-uk Kim 532a9f12690SJung-uk Kim 533a9f12690SJung-uk Kim /* 534a9f12690SJung-uk Kim * utlock - reader/writer locks 535a9f12690SJung-uk Kim */ 536a9f12690SJung-uk Kim ACPI_STATUS 537a9f12690SJung-uk Kim AcpiUtCreateRwLock ( 538a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 539a9f12690SJung-uk Kim 540a9f12690SJung-uk Kim void 541a9f12690SJung-uk Kim AcpiUtDeleteRwLock ( 542a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 543a9f12690SJung-uk Kim 544a9f12690SJung-uk Kim ACPI_STATUS 545a9f12690SJung-uk Kim AcpiUtAcquireReadLock ( 546a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 547a9f12690SJung-uk Kim 548a9f12690SJung-uk Kim ACPI_STATUS 549a9f12690SJung-uk Kim AcpiUtReleaseReadLock ( 550a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 551a9f12690SJung-uk Kim 552a9f12690SJung-uk Kim ACPI_STATUS 553a9f12690SJung-uk Kim AcpiUtAcquireWriteLock ( 554a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 555a9f12690SJung-uk Kim 556a9f12690SJung-uk Kim void 557a9f12690SJung-uk Kim AcpiUtReleaseWriteLock ( 558a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 559a9f12690SJung-uk Kim 560a9f12690SJung-uk Kim 561a9f12690SJung-uk Kim /* 562a9f12690SJung-uk Kim * utobject - internal object create/delete/cache routines 563a9f12690SJung-uk Kim */ 564a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 565a9f12690SJung-uk Kim AcpiUtCreateInternalObjectDbg ( 566a9f12690SJung-uk Kim const char *ModuleName, 567a9f12690SJung-uk Kim UINT32 LineNumber, 568a9f12690SJung-uk Kim UINT32 ComponentId, 569a9f12690SJung-uk Kim ACPI_OBJECT_TYPE Type); 570a9f12690SJung-uk Kim 571a9f12690SJung-uk Kim void * 572a9f12690SJung-uk Kim AcpiUtAllocateObjectDescDbg ( 573a9f12690SJung-uk Kim const char *ModuleName, 574a9f12690SJung-uk Kim UINT32 LineNumber, 575a9f12690SJung-uk Kim UINT32 ComponentId); 576a9f12690SJung-uk Kim 577a9f12690SJung-uk Kim #define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t) 578a9f12690SJung-uk Kim #define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT) 579a9f12690SJung-uk Kim 580a9f12690SJung-uk Kim void 581a9f12690SJung-uk Kim AcpiUtDeleteObjectDesc ( 582a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 583a9f12690SJung-uk Kim 584a9f12690SJung-uk Kim BOOLEAN 585a9f12690SJung-uk Kim AcpiUtValidInternalObject ( 586a9f12690SJung-uk Kim void *Object); 587a9f12690SJung-uk Kim 588a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 589a9f12690SJung-uk Kim AcpiUtCreatePackageObject ( 590a9f12690SJung-uk Kim UINT32 Count); 591a9f12690SJung-uk Kim 592a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 5932272d050SJung-uk Kim AcpiUtCreateIntegerObject ( 5942272d050SJung-uk Kim UINT64 Value); 5952272d050SJung-uk Kim 5962272d050SJung-uk Kim ACPI_OPERAND_OBJECT * 597a9f12690SJung-uk Kim AcpiUtCreateBufferObject ( 598a9f12690SJung-uk Kim ACPI_SIZE BufferSize); 599a9f12690SJung-uk Kim 600a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 601a9f12690SJung-uk Kim AcpiUtCreateStringObject ( 602a9f12690SJung-uk Kim ACPI_SIZE StringSize); 603a9f12690SJung-uk Kim 604a9f12690SJung-uk Kim ACPI_STATUS 605a9f12690SJung-uk Kim AcpiUtGetObjectSize( 606a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 607a9f12690SJung-uk Kim ACPI_SIZE *ObjLength); 608a9f12690SJung-uk Kim 609a9f12690SJung-uk Kim 610a9f12690SJung-uk Kim /* 611709fac06SJung-uk Kim * utosi - Support for the _OSI predefined control method 612709fac06SJung-uk Kim */ 613709fac06SJung-uk Kim ACPI_STATUS 614709fac06SJung-uk Kim AcpiUtInitializeInterfaces ( 615709fac06SJung-uk Kim void); 616709fac06SJung-uk Kim 617709fac06SJung-uk Kim void 618709fac06SJung-uk Kim AcpiUtInterfaceTerminate ( 619709fac06SJung-uk Kim void); 620709fac06SJung-uk Kim 621709fac06SJung-uk Kim ACPI_STATUS 622709fac06SJung-uk Kim AcpiUtInstallInterface ( 623709fac06SJung-uk Kim ACPI_STRING InterfaceName); 624709fac06SJung-uk Kim 625709fac06SJung-uk Kim ACPI_STATUS 626709fac06SJung-uk Kim AcpiUtRemoveInterface ( 627709fac06SJung-uk Kim ACPI_STRING InterfaceName); 628709fac06SJung-uk Kim 629709fac06SJung-uk Kim ACPI_INTERFACE_INFO * 630709fac06SJung-uk Kim AcpiUtGetInterface ( 631709fac06SJung-uk Kim ACPI_STRING InterfaceName); 632709fac06SJung-uk Kim 633709fac06SJung-uk Kim ACPI_STATUS 634709fac06SJung-uk Kim AcpiUtOsiImplementation ( 635709fac06SJung-uk Kim ACPI_WALK_STATE *WalkState); 636709fac06SJung-uk Kim 637709fac06SJung-uk Kim 638709fac06SJung-uk Kim /* 639a9f12690SJung-uk Kim * utstate - Generic state creation/cache routines 640a9f12690SJung-uk Kim */ 641a9f12690SJung-uk Kim void 642a9f12690SJung-uk Kim AcpiUtPushGenericState ( 643a9f12690SJung-uk Kim ACPI_GENERIC_STATE **ListHead, 644a9f12690SJung-uk Kim ACPI_GENERIC_STATE *State); 645a9f12690SJung-uk Kim 646a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 647a9f12690SJung-uk Kim AcpiUtPopGenericState ( 648a9f12690SJung-uk Kim ACPI_GENERIC_STATE **ListHead); 649a9f12690SJung-uk Kim 650a9f12690SJung-uk Kim 651a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 652a9f12690SJung-uk Kim AcpiUtCreateGenericState ( 653a9f12690SJung-uk Kim void); 654a9f12690SJung-uk Kim 655a9f12690SJung-uk Kim ACPI_THREAD_STATE * 656a9f12690SJung-uk Kim AcpiUtCreateThreadState ( 657a9f12690SJung-uk Kim void); 658a9f12690SJung-uk Kim 659a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 660a9f12690SJung-uk Kim AcpiUtCreateUpdateState ( 661a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object, 662a9f12690SJung-uk Kim UINT16 Action); 663a9f12690SJung-uk Kim 664a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 665a9f12690SJung-uk Kim AcpiUtCreatePkgState ( 666a9f12690SJung-uk Kim void *InternalObject, 667a9f12690SJung-uk Kim void *ExternalObject, 668a9f12690SJung-uk Kim UINT16 Index); 669a9f12690SJung-uk Kim 670a9f12690SJung-uk Kim ACPI_STATUS 671a9f12690SJung-uk Kim AcpiUtCreateUpdateStateAndPush ( 672a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object, 673a9f12690SJung-uk Kim UINT16 Action, 674a9f12690SJung-uk Kim ACPI_GENERIC_STATE **StateList); 675a9f12690SJung-uk Kim 676a9f12690SJung-uk Kim ACPI_STATUS 677a9f12690SJung-uk Kim AcpiUtCreatePkgStateAndPush ( 678a9f12690SJung-uk Kim void *InternalObject, 679a9f12690SJung-uk Kim void *ExternalObject, 680a9f12690SJung-uk Kim UINT16 Index, 681a9f12690SJung-uk Kim ACPI_GENERIC_STATE **StateList); 682a9f12690SJung-uk Kim 683a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 684a9f12690SJung-uk Kim AcpiUtCreateControlState ( 685a9f12690SJung-uk Kim void); 686a9f12690SJung-uk Kim 687a9f12690SJung-uk Kim void 688a9f12690SJung-uk Kim AcpiUtDeleteGenericState ( 689a9f12690SJung-uk Kim ACPI_GENERIC_STATE *State); 690a9f12690SJung-uk Kim 691a9f12690SJung-uk Kim 692a9f12690SJung-uk Kim /* 693a9f12690SJung-uk Kim * utmath 694a9f12690SJung-uk Kim */ 695a9f12690SJung-uk Kim ACPI_STATUS 696a9f12690SJung-uk Kim AcpiUtDivide ( 6979a179dd8SJung-uk Kim UINT64 InDividend, 6989a179dd8SJung-uk Kim UINT64 InDivisor, 6999a179dd8SJung-uk Kim UINT64 *OutQuotient, 7009a179dd8SJung-uk Kim UINT64 *OutRemainder); 701a9f12690SJung-uk Kim 702a9f12690SJung-uk Kim ACPI_STATUS 703a9f12690SJung-uk Kim AcpiUtShortDivide ( 7049a179dd8SJung-uk Kim UINT64 InDividend, 705a9f12690SJung-uk Kim UINT32 Divisor, 7069a179dd8SJung-uk Kim UINT64 *OutQuotient, 707a9f12690SJung-uk Kim UINT32 *OutRemainder); 708a9f12690SJung-uk Kim 709*9c48c75eSJung-uk Kim 710a9f12690SJung-uk Kim /* 711a9f12690SJung-uk Kim * utmisc 712a9f12690SJung-uk Kim */ 713*9c48c75eSJung-uk Kim const ACPI_EXCEPTION_INFO * 714a9f12690SJung-uk Kim AcpiUtValidateException ( 715a9f12690SJung-uk Kim ACPI_STATUS Status); 716a9f12690SJung-uk Kim 717a9f12690SJung-uk Kim BOOLEAN 718d6dd1baeSJung-uk Kim AcpiUtIsPciRootBridge ( 719d6dd1baeSJung-uk Kim char *Id); 720d6dd1baeSJung-uk Kim 721d6dd1baeSJung-uk Kim BOOLEAN 722a9f12690SJung-uk Kim AcpiUtIsAmlTable ( 723a9f12690SJung-uk Kim ACPI_TABLE_HEADER *Table); 724a9f12690SJung-uk Kim 725a9f12690SJung-uk Kim ACPI_STATUS 726a9f12690SJung-uk Kim AcpiUtWalkPackageTree ( 727a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceObject, 728a9f12690SJung-uk Kim void *TargetObject, 729a9f12690SJung-uk Kim ACPI_PKG_CALLBACK WalkCallback, 730a9f12690SJung-uk Kim void *Context); 731a9f12690SJung-uk Kim 732a9f12690SJung-uk Kim 733a9f12690SJung-uk Kim /* Values for Base above (16=Hex, 10=Decimal) */ 734a9f12690SJung-uk Kim 735a9f12690SJung-uk Kim #define ACPI_ANY_BASE 0 736a9f12690SJung-uk Kim 737a9f12690SJung-uk Kim UINT32 738a9f12690SJung-uk Kim AcpiUtDwordByteSwap ( 739a9f12690SJung-uk Kim UINT32 Value); 740a9f12690SJung-uk Kim 741a9f12690SJung-uk Kim void 742a9f12690SJung-uk Kim AcpiUtSetIntegerWidth ( 743a9f12690SJung-uk Kim UINT8 Revision); 744a9f12690SJung-uk Kim 745a9f12690SJung-uk Kim #ifdef ACPI_DEBUG_OUTPUT 746a9f12690SJung-uk Kim void 747a9f12690SJung-uk Kim AcpiUtDisplayInitPathname ( 748a9f12690SJung-uk Kim UINT8 Type, 749a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *ObjHandle, 750a9f12690SJung-uk Kim char *Path); 751a9f12690SJung-uk Kim #endif 752a9f12690SJung-uk Kim 753a9f12690SJung-uk Kim 754a9f12690SJung-uk Kim /* 755efcc2a30SJung-uk Kim * utownerid - Support for Table/Method Owner IDs 756efcc2a30SJung-uk Kim */ 757efcc2a30SJung-uk Kim ACPI_STATUS 758efcc2a30SJung-uk Kim AcpiUtAllocateOwnerId ( 759efcc2a30SJung-uk Kim ACPI_OWNER_ID *OwnerId); 760efcc2a30SJung-uk Kim 761efcc2a30SJung-uk Kim void 762efcc2a30SJung-uk Kim AcpiUtReleaseOwnerId ( 763efcc2a30SJung-uk Kim ACPI_OWNER_ID *OwnerId); 764efcc2a30SJung-uk Kim 765efcc2a30SJung-uk Kim 766efcc2a30SJung-uk Kim /* 767a9f12690SJung-uk Kim * utresrc 768a9f12690SJung-uk Kim */ 769a9f12690SJung-uk Kim ACPI_STATUS 770a9f12690SJung-uk Kim AcpiUtWalkAmlResources ( 771ed17e06eSJung-uk Kim ACPI_WALK_STATE *WalkState, 772a9f12690SJung-uk Kim UINT8 *Aml, 773a9f12690SJung-uk Kim ACPI_SIZE AmlLength, 774a9f12690SJung-uk Kim ACPI_WALK_AML_CALLBACK UserFunction, 775efcc2a30SJung-uk Kim void **Context); 776a9f12690SJung-uk Kim 777a9f12690SJung-uk Kim ACPI_STATUS 778a9f12690SJung-uk Kim AcpiUtValidateResource ( 779ed17e06eSJung-uk Kim ACPI_WALK_STATE *WalkState, 780a9f12690SJung-uk Kim void *Aml, 781a9f12690SJung-uk Kim UINT8 *ReturnIndex); 782a9f12690SJung-uk Kim 783a9f12690SJung-uk Kim UINT32 784a9f12690SJung-uk Kim AcpiUtGetDescriptorLength ( 785a9f12690SJung-uk Kim void *Aml); 786a9f12690SJung-uk Kim 787a9f12690SJung-uk Kim UINT16 788a9f12690SJung-uk Kim AcpiUtGetResourceLength ( 789a9f12690SJung-uk Kim void *Aml); 790a9f12690SJung-uk Kim 791a9f12690SJung-uk Kim UINT8 792a9f12690SJung-uk Kim AcpiUtGetResourceHeaderLength ( 793a9f12690SJung-uk Kim void *Aml); 794a9f12690SJung-uk Kim 795a9f12690SJung-uk Kim UINT8 796a9f12690SJung-uk Kim AcpiUtGetResourceType ( 797a9f12690SJung-uk Kim void *Aml); 798a9f12690SJung-uk Kim 799a9f12690SJung-uk Kim ACPI_STATUS 800a9f12690SJung-uk Kim AcpiUtGetResourceEndTag ( 801a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 802a9f12690SJung-uk Kim UINT8 **EndTag); 803a9f12690SJung-uk Kim 804a9f12690SJung-uk Kim 805a9f12690SJung-uk Kim /* 806efcc2a30SJung-uk Kim * utstring - String and character utilities 807efcc2a30SJung-uk Kim */ 808efcc2a30SJung-uk Kim void 809efcc2a30SJung-uk Kim AcpiUtStrupr ( 810efcc2a30SJung-uk Kim char *SrcString); 811efcc2a30SJung-uk Kim 812efcc2a30SJung-uk Kim void 813efcc2a30SJung-uk Kim AcpiUtStrlwr ( 814efcc2a30SJung-uk Kim char *SrcString); 815efcc2a30SJung-uk Kim 816efcc2a30SJung-uk Kim int 817efcc2a30SJung-uk Kim AcpiUtStricmp ( 818efcc2a30SJung-uk Kim char *String1, 819efcc2a30SJung-uk Kim char *String2); 820efcc2a30SJung-uk Kim 821efcc2a30SJung-uk Kim ACPI_STATUS 822efcc2a30SJung-uk Kim AcpiUtStrtoul64 ( 823efcc2a30SJung-uk Kim char *String, 824efcc2a30SJung-uk Kim UINT32 Base, 825efcc2a30SJung-uk Kim UINT64 *RetInteger); 826efcc2a30SJung-uk Kim 827efcc2a30SJung-uk Kim void 828efcc2a30SJung-uk Kim AcpiUtPrintString ( 829efcc2a30SJung-uk Kim char *String, 830efcc2a30SJung-uk Kim UINT8 MaxLength); 831efcc2a30SJung-uk Kim 832efcc2a30SJung-uk Kim void 833efcc2a30SJung-uk Kim UtConvertBackslashes ( 834efcc2a30SJung-uk Kim char *Pathname); 835efcc2a30SJung-uk Kim 836efcc2a30SJung-uk Kim BOOLEAN 837efcc2a30SJung-uk Kim AcpiUtValidAcpiName ( 838efcc2a30SJung-uk Kim UINT32 Name); 839efcc2a30SJung-uk Kim 840efcc2a30SJung-uk Kim BOOLEAN 841efcc2a30SJung-uk Kim AcpiUtValidAcpiChar ( 842efcc2a30SJung-uk Kim char Character, 843efcc2a30SJung-uk Kim UINT32 Position); 844efcc2a30SJung-uk Kim 845efcc2a30SJung-uk Kim void 846efcc2a30SJung-uk Kim AcpiUtRepairName ( 847efcc2a30SJung-uk Kim char *Name); 848efcc2a30SJung-uk Kim 849efcc2a30SJung-uk Kim 850efcc2a30SJung-uk Kim /* 851a9f12690SJung-uk Kim * utmutex - mutex support 852a9f12690SJung-uk Kim */ 853a9f12690SJung-uk Kim ACPI_STATUS 854a9f12690SJung-uk Kim AcpiUtMutexInitialize ( 855a9f12690SJung-uk Kim void); 856a9f12690SJung-uk Kim 857a9f12690SJung-uk Kim void 858a9f12690SJung-uk Kim AcpiUtMutexTerminate ( 859a9f12690SJung-uk Kim void); 860a9f12690SJung-uk Kim 861a9f12690SJung-uk Kim ACPI_STATUS 862a9f12690SJung-uk Kim AcpiUtAcquireMutex ( 863a9f12690SJung-uk Kim ACPI_MUTEX_HANDLE MutexId); 864a9f12690SJung-uk Kim 865a9f12690SJung-uk Kim ACPI_STATUS 866a9f12690SJung-uk Kim AcpiUtReleaseMutex ( 867a9f12690SJung-uk Kim ACPI_MUTEX_HANDLE MutexId); 868a9f12690SJung-uk Kim 869a9f12690SJung-uk Kim 870a9f12690SJung-uk Kim /* 871a9f12690SJung-uk Kim * utalloc - memory allocation and object caching 872a9f12690SJung-uk Kim */ 873a9f12690SJung-uk Kim ACPI_STATUS 874a9f12690SJung-uk Kim AcpiUtCreateCaches ( 875a9f12690SJung-uk Kim void); 876a9f12690SJung-uk Kim 877a9f12690SJung-uk Kim ACPI_STATUS 878a9f12690SJung-uk Kim AcpiUtDeleteCaches ( 879a9f12690SJung-uk Kim void); 880a9f12690SJung-uk Kim 881a9f12690SJung-uk Kim ACPI_STATUS 882a9f12690SJung-uk Kim AcpiUtValidateBuffer ( 883a9f12690SJung-uk Kim ACPI_BUFFER *Buffer); 884a9f12690SJung-uk Kim 885a9f12690SJung-uk Kim ACPI_STATUS 886a9f12690SJung-uk Kim AcpiUtInitializeBuffer ( 887a9f12690SJung-uk Kim ACPI_BUFFER *Buffer, 888a9f12690SJung-uk Kim ACPI_SIZE RequiredLength); 889a9f12690SJung-uk Kim 890a9f12690SJung-uk Kim void * 891a9f12690SJung-uk Kim AcpiUtAllocate ( 892a9f12690SJung-uk Kim ACPI_SIZE Size, 893a9f12690SJung-uk Kim UINT32 Component, 894a9f12690SJung-uk Kim const char *Module, 895a9f12690SJung-uk Kim UINT32 Line); 896a9f12690SJung-uk Kim 897a9f12690SJung-uk Kim void * 898a9f12690SJung-uk Kim AcpiUtAllocateZeroed ( 899a9f12690SJung-uk Kim ACPI_SIZE Size, 900a9f12690SJung-uk Kim UINT32 Component, 901a9f12690SJung-uk Kim const char *Module, 902a9f12690SJung-uk Kim UINT32 Line); 903a9f12690SJung-uk Kim 904a9f12690SJung-uk Kim #ifdef ACPI_DBG_TRACK_ALLOCATIONS 905a9f12690SJung-uk Kim void * 906a9f12690SJung-uk Kim AcpiUtAllocateAndTrack ( 907a9f12690SJung-uk Kim ACPI_SIZE Size, 908a9f12690SJung-uk Kim UINT32 Component, 909a9f12690SJung-uk Kim const char *Module, 910a9f12690SJung-uk Kim UINT32 Line); 911a9f12690SJung-uk Kim 912a9f12690SJung-uk Kim void * 913a9f12690SJung-uk Kim AcpiUtAllocateZeroedAndTrack ( 914a9f12690SJung-uk Kim ACPI_SIZE Size, 915a9f12690SJung-uk Kim UINT32 Component, 916a9f12690SJung-uk Kim const char *Module, 917a9f12690SJung-uk Kim UINT32 Line); 918a9f12690SJung-uk Kim 919a9f12690SJung-uk Kim void 920a9f12690SJung-uk Kim AcpiUtFreeAndTrack ( 921a9f12690SJung-uk Kim void *Address, 922a9f12690SJung-uk Kim UINT32 Component, 923a9f12690SJung-uk Kim const char *Module, 924a9f12690SJung-uk Kim UINT32 Line); 925a9f12690SJung-uk Kim 926a9f12690SJung-uk Kim void 927a9f12690SJung-uk Kim AcpiUtDumpAllocationInfo ( 928a9f12690SJung-uk Kim void); 929a9f12690SJung-uk Kim 930a9f12690SJung-uk Kim void 931a9f12690SJung-uk Kim AcpiUtDumpAllocations ( 932a9f12690SJung-uk Kim UINT32 Component, 933a9f12690SJung-uk Kim const char *Module); 934a9f12690SJung-uk Kim 935a9f12690SJung-uk Kim ACPI_STATUS 936a9f12690SJung-uk Kim AcpiUtCreateList ( 937a9f12690SJung-uk Kim char *ListName, 938a9f12690SJung-uk Kim UINT16 ObjectSize, 939a9f12690SJung-uk Kim ACPI_MEMORY_LIST **ReturnCache); 940a9f12690SJung-uk Kim 94142fecd12SJung-uk Kim #endif /* ACPI_DBG_TRACK_ALLOCATIONS */ 942a9f12690SJung-uk Kim 943ec3fc72fSJung-uk Kim /* 944ec3fc72fSJung-uk Kim * utaddress - address range check 945ec3fc72fSJung-uk Kim */ 946ec3fc72fSJung-uk Kim ACPI_STATUS 947ec3fc72fSJung-uk Kim AcpiUtAddAddressRange ( 948ec3fc72fSJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 949ec3fc72fSJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 950ec3fc72fSJung-uk Kim UINT32 Length, 951ec3fc72fSJung-uk Kim ACPI_NAMESPACE_NODE *RegionNode); 952ec3fc72fSJung-uk Kim 953ec3fc72fSJung-uk Kim void 954ec3fc72fSJung-uk Kim AcpiUtRemoveAddressRange ( 955ec3fc72fSJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 956ec3fc72fSJung-uk Kim ACPI_NAMESPACE_NODE *RegionNode); 957ec3fc72fSJung-uk Kim 958ec3fc72fSJung-uk Kim UINT32 959ec3fc72fSJung-uk Kim AcpiUtCheckAddressRange ( 960ec3fc72fSJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 961ec3fc72fSJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 962ec3fc72fSJung-uk Kim UINT32 Length, 963ec3fc72fSJung-uk Kim BOOLEAN Warn); 964ec3fc72fSJung-uk Kim 965ec3fc72fSJung-uk Kim void 966ec3fc72fSJung-uk Kim AcpiUtDeleteAddressLists ( 967ec3fc72fSJung-uk Kim void); 96842fecd12SJung-uk Kim 96942fecd12SJung-uk Kim /* 97042fecd12SJung-uk Kim * utxferror - various error/warning output functions 97142fecd12SJung-uk Kim */ 97242fecd12SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE 97342fecd12SJung-uk Kim AcpiUtPredefinedWarning ( 97442fecd12SJung-uk Kim const char *ModuleName, 97542fecd12SJung-uk Kim UINT32 LineNumber, 97642fecd12SJung-uk Kim char *Pathname, 97742fecd12SJung-uk Kim UINT8 NodeFlags, 97842fecd12SJung-uk Kim const char *Format, 97942fecd12SJung-uk Kim ...); 98042fecd12SJung-uk Kim 98142fecd12SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE 98242fecd12SJung-uk Kim AcpiUtPredefinedInfo ( 98342fecd12SJung-uk Kim const char *ModuleName, 98442fecd12SJung-uk Kim UINT32 LineNumber, 98542fecd12SJung-uk Kim char *Pathname, 98642fecd12SJung-uk Kim UINT8 NodeFlags, 98742fecd12SJung-uk Kim const char *Format, 98842fecd12SJung-uk Kim ...); 98942fecd12SJung-uk Kim 99042fecd12SJung-uk Kim void 99142fecd12SJung-uk Kim AcpiUtNamespaceError ( 99242fecd12SJung-uk Kim const char *ModuleName, 99342fecd12SJung-uk Kim UINT32 LineNumber, 99442fecd12SJung-uk Kim const char *InternalName, 99542fecd12SJung-uk Kim ACPI_STATUS LookupStatus); 99642fecd12SJung-uk Kim 99742fecd12SJung-uk Kim void 99842fecd12SJung-uk Kim AcpiUtMethodError ( 99942fecd12SJung-uk Kim const char *ModuleName, 100042fecd12SJung-uk Kim UINT32 LineNumber, 100142fecd12SJung-uk Kim const char *Message, 100242fecd12SJung-uk Kim ACPI_NAMESPACE_NODE *Node, 100342fecd12SJung-uk Kim const char *Path, 100442fecd12SJung-uk Kim ACPI_STATUS LookupStatus); 1005a9f12690SJung-uk Kim 1006a9f12690SJung-uk Kim #endif /* _ACUTILS_H */ 1007