17c478bd9Sstevel@tonic-gate /****************************************************************************** 27c478bd9Sstevel@tonic-gate * 37c478bd9Sstevel@tonic-gate * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures 47c478bd9Sstevel@tonic-gate * 57c478bd9Sstevel@tonic-gate *****************************************************************************/ 67c478bd9Sstevel@tonic-gate 726f3cdf0SGordon Ross /* 8*cb565728SJerry Jelinek * Copyright (C) 2000 - 2016, Intel Corp. 97c478bd9Sstevel@tonic-gate * All rights reserved. 107c478bd9Sstevel@tonic-gate * 1126f3cdf0SGordon Ross * Redistribution and use in source and binary forms, with or without 1226f3cdf0SGordon Ross * modification, are permitted provided that the following conditions 1326f3cdf0SGordon Ross * are met: 1426f3cdf0SGordon Ross * 1. Redistributions of source code must retain the above copyright 1526f3cdf0SGordon Ross * notice, this list of conditions, and the following disclaimer, 1626f3cdf0SGordon Ross * without modification. 1726f3cdf0SGordon Ross * 2. Redistributions in binary form must reproduce at minimum a disclaimer 1826f3cdf0SGordon Ross * substantially similar to the "NO WARRANTY" disclaimer below 1926f3cdf0SGordon Ross * ("Disclaimer") and any redistribution must be conditioned upon 2026f3cdf0SGordon Ross * including a substantially similar Disclaimer requirement for further 2126f3cdf0SGordon Ross * binary redistribution. 2226f3cdf0SGordon Ross * 3. Neither the names of the above-listed copyright holders nor the names 2326f3cdf0SGordon Ross * of any contributors may be used to endorse or promote products derived 2426f3cdf0SGordon Ross * from this software without specific prior written permission. 257c478bd9Sstevel@tonic-gate * 2626f3cdf0SGordon Ross * Alternatively, this software may be distributed under the terms of the 2726f3cdf0SGordon Ross * GNU General Public License ("GPL") version 2 as published by the Free 2826f3cdf0SGordon Ross * Software Foundation. 297c478bd9Sstevel@tonic-gate * 3026f3cdf0SGordon Ross * NO WARRANTY 3126f3cdf0SGordon Ross * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 3226f3cdf0SGordon Ross * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 3326f3cdf0SGordon Ross * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 3426f3cdf0SGordon Ross * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 3526f3cdf0SGordon Ross * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 3626f3cdf0SGordon Ross * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 3726f3cdf0SGordon Ross * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3826f3cdf0SGordon Ross * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 3926f3cdf0SGordon Ross * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 4026f3cdf0SGordon Ross * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 4126f3cdf0SGordon Ross * POSSIBILITY OF SUCH DAMAGES. 4226f3cdf0SGordon Ross */ 437c478bd9Sstevel@tonic-gate 447c478bd9Sstevel@tonic-gate #ifndef _ACUTILS_H 457c478bd9Sstevel@tonic-gate #define _ACUTILS_H 467c478bd9Sstevel@tonic-gate 477c478bd9Sstevel@tonic-gate 4830082d0cSmyers extern const UINT8 AcpiGbl_ResourceAmlSizes[]; 49*cb565728SJerry Jelinek extern const UINT8 AcpiGbl_ResourceAmlSerialBusSizes[]; 5030082d0cSmyers 5130082d0cSmyers /* Strings used by the disassembler and debugger resource dump routines */ 5230082d0cSmyers 53*cb565728SJerry Jelinek #if defined(ACPI_DEBUG_OUTPUT) || defined (ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER) 5430082d0cSmyers 5527f7c583Smyers extern const char *AcpiGbl_BmDecode[]; 5627f7c583Smyers extern const char *AcpiGbl_ConfigDecode[]; 5727f7c583Smyers extern const char *AcpiGbl_ConsumeDecode[]; 5827f7c583Smyers extern const char *AcpiGbl_DecDecode[]; 5927f7c583Smyers extern const char *AcpiGbl_HeDecode[]; 6027f7c583Smyers extern const char *AcpiGbl_IoDecode[]; 6127f7c583Smyers extern const char *AcpiGbl_LlDecode[]; 6227f7c583Smyers extern const char *AcpiGbl_MaxDecode[]; 6327f7c583Smyers extern const char *AcpiGbl_MemDecode[]; 6427f7c583Smyers extern const char *AcpiGbl_MinDecode[]; 6527f7c583Smyers extern const char *AcpiGbl_MtpDecode[]; 6627f7c583Smyers extern const char *AcpiGbl_RngDecode[]; 6727f7c583Smyers extern const char *AcpiGbl_RwDecode[]; 6827f7c583Smyers extern const char *AcpiGbl_ShrDecode[]; 6927f7c583Smyers extern const char *AcpiGbl_SizDecode[]; 7027f7c583Smyers extern const char *AcpiGbl_TrsDecode[]; 7127f7c583Smyers extern const char *AcpiGbl_TtpDecode[]; 7227f7c583Smyers extern const char *AcpiGbl_TypDecode[]; 73*cb565728SJerry Jelinek extern const char *AcpiGbl_PpcDecode[]; 74*cb565728SJerry Jelinek extern const char *AcpiGbl_IorDecode[]; 75*cb565728SJerry Jelinek extern const char *AcpiGbl_DtsDecode[]; 76*cb565728SJerry Jelinek extern const char *AcpiGbl_CtDecode[]; 77*cb565728SJerry Jelinek extern const char *AcpiGbl_SbtDecode[]; 78*cb565728SJerry Jelinek extern const char *AcpiGbl_AmDecode[]; 79*cb565728SJerry Jelinek extern const char *AcpiGbl_SmDecode[]; 80*cb565728SJerry Jelinek extern const char *AcpiGbl_WmDecode[]; 81*cb565728SJerry Jelinek extern const char *AcpiGbl_CphDecode[]; 82*cb565728SJerry Jelinek extern const char *AcpiGbl_CpoDecode[]; 83*cb565728SJerry Jelinek extern const char *AcpiGbl_DpDecode[]; 84*cb565728SJerry Jelinek extern const char *AcpiGbl_EdDecode[]; 85*cb565728SJerry Jelinek extern const char *AcpiGbl_BpbDecode[]; 86*cb565728SJerry Jelinek extern const char *AcpiGbl_SbDecode[]; 87*cb565728SJerry Jelinek extern const char *AcpiGbl_FcDecode[]; 88*cb565728SJerry Jelinek extern const char *AcpiGbl_PtDecode[]; 8930082d0cSmyers #endif 9030082d0cSmyers 91*cb565728SJerry Jelinek /* 92*cb565728SJerry Jelinek * For the iASL compiler case, the output is redirected to stderr so that 93*cb565728SJerry Jelinek * any of the various ACPI errors and warnings do not appear in the output 94*cb565728SJerry Jelinek * files, for either the compiler or disassembler portions of the tool. 95*cb565728SJerry Jelinek */ 96*cb565728SJerry Jelinek #ifdef ACPI_ASL_COMPILER 97*cb565728SJerry Jelinek 98*cb565728SJerry Jelinek #include <stdio.h> 99*cb565728SJerry Jelinek 100*cb565728SJerry Jelinek #define ACPI_MSG_REDIRECT_BEGIN \ 101*cb565728SJerry Jelinek FILE *OutputFile = AcpiGbl_OutputFile; \ 102*cb565728SJerry Jelinek AcpiOsRedirectOutput (stderr); 103*cb565728SJerry Jelinek 104*cb565728SJerry Jelinek #define ACPI_MSG_REDIRECT_END \ 105*cb565728SJerry Jelinek AcpiOsRedirectOutput (OutputFile); 106*cb565728SJerry Jelinek 107*cb565728SJerry Jelinek #else 108*cb565728SJerry Jelinek /* 109*cb565728SJerry Jelinek * non-iASL case - no redirection, nothing to do 110*cb565728SJerry Jelinek */ 111*cb565728SJerry Jelinek #define ACPI_MSG_REDIRECT_BEGIN 112*cb565728SJerry Jelinek #define ACPI_MSG_REDIRECT_END 113*cb565728SJerry Jelinek #endif 114*cb565728SJerry Jelinek 115*cb565728SJerry Jelinek /* 116*cb565728SJerry Jelinek * Common error message prefixes 117*cb565728SJerry Jelinek */ 118*cb565728SJerry Jelinek #ifndef ACPI_MSG_ERROR 119*cb565728SJerry Jelinek #define ACPI_MSG_ERROR "ACPI Error: " 120*cb565728SJerry Jelinek #endif 121*cb565728SJerry Jelinek #ifndef ACPI_MSG_EXCEPTION 122*cb565728SJerry Jelinek #define ACPI_MSG_EXCEPTION "ACPI Exception: " 123*cb565728SJerry Jelinek #endif 124*cb565728SJerry Jelinek #ifndef ACPI_MSG_WARNING 125*cb565728SJerry Jelinek #define ACPI_MSG_WARNING "ACPI Warning: " 126*cb565728SJerry Jelinek #endif 127*cb565728SJerry Jelinek #ifndef ACPI_MSG_INFO 128*cb565728SJerry Jelinek #define ACPI_MSG_INFO "ACPI: " 129*cb565728SJerry Jelinek #endif 130*cb565728SJerry Jelinek 131*cb565728SJerry Jelinek #ifndef ACPI_MSG_BIOS_ERROR 132*cb565728SJerry Jelinek #define ACPI_MSG_BIOS_ERROR "ACPI BIOS Error (bug): " 133*cb565728SJerry Jelinek #endif 134*cb565728SJerry Jelinek #ifndef ACPI_MSG_BIOS_WARNING 135*cb565728SJerry Jelinek #define ACPI_MSG_BIOS_WARNING "ACPI BIOS Warning (bug): " 136*cb565728SJerry Jelinek #endif 137*cb565728SJerry Jelinek 138*cb565728SJerry Jelinek /* 139*cb565728SJerry Jelinek * Common message suffix 140*cb565728SJerry Jelinek */ 141*cb565728SJerry Jelinek #define ACPI_MSG_SUFFIX \ 142*cb565728SJerry Jelinek AcpiOsPrintf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, ModuleName, LineNumber) 143*cb565728SJerry Jelinek 144*cb565728SJerry Jelinek 14530082d0cSmyers /* Types for Resource descriptor entries */ 14630082d0cSmyers 14730082d0cSmyers #define ACPI_INVALID_RESOURCE 0 14830082d0cSmyers #define ACPI_FIXED_LENGTH 1 14930082d0cSmyers #define ACPI_VARIABLE_LENGTH 2 15030082d0cSmyers #define ACPI_SMALL_VARIABLE_LENGTH 3 15130082d0cSmyers 1527c478bd9Sstevel@tonic-gate typedef 15327f7c583Smyers ACPI_STATUS (*ACPI_WALK_AML_CALLBACK) ( 15427f7c583Smyers UINT8 *Aml, 15527f7c583Smyers UINT32 Length, 15627f7c583Smyers UINT32 Offset, 15727f7c583Smyers UINT8 ResourceIndex, 158*cb565728SJerry Jelinek void **Context); 15927f7c583Smyers 16027f7c583Smyers typedef 1617c478bd9Sstevel@tonic-gate ACPI_STATUS (*ACPI_PKG_CALLBACK) ( 1627c478bd9Sstevel@tonic-gate UINT8 ObjectType, 1637c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *SourceObject, 1647c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE *State, 1657c478bd9Sstevel@tonic-gate void *Context); 1667c478bd9Sstevel@tonic-gate 1677c478bd9Sstevel@tonic-gate typedef struct acpi_pkg_info 1687c478bd9Sstevel@tonic-gate { 1697c478bd9Sstevel@tonic-gate UINT8 *FreeSpace; 1707c478bd9Sstevel@tonic-gate ACPI_SIZE Length; 1717c478bd9Sstevel@tonic-gate UINT32 ObjectSpace; 1727c478bd9Sstevel@tonic-gate UINT32 NumPackages; 1737c478bd9Sstevel@tonic-gate 1747c478bd9Sstevel@tonic-gate } ACPI_PKG_INFO; 1757c478bd9Sstevel@tonic-gate 176*cb565728SJerry Jelinek /* Object reference counts */ 177*cb565728SJerry Jelinek 1787c478bd9Sstevel@tonic-gate #define REF_INCREMENT (UINT16) 0 1797c478bd9Sstevel@tonic-gate #define REF_DECREMENT (UINT16) 1 1807c478bd9Sstevel@tonic-gate 1817c478bd9Sstevel@tonic-gate /* AcpiUtDumpBuffer */ 1827c478bd9Sstevel@tonic-gate 1837c478bd9Sstevel@tonic-gate #define DB_BYTE_DISPLAY 1 1847c478bd9Sstevel@tonic-gate #define DB_WORD_DISPLAY 2 1857c478bd9Sstevel@tonic-gate #define DB_DWORD_DISPLAY 4 1867c478bd9Sstevel@tonic-gate #define DB_QWORD_DISPLAY 8 1877c478bd9Sstevel@tonic-gate 1887c478bd9Sstevel@tonic-gate 1897c478bd9Sstevel@tonic-gate /* 190*cb565728SJerry Jelinek * utascii - ASCII utilities 191*cb565728SJerry Jelinek */ 192*cb565728SJerry Jelinek BOOLEAN 193*cb565728SJerry Jelinek AcpiUtValidNameseg ( 194*cb565728SJerry Jelinek char *Signature); 195*cb565728SJerry Jelinek 196*cb565728SJerry Jelinek BOOLEAN 197*cb565728SJerry Jelinek AcpiUtValidNameChar ( 198*cb565728SJerry Jelinek char Character, 199*cb565728SJerry Jelinek UINT32 Position); 200*cb565728SJerry Jelinek 201*cb565728SJerry Jelinek void 202*cb565728SJerry Jelinek AcpiUtCheckAndRepairAscii ( 203*cb565728SJerry Jelinek UINT8 *Name, 204*cb565728SJerry Jelinek char *RepairedName, 205*cb565728SJerry Jelinek UINT32 Count); 206*cb565728SJerry Jelinek 207*cb565728SJerry Jelinek 208*cb565728SJerry Jelinek /* 209*cb565728SJerry Jelinek * utnonansi - Non-ANSI C library functions 210*cb565728SJerry Jelinek */ 211*cb565728SJerry Jelinek void 212*cb565728SJerry Jelinek AcpiUtStrupr ( 213*cb565728SJerry Jelinek char *SrcString); 214*cb565728SJerry Jelinek 215*cb565728SJerry Jelinek void 216*cb565728SJerry Jelinek AcpiUtStrlwr ( 217*cb565728SJerry Jelinek char *SrcString); 218*cb565728SJerry Jelinek 219*cb565728SJerry Jelinek int 220*cb565728SJerry Jelinek AcpiUtStricmp ( 221*cb565728SJerry Jelinek char *String1, 222*cb565728SJerry Jelinek char *String2); 223*cb565728SJerry Jelinek 224*cb565728SJerry Jelinek ACPI_STATUS 225*cb565728SJerry Jelinek AcpiUtStrtoul64 ( 226*cb565728SJerry Jelinek char *String, 227*cb565728SJerry Jelinek UINT32 Base, 228*cb565728SJerry Jelinek UINT32 MaxIntegerByteWidth, 229*cb565728SJerry Jelinek UINT64 *RetInteger); 230*cb565728SJerry Jelinek 231*cb565728SJerry Jelinek /* Values for MaxIntegerByteWidth above */ 232*cb565728SJerry Jelinek 233*cb565728SJerry Jelinek #define ACPI_MAX32_BYTE_WIDTH 4 234*cb565728SJerry Jelinek #define ACPI_MAX64_BYTE_WIDTH 8 235*cb565728SJerry Jelinek 236*cb565728SJerry Jelinek 237*cb565728SJerry Jelinek /* 2387c478bd9Sstevel@tonic-gate * utglobal - Global data structures and procedures 2397c478bd9Sstevel@tonic-gate */ 240db2bae30SDana Myers ACPI_STATUS 2417c478bd9Sstevel@tonic-gate AcpiUtInitGlobals ( 2427c478bd9Sstevel@tonic-gate void); 2437c478bd9Sstevel@tonic-gate 2447c478bd9Sstevel@tonic-gate #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 2457c478bd9Sstevel@tonic-gate 246*cb565728SJerry Jelinek const char * 2477c478bd9Sstevel@tonic-gate AcpiUtGetMutexName ( 2487c478bd9Sstevel@tonic-gate UINT32 MutexId); 2497c478bd9Sstevel@tonic-gate 250db2bae30SDana Myers const char * 251db2bae30SDana Myers AcpiUtGetNotifyName ( 252*cb565728SJerry Jelinek UINT32 NotifyValue, 253*cb565728SJerry Jelinek ACPI_OBJECT_TYPE Type); 2547c478bd9Sstevel@tonic-gate #endif 2557c478bd9Sstevel@tonic-gate 256*cb565728SJerry Jelinek const char * 2577c478bd9Sstevel@tonic-gate AcpiUtGetTypeName ( 2587c478bd9Sstevel@tonic-gate ACPI_OBJECT_TYPE Type); 2597c478bd9Sstevel@tonic-gate 260*cb565728SJerry Jelinek const char * 2617c478bd9Sstevel@tonic-gate AcpiUtGetNodeName ( 2627c478bd9Sstevel@tonic-gate void *Object); 2637c478bd9Sstevel@tonic-gate 264*cb565728SJerry Jelinek const char * 2657c478bd9Sstevel@tonic-gate AcpiUtGetDescriptorName ( 2667c478bd9Sstevel@tonic-gate void *Object); 2677c478bd9Sstevel@tonic-gate 268db2bae30SDana Myers const char * 269db2bae30SDana Myers AcpiUtGetReferenceName ( 270db2bae30SDana Myers ACPI_OPERAND_OBJECT *Object); 271db2bae30SDana Myers 272*cb565728SJerry Jelinek const char * 2737c478bd9Sstevel@tonic-gate AcpiUtGetObjectTypeName ( 2747c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *ObjDesc); 2757c478bd9Sstevel@tonic-gate 276*cb565728SJerry Jelinek const char * 2777c478bd9Sstevel@tonic-gate AcpiUtGetRegionName ( 2787c478bd9Sstevel@tonic-gate UINT8 SpaceId); 2797c478bd9Sstevel@tonic-gate 280*cb565728SJerry Jelinek const char * 2817c478bd9Sstevel@tonic-gate AcpiUtGetEventName ( 2827c478bd9Sstevel@tonic-gate UINT32 EventId); 2837c478bd9Sstevel@tonic-gate 2847c478bd9Sstevel@tonic-gate char 2857c478bd9Sstevel@tonic-gate AcpiUtHexToAsciiChar ( 28626f3cdf0SGordon Ross UINT64 Integer, 2877c478bd9Sstevel@tonic-gate UINT32 Position); 2887c478bd9Sstevel@tonic-gate 289*cb565728SJerry Jelinek UINT8 290*cb565728SJerry Jelinek AcpiUtAsciiCharToHex ( 291*cb565728SJerry Jelinek int HexChar); 292*cb565728SJerry Jelinek 2937c478bd9Sstevel@tonic-gate BOOLEAN 2947c478bd9Sstevel@tonic-gate AcpiUtValidObjectType ( 2957c478bd9Sstevel@tonic-gate ACPI_OBJECT_TYPE Type); 2967c478bd9Sstevel@tonic-gate 2977c478bd9Sstevel@tonic-gate 2987c478bd9Sstevel@tonic-gate /* 2997c478bd9Sstevel@tonic-gate * utinit - miscellaneous initialization and shutdown 3007c478bd9Sstevel@tonic-gate */ 3017c478bd9Sstevel@tonic-gate ACPI_STATUS 3027c478bd9Sstevel@tonic-gate AcpiUtHardwareInitialize ( 3037c478bd9Sstevel@tonic-gate void); 3047c478bd9Sstevel@tonic-gate 3057c478bd9Sstevel@tonic-gate void 3067c478bd9Sstevel@tonic-gate AcpiUtSubsystemShutdown ( 3077c478bd9Sstevel@tonic-gate void); 3087c478bd9Sstevel@tonic-gate 3097c478bd9Sstevel@tonic-gate 3107c478bd9Sstevel@tonic-gate /* 3117c478bd9Sstevel@tonic-gate * utcopy - Object construction and conversion interfaces 3127c478bd9Sstevel@tonic-gate */ 3137c478bd9Sstevel@tonic-gate ACPI_STATUS 3147c478bd9Sstevel@tonic-gate AcpiUtBuildSimpleObject( 3157c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Obj, 3167c478bd9Sstevel@tonic-gate ACPI_OBJECT *UserObj, 3177c478bd9Sstevel@tonic-gate UINT8 *DataSpace, 3187c478bd9Sstevel@tonic-gate UINT32 *BufferSpaceUsed); 3197c478bd9Sstevel@tonic-gate 3207c478bd9Sstevel@tonic-gate ACPI_STATUS 3217c478bd9Sstevel@tonic-gate AcpiUtBuildPackageObject ( 3227c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Obj, 3237c478bd9Sstevel@tonic-gate UINT8 *Buffer, 3247c478bd9Sstevel@tonic-gate UINT32 *SpaceUsed); 3257c478bd9Sstevel@tonic-gate 3267c478bd9Sstevel@tonic-gate ACPI_STATUS 3277c478bd9Sstevel@tonic-gate AcpiUtCopyIobjectToEobject ( 3287c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Obj, 3297c478bd9Sstevel@tonic-gate ACPI_BUFFER *RetBuffer); 3307c478bd9Sstevel@tonic-gate 3317c478bd9Sstevel@tonic-gate ACPI_STATUS 3327c478bd9Sstevel@tonic-gate AcpiUtCopyEobjectToIobject ( 3337c478bd9Sstevel@tonic-gate ACPI_OBJECT *Obj, 3347c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT **InternalObj); 3357c478bd9Sstevel@tonic-gate 3367c478bd9Sstevel@tonic-gate ACPI_STATUS 3377c478bd9Sstevel@tonic-gate AcpiUtCopyISimpleToIsimple ( 3387c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *SourceObj, 3397c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *DestObj); 3407c478bd9Sstevel@tonic-gate 3417c478bd9Sstevel@tonic-gate ACPI_STATUS 3427c478bd9Sstevel@tonic-gate AcpiUtCopyIobjectToIobject ( 3437c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *SourceDesc, 3447c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT **DestDesc, 3457c478bd9Sstevel@tonic-gate ACPI_WALK_STATE *WalkState); 3467c478bd9Sstevel@tonic-gate 3477c478bd9Sstevel@tonic-gate 3487c478bd9Sstevel@tonic-gate /* 3497c478bd9Sstevel@tonic-gate * utcreate - Object creation 3507c478bd9Sstevel@tonic-gate */ 3517c478bd9Sstevel@tonic-gate ACPI_STATUS 3527c478bd9Sstevel@tonic-gate AcpiUtUpdateObjectReference ( 3537c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object, 3547c478bd9Sstevel@tonic-gate UINT16 Action); 3557c478bd9Sstevel@tonic-gate 3567c478bd9Sstevel@tonic-gate 3577c478bd9Sstevel@tonic-gate /* 3587c478bd9Sstevel@tonic-gate * utdebug - Debug interfaces 3597c478bd9Sstevel@tonic-gate */ 3607c478bd9Sstevel@tonic-gate void 3617c478bd9Sstevel@tonic-gate AcpiUtInitStackPtrTrace ( 3627c478bd9Sstevel@tonic-gate void); 3637c478bd9Sstevel@tonic-gate 3647c478bd9Sstevel@tonic-gate void 3657c478bd9Sstevel@tonic-gate AcpiUtTrackStackPtr ( 3667c478bd9Sstevel@tonic-gate void); 3677c478bd9Sstevel@tonic-gate 3687c478bd9Sstevel@tonic-gate void 3697c478bd9Sstevel@tonic-gate AcpiUtTrace ( 3707c478bd9Sstevel@tonic-gate UINT32 LineNumber, 371186507a7Smyers const char *FunctionName, 372db2bae30SDana Myers const char *ModuleName, 373450d6964Smyers UINT32 ComponentId); 3747c478bd9Sstevel@tonic-gate 3757c478bd9Sstevel@tonic-gate void 3767c478bd9Sstevel@tonic-gate AcpiUtTracePtr ( 3777c478bd9Sstevel@tonic-gate UINT32 LineNumber, 378186507a7Smyers const char *FunctionName, 379db2bae30SDana Myers const char *ModuleName, 380450d6964Smyers UINT32 ComponentId, 381*cb565728SJerry Jelinek const void *Pointer); 3827c478bd9Sstevel@tonic-gate 3837c478bd9Sstevel@tonic-gate void 3847c478bd9Sstevel@tonic-gate AcpiUtTraceU32 ( 3857c478bd9Sstevel@tonic-gate UINT32 LineNumber, 386186507a7Smyers const char *FunctionName, 387db2bae30SDana Myers const char *ModuleName, 388450d6964Smyers UINT32 ComponentId, 3897c478bd9Sstevel@tonic-gate UINT32 Integer); 3907c478bd9Sstevel@tonic-gate 3917c478bd9Sstevel@tonic-gate void 3927c478bd9Sstevel@tonic-gate AcpiUtTraceStr ( 3937c478bd9Sstevel@tonic-gate UINT32 LineNumber, 394186507a7Smyers const char *FunctionName, 395db2bae30SDana Myers const char *ModuleName, 396450d6964Smyers UINT32 ComponentId, 397*cb565728SJerry Jelinek const char *String); 3987c478bd9Sstevel@tonic-gate 3997c478bd9Sstevel@tonic-gate void 4007c478bd9Sstevel@tonic-gate AcpiUtExit ( 4017c478bd9Sstevel@tonic-gate UINT32 LineNumber, 402186507a7Smyers const char *FunctionName, 403db2bae30SDana Myers const char *ModuleName, 404450d6964Smyers UINT32 ComponentId); 4057c478bd9Sstevel@tonic-gate 4067c478bd9Sstevel@tonic-gate void 4077c478bd9Sstevel@tonic-gate AcpiUtStatusExit ( 4087c478bd9Sstevel@tonic-gate UINT32 LineNumber, 409186507a7Smyers const char *FunctionName, 410db2bae30SDana Myers const char *ModuleName, 411450d6964Smyers UINT32 ComponentId, 4127c478bd9Sstevel@tonic-gate ACPI_STATUS Status); 4137c478bd9Sstevel@tonic-gate 4147c478bd9Sstevel@tonic-gate void 4157c478bd9Sstevel@tonic-gate AcpiUtValueExit ( 4167c478bd9Sstevel@tonic-gate UINT32 LineNumber, 417186507a7Smyers const char *FunctionName, 418db2bae30SDana Myers const char *ModuleName, 419450d6964Smyers UINT32 ComponentId, 42026f3cdf0SGordon Ross UINT64 Value); 4217c478bd9Sstevel@tonic-gate 4227c478bd9Sstevel@tonic-gate void 4237c478bd9Sstevel@tonic-gate AcpiUtPtrExit ( 4247c478bd9Sstevel@tonic-gate UINT32 LineNumber, 425186507a7Smyers const char *FunctionName, 426db2bae30SDana Myers const char *ModuleName, 427450d6964Smyers UINT32 ComponentId, 4287c478bd9Sstevel@tonic-gate UINT8 *Ptr); 4297c478bd9Sstevel@tonic-gate 4307c478bd9Sstevel@tonic-gate void 431*cb565728SJerry Jelinek AcpiUtStrExit ( 432*cb565728SJerry Jelinek UINT32 LineNumber, 433*cb565728SJerry Jelinek const char *FunctionName, 434*cb565728SJerry Jelinek const char *ModuleName, 435*cb565728SJerry Jelinek UINT32 ComponentId, 436*cb565728SJerry Jelinek const char *String); 437*cb565728SJerry Jelinek 438*cb565728SJerry Jelinek void 439*cb565728SJerry Jelinek AcpiUtDebugDumpBuffer ( 440*cb565728SJerry Jelinek UINT8 *Buffer, 441*cb565728SJerry Jelinek UINT32 Count, 442*cb565728SJerry Jelinek UINT32 Display, 443*cb565728SJerry Jelinek UINT32 ComponentId); 444*cb565728SJerry Jelinek 445*cb565728SJerry Jelinek void 4467c478bd9Sstevel@tonic-gate AcpiUtDumpBuffer ( 4477c478bd9Sstevel@tonic-gate UINT8 *Buffer, 4487c478bd9Sstevel@tonic-gate UINT32 Count, 4497c478bd9Sstevel@tonic-gate UINT32 Display, 450*cb565728SJerry Jelinek UINT32 Offset); 4517c478bd9Sstevel@tonic-gate 452*cb565728SJerry Jelinek #ifdef ACPI_APPLICATION 45330082d0cSmyers void 454*cb565728SJerry Jelinek AcpiUtDumpBufferToFile ( 455*cb565728SJerry Jelinek ACPI_FILE File, 45627f7c583Smyers UINT8 *Buffer, 45727f7c583Smyers UINT32 Count, 458*cb565728SJerry Jelinek UINT32 Display, 459*cb565728SJerry Jelinek UINT32 BaseOffset); 460*cb565728SJerry Jelinek #endif 46127f7c583Smyers 46227f7c583Smyers void 46330082d0cSmyers AcpiUtReportError ( 46430082d0cSmyers char *ModuleName, 46530082d0cSmyers UINT32 LineNumber); 46630082d0cSmyers 46730082d0cSmyers void 46830082d0cSmyers AcpiUtReportInfo ( 46930082d0cSmyers char *ModuleName, 47030082d0cSmyers UINT32 LineNumber); 47130082d0cSmyers 47230082d0cSmyers void 47330082d0cSmyers AcpiUtReportWarning ( 47430082d0cSmyers char *ModuleName, 47530082d0cSmyers UINT32 LineNumber); 47630082d0cSmyers 477*cb565728SJerry Jelinek 4787c478bd9Sstevel@tonic-gate /* 4797c478bd9Sstevel@tonic-gate * utdelete - Object deletion and reference counts 4807c478bd9Sstevel@tonic-gate */ 4817c478bd9Sstevel@tonic-gate void 4827c478bd9Sstevel@tonic-gate AcpiUtAddReference ( 4837c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object); 4847c478bd9Sstevel@tonic-gate 4857c478bd9Sstevel@tonic-gate void 4867c478bd9Sstevel@tonic-gate AcpiUtRemoveReference ( 4877c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object); 4887c478bd9Sstevel@tonic-gate 4897c478bd9Sstevel@tonic-gate void 4907c478bd9Sstevel@tonic-gate AcpiUtDeleteInternalPackageObject ( 4917c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object); 4927c478bd9Sstevel@tonic-gate 4937c478bd9Sstevel@tonic-gate void 4947c478bd9Sstevel@tonic-gate AcpiUtDeleteInternalSimpleObject ( 4957c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object); 4967c478bd9Sstevel@tonic-gate 4977c478bd9Sstevel@tonic-gate void 4987c478bd9Sstevel@tonic-gate AcpiUtDeleteInternalObjectList ( 4997c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT **ObjList); 5007c478bd9Sstevel@tonic-gate 5017c478bd9Sstevel@tonic-gate 5027c478bd9Sstevel@tonic-gate /* 5037c478bd9Sstevel@tonic-gate * uteval - object evaluation 5047c478bd9Sstevel@tonic-gate */ 5057c478bd9Sstevel@tonic-gate ACPI_STATUS 5067c478bd9Sstevel@tonic-gate AcpiUtEvaluateObject ( 5077c478bd9Sstevel@tonic-gate ACPI_NAMESPACE_NODE *PrefixNode, 508*cb565728SJerry Jelinek const char *Path, 5097c478bd9Sstevel@tonic-gate UINT32 ExpectedReturnBtypes, 5107c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT **ReturnDesc); 5117c478bd9Sstevel@tonic-gate 5127c478bd9Sstevel@tonic-gate ACPI_STATUS 5137c478bd9Sstevel@tonic-gate AcpiUtEvaluateNumericObject ( 514*cb565728SJerry Jelinek const char *ObjectName, 5157c478bd9Sstevel@tonic-gate ACPI_NAMESPACE_NODE *DeviceNode, 51626f3cdf0SGordon Ross UINT64 *Value); 5177c478bd9Sstevel@tonic-gate 5187c478bd9Sstevel@tonic-gate ACPI_STATUS 5197c478bd9Sstevel@tonic-gate AcpiUtExecute_STA ( 5207c478bd9Sstevel@tonic-gate ACPI_NAMESPACE_NODE *DeviceNode, 5217c478bd9Sstevel@tonic-gate UINT32 *StatusFlags); 5227c478bd9Sstevel@tonic-gate 5237c478bd9Sstevel@tonic-gate ACPI_STATUS 52457190917SDana Myers AcpiUtExecutePowerMethods ( 5257c478bd9Sstevel@tonic-gate ACPI_NAMESPACE_NODE *DeviceNode, 52657190917SDana Myers const char **MethodNames, 52757190917SDana Myers UINT8 MethodCount, 52857190917SDana Myers UINT8 *OutValues); 52957190917SDana Myers 53057190917SDana Myers 53157190917SDana Myers /* 53257190917SDana Myers * utids - device ID support 53357190917SDana Myers */ 53457190917SDana Myers ACPI_STATUS 53557190917SDana Myers AcpiUtExecute_HID ( 53657190917SDana Myers ACPI_NAMESPACE_NODE *DeviceNode, 537*cb565728SJerry Jelinek ACPI_PNP_DEVICE_ID **ReturnId); 5387c478bd9Sstevel@tonic-gate 5397c478bd9Sstevel@tonic-gate ACPI_STATUS 54057190917SDana Myers AcpiUtExecute_UID ( 5417c478bd9Sstevel@tonic-gate ACPI_NAMESPACE_NODE *DeviceNode, 542*cb565728SJerry Jelinek ACPI_PNP_DEVICE_ID **ReturnId); 54357190917SDana Myers 54457190917SDana Myers ACPI_STATUS 54557190917SDana Myers AcpiUtExecute_CID ( 54657190917SDana Myers ACPI_NAMESPACE_NODE *DeviceNode, 547*cb565728SJerry Jelinek ACPI_PNP_DEVICE_ID_LIST **ReturnCidList); 548*cb565728SJerry Jelinek 549*cb565728SJerry Jelinek ACPI_STATUS 550*cb565728SJerry Jelinek AcpiUtExecute_CLS ( 551*cb565728SJerry Jelinek ACPI_NAMESPACE_NODE *DeviceNode, 552*cb565728SJerry Jelinek ACPI_PNP_DEVICE_ID **ReturnId); 55357190917SDana Myers 5547c478bd9Sstevel@tonic-gate 555aa2aa9a6SDana Myers /* 556aa2aa9a6SDana Myers * utlock - reader/writer locks 557aa2aa9a6SDana Myers */ 558aa2aa9a6SDana Myers ACPI_STATUS 559aa2aa9a6SDana Myers AcpiUtCreateRwLock ( 560aa2aa9a6SDana Myers ACPI_RW_LOCK *Lock); 561aa2aa9a6SDana Myers 562aa2aa9a6SDana Myers void 563aa2aa9a6SDana Myers AcpiUtDeleteRwLock ( 564aa2aa9a6SDana Myers ACPI_RW_LOCK *Lock); 565aa2aa9a6SDana Myers 566aa2aa9a6SDana Myers ACPI_STATUS 567aa2aa9a6SDana Myers AcpiUtAcquireReadLock ( 568aa2aa9a6SDana Myers ACPI_RW_LOCK *Lock); 569aa2aa9a6SDana Myers 570aa2aa9a6SDana Myers ACPI_STATUS 571aa2aa9a6SDana Myers AcpiUtReleaseReadLock ( 572aa2aa9a6SDana Myers ACPI_RW_LOCK *Lock); 573aa2aa9a6SDana Myers 574aa2aa9a6SDana Myers ACPI_STATUS 575aa2aa9a6SDana Myers AcpiUtAcquireWriteLock ( 576aa2aa9a6SDana Myers ACPI_RW_LOCK *Lock); 577aa2aa9a6SDana Myers 578aa2aa9a6SDana Myers void 579aa2aa9a6SDana Myers AcpiUtReleaseWriteLock ( 580aa2aa9a6SDana Myers ACPI_RW_LOCK *Lock); 581aa2aa9a6SDana Myers 5827c478bd9Sstevel@tonic-gate 5837c478bd9Sstevel@tonic-gate /* 5847c478bd9Sstevel@tonic-gate * utobject - internal object create/delete/cache routines 5857c478bd9Sstevel@tonic-gate */ 5867c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT * 5877c478bd9Sstevel@tonic-gate AcpiUtCreateInternalObjectDbg ( 588db2bae30SDana Myers const char *ModuleName, 5897c478bd9Sstevel@tonic-gate UINT32 LineNumber, 5907c478bd9Sstevel@tonic-gate UINT32 ComponentId, 5917c478bd9Sstevel@tonic-gate ACPI_OBJECT_TYPE Type); 5927c478bd9Sstevel@tonic-gate 5937c478bd9Sstevel@tonic-gate void * 5947c478bd9Sstevel@tonic-gate AcpiUtAllocateObjectDescDbg ( 595db2bae30SDana Myers const char *ModuleName, 5967c478bd9Sstevel@tonic-gate UINT32 LineNumber, 5977c478bd9Sstevel@tonic-gate UINT32 ComponentId); 5987c478bd9Sstevel@tonic-gate 599450d6964Smyers #define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t) 600450d6964Smyers #define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT) 6017c478bd9Sstevel@tonic-gate 6027c478bd9Sstevel@tonic-gate void 6037c478bd9Sstevel@tonic-gate AcpiUtDeleteObjectDesc ( 6047c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object); 6057c478bd9Sstevel@tonic-gate 6067c478bd9Sstevel@tonic-gate BOOLEAN 6077c478bd9Sstevel@tonic-gate AcpiUtValidInternalObject ( 6087c478bd9Sstevel@tonic-gate void *Object); 6097c478bd9Sstevel@tonic-gate 6107c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT * 611db2bae30SDana Myers AcpiUtCreatePackageObject ( 612db2bae30SDana Myers UINT32 Count); 613db2bae30SDana Myers 614db2bae30SDana Myers ACPI_OPERAND_OBJECT * 61557190917SDana Myers AcpiUtCreateIntegerObject ( 61657190917SDana Myers UINT64 Value); 61757190917SDana Myers 61857190917SDana Myers ACPI_OPERAND_OBJECT * 6197c478bd9Sstevel@tonic-gate AcpiUtCreateBufferObject ( 6207c478bd9Sstevel@tonic-gate ACPI_SIZE BufferSize); 6217c478bd9Sstevel@tonic-gate 6227c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT * 6237c478bd9Sstevel@tonic-gate AcpiUtCreateStringObject ( 6247c478bd9Sstevel@tonic-gate ACPI_SIZE StringSize); 6257c478bd9Sstevel@tonic-gate 6267c478bd9Sstevel@tonic-gate ACPI_STATUS 6277c478bd9Sstevel@tonic-gate AcpiUtGetObjectSize( 6287c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Obj, 6297c478bd9Sstevel@tonic-gate ACPI_SIZE *ObjLength); 6307c478bd9Sstevel@tonic-gate 6317c478bd9Sstevel@tonic-gate 6327c478bd9Sstevel@tonic-gate /* 63326f3cdf0SGordon Ross * utosi - Support for the _OSI predefined control method 63426f3cdf0SGordon Ross */ 63526f3cdf0SGordon Ross ACPI_STATUS 63626f3cdf0SGordon Ross AcpiUtInitializeInterfaces ( 63726f3cdf0SGordon Ross void); 63826f3cdf0SGordon Ross 639*cb565728SJerry Jelinek ACPI_STATUS 64026f3cdf0SGordon Ross AcpiUtInterfaceTerminate ( 64126f3cdf0SGordon Ross void); 64226f3cdf0SGordon Ross 64326f3cdf0SGordon Ross ACPI_STATUS 64426f3cdf0SGordon Ross AcpiUtInstallInterface ( 64526f3cdf0SGordon Ross ACPI_STRING InterfaceName); 64626f3cdf0SGordon Ross 64726f3cdf0SGordon Ross ACPI_STATUS 64826f3cdf0SGordon Ross AcpiUtRemoveInterface ( 64926f3cdf0SGordon Ross ACPI_STRING InterfaceName); 65026f3cdf0SGordon Ross 651*cb565728SJerry Jelinek ACPI_STATUS 652*cb565728SJerry Jelinek AcpiUtUpdateInterfaces ( 653*cb565728SJerry Jelinek UINT8 Action); 654*cb565728SJerry Jelinek 65526f3cdf0SGordon Ross ACPI_INTERFACE_INFO * 65626f3cdf0SGordon Ross AcpiUtGetInterface ( 65726f3cdf0SGordon Ross ACPI_STRING InterfaceName); 65826f3cdf0SGordon Ross 65926f3cdf0SGordon Ross ACPI_STATUS 66026f3cdf0SGordon Ross AcpiUtOsiImplementation ( 66126f3cdf0SGordon Ross ACPI_WALK_STATE *WalkState); 66226f3cdf0SGordon Ross 66326f3cdf0SGordon Ross 66426f3cdf0SGordon Ross /* 665*cb565728SJerry Jelinek * utpredef - support for predefined names 666*cb565728SJerry Jelinek */ 667*cb565728SJerry Jelinek const ACPI_PREDEFINED_INFO * 668*cb565728SJerry Jelinek AcpiUtGetNextPredefinedMethod ( 669*cb565728SJerry Jelinek const ACPI_PREDEFINED_INFO *ThisName); 670*cb565728SJerry Jelinek 671*cb565728SJerry Jelinek const ACPI_PREDEFINED_INFO * 672*cb565728SJerry Jelinek AcpiUtMatchPredefinedMethod ( 673*cb565728SJerry Jelinek char *Name); 674*cb565728SJerry Jelinek 675*cb565728SJerry Jelinek void 676*cb565728SJerry Jelinek AcpiUtGetExpectedReturnTypes ( 677*cb565728SJerry Jelinek char *Buffer, 678*cb565728SJerry Jelinek UINT32 ExpectedBtypes); 679*cb565728SJerry Jelinek 680*cb565728SJerry Jelinek #if (defined ACPI_ASL_COMPILER || defined ACPI_HELP_APP) 681*cb565728SJerry Jelinek const ACPI_PREDEFINED_INFO * 682*cb565728SJerry Jelinek AcpiUtMatchResourceName ( 683*cb565728SJerry Jelinek char *Name); 684*cb565728SJerry Jelinek 685*cb565728SJerry Jelinek void 686*cb565728SJerry Jelinek AcpiUtDisplayPredefinedMethod ( 687*cb565728SJerry Jelinek char *Buffer, 688*cb565728SJerry Jelinek const ACPI_PREDEFINED_INFO *ThisName, 689*cb565728SJerry Jelinek BOOLEAN MultiLine); 690*cb565728SJerry Jelinek 691*cb565728SJerry Jelinek UINT32 692*cb565728SJerry Jelinek AcpiUtGetResourceBitWidth ( 693*cb565728SJerry Jelinek char *Buffer, 694*cb565728SJerry Jelinek UINT16 Types); 695*cb565728SJerry Jelinek #endif 696*cb565728SJerry Jelinek 697*cb565728SJerry Jelinek 698*cb565728SJerry Jelinek /* 6997c478bd9Sstevel@tonic-gate * utstate - Generic state creation/cache routines 7007c478bd9Sstevel@tonic-gate */ 7017c478bd9Sstevel@tonic-gate void 7027c478bd9Sstevel@tonic-gate AcpiUtPushGenericState ( 7037c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE **ListHead, 7047c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE *State); 7057c478bd9Sstevel@tonic-gate 7067c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE * 7077c478bd9Sstevel@tonic-gate AcpiUtPopGenericState ( 7087c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE **ListHead); 7097c478bd9Sstevel@tonic-gate 7107c478bd9Sstevel@tonic-gate 7117c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE * 7127c478bd9Sstevel@tonic-gate AcpiUtCreateGenericState ( 7137c478bd9Sstevel@tonic-gate void); 7147c478bd9Sstevel@tonic-gate 7157c478bd9Sstevel@tonic-gate ACPI_THREAD_STATE * 7167c478bd9Sstevel@tonic-gate AcpiUtCreateThreadState ( 7177c478bd9Sstevel@tonic-gate void); 7187c478bd9Sstevel@tonic-gate 7197c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE * 7207c478bd9Sstevel@tonic-gate AcpiUtCreateUpdateState ( 7217c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object, 7227c478bd9Sstevel@tonic-gate UINT16 Action); 7237c478bd9Sstevel@tonic-gate 7247c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE * 7257c478bd9Sstevel@tonic-gate AcpiUtCreatePkgState ( 7267c478bd9Sstevel@tonic-gate void *InternalObject, 7277c478bd9Sstevel@tonic-gate void *ExternalObject, 7287c478bd9Sstevel@tonic-gate UINT16 Index); 7297c478bd9Sstevel@tonic-gate 7307c478bd9Sstevel@tonic-gate ACPI_STATUS 7317c478bd9Sstevel@tonic-gate AcpiUtCreateUpdateStateAndPush ( 7327c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object, 7337c478bd9Sstevel@tonic-gate UINT16 Action, 7347c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE **StateList); 7357c478bd9Sstevel@tonic-gate 7367c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE * 7377c478bd9Sstevel@tonic-gate AcpiUtCreateControlState ( 7387c478bd9Sstevel@tonic-gate void); 7397c478bd9Sstevel@tonic-gate 7407c478bd9Sstevel@tonic-gate void 7417c478bd9Sstevel@tonic-gate AcpiUtDeleteGenericState ( 7427c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE *State); 7437c478bd9Sstevel@tonic-gate 7447c478bd9Sstevel@tonic-gate 7457c478bd9Sstevel@tonic-gate /* 7467c478bd9Sstevel@tonic-gate * utmath 7477c478bd9Sstevel@tonic-gate */ 7487c478bd9Sstevel@tonic-gate ACPI_STATUS 7497c478bd9Sstevel@tonic-gate AcpiUtDivide ( 75026f3cdf0SGordon Ross UINT64 InDividend, 75126f3cdf0SGordon Ross UINT64 InDivisor, 75226f3cdf0SGordon Ross UINT64 *OutQuotient, 75326f3cdf0SGordon Ross UINT64 *OutRemainder); 7547c478bd9Sstevel@tonic-gate 7557c478bd9Sstevel@tonic-gate ACPI_STATUS 7567c478bd9Sstevel@tonic-gate AcpiUtShortDivide ( 75726f3cdf0SGordon Ross UINT64 InDividend, 7587c478bd9Sstevel@tonic-gate UINT32 Divisor, 75926f3cdf0SGordon Ross UINT64 *OutQuotient, 7607c478bd9Sstevel@tonic-gate UINT32 *OutRemainder); 7617c478bd9Sstevel@tonic-gate 762*cb565728SJerry Jelinek 7637c478bd9Sstevel@tonic-gate /* 7647c478bd9Sstevel@tonic-gate * utmisc 7657c478bd9Sstevel@tonic-gate */ 766*cb565728SJerry Jelinek const ACPI_EXCEPTION_INFO * 767db2bae30SDana Myers AcpiUtValidateException ( 768db2bae30SDana Myers ACPI_STATUS Status); 769db2bae30SDana Myers 77027f7c583Smyers BOOLEAN 77157190917SDana Myers AcpiUtIsPciRootBridge ( 77257190917SDana Myers char *Id); 77357190917SDana Myers 774*cb565728SJerry Jelinek #if (defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP || defined ACPI_NAMES_APP) 77557190917SDana Myers BOOLEAN 77627f7c583Smyers AcpiUtIsAmlTable ( 77727f7c583Smyers ACPI_TABLE_HEADER *Table); 778*cb565728SJerry Jelinek #endif 779450d6964Smyers 780450d6964Smyers ACPI_STATUS 7817c478bd9Sstevel@tonic-gate AcpiUtWalkPackageTree ( 7827c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *SourceObject, 7837c478bd9Sstevel@tonic-gate void *TargetObject, 7847c478bd9Sstevel@tonic-gate ACPI_PKG_CALLBACK WalkCallback, 7857c478bd9Sstevel@tonic-gate void *Context); 7867c478bd9Sstevel@tonic-gate 7877c478bd9Sstevel@tonic-gate /* Values for Base above (16=Hex, 10=Decimal) */ 7887c478bd9Sstevel@tonic-gate 7897c478bd9Sstevel@tonic-gate #define ACPI_ANY_BASE 0 7907c478bd9Sstevel@tonic-gate 791*cb565728SJerry Jelinek 79227f7c583Smyers UINT32 79327f7c583Smyers AcpiUtDwordByteSwap ( 79427f7c583Smyers UINT32 Value); 79527f7c583Smyers 79627f7c583Smyers void 79727f7c583Smyers AcpiUtSetIntegerWidth ( 79827f7c583Smyers UINT8 Revision); 79927f7c583Smyers 80027f7c583Smyers #ifdef ACPI_DEBUG_OUTPUT 80127f7c583Smyers void 80227f7c583Smyers AcpiUtDisplayInitPathname ( 80327f7c583Smyers UINT8 Type, 80427f7c583Smyers ACPI_NAMESPACE_NODE *ObjHandle, 805*cb565728SJerry Jelinek const char *Path); 80627f7c583Smyers #endif 80727f7c583Smyers 80827f7c583Smyers 80927f7c583Smyers /* 810*cb565728SJerry Jelinek * utownerid - Support for Table/Method Owner IDs 811*cb565728SJerry Jelinek */ 812*cb565728SJerry Jelinek ACPI_STATUS 813*cb565728SJerry Jelinek AcpiUtAllocateOwnerId ( 814*cb565728SJerry Jelinek ACPI_OWNER_ID *OwnerId); 815*cb565728SJerry Jelinek 816*cb565728SJerry Jelinek void 817*cb565728SJerry Jelinek AcpiUtReleaseOwnerId ( 818*cb565728SJerry Jelinek ACPI_OWNER_ID *OwnerId); 819*cb565728SJerry Jelinek 820*cb565728SJerry Jelinek 821*cb565728SJerry Jelinek /* 82227f7c583Smyers * utresrc 82327f7c583Smyers */ 82427f7c583Smyers ACPI_STATUS 82527f7c583Smyers AcpiUtWalkAmlResources ( 826*cb565728SJerry Jelinek ACPI_WALK_STATE *WalkState, 82727f7c583Smyers UINT8 *Aml, 82827f7c583Smyers ACPI_SIZE AmlLength, 82927f7c583Smyers ACPI_WALK_AML_CALLBACK UserFunction, 830*cb565728SJerry Jelinek void **Context); 83127f7c583Smyers 83230082d0cSmyers ACPI_STATUS 83330082d0cSmyers AcpiUtValidateResource ( 834*cb565728SJerry Jelinek ACPI_WALK_STATE *WalkState, 83530082d0cSmyers void *Aml, 83630082d0cSmyers UINT8 *ReturnIndex); 83730082d0cSmyers 83830082d0cSmyers UINT32 83930082d0cSmyers AcpiUtGetDescriptorLength ( 84030082d0cSmyers void *Aml); 84130082d0cSmyers 84230082d0cSmyers UINT16 84330082d0cSmyers AcpiUtGetResourceLength ( 84430082d0cSmyers void *Aml); 8457c478bd9Sstevel@tonic-gate 8467c478bd9Sstevel@tonic-gate UINT8 84730082d0cSmyers AcpiUtGetResourceHeaderLength ( 84830082d0cSmyers void *Aml); 84930082d0cSmyers 85030082d0cSmyers UINT8 85130082d0cSmyers AcpiUtGetResourceType ( 85230082d0cSmyers void *Aml); 85330082d0cSmyers 85430082d0cSmyers ACPI_STATUS 85530082d0cSmyers AcpiUtGetResourceEndTag ( 85630082d0cSmyers ACPI_OPERAND_OBJECT *ObjDesc, 85730082d0cSmyers UINT8 **EndTag); 8587c478bd9Sstevel@tonic-gate 8597c478bd9Sstevel@tonic-gate 8607c478bd9Sstevel@tonic-gate /* 861*cb565728SJerry Jelinek * utstring - String and character utilities 862*cb565728SJerry Jelinek */ 863*cb565728SJerry Jelinek void 864*cb565728SJerry Jelinek AcpiUtPrintString ( 865*cb565728SJerry Jelinek char *String, 866*cb565728SJerry Jelinek UINT16 MaxLength); 867*cb565728SJerry Jelinek 868*cb565728SJerry Jelinek #if defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP 869*cb565728SJerry Jelinek void 870*cb565728SJerry Jelinek UtConvertBackslashes ( 871*cb565728SJerry Jelinek char *Pathname); 872*cb565728SJerry Jelinek #endif 873*cb565728SJerry Jelinek 874*cb565728SJerry Jelinek void 875*cb565728SJerry Jelinek AcpiUtRepairName ( 876*cb565728SJerry Jelinek char *Name); 877*cb565728SJerry Jelinek 878*cb565728SJerry Jelinek #if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION) 879*cb565728SJerry Jelinek BOOLEAN 880*cb565728SJerry Jelinek AcpiUtSafeStrcpy ( 881*cb565728SJerry Jelinek char *Dest, 882*cb565728SJerry Jelinek ACPI_SIZE DestSize, 883*cb565728SJerry Jelinek char *Source); 884*cb565728SJerry Jelinek 885*cb565728SJerry Jelinek BOOLEAN 886*cb565728SJerry Jelinek AcpiUtSafeStrcat ( 887*cb565728SJerry Jelinek char *Dest, 888*cb565728SJerry Jelinek ACPI_SIZE DestSize, 889*cb565728SJerry Jelinek char *Source); 890*cb565728SJerry Jelinek 891*cb565728SJerry Jelinek BOOLEAN 892*cb565728SJerry Jelinek AcpiUtSafeStrncat ( 893*cb565728SJerry Jelinek char *Dest, 894*cb565728SJerry Jelinek ACPI_SIZE DestSize, 895*cb565728SJerry Jelinek char *Source, 896*cb565728SJerry Jelinek ACPI_SIZE MaxTransferLength); 897*cb565728SJerry Jelinek #endif 898*cb565728SJerry Jelinek 899*cb565728SJerry Jelinek 900*cb565728SJerry Jelinek /* 901450d6964Smyers * utmutex - mutex support 902450d6964Smyers */ 903450d6964Smyers ACPI_STATUS 904450d6964Smyers AcpiUtMutexInitialize ( 905450d6964Smyers void); 906450d6964Smyers 907450d6964Smyers void 908450d6964Smyers AcpiUtMutexTerminate ( 909450d6964Smyers void); 910450d6964Smyers 911450d6964Smyers ACPI_STATUS 912450d6964Smyers AcpiUtAcquireMutex ( 913450d6964Smyers ACPI_MUTEX_HANDLE MutexId); 914450d6964Smyers 915450d6964Smyers ACPI_STATUS 916450d6964Smyers AcpiUtReleaseMutex ( 917450d6964Smyers ACPI_MUTEX_HANDLE MutexId); 918450d6964Smyers 919450d6964Smyers 920450d6964Smyers /* 9217c478bd9Sstevel@tonic-gate * utalloc - memory allocation and object caching 9227c478bd9Sstevel@tonic-gate */ 923450d6964Smyers ACPI_STATUS 924450d6964Smyers AcpiUtCreateCaches ( 925450d6964Smyers void); 9267c478bd9Sstevel@tonic-gate 927450d6964Smyers ACPI_STATUS 928450d6964Smyers AcpiUtDeleteCaches ( 929450d6964Smyers void); 9307c478bd9Sstevel@tonic-gate 9317c478bd9Sstevel@tonic-gate ACPI_STATUS 9327c478bd9Sstevel@tonic-gate AcpiUtValidateBuffer ( 9337c478bd9Sstevel@tonic-gate ACPI_BUFFER *Buffer); 9347c478bd9Sstevel@tonic-gate 9357c478bd9Sstevel@tonic-gate ACPI_STATUS 9367c478bd9Sstevel@tonic-gate AcpiUtInitializeBuffer ( 9377c478bd9Sstevel@tonic-gate ACPI_BUFFER *Buffer, 9387c478bd9Sstevel@tonic-gate ACPI_SIZE RequiredLength); 9397c478bd9Sstevel@tonic-gate 9407c478bd9Sstevel@tonic-gate #ifdef ACPI_DBG_TRACK_ALLOCATIONS 9417c478bd9Sstevel@tonic-gate void * 9427c478bd9Sstevel@tonic-gate AcpiUtAllocateAndTrack ( 9437c478bd9Sstevel@tonic-gate ACPI_SIZE Size, 9447c478bd9Sstevel@tonic-gate UINT32 Component, 945db2bae30SDana Myers const char *Module, 9467c478bd9Sstevel@tonic-gate UINT32 Line); 9477c478bd9Sstevel@tonic-gate 9487c478bd9Sstevel@tonic-gate void * 94927f7c583Smyers AcpiUtAllocateZeroedAndTrack ( 9507c478bd9Sstevel@tonic-gate ACPI_SIZE Size, 9517c478bd9Sstevel@tonic-gate UINT32 Component, 952db2bae30SDana Myers const char *Module, 9537c478bd9Sstevel@tonic-gate UINT32 Line); 9547c478bd9Sstevel@tonic-gate 9557c478bd9Sstevel@tonic-gate void 9567c478bd9Sstevel@tonic-gate AcpiUtFreeAndTrack ( 9577c478bd9Sstevel@tonic-gate void *Address, 9587c478bd9Sstevel@tonic-gate UINT32 Component, 959db2bae30SDana Myers const char *Module, 9607c478bd9Sstevel@tonic-gate UINT32 Line); 9617c478bd9Sstevel@tonic-gate 9627c478bd9Sstevel@tonic-gate void 9637c478bd9Sstevel@tonic-gate AcpiUtDumpAllocationInfo ( 9647c478bd9Sstevel@tonic-gate void); 9657c478bd9Sstevel@tonic-gate 9667c478bd9Sstevel@tonic-gate void 9677c478bd9Sstevel@tonic-gate AcpiUtDumpAllocations ( 9687c478bd9Sstevel@tonic-gate UINT32 Component, 969db2bae30SDana Myers const char *Module); 97027f7c583Smyers 97127f7c583Smyers ACPI_STATUS 97227f7c583Smyers AcpiUtCreateList ( 973*cb565728SJerry Jelinek const char *ListName, 97427f7c583Smyers UINT16 ObjectSize, 97527f7c583Smyers ACPI_MEMORY_LIST **ReturnCache); 97627f7c583Smyers 97726f3cdf0SGordon Ross #endif /* ACPI_DBG_TRACK_ALLOCATIONS */ 97827f7c583Smyers 97926f3cdf0SGordon Ross 98026f3cdf0SGordon Ross /* 981*cb565728SJerry Jelinek * utaddress - address range check 982*cb565728SJerry Jelinek */ 983*cb565728SJerry Jelinek ACPI_STATUS 984*cb565728SJerry Jelinek AcpiUtAddAddressRange ( 985*cb565728SJerry Jelinek ACPI_ADR_SPACE_TYPE SpaceId, 986*cb565728SJerry Jelinek ACPI_PHYSICAL_ADDRESS Address, 987*cb565728SJerry Jelinek UINT32 Length, 988*cb565728SJerry Jelinek ACPI_NAMESPACE_NODE *RegionNode); 989*cb565728SJerry Jelinek 990*cb565728SJerry Jelinek void 991*cb565728SJerry Jelinek AcpiUtRemoveAddressRange ( 992*cb565728SJerry Jelinek ACPI_ADR_SPACE_TYPE SpaceId, 993*cb565728SJerry Jelinek ACPI_NAMESPACE_NODE *RegionNode); 994*cb565728SJerry Jelinek 995*cb565728SJerry Jelinek UINT32 996*cb565728SJerry Jelinek AcpiUtCheckAddressRange ( 997*cb565728SJerry Jelinek ACPI_ADR_SPACE_TYPE SpaceId, 998*cb565728SJerry Jelinek ACPI_PHYSICAL_ADDRESS Address, 999*cb565728SJerry Jelinek UINT32 Length, 1000*cb565728SJerry Jelinek BOOLEAN Warn); 1001*cb565728SJerry Jelinek 1002*cb565728SJerry Jelinek void 1003*cb565728SJerry Jelinek AcpiUtDeleteAddressLists ( 1004*cb565728SJerry Jelinek void); 1005*cb565728SJerry Jelinek 1006*cb565728SJerry Jelinek 1007*cb565728SJerry Jelinek /* 100826f3cdf0SGordon Ross * utxferror - various error/warning output functions 100926f3cdf0SGordon Ross */ 101026f3cdf0SGordon Ross void ACPI_INTERNAL_VAR_XFACE 101126f3cdf0SGordon Ross AcpiUtPredefinedWarning ( 101226f3cdf0SGordon Ross const char *ModuleName, 101326f3cdf0SGordon Ross UINT32 LineNumber, 101426f3cdf0SGordon Ross char *Pathname, 101526f3cdf0SGordon Ross UINT8 NodeFlags, 101626f3cdf0SGordon Ross const char *Format, 101726f3cdf0SGordon Ross ...); 101826f3cdf0SGordon Ross 101926f3cdf0SGordon Ross void ACPI_INTERNAL_VAR_XFACE 102026f3cdf0SGordon Ross AcpiUtPredefinedInfo ( 102126f3cdf0SGordon Ross const char *ModuleName, 102226f3cdf0SGordon Ross UINT32 LineNumber, 102326f3cdf0SGordon Ross char *Pathname, 102426f3cdf0SGordon Ross UINT8 NodeFlags, 102526f3cdf0SGordon Ross const char *Format, 102626f3cdf0SGordon Ross ...); 102726f3cdf0SGordon Ross 1028*cb565728SJerry Jelinek void ACPI_INTERNAL_VAR_XFACE 1029*cb565728SJerry Jelinek AcpiUtPredefinedBiosError ( 1030*cb565728SJerry Jelinek const char *ModuleName, 1031*cb565728SJerry Jelinek UINT32 LineNumber, 1032*cb565728SJerry Jelinek char *Pathname, 1033*cb565728SJerry Jelinek UINT8 NodeFlags, 1034*cb565728SJerry Jelinek const char *Format, 1035*cb565728SJerry Jelinek ...); 1036*cb565728SJerry Jelinek 103726f3cdf0SGordon Ross void 103826f3cdf0SGordon Ross AcpiUtNamespaceError ( 103926f3cdf0SGordon Ross const char *ModuleName, 104026f3cdf0SGordon Ross UINT32 LineNumber, 104126f3cdf0SGordon Ross const char *InternalName, 104226f3cdf0SGordon Ross ACPI_STATUS LookupStatus); 104326f3cdf0SGordon Ross 104426f3cdf0SGordon Ross void 104526f3cdf0SGordon Ross AcpiUtMethodError ( 104626f3cdf0SGordon Ross const char *ModuleName, 104726f3cdf0SGordon Ross UINT32 LineNumber, 104826f3cdf0SGordon Ross const char *Message, 104926f3cdf0SGordon Ross ACPI_NAMESPACE_NODE *Node, 105026f3cdf0SGordon Ross const char *Path, 105126f3cdf0SGordon Ross ACPI_STATUS LookupStatus); 10527c478bd9Sstevel@tonic-gate 1053*cb565728SJerry Jelinek 1054*cb565728SJerry Jelinek /* 1055*cb565728SJerry Jelinek * Utility functions for ACPI names and IDs 1056*cb565728SJerry Jelinek */ 1057*cb565728SJerry Jelinek const AH_PREDEFINED_NAME * 1058*cb565728SJerry Jelinek AcpiAhMatchPredefinedName ( 1059*cb565728SJerry Jelinek char *Nameseg); 1060*cb565728SJerry Jelinek 1061*cb565728SJerry Jelinek const AH_DEVICE_ID * 1062*cb565728SJerry Jelinek AcpiAhMatchHardwareId ( 1063*cb565728SJerry Jelinek char *Hid); 1064*cb565728SJerry Jelinek 1065*cb565728SJerry Jelinek const char * 1066*cb565728SJerry Jelinek AcpiAhMatchUuid ( 1067*cb565728SJerry Jelinek UINT8 *Data); 1068*cb565728SJerry Jelinek 1069*cb565728SJerry Jelinek 1070*cb565728SJerry Jelinek /* 1071*cb565728SJerry Jelinek * utprint - printf/vprintf output functions 1072*cb565728SJerry Jelinek */ 1073*cb565728SJerry Jelinek const char * 1074*cb565728SJerry Jelinek AcpiUtScanNumber ( 1075*cb565728SJerry Jelinek const char *String, 1076*cb565728SJerry Jelinek UINT64 *NumberPtr); 1077*cb565728SJerry Jelinek 1078*cb565728SJerry Jelinek const char * 1079*cb565728SJerry Jelinek AcpiUtPrintNumber ( 1080*cb565728SJerry Jelinek char *String, 1081*cb565728SJerry Jelinek UINT64 Number); 1082*cb565728SJerry Jelinek 1083*cb565728SJerry Jelinek int 1084*cb565728SJerry Jelinek AcpiUtVsnprintf ( 1085*cb565728SJerry Jelinek char *String, 1086*cb565728SJerry Jelinek ACPI_SIZE Size, 1087*cb565728SJerry Jelinek const char *Format, 1088*cb565728SJerry Jelinek va_list Args); 1089*cb565728SJerry Jelinek 1090*cb565728SJerry Jelinek int 1091*cb565728SJerry Jelinek AcpiUtSnprintf ( 1092*cb565728SJerry Jelinek char *String, 1093*cb565728SJerry Jelinek ACPI_SIZE Size, 1094*cb565728SJerry Jelinek const char *Format, 1095*cb565728SJerry Jelinek ...); 1096*cb565728SJerry Jelinek 1097*cb565728SJerry Jelinek #ifdef ACPI_APPLICATION 1098*cb565728SJerry Jelinek int 1099*cb565728SJerry Jelinek AcpiUtFileVprintf ( 1100*cb565728SJerry Jelinek ACPI_FILE File, 1101*cb565728SJerry Jelinek const char *Format, 1102*cb565728SJerry Jelinek va_list Args); 1103*cb565728SJerry Jelinek 1104*cb565728SJerry Jelinek int 1105*cb565728SJerry Jelinek AcpiUtFilePrintf ( 1106*cb565728SJerry Jelinek ACPI_FILE File, 1107*cb565728SJerry Jelinek const char *Format, 1108*cb565728SJerry Jelinek ...); 1109*cb565728SJerry Jelinek #endif 1110*cb565728SJerry Jelinek 1111*cb565728SJerry Jelinek 1112*cb565728SJerry Jelinek /* 1113*cb565728SJerry Jelinek * utuuid -- UUID support functions 1114*cb565728SJerry Jelinek */ 1115*cb565728SJerry Jelinek #if (defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP || defined ACPI_HELP_APP) 1116*cb565728SJerry Jelinek void 1117*cb565728SJerry Jelinek AcpiUtConvertStringToUuid ( 1118*cb565728SJerry Jelinek char *InString, 1119*cb565728SJerry Jelinek UINT8 *UuidBuffer); 1120*cb565728SJerry Jelinek #endif 1121*cb565728SJerry Jelinek 11227c478bd9Sstevel@tonic-gate #endif /* _ACUTILS_H */ 1123