acutils.h revision 151937
1264790Sbapt/****************************************************************************** 2264790Sbapt * 3272655Sbapt * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures 4264790Sbapt * $Revision: 1.182 $ 5264790Sbapt * 6264790Sbapt *****************************************************************************/ 7264790Sbapt 8264790Sbapt/****************************************************************************** 9264790Sbapt * 10264790Sbapt * 1. Copyright Notice 11264790Sbapt * 12264790Sbapt * Some or all of this work - Copyright (c) 1999 - 2005, Intel Corp. 13264790Sbapt * All rights reserved. 14264790Sbapt * 15264790Sbapt * 2. License 16264790Sbapt * 17264790Sbapt * 2.1. This is your license from Intel Corp. under its intellectual property 18264790Sbapt * rights. You may have additional license terms from the party that provided 19264790Sbapt * you this software, covering your right to use that party's intellectual 20264790Sbapt * property rights. 21264790Sbapt * 22264790Sbapt * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 23264790Sbapt * copy of the source code appearing in this file ("Covered Code") an 24264790Sbapt * irrevocable, perpetual, worldwide license under Intel's copyrights in the 25264790Sbapt * base code distributed originally by Intel ("Original Intel Code") to copy, 26264790Sbapt * make derivatives, distribute, use and display any portion of the Covered 27264790Sbapt * Code in any form, with the right to sublicense such rights; and 28264790Sbapt * 29264790Sbapt * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 30264790Sbapt * license (with the right to sublicense), under only those claims of Intel 31264790Sbapt * patents that are infringed by the Original Intel Code, to make, use, sell, 32264790Sbapt * offer to sell, and import the Covered Code and derivative works thereof 33264790Sbapt * solely to the minimum extent necessary to exercise the above copyright 34264790Sbapt * license, and in no event shall the patent license extend to any additions 35264790Sbapt * to or modifications of the Original Intel Code. No other license or right 36264790Sbapt * is granted directly or by implication, estoppel or otherwise; 37264790Sbapt * 38264790Sbapt * The above copyright and patent license is granted only if the following 39264790Sbapt * conditions are met: 40264790Sbapt * 41264790Sbapt * 3. Conditions 42264790Sbapt * 43264790Sbapt * 3.1. Redistribution of Source with Rights to Further Distribute Source. 44264790Sbapt * Redistribution of source code of any substantial portion of the Covered 45264790Sbapt * Code or modification with rights to further distribute source must include 46264790Sbapt * the above Copyright Notice, the above License, this list of Conditions, 47264790Sbapt * and the following Disclaimer and Export Compliance provision. In addition, 48264790Sbapt * Licensee must cause all Covered Code to which Licensee contributes to 49264790Sbapt * contain a file documenting the changes Licensee made to create that Covered 50264790Sbapt * Code and the date of any change. Licensee must include in that file the 51264790Sbapt * documentation of any changes made by any predecessor Licensee. Licensee 52264790Sbapt * must include a prominent statement that the modification is derived, 53264790Sbapt * directly or indirectly, from Original Intel Code. 54264790Sbapt * 55264790Sbapt * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 56264790Sbapt * Redistribution of source code of any substantial portion of the Covered 57264790Sbapt * Code or modification without rights to further distribute source must 58264790Sbapt * include the following Disclaimer and Export Compliance provision in the 59264790Sbapt * documentation and/or other materials provided with distribution. In 60264790Sbapt * addition, Licensee may not authorize further sublicense of source of any 61264790Sbapt * portion of the Covered Code, and must include terms to the effect that the 62264790Sbapt * license from Licensee to its licensee is limited to the intellectual 63264790Sbapt * property embodied in the software Licensee provides to its licensee, and 64264790Sbapt * not to intellectual property embodied in modifications its licensee may 65264790Sbapt * make. 66264790Sbapt * 67264790Sbapt * 3.3. Redistribution of Executable. Redistribution in executable form of any 68264790Sbapt * substantial portion of the Covered Code or modification must reproduce the 69264790Sbapt * above Copyright Notice, and the following Disclaimer and Export Compliance 70264790Sbapt * provision in the documentation and/or other materials provided with the 71264790Sbapt * distribution. 72264790Sbapt * 73264790Sbapt * 3.4. Intel retains all right, title, and interest in and to the Original 74264790Sbapt * Intel Code. 75264790Sbapt * 76264790Sbapt * 3.5. Neither the name Intel nor any other trademark owned or controlled by 77264790Sbapt * Intel shall be used in advertising or otherwise to promote the sale, use or 78264790Sbapt * other dealings in products derived from or relating to the Covered Code 79264790Sbapt * without prior written authorization from Intel. 80264790Sbapt * 81264790Sbapt * 4. Disclaimer and Export Compliance 82264790Sbapt * 83264790Sbapt * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 84264790Sbapt * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 85264790Sbapt * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 86264790Sbapt * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 87264790Sbapt * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 88264790Sbapt * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 89264790Sbapt * PARTICULAR PURPOSE. 90264790Sbapt * 91264790Sbapt * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 92264790Sbapt * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 93264790Sbapt * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 94264790Sbapt * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 95264790Sbapt * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 96264790Sbapt * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 97264790Sbapt * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 98264790Sbapt * LIMITED REMEDY. 99264790Sbapt * 100264790Sbapt * 4.3. Licensee shall not export, either directly or indirectly, any of this 101264790Sbapt * software or system incorporating such software without first obtaining any 102264790Sbapt * required license or other approval from the U. S. Department of Commerce or 103264790Sbapt * any other agency or department of the United States Government. In the 104264790Sbapt * event Licensee exports any such software from the United States or 105264790Sbapt * re-exports any such software from a foreign destination, Licensee shall 106264790Sbapt * ensure that the distribution and export/re-export of the software is in 107264790Sbapt * compliance with all laws, regulations, orders, or other restrictions of the 108264790Sbapt * U.S. Export Administration Regulations. Licensee agrees that neither it nor 109264790Sbapt * any of its subsidiaries will export/re-export any technical data, process, 110264790Sbapt * software, or service, directly or indirectly, to any country for which the 111264790Sbapt * United States government or any agency thereof requires an export license, 112264790Sbapt * other governmental approval, or letter of assurance, without first obtaining 113264790Sbapt * such license, approval or letter. 114264790Sbapt * 115264790Sbapt *****************************************************************************/ 116264790Sbapt 117264790Sbapt#ifndef _ACUTILS_H 118264790Sbapt#define _ACUTILS_H 119264790Sbapt 120264790Sbapt 121264790Sbapttypedef 122264790SbaptACPI_STATUS (*ACPI_PKG_CALLBACK) ( 123264790Sbapt UINT8 ObjectType, 124264790Sbapt ACPI_OPERAND_OBJECT *SourceObject, 125264790Sbapt ACPI_GENERIC_STATE *State, 126264790Sbapt void *Context); 127264790Sbapt 128264790Sbapttypedef struct acpi_pkg_info 129264790Sbapt{ 130264790Sbapt UINT8 *FreeSpace; 131264790Sbapt ACPI_SIZE Length; 132264790Sbapt UINT32 ObjectSpace; 133264790Sbapt UINT32 NumPackages; 134264790Sbapt 135264790Sbapt} ACPI_PKG_INFO; 136264790Sbapt 137264790Sbapt#define REF_INCREMENT (UINT16) 0 138264790Sbapt#define REF_DECREMENT (UINT16) 1 139264790Sbapt#define REF_FORCE_DELETE (UINT16) 2 140264790Sbapt 141264790Sbapt/* AcpiUtDumpBuffer */ 142264790Sbapt 143264790Sbapt#define DB_BYTE_DISPLAY 1 144264790Sbapt#define DB_WORD_DISPLAY 2 145264790Sbapt#define DB_DWORD_DISPLAY 4 146264790Sbapt#define DB_QWORD_DISPLAY 8 147264790Sbapt 148264790Sbapt 149264790Sbapt/* 150264790Sbapt * utglobal - Global data structures and procedures 151264790Sbapt */ 152264790Sbaptvoid 153264790SbaptAcpiUtInitGlobals ( 154264790Sbapt void); 155264790Sbapt 156264790Sbapt#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 157264790Sbapt 158264790Sbaptchar * 159264790SbaptAcpiUtGetMutexName ( 160264790Sbapt UINT32 MutexId); 161264790Sbapt 162264790Sbapt#endif 163264790Sbapt 164264790Sbaptchar * 165264790SbaptAcpiUtGetTypeName ( 166264790Sbapt ACPI_OBJECT_TYPE Type); 167264790Sbapt 168264790Sbaptchar * 169264790SbaptAcpiUtGetNodeName ( 170264790Sbapt void *Object); 171264790Sbapt 172264790Sbaptchar * 173264790SbaptAcpiUtGetDescriptorName ( 174264790Sbapt void *Object); 175264790Sbapt 176264790Sbaptchar * 177264790SbaptAcpiUtGetObjectTypeName ( 178264790Sbapt ACPI_OPERAND_OBJECT *ObjDesc); 179264790Sbapt 180264790Sbaptchar * 181264790SbaptAcpiUtGetRegionName ( 182264790Sbapt UINT8 SpaceId); 183264790Sbapt 184264790Sbaptchar * 185264790SbaptAcpiUtGetEventName ( 186264790Sbapt UINT32 EventId); 187264790Sbapt 188264790Sbaptchar 189264790SbaptAcpiUtHexToAsciiChar ( 190264790Sbapt ACPI_INTEGER Integer, 191264790Sbapt UINT32 Position); 192264790Sbapt 193264790SbaptBOOLEAN 194264790SbaptAcpiUtValidObjectType ( 195264790Sbapt ACPI_OBJECT_TYPE Type); 196264790Sbapt 197264790Sbapt 198264790Sbapt/* 199264790Sbapt * utinit - miscellaneous initialization and shutdown 200264790Sbapt */ 201264790SbaptACPI_STATUS 202264790SbaptAcpiUtHardwareInitialize ( 203264790Sbapt void); 204264790Sbapt 205264790Sbaptvoid 206264790SbaptAcpiUtSubsystemShutdown ( 207264790Sbapt void); 208264790Sbapt 209264790SbaptACPI_STATUS 210264790SbaptAcpiUtValidateFadt ( 211264790Sbapt void); 212264790Sbapt 213264790Sbapt 214264790Sbapt/* 215264790Sbapt * utclib - Local implementations of C library functions 216264790Sbapt */ 217264790Sbapt#ifndef ACPI_USE_SYSTEM_CLIBRARY 218264790Sbapt 219264790SbaptACPI_SIZE 220264790SbaptAcpiUtStrlen ( 221264790Sbapt const char *String); 222264790Sbapt 223264790Sbaptchar * 224264790SbaptAcpiUtStrcpy ( 225264790Sbapt char *DstString, 226264790Sbapt const char *SrcString); 227264790Sbapt 228264790Sbaptchar * 229264790SbaptAcpiUtStrncpy ( 230264790Sbapt char *DstString, 231264790Sbapt const char *SrcString, 232264790Sbapt ACPI_SIZE Count); 233264790Sbapt 234264790Sbaptint 235264790SbaptAcpiUtMemcmp ( 236264790Sbapt const char *Buffer1, 237264790Sbapt const char *Buffer2, 238264790Sbapt ACPI_SIZE Count); 239264790Sbapt 240264790Sbaptint 241264790SbaptAcpiUtStrncmp ( 242264790Sbapt const char *String1, 243264790Sbapt const char *String2, 244264790Sbapt ACPI_SIZE Count); 245264790Sbapt 246264790Sbaptint 247264790SbaptAcpiUtStrcmp ( 248264790Sbapt const char *String1, 249264790Sbapt const char *String2); 250264790Sbapt 251264790Sbaptchar * 252264790SbaptAcpiUtStrcat ( 253264790Sbapt char *DstString, 254264790Sbapt const char *SrcString); 255264790Sbapt 256264790Sbaptchar * 257264790SbaptAcpiUtStrncat ( 258264790Sbapt char *DstString, 259264790Sbapt const char *SrcString, 260264790Sbapt ACPI_SIZE Count); 261264790Sbapt 262264790SbaptUINT32 263264790SbaptAcpiUtStrtoul ( 264264790Sbapt const char *String, 265264790Sbapt char **Terminator, 266264790Sbapt UINT32 Base); 267264790Sbapt 268264790Sbaptchar * 269264790SbaptAcpiUtStrstr ( 270264790Sbapt char *String1, 271264790Sbapt char *String2); 272264790Sbapt 273264790Sbaptvoid * 274264790SbaptAcpiUtMemcpy ( 275264790Sbapt void *Dest, 276264790Sbapt const void *Src, 277264790Sbapt ACPI_SIZE Count); 278264790Sbapt 279264790Sbaptvoid * 280264790SbaptAcpiUtMemset ( 281264790Sbapt void *Dest, 282264790Sbapt ACPI_NATIVE_UINT Value, 283264790Sbapt ACPI_SIZE Count); 284264790Sbapt 285264790Sbaptint 286264790SbaptAcpiUtToUpper ( 287264790Sbapt int c); 288264790Sbapt 289264790Sbaptint 290264790SbaptAcpiUtToLower ( 291264790Sbapt int c); 292264790Sbapt 293264790Sbaptextern const UINT8 _acpi_ctype[]; 294264790Sbapt 295264790Sbapt#define _ACPI_XA 0x00 /* extra alphabetic - not supported */ 296264790Sbapt#define _ACPI_XS 0x40 /* extra space */ 297264790Sbapt#define _ACPI_BB 0x00 /* BEL, BS, etc. - not supported */ 298264790Sbapt#define _ACPI_CN 0x20 /* CR, FF, HT, NL, VT */ 299264790Sbapt#define _ACPI_DI 0x04 /* '0'-'9' */ 300264790Sbapt#define _ACPI_LO 0x02 /* 'a'-'z' */ 301264790Sbapt#define _ACPI_PU 0x10 /* punctuation */ 302264790Sbapt#define _ACPI_SP 0x08 /* space */ 303264790Sbapt#define _ACPI_UP 0x01 /* 'A'-'Z' */ 304264790Sbapt#define _ACPI_XD 0x80 /* '0'-'9', 'A'-'F', 'a'-'f' */ 305264790Sbapt 306264790Sbapt#define ACPI_IS_DIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_DI)) 307264790Sbapt#define ACPI_IS_SPACE(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_SP)) 308264790Sbapt#define ACPI_IS_XDIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_XD)) 309264790Sbapt#define ACPI_IS_UPPER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_UP)) 310264790Sbapt#define ACPI_IS_LOWER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO)) 311264790Sbapt#define ACPI_IS_PRINT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_SP | _ACPI_PU)) 312264790Sbapt#define ACPI_IS_ALPHA(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP)) 313272655Sbapt 314272655Sbapt#endif /* ACPI_USE_SYSTEM_CLIBRARY */ 315272655Sbapt 316272655Sbapt 317272655Sbapt/* 318272655Sbapt * utcopy - Object construction and conversion interfaces 319272655Sbapt */ 320272655SbaptACPI_STATUS 321272655SbaptAcpiUtBuildSimpleObject( 322272655Sbapt ACPI_OPERAND_OBJECT *Obj, 323272655Sbapt ACPI_OBJECT *UserObj, 324272655Sbapt UINT8 *DataSpace, 325272655Sbapt UINT32 *BufferSpaceUsed); 326272655Sbapt 327272655SbaptACPI_STATUS 328272655SbaptAcpiUtBuildPackageObject ( 329272655Sbapt ACPI_OPERAND_OBJECT *Obj, 330272655Sbapt UINT8 *Buffer, 331272655Sbapt UINT32 *SpaceUsed); 332272655Sbapt 333272655SbaptACPI_STATUS 334272655SbaptAcpiUtCopyIobjectToEobject ( 335272655Sbapt ACPI_OPERAND_OBJECT *Obj, 336272655Sbapt ACPI_BUFFER *RetBuffer); 337272655Sbapt 338272655SbaptACPI_STATUS 339272655SbaptAcpiUtCopyEobjectToIobject ( 340264790Sbapt ACPI_OBJECT *Obj, 341264790Sbapt ACPI_OPERAND_OBJECT **InternalObj); 342264790Sbapt 343264790SbaptACPI_STATUS 344264790SbaptAcpiUtCopyISimpleToIsimple ( 345264790Sbapt ACPI_OPERAND_OBJECT *SourceObj, 346264790Sbapt ACPI_OPERAND_OBJECT *DestObj); 347264790Sbapt 348264790SbaptACPI_STATUS 349264790SbaptAcpiUtCopyIobjectToIobject ( 350264790Sbapt ACPI_OPERAND_OBJECT *SourceDesc, 351264790Sbapt ACPI_OPERAND_OBJECT **DestDesc, 352264790Sbapt ACPI_WALK_STATE *WalkState); 353264790Sbapt 354264790Sbapt 355264790Sbapt/* 356264790Sbapt * utcreate - Object creation 357264790Sbapt */ 358264790SbaptACPI_STATUS 359264790SbaptAcpiUtUpdateObjectReference ( 360264790Sbapt ACPI_OPERAND_OBJECT *Object, 361264790Sbapt UINT16 Action); 362264790Sbapt 363264790Sbapt 364264790Sbapt/* 365264790Sbapt * utdebug - Debug interfaces 366264790Sbapt */ 367264790Sbaptvoid 368264790SbaptAcpiUtInitStackPtrTrace ( 369264790Sbapt void); 370264790Sbapt 371264790Sbaptvoid 372264790SbaptAcpiUtTrackStackPtr ( 373264790Sbapt void); 374264790Sbapt 375264790Sbaptvoid 376264790SbaptAcpiUtTrace ( 377264790Sbapt UINT32 LineNumber, 378264790Sbapt const char *FunctionName, 379264790Sbapt char *ModuleName, 380264790Sbapt UINT32 ComponentId); 381264790Sbapt 382264790Sbaptvoid 383264790SbaptAcpiUtTracePtr ( 384264790Sbapt UINT32 LineNumber, 385264790Sbapt const char *FunctionName, 386264790Sbapt char *ModuleName, 387264790Sbapt UINT32 ComponentId, 388264790Sbapt void *Pointer); 389264790Sbapt 390264790Sbaptvoid 391264790SbaptAcpiUtTraceU32 ( 392264790Sbapt UINT32 LineNumber, 393264790Sbapt const char *FunctionName, 394264790Sbapt char *ModuleName, 395264790Sbapt UINT32 ComponentId, 396264790Sbapt UINT32 Integer); 397264790Sbapt 398264790Sbaptvoid 399264790SbaptAcpiUtTraceStr ( 400264790Sbapt UINT32 LineNumber, 401264790Sbapt const char *FunctionName, 402264790Sbapt char *ModuleName, 403264790Sbapt UINT32 ComponentId, 404264790Sbapt char *String); 405264790Sbapt 406264790Sbaptvoid 407264790SbaptAcpiUtExit ( 408264790Sbapt UINT32 LineNumber, 409264790Sbapt const char *FunctionName, 410264790Sbapt char *ModuleName, 411264790Sbapt UINT32 ComponentId); 412264790Sbapt 413264790Sbaptvoid 414264790SbaptAcpiUtStatusExit ( 415264790Sbapt UINT32 LineNumber, 416264790Sbapt const char *FunctionName, 417264790Sbapt char *ModuleName, 418264790Sbapt UINT32 ComponentId, 419264790Sbapt ACPI_STATUS Status); 420264790Sbapt 421264790Sbaptvoid 422264790SbaptAcpiUtValueExit ( 423264790Sbapt UINT32 LineNumber, 424264790Sbapt const char *FunctionName, 425264790Sbapt char *ModuleName, 426264790Sbapt UINT32 ComponentId, 427264790Sbapt ACPI_INTEGER Value); 428264790Sbapt 429264790Sbaptvoid 430264790SbaptAcpiUtPtrExit ( 431264790Sbapt UINT32 LineNumber, 432264790Sbapt const char *FunctionName, 433264790Sbapt char *ModuleName, 434264790Sbapt UINT32 ComponentId, 435264790Sbapt UINT8 *Ptr); 436264790Sbapt 437264790Sbaptvoid 438264790SbaptAcpiUtReportInfo ( 439264790Sbapt char *ModuleName, 440264790Sbapt UINT32 LineNumber, 441264790Sbapt UINT32 ComponentId); 442264790Sbapt 443264790Sbaptvoid 444264790SbaptAcpiUtReportError ( 445264790Sbapt char *ModuleName, 446264790Sbapt UINT32 LineNumber, 447264790Sbapt UINT32 ComponentId); 448264790Sbapt 449264790Sbaptvoid 450264790SbaptAcpiUtReportWarning ( 451264790Sbapt char *ModuleName, 452264790Sbapt UINT32 LineNumber, 453264790Sbapt UINT32 ComponentId); 454264790Sbapt 455264790Sbaptvoid 456264790SbaptAcpiUtDumpBuffer ( 457264790Sbapt UINT8 *Buffer, 458264790Sbapt UINT32 Count, 459264790Sbapt UINT32 Display, 460264790Sbapt UINT32 componentId); 461264790Sbapt 462264790Sbaptvoid ACPI_INTERNAL_VAR_XFACE 463264790SbaptAcpiUtDebugPrint ( 464264790Sbapt UINT32 RequestedDebugLevel, 465264790Sbapt UINT32 LineNumber, 466264790Sbapt const char *FunctionName, 467264790Sbapt char *ModuleName, 468264790Sbapt UINT32 ComponentId, 469264790Sbapt char *Format, 470264790Sbapt ...) ACPI_PRINTF_LIKE_FUNC; 471264790Sbapt 472264790Sbaptvoid ACPI_INTERNAL_VAR_XFACE 473264790SbaptAcpiUtDebugPrintRaw ( 474264790Sbapt UINT32 RequestedDebugLevel, 475264790Sbapt UINT32 LineNumber, 476264790Sbapt const char *FunctionName, 477264790Sbapt char *ModuleName, 478264790Sbapt UINT32 ComponentId, 479264790Sbapt char *Format, 480264790Sbapt ...) ACPI_PRINTF_LIKE_FUNC; 481264790Sbapt 482264790Sbapt 483264790Sbapt/* 484264790Sbapt * utdelete - Object deletion and reference counts 485264790Sbapt */ 486264790Sbaptvoid 487264790SbaptAcpiUtAddReference ( 488264790Sbapt ACPI_OPERAND_OBJECT *Object); 489264790Sbapt 490264790Sbaptvoid 491264790SbaptAcpiUtRemoveReference ( 492264790Sbapt ACPI_OPERAND_OBJECT *Object); 493264790Sbapt 494264790Sbaptvoid 495264790SbaptAcpiUtDeleteInternalPackageObject ( 496264790Sbapt ACPI_OPERAND_OBJECT *Object); 497264790Sbapt 498264790Sbaptvoid 499264790SbaptAcpiUtDeleteInternalSimpleObject ( 500264790Sbapt ACPI_OPERAND_OBJECT *Object); 501264790Sbapt 502264790Sbaptvoid 503264790SbaptAcpiUtDeleteInternalObjectList ( 504264790Sbapt ACPI_OPERAND_OBJECT **ObjList); 505264790Sbapt 506264790Sbapt 507264790Sbapt/* 508264790Sbapt * uteval - object evaluation 509264790Sbapt */ 510264790SbaptACPI_STATUS 511264790SbaptAcpiUtOsiImplementation ( 512264790Sbapt ACPI_WALK_STATE *WalkState); 513264790Sbapt 514264790SbaptACPI_STATUS 515264790SbaptAcpiUtEvaluateObject ( 516264790Sbapt ACPI_NAMESPACE_NODE *PrefixNode, 517264790Sbapt char *Path, 518264790Sbapt UINT32 ExpectedReturnBtypes, 519264790Sbapt ACPI_OPERAND_OBJECT **ReturnDesc); 520264790Sbapt 521264790SbaptACPI_STATUS 522264790SbaptAcpiUtEvaluateNumericObject ( 523264790Sbapt char *ObjectName, 524264790Sbapt ACPI_NAMESPACE_NODE *DeviceNode, 525264790Sbapt ACPI_INTEGER *Address); 526264790Sbapt 527264790SbaptACPI_STATUS 528264790SbaptAcpiUtExecute_HID ( 529264790Sbapt ACPI_NAMESPACE_NODE *DeviceNode, 530264790Sbapt ACPI_DEVICE_ID *Hid); 531264790Sbapt 532264790SbaptACPI_STATUS 533264790SbaptAcpiUtExecute_CID ( 534264790Sbapt ACPI_NAMESPACE_NODE *DeviceNode, 535264790Sbapt ACPI_COMPATIBLE_ID_LIST **ReturnCidList); 536264790Sbapt 537264790SbaptACPI_STATUS 538264790SbaptAcpiUtExecute_STA ( 539264790Sbapt ACPI_NAMESPACE_NODE *DeviceNode, 540264790Sbapt UINT32 *StatusFlags); 541264790Sbapt 542264790SbaptACPI_STATUS 543264790SbaptAcpiUtExecute_UID ( 544264790Sbapt ACPI_NAMESPACE_NODE *DeviceNode, 545264790Sbapt ACPI_DEVICE_ID *Uid); 546264790Sbapt 547264790SbaptACPI_STATUS 548264790SbaptAcpiUtExecute_Sxds ( 549264790Sbapt ACPI_NAMESPACE_NODE *DeviceNode, 550264790Sbapt UINT8 *Highest); 551264790Sbapt 552264790Sbapt 553264790Sbapt/* 554264790Sbapt * utobject - internal object create/delete/cache routines 555264790Sbapt */ 556264790SbaptACPI_OPERAND_OBJECT * 557264790SbaptAcpiUtCreateInternalObjectDbg ( 558264790Sbapt char *ModuleName, 559264790Sbapt UINT32 LineNumber, 560264790Sbapt UINT32 ComponentId, 561264790Sbapt ACPI_OBJECT_TYPE Type); 562264790Sbapt 563264790Sbaptvoid * 564264790SbaptAcpiUtAllocateObjectDescDbg ( 565264790Sbapt char *ModuleName, 566264790Sbapt UINT32 LineNumber, 567264790Sbapt UINT32 ComponentId); 568264790Sbapt 569264790Sbapt#define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t) 570264790Sbapt#define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT) 571264790Sbapt 572264790Sbaptvoid 573264790SbaptAcpiUtDeleteObjectDesc ( 574264790Sbapt ACPI_OPERAND_OBJECT *Object); 575264790Sbapt 576264790SbaptBOOLEAN 577264790SbaptAcpiUtValidInternalObject ( 578264790Sbapt void *Object); 579264790Sbapt 580264790SbaptACPI_OPERAND_OBJECT * 581264790SbaptAcpiUtCreateBufferObject ( 582264790Sbapt ACPI_SIZE BufferSize); 583264790Sbapt 584264790SbaptACPI_OPERAND_OBJECT * 585264790SbaptAcpiUtCreateStringObject ( 586264790Sbapt ACPI_SIZE StringSize); 587264790Sbapt 588264790SbaptACPI_STATUS 589264790SbaptAcpiUtGetObjectSize( 590264790Sbapt ACPI_OPERAND_OBJECT *Obj, 591264790Sbapt ACPI_SIZE *ObjLength); 592264790Sbapt 593264790Sbapt 594264790Sbapt/* 595264790Sbapt * utstate - Generic state creation/cache routines 596264790Sbapt */ 597264790Sbaptvoid 598264790SbaptAcpiUtPushGenericState ( 599264790Sbapt ACPI_GENERIC_STATE **ListHead, 600264790Sbapt ACPI_GENERIC_STATE *State); 601264790Sbapt 602264790SbaptACPI_GENERIC_STATE * 603264790SbaptAcpiUtPopGenericState ( 604264790Sbapt ACPI_GENERIC_STATE **ListHead); 605264790Sbapt 606264790Sbapt 607264790SbaptACPI_GENERIC_STATE * 608264790SbaptAcpiUtCreateGenericState ( 609264790Sbapt void); 610264790Sbapt 611264790SbaptACPI_THREAD_STATE * 612264790SbaptAcpiUtCreateThreadState ( 613264790Sbapt void); 614264790Sbapt 615264790SbaptACPI_GENERIC_STATE * 616264790SbaptAcpiUtCreateUpdateState ( 617264790Sbapt ACPI_OPERAND_OBJECT *Object, 618264790Sbapt UINT16 Action); 619264790Sbapt 620264790SbaptACPI_GENERIC_STATE * 621264790SbaptAcpiUtCreatePkgState ( 622264790Sbapt void *InternalObject, 623264790Sbapt void *ExternalObject, 624264790Sbapt UINT16 Index); 625264790Sbapt 626264790SbaptACPI_STATUS 627264790SbaptAcpiUtCreateUpdateStateAndPush ( 628264790Sbapt ACPI_OPERAND_OBJECT *Object, 629264790Sbapt UINT16 Action, 630264790Sbapt ACPI_GENERIC_STATE **StateList); 631264790Sbapt 632264790SbaptACPI_STATUS 633264790SbaptAcpiUtCreatePkgStateAndPush ( 634264790Sbapt void *InternalObject, 635264790Sbapt void *ExternalObject, 636264790Sbapt UINT16 Index, 637264790Sbapt ACPI_GENERIC_STATE **StateList); 638264790Sbapt 639264790SbaptACPI_GENERIC_STATE * 640264790SbaptAcpiUtCreateControlState ( 641264790Sbapt void); 642264790Sbapt 643264790Sbaptvoid 644264790SbaptAcpiUtDeleteGenericState ( 645264790Sbapt ACPI_GENERIC_STATE *State); 646264790Sbapt 647264790Sbapt 648264790Sbapt/* 649272655Sbapt * utmath 650264790Sbapt */ 651264790SbaptACPI_STATUS 652264790SbaptAcpiUtDivide ( 653264790Sbapt ACPI_INTEGER InDividend, 654264790Sbapt ACPI_INTEGER InDivisor, 655264790Sbapt ACPI_INTEGER *OutQuotient, 656264790Sbapt ACPI_INTEGER *OutRemainder); 657264790Sbapt 658272655SbaptACPI_STATUS 659264790SbaptAcpiUtShortDivide ( 660264790Sbapt ACPI_INTEGER InDividend, 661272655Sbapt UINT32 Divisor, 662272655Sbapt ACPI_INTEGER *OutQuotient, 663264790Sbapt UINT32 *OutRemainder); 664264790Sbapt 665264790Sbapt/* 666264790Sbapt * utmisc 667264790Sbapt */ 668264790SbaptACPI_STATUS 669264790SbaptAcpiUtAllocateOwnerId ( 670264790Sbapt ACPI_OWNER_ID *OwnerId); 671264790Sbapt 672264790Sbaptvoid 673264790SbaptAcpiUtReleaseOwnerId ( 674264790Sbapt ACPI_OWNER_ID *OwnerId); 675264790Sbapt 676264790SbaptACPI_STATUS 677264790SbaptAcpiUtWalkPackageTree ( 678264790Sbapt ACPI_OPERAND_OBJECT *SourceObject, 679264790Sbapt void *TargetObject, 680264790Sbapt ACPI_PKG_CALLBACK WalkCallback, 681264790Sbapt void *Context); 682264790Sbapt 683264790Sbaptvoid 684264790SbaptAcpiUtStrupr ( 685264790Sbapt char *SrcString); 686264790Sbapt 687264790Sbaptvoid 688264790SbaptAcpiUtPrintString ( 689264790Sbapt char *String, 690264790Sbapt UINT8 MaxLength); 691264790Sbapt 692264790SbaptBOOLEAN 693264790SbaptAcpiUtValidAcpiName ( 694264790Sbapt UINT32 Name); 695264790Sbapt 696264790SbaptBOOLEAN 697264790SbaptAcpiUtValidAcpiCharacter ( 698264790Sbapt char Character); 699264790Sbapt 700264790SbaptACPI_STATUS 701264790SbaptAcpiUtStrtoul64 ( 702264790Sbapt char *String, 703264790Sbapt UINT32 Base, 704264790Sbapt ACPI_INTEGER *RetInteger); 705264790Sbapt 706264790Sbapt/* Values for Base above (16=Hex, 10=Decimal) */ 707264790Sbapt 708264790Sbapt#define ACPI_ANY_BASE 0 709264790Sbapt 710264790SbaptUINT32 711264790SbaptAcpiUtGetDescriptorLength ( 712264790Sbapt void *Aml); 713264790Sbapt 714264790SbaptUINT16 715264790SbaptAcpiUtGetResourceLength ( 716264790Sbapt void *Aml); 717264790Sbapt 718264790SbaptUINT8 719264790SbaptAcpiUtGetResourceType ( 720264790Sbapt void *Aml); 721264790Sbapt 722264790SbaptUINT8 * 723264790SbaptAcpiUtGetResourceEndTag ( 724264790Sbapt ACPI_OPERAND_OBJECT *ObjDesc); 725264790Sbapt 726264790SbaptUINT8 727264790SbaptAcpiUtGenerateChecksum ( 728264790Sbapt UINT8 *Buffer, 729264790Sbapt UINT32 Length); 730264790Sbapt 731264790SbaptUINT32 732264790SbaptAcpiUtDwordByteSwap ( 733264790Sbapt UINT32 Value); 734264790Sbapt 735264790Sbaptvoid 736264790SbaptAcpiUtSetIntegerWidth ( 737264790Sbapt UINT8 Revision); 738264790Sbapt 739264790Sbapt#ifdef ACPI_DEBUG_OUTPUT 740264790Sbaptvoid 741264790SbaptAcpiUtDisplayInitPathname ( 742264790Sbapt UINT8 Type, 743264790Sbapt ACPI_NAMESPACE_NODE *ObjHandle, 744264790Sbapt char *Path); 745264790Sbapt 746264790Sbapt#endif 747264790Sbapt 748264790Sbapt 749264790Sbapt/* 750264790Sbapt * utmutex - mutex support 751264790Sbapt */ 752264790SbaptACPI_STATUS 753264790SbaptAcpiUtMutexInitialize ( 754264790Sbapt void); 755264790Sbapt 756264790Sbaptvoid 757264790SbaptAcpiUtMutexTerminate ( 758264790Sbapt void); 759264790Sbapt 760264790SbaptACPI_STATUS 761264790SbaptAcpiUtAcquireMutex ( 762264790Sbapt ACPI_MUTEX_HANDLE MutexId); 763264790Sbapt 764264790SbaptACPI_STATUS 765264790SbaptAcpiUtReleaseMutex ( 766264790Sbapt ACPI_MUTEX_HANDLE MutexId); 767264790Sbapt 768264790Sbapt 769264790Sbapt/* 770264790Sbapt * utalloc - memory allocation and object caching 771264790Sbapt */ 772264790SbaptACPI_STATUS 773264790SbaptAcpiUtCreateCaches ( 774264790Sbapt void); 775264790Sbapt 776264790SbaptACPI_STATUS 777264790SbaptAcpiUtDeleteCaches ( 778264790Sbapt void); 779264790Sbapt 780264790SbaptACPI_STATUS 781264790SbaptAcpiUtValidateBuffer ( 782264790Sbapt ACPI_BUFFER *Buffer); 783264790Sbapt 784264790SbaptACPI_STATUS 785264790SbaptAcpiUtInitializeBuffer ( 786264790Sbapt ACPI_BUFFER *Buffer, 787264790Sbapt ACPI_SIZE RequiredLength); 788264790Sbapt 789264790Sbaptvoid * 790264790SbaptAcpiUtAllocate ( 791264790Sbapt ACPI_SIZE Size, 792264790Sbapt UINT32 Component, 793264790Sbapt char *Module, 794264790Sbapt UINT32 Line); 795264790Sbapt 796264790Sbaptvoid * 797264790SbaptAcpiUtCallocate ( 798264790Sbapt ACPI_SIZE Size, 799264790Sbapt UINT32 Component, 800264790Sbapt char *Module, 801264790Sbapt UINT32 Line); 802264790Sbapt 803264790Sbapt#ifdef ACPI_DBG_TRACK_ALLOCATIONS 804264790Sbaptvoid * 805264790SbaptAcpiUtAllocateAndTrack ( 806264790Sbapt ACPI_SIZE Size, 807264790Sbapt UINT32 Component, 808264790Sbapt char *Module, 809264790Sbapt UINT32 Line); 810264790Sbapt 811264790Sbaptvoid * 812264790SbaptAcpiUtCallocateAndTrack ( 813264790Sbapt ACPI_SIZE Size, 814264790Sbapt UINT32 Component, 815264790Sbapt char *Module, 816264790Sbapt UINT32 Line); 817264790Sbapt 818264790Sbaptvoid 819264790SbaptAcpiUtFreeAndTrack ( 820264790Sbapt void *Address, 821264790Sbapt UINT32 Component, 822264790Sbapt char *Module, 823264790Sbapt UINT32 Line); 824264790Sbapt 825264790Sbaptvoid 826264790SbaptAcpiUtDumpAllocationInfo ( 827264790Sbapt void); 828264790Sbapt 829264790Sbaptvoid 830264790SbaptAcpiUtDumpAllocations ( 831264790Sbapt UINT32 Component, 832264790Sbapt char *Module); 833264790Sbapt#endif 834264790Sbapt 835264790Sbapt#endif /* _ACUTILS_H */ 836264790Sbapt