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 1229c7c683cSJung-uk Kim /* Object reference counts */ 1239c7c683cSJung-uk Kim 124a9f12690SJung-uk Kim #define REF_INCREMENT (UINT16) 0 125a9f12690SJung-uk Kim #define REF_DECREMENT (UINT16) 1 126a9f12690SJung-uk Kim 127a9f12690SJung-uk Kim /* AcpiUtDumpBuffer */ 128a9f12690SJung-uk Kim 129a9f12690SJung-uk Kim #define DB_BYTE_DISPLAY 1 130a9f12690SJung-uk Kim #define DB_WORD_DISPLAY 2 131a9f12690SJung-uk Kim #define DB_DWORD_DISPLAY 4 132a9f12690SJung-uk Kim #define DB_QWORD_DISPLAY 8 133a9f12690SJung-uk Kim 134a9f12690SJung-uk Kim /* 135a9f12690SJung-uk Kim * utglobal - Global data structures and procedures 136a9f12690SJung-uk Kim */ 137a9f12690SJung-uk Kim ACPI_STATUS 138a9f12690SJung-uk Kim AcpiUtInitGlobals ( 139a9f12690SJung-uk Kim void); 140a9f12690SJung-uk Kim 141a9f12690SJung-uk Kim #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 142a9f12690SJung-uk Kim 143a9f12690SJung-uk Kim char * 144a9f12690SJung-uk Kim AcpiUtGetMutexName ( 145a9f12690SJung-uk Kim UINT32 MutexId); 146a9f12690SJung-uk Kim 147a9f12690SJung-uk Kim const char * 148a9f12690SJung-uk Kim AcpiUtGetNotifyName ( 149a9f12690SJung-uk Kim UINT32 NotifyValue); 150a9f12690SJung-uk Kim 151a9f12690SJung-uk Kim #endif 152a9f12690SJung-uk Kim 153a9f12690SJung-uk Kim char * 154a9f12690SJung-uk Kim AcpiUtGetTypeName ( 155a9f12690SJung-uk Kim ACPI_OBJECT_TYPE Type); 156a9f12690SJung-uk Kim 157a9f12690SJung-uk Kim char * 158a9f12690SJung-uk Kim AcpiUtGetNodeName ( 159a9f12690SJung-uk Kim void *Object); 160a9f12690SJung-uk Kim 161a9f12690SJung-uk Kim char * 162a9f12690SJung-uk Kim AcpiUtGetDescriptorName ( 163a9f12690SJung-uk Kim void *Object); 164a9f12690SJung-uk Kim 165a9f12690SJung-uk Kim const char * 166a9f12690SJung-uk Kim AcpiUtGetReferenceName ( 167a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 168a9f12690SJung-uk Kim 169a9f12690SJung-uk Kim char * 170a9f12690SJung-uk Kim AcpiUtGetObjectTypeName ( 171a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc); 172a9f12690SJung-uk Kim 173a9f12690SJung-uk Kim char * 174a9f12690SJung-uk Kim AcpiUtGetRegionName ( 175a9f12690SJung-uk Kim UINT8 SpaceId); 176a9f12690SJung-uk Kim 177a9f12690SJung-uk Kim char * 178a9f12690SJung-uk Kim AcpiUtGetEventName ( 179a9f12690SJung-uk Kim UINT32 EventId); 180a9f12690SJung-uk Kim 181a9f12690SJung-uk Kim char 182a9f12690SJung-uk Kim AcpiUtHexToAsciiChar ( 1839a179dd8SJung-uk Kim UINT64 Integer, 184a9f12690SJung-uk Kim UINT32 Position); 185a9f12690SJung-uk Kim 186a9f12690SJung-uk Kim BOOLEAN 187a9f12690SJung-uk Kim AcpiUtValidObjectType ( 188a9f12690SJung-uk Kim ACPI_OBJECT_TYPE Type); 189a9f12690SJung-uk Kim 190a9f12690SJung-uk Kim 191a9f12690SJung-uk Kim /* 192a9f12690SJung-uk Kim * utinit - miscellaneous initialization and shutdown 193a9f12690SJung-uk Kim */ 194a9f12690SJung-uk Kim ACPI_STATUS 195a9f12690SJung-uk Kim AcpiUtHardwareInitialize ( 196a9f12690SJung-uk Kim void); 197a9f12690SJung-uk Kim 198a9f12690SJung-uk Kim void 199a9f12690SJung-uk Kim AcpiUtSubsystemShutdown ( 200a9f12690SJung-uk Kim void); 201a9f12690SJung-uk Kim 202a9f12690SJung-uk Kim 203a9f12690SJung-uk Kim /* 204a9f12690SJung-uk Kim * utclib - Local implementations of C library functions 205a9f12690SJung-uk Kim */ 206a9f12690SJung-uk Kim #ifndef ACPI_USE_SYSTEM_CLIBRARY 207a9f12690SJung-uk Kim 208a9f12690SJung-uk Kim ACPI_SIZE 209a9f12690SJung-uk Kim AcpiUtStrlen ( 210a9f12690SJung-uk Kim const char *String); 211a9f12690SJung-uk Kim 212a9f12690SJung-uk Kim char * 213a9f12690SJung-uk Kim AcpiUtStrcpy ( 214a9f12690SJung-uk Kim char *DstString, 215a9f12690SJung-uk Kim const char *SrcString); 216a9f12690SJung-uk Kim 217a9f12690SJung-uk Kim char * 218a9f12690SJung-uk Kim AcpiUtStrncpy ( 219a9f12690SJung-uk Kim char *DstString, 220a9f12690SJung-uk Kim const char *SrcString, 221a9f12690SJung-uk Kim ACPI_SIZE Count); 222a9f12690SJung-uk Kim 223a9f12690SJung-uk Kim int 224a9f12690SJung-uk Kim AcpiUtMemcmp ( 225a9f12690SJung-uk Kim const char *Buffer1, 226a9f12690SJung-uk Kim const char *Buffer2, 227a9f12690SJung-uk Kim ACPI_SIZE Count); 228a9f12690SJung-uk Kim 229a9f12690SJung-uk Kim int 230a9f12690SJung-uk Kim AcpiUtStrncmp ( 231a9f12690SJung-uk Kim const char *String1, 232a9f12690SJung-uk Kim const char *String2, 233a9f12690SJung-uk Kim ACPI_SIZE Count); 234a9f12690SJung-uk Kim 235a9f12690SJung-uk Kim int 236a9f12690SJung-uk Kim AcpiUtStrcmp ( 237a9f12690SJung-uk Kim const char *String1, 238a9f12690SJung-uk Kim const char *String2); 239a9f12690SJung-uk Kim 240a9f12690SJung-uk Kim char * 241a9f12690SJung-uk Kim AcpiUtStrcat ( 242a9f12690SJung-uk Kim char *DstString, 243a9f12690SJung-uk Kim const char *SrcString); 244a9f12690SJung-uk Kim 245a9f12690SJung-uk Kim char * 246a9f12690SJung-uk Kim AcpiUtStrncat ( 247a9f12690SJung-uk Kim char *DstString, 248a9f12690SJung-uk Kim const char *SrcString, 249a9f12690SJung-uk Kim ACPI_SIZE Count); 250a9f12690SJung-uk Kim 251a9f12690SJung-uk Kim UINT32 252a9f12690SJung-uk Kim AcpiUtStrtoul ( 253a9f12690SJung-uk Kim const char *String, 254a9f12690SJung-uk Kim char **Terminator, 255a9f12690SJung-uk Kim UINT32 Base); 256a9f12690SJung-uk Kim 257a9f12690SJung-uk Kim char * 258a9f12690SJung-uk Kim AcpiUtStrstr ( 259a9f12690SJung-uk Kim char *String1, 260a9f12690SJung-uk Kim char *String2); 261a9f12690SJung-uk Kim 262a9f12690SJung-uk Kim void * 263a9f12690SJung-uk Kim AcpiUtMemcpy ( 264a9f12690SJung-uk Kim void *Dest, 265a9f12690SJung-uk Kim const void *Src, 266a9f12690SJung-uk Kim ACPI_SIZE Count); 267a9f12690SJung-uk Kim 268a9f12690SJung-uk Kim void * 269a9f12690SJung-uk Kim AcpiUtMemset ( 270a9f12690SJung-uk Kim void *Dest, 271a9f12690SJung-uk Kim UINT8 Value, 272a9f12690SJung-uk Kim ACPI_SIZE Count); 273a9f12690SJung-uk Kim 274a9f12690SJung-uk Kim int 275a9f12690SJung-uk Kim AcpiUtToUpper ( 276a9f12690SJung-uk Kim int c); 277a9f12690SJung-uk Kim 278a9f12690SJung-uk Kim int 279a9f12690SJung-uk Kim AcpiUtToLower ( 280a9f12690SJung-uk Kim int c); 281a9f12690SJung-uk Kim 282a9f12690SJung-uk Kim extern const UINT8 _acpi_ctype[]; 283a9f12690SJung-uk Kim 284a9f12690SJung-uk Kim #define _ACPI_XA 0x00 /* extra alphabetic - not supported */ 285a9f12690SJung-uk Kim #define _ACPI_XS 0x40 /* extra space */ 286a9f12690SJung-uk Kim #define _ACPI_BB 0x00 /* BEL, BS, etc. - not supported */ 287a9f12690SJung-uk Kim #define _ACPI_CN 0x20 /* CR, FF, HT, NL, VT */ 288a9f12690SJung-uk Kim #define _ACPI_DI 0x04 /* '0'-'9' */ 289a9f12690SJung-uk Kim #define _ACPI_LO 0x02 /* 'a'-'z' */ 290a9f12690SJung-uk Kim #define _ACPI_PU 0x10 /* punctuation */ 291a9f12690SJung-uk Kim #define _ACPI_SP 0x08 /* space */ 292a9f12690SJung-uk Kim #define _ACPI_UP 0x01 /* 'A'-'Z' */ 293a9f12690SJung-uk Kim #define _ACPI_XD 0x80 /* '0'-'9', 'A'-'F', 'a'-'f' */ 294a9f12690SJung-uk Kim 295a9f12690SJung-uk Kim #define ACPI_IS_DIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_DI)) 296a9f12690SJung-uk Kim #define ACPI_IS_SPACE(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_SP)) 297a9f12690SJung-uk Kim #define ACPI_IS_XDIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_XD)) 298a9f12690SJung-uk Kim #define ACPI_IS_UPPER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_UP)) 299a9f12690SJung-uk Kim #define ACPI_IS_LOWER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO)) 300a9f12690SJung-uk Kim #define ACPI_IS_PRINT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_SP | _ACPI_PU)) 301a9f12690SJung-uk Kim #define ACPI_IS_ALPHA(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP)) 302a9f12690SJung-uk Kim 303a9f12690SJung-uk Kim #endif /* !ACPI_USE_SYSTEM_CLIBRARY */ 304a9f12690SJung-uk Kim 305a9f12690SJung-uk Kim #define ACPI_IS_ASCII(c) ((c) < 0x80) 306a9f12690SJung-uk Kim 307a9f12690SJung-uk Kim 308a9f12690SJung-uk Kim /* 309a9f12690SJung-uk Kim * utcopy - Object construction and conversion interfaces 310a9f12690SJung-uk Kim */ 311a9f12690SJung-uk Kim ACPI_STATUS 312a9f12690SJung-uk Kim AcpiUtBuildSimpleObject( 313a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 314a9f12690SJung-uk Kim ACPI_OBJECT *UserObj, 315a9f12690SJung-uk Kim UINT8 *DataSpace, 316a9f12690SJung-uk Kim UINT32 *BufferSpaceUsed); 317a9f12690SJung-uk Kim 318a9f12690SJung-uk Kim ACPI_STATUS 319a9f12690SJung-uk Kim AcpiUtBuildPackageObject ( 320a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 321a9f12690SJung-uk Kim UINT8 *Buffer, 322a9f12690SJung-uk Kim UINT32 *SpaceUsed); 323a9f12690SJung-uk Kim 324a9f12690SJung-uk Kim ACPI_STATUS 325a9f12690SJung-uk Kim AcpiUtCopyIobjectToEobject ( 326a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 327a9f12690SJung-uk Kim ACPI_BUFFER *RetBuffer); 328a9f12690SJung-uk Kim 329a9f12690SJung-uk Kim ACPI_STATUS 330a9f12690SJung-uk Kim AcpiUtCopyEobjectToIobject ( 331a9f12690SJung-uk Kim ACPI_OBJECT *Obj, 332a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **InternalObj); 333a9f12690SJung-uk Kim 334a9f12690SJung-uk Kim ACPI_STATUS 335a9f12690SJung-uk Kim AcpiUtCopyISimpleToIsimple ( 336a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceObj, 337a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *DestObj); 338a9f12690SJung-uk Kim 339a9f12690SJung-uk Kim ACPI_STATUS 340a9f12690SJung-uk Kim AcpiUtCopyIobjectToIobject ( 341a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceDesc, 342a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **DestDesc, 343a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 344a9f12690SJung-uk Kim 345a9f12690SJung-uk Kim 346a9f12690SJung-uk Kim /* 347a9f12690SJung-uk Kim * utcreate - Object creation 348a9f12690SJung-uk Kim */ 349a9f12690SJung-uk Kim ACPI_STATUS 350a9f12690SJung-uk Kim AcpiUtUpdateObjectReference ( 351a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object, 352a9f12690SJung-uk Kim UINT16 Action); 353a9f12690SJung-uk Kim 354a9f12690SJung-uk Kim 355a9f12690SJung-uk Kim /* 356a9f12690SJung-uk Kim * utdebug - Debug interfaces 357a9f12690SJung-uk Kim */ 358a9f12690SJung-uk Kim void 359a9f12690SJung-uk Kim AcpiUtInitStackPtrTrace ( 360a9f12690SJung-uk Kim void); 361a9f12690SJung-uk Kim 362a9f12690SJung-uk Kim void 363a9f12690SJung-uk Kim AcpiUtTrackStackPtr ( 364a9f12690SJung-uk Kim void); 365a9f12690SJung-uk Kim 366a9f12690SJung-uk Kim void 367a9f12690SJung-uk Kim AcpiUtTrace ( 368a9f12690SJung-uk Kim UINT32 LineNumber, 369a9f12690SJung-uk Kim const char *FunctionName, 370a9f12690SJung-uk Kim const char *ModuleName, 371a9f12690SJung-uk Kim UINT32 ComponentId); 372a9f12690SJung-uk Kim 373a9f12690SJung-uk Kim void 374a9f12690SJung-uk Kim AcpiUtTracePtr ( 375a9f12690SJung-uk Kim UINT32 LineNumber, 376a9f12690SJung-uk Kim const char *FunctionName, 377a9f12690SJung-uk Kim const char *ModuleName, 378a9f12690SJung-uk Kim UINT32 ComponentId, 379a9f12690SJung-uk Kim void *Pointer); 380a9f12690SJung-uk Kim 381a9f12690SJung-uk Kim void 382a9f12690SJung-uk Kim AcpiUtTraceU32 ( 383a9f12690SJung-uk Kim UINT32 LineNumber, 384a9f12690SJung-uk Kim const char *FunctionName, 385a9f12690SJung-uk Kim const char *ModuleName, 386a9f12690SJung-uk Kim UINT32 ComponentId, 387a9f12690SJung-uk Kim UINT32 Integer); 388a9f12690SJung-uk Kim 389a9f12690SJung-uk Kim void 390a9f12690SJung-uk Kim AcpiUtTraceStr ( 391a9f12690SJung-uk Kim UINT32 LineNumber, 392a9f12690SJung-uk Kim const char *FunctionName, 393a9f12690SJung-uk Kim const char *ModuleName, 394a9f12690SJung-uk Kim UINT32 ComponentId, 395a9f12690SJung-uk Kim char *String); 396a9f12690SJung-uk Kim 397a9f12690SJung-uk Kim void 398a9f12690SJung-uk Kim AcpiUtExit ( 399a9f12690SJung-uk Kim UINT32 LineNumber, 400a9f12690SJung-uk Kim const char *FunctionName, 401a9f12690SJung-uk Kim const char *ModuleName, 402a9f12690SJung-uk Kim UINT32 ComponentId); 403a9f12690SJung-uk Kim 404a9f12690SJung-uk Kim void 405a9f12690SJung-uk Kim AcpiUtStatusExit ( 406a9f12690SJung-uk Kim UINT32 LineNumber, 407a9f12690SJung-uk Kim const char *FunctionName, 408a9f12690SJung-uk Kim const char *ModuleName, 409a9f12690SJung-uk Kim UINT32 ComponentId, 410a9f12690SJung-uk Kim ACPI_STATUS Status); 411a9f12690SJung-uk Kim 412a9f12690SJung-uk Kim void 413a9f12690SJung-uk Kim AcpiUtValueExit ( 414a9f12690SJung-uk Kim UINT32 LineNumber, 415a9f12690SJung-uk Kim const char *FunctionName, 416a9f12690SJung-uk Kim const char *ModuleName, 417a9f12690SJung-uk Kim UINT32 ComponentId, 4189a179dd8SJung-uk Kim UINT64 Value); 419a9f12690SJung-uk Kim 420a9f12690SJung-uk Kim void 421a9f12690SJung-uk Kim AcpiUtPtrExit ( 422a9f12690SJung-uk Kim UINT32 LineNumber, 423a9f12690SJung-uk Kim const char *FunctionName, 424a9f12690SJung-uk Kim const char *ModuleName, 425a9f12690SJung-uk Kim UINT32 ComponentId, 426a9f12690SJung-uk Kim UINT8 *Ptr); 427a9f12690SJung-uk Kim 428a9f12690SJung-uk Kim void 4298ef1a331SJung-uk Kim AcpiUtDebugDumpBuffer ( 430a9f12690SJung-uk Kim UINT8 *Buffer, 431a9f12690SJung-uk Kim UINT32 Count, 432a9f12690SJung-uk Kim UINT32 Display, 433f38b0f21SJung-uk Kim UINT32 ComponentId); 434a9f12690SJung-uk Kim 435a9f12690SJung-uk Kim void 4368ef1a331SJung-uk Kim AcpiUtDumpBuffer ( 437a9f12690SJung-uk Kim UINT8 *Buffer, 438a9f12690SJung-uk Kim UINT32 Count, 4398ef1a331SJung-uk Kim UINT32 Display, 4408ef1a331SJung-uk Kim UINT32 Offset); 441a9f12690SJung-uk Kim 442a9f12690SJung-uk Kim void 443a9f12690SJung-uk Kim AcpiUtReportError ( 444a9f12690SJung-uk Kim char *ModuleName, 445a9f12690SJung-uk Kim UINT32 LineNumber); 446a9f12690SJung-uk Kim 447a9f12690SJung-uk Kim void 448a9f12690SJung-uk Kim AcpiUtReportInfo ( 449a9f12690SJung-uk Kim char *ModuleName, 450a9f12690SJung-uk Kim UINT32 LineNumber); 451a9f12690SJung-uk Kim 452a9f12690SJung-uk Kim void 453a9f12690SJung-uk Kim AcpiUtReportWarning ( 454a9f12690SJung-uk Kim char *ModuleName, 455a9f12690SJung-uk Kim UINT32 LineNumber); 456a9f12690SJung-uk Kim 457a9f12690SJung-uk Kim /* 458a9f12690SJung-uk Kim * utdelete - Object deletion and reference counts 459a9f12690SJung-uk Kim */ 460a9f12690SJung-uk Kim void 461a9f12690SJung-uk Kim AcpiUtAddReference ( 462a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 463a9f12690SJung-uk Kim 464a9f12690SJung-uk Kim void 465a9f12690SJung-uk Kim AcpiUtRemoveReference ( 466a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 467a9f12690SJung-uk Kim 468a9f12690SJung-uk Kim void 469a9f12690SJung-uk Kim AcpiUtDeleteInternalPackageObject ( 470a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 471a9f12690SJung-uk Kim 472a9f12690SJung-uk Kim void 473a9f12690SJung-uk Kim AcpiUtDeleteInternalSimpleObject ( 474a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 475a9f12690SJung-uk Kim 476a9f12690SJung-uk Kim void 477a9f12690SJung-uk Kim AcpiUtDeleteInternalObjectList ( 478a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ObjList); 479a9f12690SJung-uk Kim 480a9f12690SJung-uk Kim 481a9f12690SJung-uk Kim /* 482a9f12690SJung-uk Kim * uteval - object evaluation 483a9f12690SJung-uk Kim */ 484a9f12690SJung-uk Kim ACPI_STATUS 485a9f12690SJung-uk Kim AcpiUtEvaluateObject ( 486a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *PrefixNode, 487a9f12690SJung-uk Kim char *Path, 488a9f12690SJung-uk Kim UINT32 ExpectedReturnBtypes, 489a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT **ReturnDesc); 490a9f12690SJung-uk Kim 491a9f12690SJung-uk Kim ACPI_STATUS 492a9f12690SJung-uk Kim AcpiUtEvaluateNumericObject ( 493a9f12690SJung-uk Kim char *ObjectName, 494a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 4959a179dd8SJung-uk Kim UINT64 *Value); 496a9f12690SJung-uk Kim 497a9f12690SJung-uk Kim ACPI_STATUS 498a9f12690SJung-uk Kim AcpiUtExecute_STA ( 499a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 500a9f12690SJung-uk Kim UINT32 *StatusFlags); 501a9f12690SJung-uk Kim 502a9f12690SJung-uk Kim ACPI_STATUS 503d6dd1baeSJung-uk Kim AcpiUtExecutePowerMethods ( 504a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 505d6dd1baeSJung-uk Kim const char **MethodNames, 506d6dd1baeSJung-uk Kim UINT8 MethodCount, 507d6dd1baeSJung-uk Kim UINT8 *OutValues); 508d6dd1baeSJung-uk Kim 509d6dd1baeSJung-uk Kim 510d6dd1baeSJung-uk Kim /* 511d6dd1baeSJung-uk Kim * utids - device ID support 512d6dd1baeSJung-uk Kim */ 513d6dd1baeSJung-uk Kim ACPI_STATUS 514d6dd1baeSJung-uk Kim AcpiUtExecute_HID ( 515d6dd1baeSJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 5168ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID **ReturnId); 517a9f12690SJung-uk Kim 518a9f12690SJung-uk Kim ACPI_STATUS 519d6dd1baeSJung-uk Kim AcpiUtExecute_UID ( 520a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 5218ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID **ReturnId); 5228ef1a331SJung-uk Kim 5238ef1a331SJung-uk Kim ACPI_STATUS 5248ef1a331SJung-uk Kim AcpiUtExecute_SUB ( 5258ef1a331SJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 5268ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID **ReturnId); 527d6dd1baeSJung-uk Kim 528d6dd1baeSJung-uk Kim ACPI_STATUS 529d6dd1baeSJung-uk Kim AcpiUtExecute_CID ( 530d6dd1baeSJung-uk Kim ACPI_NAMESPACE_NODE *DeviceNode, 5318ef1a331SJung-uk Kim ACPI_PNP_DEVICE_ID_LIST **ReturnCidList); 532d6dd1baeSJung-uk Kim 533a9f12690SJung-uk Kim 534a9f12690SJung-uk Kim /* 535a9f12690SJung-uk Kim * utlock - reader/writer locks 536a9f12690SJung-uk Kim */ 537a9f12690SJung-uk Kim ACPI_STATUS 538a9f12690SJung-uk Kim AcpiUtCreateRwLock ( 539a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 540a9f12690SJung-uk Kim 541a9f12690SJung-uk Kim void 542a9f12690SJung-uk Kim AcpiUtDeleteRwLock ( 543a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 544a9f12690SJung-uk Kim 545a9f12690SJung-uk Kim ACPI_STATUS 546a9f12690SJung-uk Kim AcpiUtAcquireReadLock ( 547a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 548a9f12690SJung-uk Kim 549a9f12690SJung-uk Kim ACPI_STATUS 550a9f12690SJung-uk Kim AcpiUtReleaseReadLock ( 551a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 552a9f12690SJung-uk Kim 553a9f12690SJung-uk Kim ACPI_STATUS 554a9f12690SJung-uk Kim AcpiUtAcquireWriteLock ( 555a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 556a9f12690SJung-uk Kim 557a9f12690SJung-uk Kim void 558a9f12690SJung-uk Kim AcpiUtReleaseWriteLock ( 559a9f12690SJung-uk Kim ACPI_RW_LOCK *Lock); 560a9f12690SJung-uk Kim 561a9f12690SJung-uk Kim 562a9f12690SJung-uk Kim /* 563a9f12690SJung-uk Kim * utobject - internal object create/delete/cache routines 564a9f12690SJung-uk Kim */ 565a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 566a9f12690SJung-uk Kim AcpiUtCreateInternalObjectDbg ( 567a9f12690SJung-uk Kim const char *ModuleName, 568a9f12690SJung-uk Kim UINT32 LineNumber, 569a9f12690SJung-uk Kim UINT32 ComponentId, 570a9f12690SJung-uk Kim ACPI_OBJECT_TYPE Type); 571a9f12690SJung-uk Kim 572a9f12690SJung-uk Kim void * 573a9f12690SJung-uk Kim AcpiUtAllocateObjectDescDbg ( 574a9f12690SJung-uk Kim const char *ModuleName, 575a9f12690SJung-uk Kim UINT32 LineNumber, 576a9f12690SJung-uk Kim UINT32 ComponentId); 577a9f12690SJung-uk Kim 578a9f12690SJung-uk Kim #define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t) 579a9f12690SJung-uk Kim #define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT) 580a9f12690SJung-uk Kim 581a9f12690SJung-uk Kim void 582a9f12690SJung-uk Kim AcpiUtDeleteObjectDesc ( 583a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object); 584a9f12690SJung-uk Kim 585a9f12690SJung-uk Kim BOOLEAN 586a9f12690SJung-uk Kim AcpiUtValidInternalObject ( 587a9f12690SJung-uk Kim void *Object); 588a9f12690SJung-uk Kim 589a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 590a9f12690SJung-uk Kim AcpiUtCreatePackageObject ( 591a9f12690SJung-uk Kim UINT32 Count); 592a9f12690SJung-uk Kim 593a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 5942272d050SJung-uk Kim AcpiUtCreateIntegerObject ( 5952272d050SJung-uk Kim UINT64 Value); 5962272d050SJung-uk Kim 5972272d050SJung-uk Kim ACPI_OPERAND_OBJECT * 598a9f12690SJung-uk Kim AcpiUtCreateBufferObject ( 599a9f12690SJung-uk Kim ACPI_SIZE BufferSize); 600a9f12690SJung-uk Kim 601a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT * 602a9f12690SJung-uk Kim AcpiUtCreateStringObject ( 603a9f12690SJung-uk Kim ACPI_SIZE StringSize); 604a9f12690SJung-uk Kim 605a9f12690SJung-uk Kim ACPI_STATUS 606a9f12690SJung-uk Kim AcpiUtGetObjectSize( 607a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Obj, 608a9f12690SJung-uk Kim ACPI_SIZE *ObjLength); 609a9f12690SJung-uk Kim 610a9f12690SJung-uk Kim 611a9f12690SJung-uk Kim /* 612709fac06SJung-uk Kim * utosi - Support for the _OSI predefined control method 613709fac06SJung-uk Kim */ 614709fac06SJung-uk Kim ACPI_STATUS 615709fac06SJung-uk Kim AcpiUtInitializeInterfaces ( 616709fac06SJung-uk Kim void); 617709fac06SJung-uk Kim 6189c7c683cSJung-uk Kim ACPI_STATUS 619709fac06SJung-uk Kim AcpiUtInterfaceTerminate ( 620709fac06SJung-uk Kim void); 621709fac06SJung-uk Kim 622709fac06SJung-uk Kim ACPI_STATUS 623709fac06SJung-uk Kim AcpiUtInstallInterface ( 624709fac06SJung-uk Kim ACPI_STRING InterfaceName); 625709fac06SJung-uk Kim 626709fac06SJung-uk Kim ACPI_STATUS 627709fac06SJung-uk Kim AcpiUtRemoveInterface ( 628709fac06SJung-uk Kim ACPI_STRING InterfaceName); 629709fac06SJung-uk Kim 630709fac06SJung-uk Kim ACPI_INTERFACE_INFO * 631709fac06SJung-uk Kim AcpiUtGetInterface ( 632709fac06SJung-uk Kim ACPI_STRING InterfaceName); 633709fac06SJung-uk Kim 634709fac06SJung-uk Kim ACPI_STATUS 635709fac06SJung-uk Kim AcpiUtOsiImplementation ( 636709fac06SJung-uk Kim ACPI_WALK_STATE *WalkState); 637709fac06SJung-uk Kim 638709fac06SJung-uk Kim 639709fac06SJung-uk Kim /* 6409c7c683cSJung-uk Kim * utpredef - support for predefined names 6419c7c683cSJung-uk Kim */ 6429c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO * 6439c7c683cSJung-uk Kim AcpiUtGetNextPredefinedMethod ( 6449c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO *ThisName); 6459c7c683cSJung-uk Kim 6469c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO * 6479c7c683cSJung-uk Kim AcpiUtMatchPredefinedMethod ( 6489c7c683cSJung-uk Kim char *Name); 6499c7c683cSJung-uk Kim 6509c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO * 6519c7c683cSJung-uk Kim AcpiUtMatchResourceName ( 6529c7c683cSJung-uk Kim char *Name); 6539c7c683cSJung-uk Kim 6549c7c683cSJung-uk Kim void 6559c7c683cSJung-uk Kim AcpiUtDisplayPredefinedMethod ( 6569c7c683cSJung-uk Kim char *Buffer, 6579c7c683cSJung-uk Kim const ACPI_PREDEFINED_INFO *ThisName, 6589c7c683cSJung-uk Kim BOOLEAN MultiLine); 6599c7c683cSJung-uk Kim 6609c7c683cSJung-uk Kim void 6619c7c683cSJung-uk Kim AcpiUtGetExpectedReturnTypes ( 6629c7c683cSJung-uk Kim char *Buffer, 6639c7c683cSJung-uk Kim UINT32 ExpectedBtypes); 6649c7c683cSJung-uk Kim 6659c7c683cSJung-uk Kim UINT32 6669c7c683cSJung-uk Kim AcpiUtGetResourceBitWidth ( 6679c7c683cSJung-uk Kim char *Buffer, 6689c7c683cSJung-uk Kim UINT16 Types); 6699c7c683cSJung-uk Kim 6709c7c683cSJung-uk Kim 6719c7c683cSJung-uk Kim /* 672a9f12690SJung-uk Kim * utstate - Generic state creation/cache routines 673a9f12690SJung-uk Kim */ 674a9f12690SJung-uk Kim void 675a9f12690SJung-uk Kim AcpiUtPushGenericState ( 676a9f12690SJung-uk Kim ACPI_GENERIC_STATE **ListHead, 677a9f12690SJung-uk Kim ACPI_GENERIC_STATE *State); 678a9f12690SJung-uk Kim 679a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 680a9f12690SJung-uk Kim AcpiUtPopGenericState ( 681a9f12690SJung-uk Kim ACPI_GENERIC_STATE **ListHead); 682a9f12690SJung-uk Kim 683a9f12690SJung-uk Kim 684a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 685a9f12690SJung-uk Kim AcpiUtCreateGenericState ( 686a9f12690SJung-uk Kim void); 687a9f12690SJung-uk Kim 688a9f12690SJung-uk Kim ACPI_THREAD_STATE * 689a9f12690SJung-uk Kim AcpiUtCreateThreadState ( 690a9f12690SJung-uk Kim void); 691a9f12690SJung-uk Kim 692a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 693a9f12690SJung-uk Kim AcpiUtCreateUpdateState ( 694a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object, 695a9f12690SJung-uk Kim UINT16 Action); 696a9f12690SJung-uk Kim 697a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 698a9f12690SJung-uk Kim AcpiUtCreatePkgState ( 699a9f12690SJung-uk Kim void *InternalObject, 700a9f12690SJung-uk Kim void *ExternalObject, 701a9f12690SJung-uk Kim UINT16 Index); 702a9f12690SJung-uk Kim 703a9f12690SJung-uk Kim ACPI_STATUS 704a9f12690SJung-uk Kim AcpiUtCreateUpdateStateAndPush ( 705a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *Object, 706a9f12690SJung-uk Kim UINT16 Action, 707a9f12690SJung-uk Kim ACPI_GENERIC_STATE **StateList); 708a9f12690SJung-uk Kim 709a9f12690SJung-uk Kim ACPI_STATUS 710a9f12690SJung-uk Kim AcpiUtCreatePkgStateAndPush ( 711a9f12690SJung-uk Kim void *InternalObject, 712a9f12690SJung-uk Kim void *ExternalObject, 713a9f12690SJung-uk Kim UINT16 Index, 714a9f12690SJung-uk Kim ACPI_GENERIC_STATE **StateList); 715a9f12690SJung-uk Kim 716a9f12690SJung-uk Kim ACPI_GENERIC_STATE * 717a9f12690SJung-uk Kim AcpiUtCreateControlState ( 718a9f12690SJung-uk Kim void); 719a9f12690SJung-uk Kim 720a9f12690SJung-uk Kim void 721a9f12690SJung-uk Kim AcpiUtDeleteGenericState ( 722a9f12690SJung-uk Kim ACPI_GENERIC_STATE *State); 723a9f12690SJung-uk Kim 724a9f12690SJung-uk Kim 725a9f12690SJung-uk Kim /* 726a9f12690SJung-uk Kim * utmath 727a9f12690SJung-uk Kim */ 728a9f12690SJung-uk Kim ACPI_STATUS 729a9f12690SJung-uk Kim AcpiUtDivide ( 7309a179dd8SJung-uk Kim UINT64 InDividend, 7319a179dd8SJung-uk Kim UINT64 InDivisor, 7329a179dd8SJung-uk Kim UINT64 *OutQuotient, 7339a179dd8SJung-uk Kim UINT64 *OutRemainder); 734a9f12690SJung-uk Kim 735a9f12690SJung-uk Kim ACPI_STATUS 736a9f12690SJung-uk Kim AcpiUtShortDivide ( 7379a179dd8SJung-uk Kim UINT64 InDividend, 738a9f12690SJung-uk Kim UINT32 Divisor, 7399a179dd8SJung-uk Kim UINT64 *OutQuotient, 740a9f12690SJung-uk Kim UINT32 *OutRemainder); 741a9f12690SJung-uk Kim 7429c48c75eSJung-uk Kim 743a9f12690SJung-uk Kim /* 744a9f12690SJung-uk Kim * utmisc 745a9f12690SJung-uk Kim */ 7469c48c75eSJung-uk Kim const ACPI_EXCEPTION_INFO * 747a9f12690SJung-uk Kim AcpiUtValidateException ( 748a9f12690SJung-uk Kim ACPI_STATUS Status); 749a9f12690SJung-uk Kim 750a9f12690SJung-uk Kim BOOLEAN 751d6dd1baeSJung-uk Kim AcpiUtIsPciRootBridge ( 752d6dd1baeSJung-uk Kim char *Id); 753d6dd1baeSJung-uk Kim 754d6dd1baeSJung-uk Kim BOOLEAN 755a9f12690SJung-uk Kim AcpiUtIsAmlTable ( 756a9f12690SJung-uk Kim ACPI_TABLE_HEADER *Table); 757a9f12690SJung-uk Kim 758a9f12690SJung-uk Kim ACPI_STATUS 759a9f12690SJung-uk Kim AcpiUtWalkPackageTree ( 760a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *SourceObject, 761a9f12690SJung-uk Kim void *TargetObject, 762a9f12690SJung-uk Kim ACPI_PKG_CALLBACK WalkCallback, 763a9f12690SJung-uk Kim void *Context); 764a9f12690SJung-uk Kim 765a9f12690SJung-uk Kim 766a9f12690SJung-uk Kim /* Values for Base above (16=Hex, 10=Decimal) */ 767a9f12690SJung-uk Kim 768a9f12690SJung-uk Kim #define ACPI_ANY_BASE 0 769a9f12690SJung-uk Kim 770a9f12690SJung-uk Kim UINT32 771a9f12690SJung-uk Kim AcpiUtDwordByteSwap ( 772a9f12690SJung-uk Kim UINT32 Value); 773a9f12690SJung-uk Kim 774a9f12690SJung-uk Kim void 775a9f12690SJung-uk Kim AcpiUtSetIntegerWidth ( 776a9f12690SJung-uk Kim UINT8 Revision); 777a9f12690SJung-uk Kim 778a9f12690SJung-uk Kim #ifdef ACPI_DEBUG_OUTPUT 779a9f12690SJung-uk Kim void 780a9f12690SJung-uk Kim AcpiUtDisplayInitPathname ( 781a9f12690SJung-uk Kim UINT8 Type, 782a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *ObjHandle, 783a9f12690SJung-uk Kim char *Path); 784a9f12690SJung-uk Kim #endif 785a9f12690SJung-uk Kim 786a9f12690SJung-uk Kim 787a9f12690SJung-uk Kim /* 788efcc2a30SJung-uk Kim * utownerid - Support for Table/Method Owner IDs 789efcc2a30SJung-uk Kim */ 790efcc2a30SJung-uk Kim ACPI_STATUS 791efcc2a30SJung-uk Kim AcpiUtAllocateOwnerId ( 792efcc2a30SJung-uk Kim ACPI_OWNER_ID *OwnerId); 793efcc2a30SJung-uk Kim 794efcc2a30SJung-uk Kim void 795efcc2a30SJung-uk Kim AcpiUtReleaseOwnerId ( 796efcc2a30SJung-uk Kim ACPI_OWNER_ID *OwnerId); 797efcc2a30SJung-uk Kim 798efcc2a30SJung-uk Kim 799efcc2a30SJung-uk Kim /* 800a9f12690SJung-uk Kim * utresrc 801a9f12690SJung-uk Kim */ 802a9f12690SJung-uk Kim ACPI_STATUS 803a9f12690SJung-uk Kim AcpiUtWalkAmlResources ( 804ed17e06eSJung-uk Kim ACPI_WALK_STATE *WalkState, 805a9f12690SJung-uk Kim UINT8 *Aml, 806a9f12690SJung-uk Kim ACPI_SIZE AmlLength, 807a9f12690SJung-uk Kim ACPI_WALK_AML_CALLBACK UserFunction, 808efcc2a30SJung-uk Kim void **Context); 809a9f12690SJung-uk Kim 810a9f12690SJung-uk Kim ACPI_STATUS 811a9f12690SJung-uk Kim AcpiUtValidateResource ( 812ed17e06eSJung-uk Kim ACPI_WALK_STATE *WalkState, 813a9f12690SJung-uk Kim void *Aml, 814a9f12690SJung-uk Kim UINT8 *ReturnIndex); 815a9f12690SJung-uk Kim 816a9f12690SJung-uk Kim UINT32 817a9f12690SJung-uk Kim AcpiUtGetDescriptorLength ( 818a9f12690SJung-uk Kim void *Aml); 819a9f12690SJung-uk Kim 820a9f12690SJung-uk Kim UINT16 821a9f12690SJung-uk Kim AcpiUtGetResourceLength ( 822a9f12690SJung-uk Kim void *Aml); 823a9f12690SJung-uk Kim 824a9f12690SJung-uk Kim UINT8 825a9f12690SJung-uk Kim AcpiUtGetResourceHeaderLength ( 826a9f12690SJung-uk Kim void *Aml); 827a9f12690SJung-uk Kim 828a9f12690SJung-uk Kim UINT8 829a9f12690SJung-uk Kim AcpiUtGetResourceType ( 830a9f12690SJung-uk Kim void *Aml); 831a9f12690SJung-uk Kim 832a9f12690SJung-uk Kim ACPI_STATUS 833a9f12690SJung-uk Kim AcpiUtGetResourceEndTag ( 834a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 835a9f12690SJung-uk Kim UINT8 **EndTag); 836a9f12690SJung-uk Kim 837a9f12690SJung-uk Kim 838a9f12690SJung-uk Kim /* 839efcc2a30SJung-uk Kim * utstring - String and character utilities 840efcc2a30SJung-uk Kim */ 841efcc2a30SJung-uk Kim void 842efcc2a30SJung-uk Kim AcpiUtStrupr ( 843efcc2a30SJung-uk Kim char *SrcString); 844efcc2a30SJung-uk Kim 845efcc2a30SJung-uk Kim void 846efcc2a30SJung-uk Kim AcpiUtStrlwr ( 847efcc2a30SJung-uk Kim char *SrcString); 848efcc2a30SJung-uk Kim 849efcc2a30SJung-uk Kim int 850efcc2a30SJung-uk Kim AcpiUtStricmp ( 851efcc2a30SJung-uk Kim char *String1, 852efcc2a30SJung-uk Kim char *String2); 853efcc2a30SJung-uk Kim 854efcc2a30SJung-uk Kim ACPI_STATUS 855efcc2a30SJung-uk Kim AcpiUtStrtoul64 ( 856efcc2a30SJung-uk Kim char *String, 857efcc2a30SJung-uk Kim UINT32 Base, 858efcc2a30SJung-uk Kim UINT64 *RetInteger); 859efcc2a30SJung-uk Kim 860efcc2a30SJung-uk Kim void 861efcc2a30SJung-uk Kim AcpiUtPrintString ( 862efcc2a30SJung-uk Kim char *String, 863efcc2a30SJung-uk Kim UINT8 MaxLength); 864efcc2a30SJung-uk Kim 865efcc2a30SJung-uk Kim void 866efcc2a30SJung-uk Kim UtConvertBackslashes ( 867efcc2a30SJung-uk Kim char *Pathname); 868efcc2a30SJung-uk Kim 869efcc2a30SJung-uk Kim BOOLEAN 870efcc2a30SJung-uk Kim AcpiUtValidAcpiName ( 871efcc2a30SJung-uk Kim UINT32 Name); 872efcc2a30SJung-uk Kim 873efcc2a30SJung-uk Kim BOOLEAN 874efcc2a30SJung-uk Kim AcpiUtValidAcpiChar ( 875efcc2a30SJung-uk Kim char Character, 876efcc2a30SJung-uk Kim UINT32 Position); 877efcc2a30SJung-uk Kim 878efcc2a30SJung-uk Kim void 879efcc2a30SJung-uk Kim AcpiUtRepairName ( 880efcc2a30SJung-uk Kim char *Name); 881efcc2a30SJung-uk Kim 882efcc2a30SJung-uk Kim 883efcc2a30SJung-uk Kim /* 884a9f12690SJung-uk Kim * utmutex - mutex support 885a9f12690SJung-uk Kim */ 886a9f12690SJung-uk Kim ACPI_STATUS 887a9f12690SJung-uk Kim AcpiUtMutexInitialize ( 888a9f12690SJung-uk Kim void); 889a9f12690SJung-uk Kim 890a9f12690SJung-uk Kim void 891a9f12690SJung-uk Kim AcpiUtMutexTerminate ( 892a9f12690SJung-uk Kim void); 893a9f12690SJung-uk Kim 894a9f12690SJung-uk Kim ACPI_STATUS 895a9f12690SJung-uk Kim AcpiUtAcquireMutex ( 896a9f12690SJung-uk Kim ACPI_MUTEX_HANDLE MutexId); 897a9f12690SJung-uk Kim 898a9f12690SJung-uk Kim ACPI_STATUS 899a9f12690SJung-uk Kim AcpiUtReleaseMutex ( 900a9f12690SJung-uk Kim ACPI_MUTEX_HANDLE MutexId); 901a9f12690SJung-uk Kim 902a9f12690SJung-uk Kim 903a9f12690SJung-uk Kim /* 904a9f12690SJung-uk Kim * utalloc - memory allocation and object caching 905a9f12690SJung-uk Kim */ 906a9f12690SJung-uk Kim ACPI_STATUS 907a9f12690SJung-uk Kim AcpiUtCreateCaches ( 908a9f12690SJung-uk Kim void); 909a9f12690SJung-uk Kim 910a9f12690SJung-uk Kim ACPI_STATUS 911a9f12690SJung-uk Kim AcpiUtDeleteCaches ( 912a9f12690SJung-uk Kim void); 913a9f12690SJung-uk Kim 914a9f12690SJung-uk Kim ACPI_STATUS 915a9f12690SJung-uk Kim AcpiUtValidateBuffer ( 916a9f12690SJung-uk Kim ACPI_BUFFER *Buffer); 917a9f12690SJung-uk Kim 918a9f12690SJung-uk Kim ACPI_STATUS 919a9f12690SJung-uk Kim AcpiUtInitializeBuffer ( 920a9f12690SJung-uk Kim ACPI_BUFFER *Buffer, 921a9f12690SJung-uk Kim ACPI_SIZE RequiredLength); 922a9f12690SJung-uk Kim 923a9f12690SJung-uk Kim void * 924a9f12690SJung-uk Kim AcpiUtAllocate ( 925a9f12690SJung-uk Kim ACPI_SIZE Size, 926a9f12690SJung-uk Kim UINT32 Component, 927a9f12690SJung-uk Kim const char *Module, 928a9f12690SJung-uk Kim UINT32 Line); 929a9f12690SJung-uk Kim 930a9f12690SJung-uk Kim void * 931a9f12690SJung-uk Kim AcpiUtAllocateZeroed ( 932a9f12690SJung-uk Kim ACPI_SIZE Size, 933a9f12690SJung-uk Kim UINT32 Component, 934a9f12690SJung-uk Kim const char *Module, 935a9f12690SJung-uk Kim UINT32 Line); 936a9f12690SJung-uk Kim 937a9f12690SJung-uk Kim #ifdef ACPI_DBG_TRACK_ALLOCATIONS 938a9f12690SJung-uk Kim void * 939a9f12690SJung-uk Kim AcpiUtAllocateAndTrack ( 940a9f12690SJung-uk Kim ACPI_SIZE Size, 941a9f12690SJung-uk Kim UINT32 Component, 942a9f12690SJung-uk Kim const char *Module, 943a9f12690SJung-uk Kim UINT32 Line); 944a9f12690SJung-uk Kim 945a9f12690SJung-uk Kim void * 946a9f12690SJung-uk Kim AcpiUtAllocateZeroedAndTrack ( 947a9f12690SJung-uk Kim ACPI_SIZE Size, 948a9f12690SJung-uk Kim UINT32 Component, 949a9f12690SJung-uk Kim const char *Module, 950a9f12690SJung-uk Kim UINT32 Line); 951a9f12690SJung-uk Kim 952a9f12690SJung-uk Kim void 953a9f12690SJung-uk Kim AcpiUtFreeAndTrack ( 954a9f12690SJung-uk Kim void *Address, 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 AcpiUtDumpAllocationInfo ( 961a9f12690SJung-uk Kim void); 962a9f12690SJung-uk Kim 963a9f12690SJung-uk Kim void 964a9f12690SJung-uk Kim AcpiUtDumpAllocations ( 965a9f12690SJung-uk Kim UINT32 Component, 966a9f12690SJung-uk Kim const char *Module); 967a9f12690SJung-uk Kim 968a9f12690SJung-uk Kim ACPI_STATUS 969a9f12690SJung-uk Kim AcpiUtCreateList ( 970a9f12690SJung-uk Kim char *ListName, 971a9f12690SJung-uk Kim UINT16 ObjectSize, 972a9f12690SJung-uk Kim ACPI_MEMORY_LIST **ReturnCache); 973a9f12690SJung-uk Kim 97442fecd12SJung-uk Kim #endif /* ACPI_DBG_TRACK_ALLOCATIONS */ 975a9f12690SJung-uk Kim 976ec3fc72fSJung-uk Kim /* 977ec3fc72fSJung-uk Kim * utaddress - address range check 978ec3fc72fSJung-uk Kim */ 979ec3fc72fSJung-uk Kim ACPI_STATUS 980ec3fc72fSJung-uk Kim AcpiUtAddAddressRange ( 981ec3fc72fSJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 982ec3fc72fSJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 983ec3fc72fSJung-uk Kim UINT32 Length, 984ec3fc72fSJung-uk Kim ACPI_NAMESPACE_NODE *RegionNode); 985ec3fc72fSJung-uk Kim 986ec3fc72fSJung-uk Kim void 987ec3fc72fSJung-uk Kim AcpiUtRemoveAddressRange ( 988ec3fc72fSJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 989ec3fc72fSJung-uk Kim ACPI_NAMESPACE_NODE *RegionNode); 990ec3fc72fSJung-uk Kim 991ec3fc72fSJung-uk Kim UINT32 992ec3fc72fSJung-uk Kim AcpiUtCheckAddressRange ( 993ec3fc72fSJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 994ec3fc72fSJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 995ec3fc72fSJung-uk Kim UINT32 Length, 996ec3fc72fSJung-uk Kim BOOLEAN Warn); 997ec3fc72fSJung-uk Kim 998ec3fc72fSJung-uk Kim void 999ec3fc72fSJung-uk Kim AcpiUtDeleteAddressLists ( 1000ec3fc72fSJung-uk Kim void); 100142fecd12SJung-uk Kim 100242fecd12SJung-uk Kim /* 100342fecd12SJung-uk Kim * utxferror - various error/warning output functions 100442fecd12SJung-uk Kim */ 100542fecd12SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE 100642fecd12SJung-uk Kim AcpiUtPredefinedWarning ( 100742fecd12SJung-uk Kim const char *ModuleName, 100842fecd12SJung-uk Kim UINT32 LineNumber, 100942fecd12SJung-uk Kim char *Pathname, 101042fecd12SJung-uk Kim UINT8 NodeFlags, 101142fecd12SJung-uk Kim const char *Format, 101242fecd12SJung-uk Kim ...); 101342fecd12SJung-uk Kim 101442fecd12SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE 101542fecd12SJung-uk Kim AcpiUtPredefinedInfo ( 101642fecd12SJung-uk Kim const char *ModuleName, 101742fecd12SJung-uk Kim UINT32 LineNumber, 101842fecd12SJung-uk Kim char *Pathname, 101942fecd12SJung-uk Kim UINT8 NodeFlags, 102042fecd12SJung-uk Kim const char *Format, 102142fecd12SJung-uk Kim ...); 102242fecd12SJung-uk Kim 1023*895f26a9SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE 1024*895f26a9SJung-uk Kim AcpiUtPredefinedBiosError ( 1025*895f26a9SJung-uk Kim const char *ModuleName, 1026*895f26a9SJung-uk Kim UINT32 LineNumber, 1027*895f26a9SJung-uk Kim char *Pathname, 1028*895f26a9SJung-uk Kim UINT8 NodeFlags, 1029*895f26a9SJung-uk Kim const char *Format, 1030*895f26a9SJung-uk Kim ...); 1031*895f26a9SJung-uk Kim 103242fecd12SJung-uk Kim void 103342fecd12SJung-uk Kim AcpiUtNamespaceError ( 103442fecd12SJung-uk Kim const char *ModuleName, 103542fecd12SJung-uk Kim UINT32 LineNumber, 103642fecd12SJung-uk Kim const char *InternalName, 103742fecd12SJung-uk Kim ACPI_STATUS LookupStatus); 103842fecd12SJung-uk Kim 103942fecd12SJung-uk Kim void 104042fecd12SJung-uk Kim AcpiUtMethodError ( 104142fecd12SJung-uk Kim const char *ModuleName, 104242fecd12SJung-uk Kim UINT32 LineNumber, 104342fecd12SJung-uk Kim const char *Message, 104442fecd12SJung-uk Kim ACPI_NAMESPACE_NODE *Node, 104542fecd12SJung-uk Kim const char *Path, 104642fecd12SJung-uk Kim ACPI_STATUS LookupStatus); 1047a9f12690SJung-uk Kim 1048a9f12690SJung-uk Kim #endif /* _ACUTILS_H */ 1049