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*385cc6b4SJerry 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*385cc6b4SJerry Jelinek extern const UINT8 AcpiGbl_ResourceAmlSerialBusSizes[]; 5030082d0cSmyers 5130082d0cSmyers /* Strings used by the disassembler and debugger resource dump routines */ 5230082d0cSmyers 53*385cc6b4SJerry 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*385cc6b4SJerry Jelinek extern const char *AcpiGbl_PpcDecode[]; 74*385cc6b4SJerry Jelinek extern const char *AcpiGbl_IorDecode[]; 75*385cc6b4SJerry Jelinek extern const char *AcpiGbl_DtsDecode[]; 76*385cc6b4SJerry Jelinek extern const char *AcpiGbl_CtDecode[]; 77*385cc6b4SJerry Jelinek extern const char *AcpiGbl_SbtDecode[]; 78*385cc6b4SJerry Jelinek extern const char *AcpiGbl_AmDecode[]; 79*385cc6b4SJerry Jelinek extern const char *AcpiGbl_SmDecode[]; 80*385cc6b4SJerry Jelinek extern const char *AcpiGbl_WmDecode[]; 81*385cc6b4SJerry Jelinek extern const char *AcpiGbl_CphDecode[]; 82*385cc6b4SJerry Jelinek extern const char *AcpiGbl_CpoDecode[]; 83*385cc6b4SJerry Jelinek extern const char *AcpiGbl_DpDecode[]; 84*385cc6b4SJerry Jelinek extern const char *AcpiGbl_EdDecode[]; 85*385cc6b4SJerry Jelinek extern const char *AcpiGbl_BpbDecode[]; 86*385cc6b4SJerry Jelinek extern const char *AcpiGbl_SbDecode[]; 87*385cc6b4SJerry Jelinek extern const char *AcpiGbl_FcDecode[]; 88*385cc6b4SJerry Jelinek extern const char *AcpiGbl_PtDecode[]; 8930082d0cSmyers #endif 9030082d0cSmyers 91*385cc6b4SJerry Jelinek /* 92*385cc6b4SJerry Jelinek * For the iASL compiler case, the output is redirected to stderr so that 93*385cc6b4SJerry Jelinek * any of the various ACPI errors and warnings do not appear in the output 94*385cc6b4SJerry Jelinek * files, for either the compiler or disassembler portions of the tool. 95*385cc6b4SJerry Jelinek */ 96*385cc6b4SJerry Jelinek #ifdef ACPI_ASL_COMPILER 97*385cc6b4SJerry Jelinek 98*385cc6b4SJerry Jelinek #include <stdio.h> 99*385cc6b4SJerry Jelinek 100*385cc6b4SJerry Jelinek #define ACPI_MSG_REDIRECT_BEGIN \ 101*385cc6b4SJerry Jelinek FILE *OutputFile = AcpiGbl_OutputFile; \ 102*385cc6b4SJerry Jelinek AcpiOsRedirectOutput (stderr); 103*385cc6b4SJerry Jelinek 104*385cc6b4SJerry Jelinek #define ACPI_MSG_REDIRECT_END \ 105*385cc6b4SJerry Jelinek AcpiOsRedirectOutput (OutputFile); 106*385cc6b4SJerry Jelinek 107*385cc6b4SJerry Jelinek #else 108*385cc6b4SJerry Jelinek /* 109*385cc6b4SJerry Jelinek * non-iASL case - no redirection, nothing to do 110*385cc6b4SJerry Jelinek */ 111*385cc6b4SJerry Jelinek #define ACPI_MSG_REDIRECT_BEGIN 112*385cc6b4SJerry Jelinek #define ACPI_MSG_REDIRECT_END 113*385cc6b4SJerry Jelinek #endif 114*385cc6b4SJerry Jelinek 115*385cc6b4SJerry Jelinek /* 116*385cc6b4SJerry Jelinek * Common error message prefixes 117*385cc6b4SJerry Jelinek */ 118*385cc6b4SJerry Jelinek #ifndef ACPI_MSG_ERROR 119*385cc6b4SJerry Jelinek #define ACPI_MSG_ERROR "ACPI Error: " 120*385cc6b4SJerry Jelinek #endif 121*385cc6b4SJerry Jelinek #ifndef ACPI_MSG_EXCEPTION 122*385cc6b4SJerry Jelinek #define ACPI_MSG_EXCEPTION "ACPI Exception: " 123*385cc6b4SJerry Jelinek #endif 124*385cc6b4SJerry Jelinek #ifndef ACPI_MSG_WARNING 125*385cc6b4SJerry Jelinek #define ACPI_MSG_WARNING "ACPI Warning: " 126*385cc6b4SJerry Jelinek #endif 127*385cc6b4SJerry Jelinek #ifndef ACPI_MSG_INFO 128*385cc6b4SJerry Jelinek #define ACPI_MSG_INFO "ACPI: " 129*385cc6b4SJerry Jelinek #endif 130*385cc6b4SJerry Jelinek 131*385cc6b4SJerry Jelinek #ifndef ACPI_MSG_BIOS_ERROR 132*385cc6b4SJerry Jelinek #define ACPI_MSG_BIOS_ERROR "ACPI BIOS Error (bug): " 133*385cc6b4SJerry Jelinek #endif 134*385cc6b4SJerry Jelinek #ifndef ACPI_MSG_BIOS_WARNING 135*385cc6b4SJerry Jelinek #define ACPI_MSG_BIOS_WARNING "ACPI BIOS Warning (bug): " 136*385cc6b4SJerry Jelinek #endif 137*385cc6b4SJerry Jelinek 138*385cc6b4SJerry Jelinek /* 139*385cc6b4SJerry Jelinek * Common message suffix 140*385cc6b4SJerry Jelinek */ 141*385cc6b4SJerry Jelinek #define ACPI_MSG_SUFFIX \ 142*385cc6b4SJerry Jelinek AcpiOsPrintf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, ModuleName, LineNumber) 143*385cc6b4SJerry Jelinek 144*385cc6b4SJerry 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*385cc6b4SJerry 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*385cc6b4SJerry Jelinek /* Object reference counts */ 177*385cc6b4SJerry 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*385cc6b4SJerry Jelinek * utascii - ASCII utilities 191*385cc6b4SJerry Jelinek */ 192*385cc6b4SJerry Jelinek BOOLEAN 193*385cc6b4SJerry Jelinek AcpiUtValidNameseg ( 194*385cc6b4SJerry Jelinek char *Signature); 195*385cc6b4SJerry Jelinek 196*385cc6b4SJerry Jelinek BOOLEAN 197*385cc6b4SJerry Jelinek AcpiUtValidNameChar ( 198*385cc6b4SJerry Jelinek char Character, 199*385cc6b4SJerry Jelinek UINT32 Position); 200*385cc6b4SJerry Jelinek 201*385cc6b4SJerry Jelinek void 202*385cc6b4SJerry Jelinek AcpiUtCheckAndRepairAscii ( 203*385cc6b4SJerry Jelinek UINT8 *Name, 204*385cc6b4SJerry Jelinek char *RepairedName, 205*385cc6b4SJerry Jelinek UINT32 Count); 206*385cc6b4SJerry Jelinek 207*385cc6b4SJerry Jelinek 208*385cc6b4SJerry Jelinek /* 209*385cc6b4SJerry Jelinek * utnonansi - Non-ANSI C library functions 210*385cc6b4SJerry Jelinek */ 211*385cc6b4SJerry Jelinek void 212*385cc6b4SJerry Jelinek AcpiUtStrupr ( 213*385cc6b4SJerry Jelinek char *SrcString); 214*385cc6b4SJerry Jelinek 215*385cc6b4SJerry Jelinek void 216*385cc6b4SJerry Jelinek AcpiUtStrlwr ( 217*385cc6b4SJerry Jelinek char *SrcString); 218*385cc6b4SJerry Jelinek 219*385cc6b4SJerry Jelinek int 220*385cc6b4SJerry Jelinek AcpiUtStricmp ( 221*385cc6b4SJerry Jelinek char *String1, 222*385cc6b4SJerry Jelinek char *String2); 223*385cc6b4SJerry Jelinek 224*385cc6b4SJerry Jelinek ACPI_STATUS 225*385cc6b4SJerry Jelinek AcpiUtStrtoul64 ( 226*385cc6b4SJerry Jelinek char *String, 227*385cc6b4SJerry Jelinek UINT32 Base, 228*385cc6b4SJerry Jelinek UINT32 MaxIntegerByteWidth, 229*385cc6b4SJerry Jelinek UINT64 *RetInteger); 230*385cc6b4SJerry Jelinek 231*385cc6b4SJerry Jelinek /* Values for MaxIntegerByteWidth above */ 232*385cc6b4SJerry Jelinek 233*385cc6b4SJerry Jelinek #define ACPI_MAX32_BYTE_WIDTH 4 234*385cc6b4SJerry Jelinek #define ACPI_MAX64_BYTE_WIDTH 8 235*385cc6b4SJerry Jelinek 236*385cc6b4SJerry Jelinek 237*385cc6b4SJerry 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*385cc6b4SJerry Jelinek const char * 2477c478bd9Sstevel@tonic-gate AcpiUtGetMutexName ( 2487c478bd9Sstevel@tonic-gate UINT32 MutexId); 2497c478bd9Sstevel@tonic-gate 250db2bae30SDana Myers const char * 251db2bae30SDana Myers AcpiUtGetNotifyName ( 252*385cc6b4SJerry Jelinek UINT32 NotifyValue, 253*385cc6b4SJerry Jelinek ACPI_OBJECT_TYPE Type); 2547c478bd9Sstevel@tonic-gate #endif 2557c478bd9Sstevel@tonic-gate 256*385cc6b4SJerry Jelinek const char * 2577c478bd9Sstevel@tonic-gate AcpiUtGetTypeName ( 2587c478bd9Sstevel@tonic-gate ACPI_OBJECT_TYPE Type); 2597c478bd9Sstevel@tonic-gate 260*385cc6b4SJerry Jelinek const char * 2617c478bd9Sstevel@tonic-gate AcpiUtGetNodeName ( 2627c478bd9Sstevel@tonic-gate void *Object); 2637c478bd9Sstevel@tonic-gate 264*385cc6b4SJerry 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*385cc6b4SJerry Jelinek const char * 2737c478bd9Sstevel@tonic-gate AcpiUtGetObjectTypeName ( 2747c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *ObjDesc); 2757c478bd9Sstevel@tonic-gate 276*385cc6b4SJerry Jelinek const char * 2777c478bd9Sstevel@tonic-gate AcpiUtGetRegionName ( 2787c478bd9Sstevel@tonic-gate UINT8 SpaceId); 2797c478bd9Sstevel@tonic-gate 280*385cc6b4SJerry 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*385cc6b4SJerry Jelinek UINT8 290*385cc6b4SJerry Jelinek AcpiUtAsciiCharToHex ( 291*385cc6b4SJerry Jelinek int HexChar); 292*385cc6b4SJerry 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*385cc6b4SJerry 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*385cc6b4SJerry 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*385cc6b4SJerry Jelinek AcpiUtStrExit ( 432*385cc6b4SJerry Jelinek UINT32 LineNumber, 433*385cc6b4SJerry Jelinek const char *FunctionName, 434*385cc6b4SJerry Jelinek const char *ModuleName, 435*385cc6b4SJerry Jelinek UINT32 ComponentId, 436*385cc6b4SJerry Jelinek const char *String); 437*385cc6b4SJerry Jelinek 438*385cc6b4SJerry Jelinek void 439*385cc6b4SJerry Jelinek AcpiUtDebugDumpBuffer ( 440*385cc6b4SJerry Jelinek UINT8 *Buffer, 441*385cc6b4SJerry Jelinek UINT32 Count, 442*385cc6b4SJerry Jelinek UINT32 Display, 443*385cc6b4SJerry Jelinek UINT32 ComponentId); 444*385cc6b4SJerry Jelinek 445*385cc6b4SJerry Jelinek void 4467c478bd9Sstevel@tonic-gate AcpiUtDumpBuffer ( 4477c478bd9Sstevel@tonic-gate UINT8 *Buffer, 4487c478bd9Sstevel@tonic-gate UINT32 Count, 4497c478bd9Sstevel@tonic-gate UINT32 Display, 450*385cc6b4SJerry Jelinek UINT32 Offset); 4517c478bd9Sstevel@tonic-gate 452*385cc6b4SJerry Jelinek #ifdef ACPI_APPLICATION 45330082d0cSmyers void 454*385cc6b4SJerry Jelinek AcpiUtDumpBufferToFile ( 455*385cc6b4SJerry Jelinek ACPI_FILE File, 45627f7c583Smyers UINT8 *Buffer, 45727f7c583Smyers UINT32 Count, 458*385cc6b4SJerry Jelinek UINT32 Display, 459*385cc6b4SJerry Jelinek UINT32 BaseOffset); 460*385cc6b4SJerry 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*385cc6b4SJerry 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*385cc6b4SJerry 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*385cc6b4SJerry 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*385cc6b4SJerry 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*385cc6b4SJerry Jelinek ACPI_PNP_DEVICE_ID **ReturnId); 54357190917SDana Myers 54457190917SDana Myers ACPI_STATUS 54557190917SDana Myers AcpiUtExecute_CID ( 54657190917SDana Myers ACPI_NAMESPACE_NODE *DeviceNode, 547*385cc6b4SJerry Jelinek ACPI_PNP_DEVICE_ID_LIST **ReturnCidList); 548*385cc6b4SJerry Jelinek 549*385cc6b4SJerry Jelinek ACPI_STATUS 550*385cc6b4SJerry Jelinek AcpiUtExecute_CLS ( 551*385cc6b4SJerry Jelinek ACPI_NAMESPACE_NODE *DeviceNode, 552*385cc6b4SJerry 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*385cc6b4SJerry 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*385cc6b4SJerry Jelinek ACPI_STATUS 652*385cc6b4SJerry Jelinek AcpiUtUpdateInterfaces ( 653*385cc6b4SJerry Jelinek UINT8 Action); 654*385cc6b4SJerry 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*385cc6b4SJerry Jelinek * utpredef - support for predefined names 666*385cc6b4SJerry Jelinek */ 667*385cc6b4SJerry Jelinek const ACPI_PREDEFINED_INFO * 668*385cc6b4SJerry Jelinek AcpiUtGetNextPredefinedMethod ( 669*385cc6b4SJerry Jelinek const ACPI_PREDEFINED_INFO *ThisName); 670*385cc6b4SJerry Jelinek 671*385cc6b4SJerry Jelinek const ACPI_PREDEFINED_INFO * 672*385cc6b4SJerry Jelinek AcpiUtMatchPredefinedMethod ( 673*385cc6b4SJerry Jelinek char *Name); 674*385cc6b4SJerry Jelinek 675*385cc6b4SJerry Jelinek void 676*385cc6b4SJerry Jelinek AcpiUtGetExpectedReturnTypes ( 677*385cc6b4SJerry Jelinek char *Buffer, 678*385cc6b4SJerry Jelinek UINT32 ExpectedBtypes); 679*385cc6b4SJerry Jelinek 680*385cc6b4SJerry Jelinek #if (defined ACPI_ASL_COMPILER || defined ACPI_HELP_APP) 681*385cc6b4SJerry Jelinek const ACPI_PREDEFINED_INFO * 682*385cc6b4SJerry Jelinek AcpiUtMatchResourceName ( 683*385cc6b4SJerry Jelinek char *Name); 684*385cc6b4SJerry Jelinek 685*385cc6b4SJerry Jelinek void 686*385cc6b4SJerry Jelinek AcpiUtDisplayPredefinedMethod ( 687*385cc6b4SJerry Jelinek char *Buffer, 688*385cc6b4SJerry Jelinek const ACPI_PREDEFINED_INFO *ThisName, 689*385cc6b4SJerry Jelinek BOOLEAN MultiLine); 690*385cc6b4SJerry Jelinek 691*385cc6b4SJerry Jelinek UINT32 692*385cc6b4SJerry Jelinek AcpiUtGetResourceBitWidth ( 693*385cc6b4SJerry Jelinek char *Buffer, 694*385cc6b4SJerry Jelinek UINT16 Types); 695*385cc6b4SJerry Jelinek #endif 696*385cc6b4SJerry Jelinek 697*385cc6b4SJerry Jelinek 698*385cc6b4SJerry 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*385cc6b4SJerry Jelinek 7637c478bd9Sstevel@tonic-gate /* 7647c478bd9Sstevel@tonic-gate * utmisc 7657c478bd9Sstevel@tonic-gate */ 766*385cc6b4SJerry 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*385cc6b4SJerry 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*385cc6b4SJerry 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*385cc6b4SJerry 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*385cc6b4SJerry Jelinek const char *Path); 80627f7c583Smyers #endif 80727f7c583Smyers 80827f7c583Smyers 80927f7c583Smyers /* 810*385cc6b4SJerry Jelinek * utownerid - Support for Table/Method Owner IDs 811*385cc6b4SJerry Jelinek */ 812*385cc6b4SJerry Jelinek ACPI_STATUS 813*385cc6b4SJerry Jelinek AcpiUtAllocateOwnerId ( 814*385cc6b4SJerry Jelinek ACPI_OWNER_ID *OwnerId); 815*385cc6b4SJerry Jelinek 816*385cc6b4SJerry Jelinek void 817*385cc6b4SJerry Jelinek AcpiUtReleaseOwnerId ( 818*385cc6b4SJerry Jelinek ACPI_OWNER_ID *OwnerId); 819*385cc6b4SJerry Jelinek 820*385cc6b4SJerry Jelinek 821*385cc6b4SJerry Jelinek /* 82227f7c583Smyers * utresrc 82327f7c583Smyers */ 82427f7c583Smyers ACPI_STATUS 82527f7c583Smyers AcpiUtWalkAmlResources ( 826*385cc6b4SJerry Jelinek ACPI_WALK_STATE *WalkState, 82727f7c583Smyers UINT8 *Aml, 82827f7c583Smyers ACPI_SIZE AmlLength, 82927f7c583Smyers ACPI_WALK_AML_CALLBACK UserFunction, 830*385cc6b4SJerry Jelinek void **Context); 83127f7c583Smyers 83230082d0cSmyers ACPI_STATUS 83330082d0cSmyers AcpiUtValidateResource ( 834*385cc6b4SJerry 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*385cc6b4SJerry Jelinek * utstring - String and character utilities 862*385cc6b4SJerry Jelinek */ 863*385cc6b4SJerry Jelinek void 864*385cc6b4SJerry Jelinek AcpiUtPrintString ( 865*385cc6b4SJerry Jelinek char *String, 866*385cc6b4SJerry Jelinek UINT16 MaxLength); 867*385cc6b4SJerry Jelinek 868*385cc6b4SJerry Jelinek #if defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP 869*385cc6b4SJerry Jelinek void 870*385cc6b4SJerry Jelinek UtConvertBackslashes ( 871*385cc6b4SJerry Jelinek char *Pathname); 872*385cc6b4SJerry Jelinek #endif 873*385cc6b4SJerry Jelinek 874*385cc6b4SJerry Jelinek void 875*385cc6b4SJerry Jelinek AcpiUtRepairName ( 876*385cc6b4SJerry Jelinek char *Name); 877*385cc6b4SJerry Jelinek 878*385cc6b4SJerry Jelinek #if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION) 879*385cc6b4SJerry Jelinek BOOLEAN 880*385cc6b4SJerry Jelinek AcpiUtSafeStrcpy ( 881*385cc6b4SJerry Jelinek char *Dest, 882*385cc6b4SJerry Jelinek ACPI_SIZE DestSize, 883*385cc6b4SJerry Jelinek char *Source); 884*385cc6b4SJerry Jelinek 885*385cc6b4SJerry Jelinek BOOLEAN 886*385cc6b4SJerry Jelinek AcpiUtSafeStrcat ( 887*385cc6b4SJerry Jelinek char *Dest, 888*385cc6b4SJerry Jelinek ACPI_SIZE DestSize, 889*385cc6b4SJerry Jelinek char *Source); 890*385cc6b4SJerry Jelinek 891*385cc6b4SJerry Jelinek BOOLEAN 892*385cc6b4SJerry Jelinek AcpiUtSafeStrncat ( 893*385cc6b4SJerry Jelinek char *Dest, 894*385cc6b4SJerry Jelinek ACPI_SIZE DestSize, 895*385cc6b4SJerry Jelinek char *Source, 896*385cc6b4SJerry Jelinek ACPI_SIZE MaxTransferLength); 897*385cc6b4SJerry Jelinek #endif 898*385cc6b4SJerry Jelinek 899*385cc6b4SJerry Jelinek 900*385cc6b4SJerry 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*385cc6b4SJerry 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*385cc6b4SJerry Jelinek * utaddress - address range check 982*385cc6b4SJerry Jelinek */ 983*385cc6b4SJerry Jelinek ACPI_STATUS 984*385cc6b4SJerry Jelinek AcpiUtAddAddressRange ( 985*385cc6b4SJerry Jelinek ACPI_ADR_SPACE_TYPE SpaceId, 986*385cc6b4SJerry Jelinek ACPI_PHYSICAL_ADDRESS Address, 987*385cc6b4SJerry Jelinek UINT32 Length, 988*385cc6b4SJerry Jelinek ACPI_NAMESPACE_NODE *RegionNode); 989*385cc6b4SJerry Jelinek 990*385cc6b4SJerry Jelinek void 991*385cc6b4SJerry Jelinek AcpiUtRemoveAddressRange ( 992*385cc6b4SJerry Jelinek ACPI_ADR_SPACE_TYPE SpaceId, 993*385cc6b4SJerry Jelinek ACPI_NAMESPACE_NODE *RegionNode); 994*385cc6b4SJerry Jelinek 995*385cc6b4SJerry Jelinek UINT32 996*385cc6b4SJerry Jelinek AcpiUtCheckAddressRange ( 997*385cc6b4SJerry Jelinek ACPI_ADR_SPACE_TYPE SpaceId, 998*385cc6b4SJerry Jelinek ACPI_PHYSICAL_ADDRESS Address, 999*385cc6b4SJerry Jelinek UINT32 Length, 1000*385cc6b4SJerry Jelinek BOOLEAN Warn); 1001*385cc6b4SJerry Jelinek 1002*385cc6b4SJerry Jelinek void 1003*385cc6b4SJerry Jelinek AcpiUtDeleteAddressLists ( 1004*385cc6b4SJerry Jelinek void); 1005*385cc6b4SJerry Jelinek 1006*385cc6b4SJerry Jelinek 1007*385cc6b4SJerry 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*385cc6b4SJerry Jelinek void ACPI_INTERNAL_VAR_XFACE 1029*385cc6b4SJerry Jelinek AcpiUtPredefinedBiosError ( 1030*385cc6b4SJerry Jelinek const char *ModuleName, 1031*385cc6b4SJerry Jelinek UINT32 LineNumber, 1032*385cc6b4SJerry Jelinek char *Pathname, 1033*385cc6b4SJerry Jelinek UINT8 NodeFlags, 1034*385cc6b4SJerry Jelinek const char *Format, 1035*385cc6b4SJerry Jelinek ...); 1036*385cc6b4SJerry 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*385cc6b4SJerry Jelinek 1054*385cc6b4SJerry Jelinek /* 1055*385cc6b4SJerry Jelinek * Utility functions for ACPI names and IDs 1056*385cc6b4SJerry Jelinek */ 1057*385cc6b4SJerry Jelinek const AH_PREDEFINED_NAME * 1058*385cc6b4SJerry Jelinek AcpiAhMatchPredefinedName ( 1059*385cc6b4SJerry Jelinek char *Nameseg); 1060*385cc6b4SJerry Jelinek 1061*385cc6b4SJerry Jelinek const AH_DEVICE_ID * 1062*385cc6b4SJerry Jelinek AcpiAhMatchHardwareId ( 1063*385cc6b4SJerry Jelinek char *Hid); 1064*385cc6b4SJerry Jelinek 1065*385cc6b4SJerry Jelinek const char * 1066*385cc6b4SJerry Jelinek AcpiAhMatchUuid ( 1067*385cc6b4SJerry Jelinek UINT8 *Data); 1068*385cc6b4SJerry Jelinek 1069*385cc6b4SJerry Jelinek 1070*385cc6b4SJerry Jelinek /* 1071*385cc6b4SJerry Jelinek * utprint - printf/vprintf output functions 1072*385cc6b4SJerry Jelinek */ 1073*385cc6b4SJerry Jelinek const char * 1074*385cc6b4SJerry Jelinek AcpiUtScanNumber ( 1075*385cc6b4SJerry Jelinek const char *String, 1076*385cc6b4SJerry Jelinek UINT64 *NumberPtr); 1077*385cc6b4SJerry Jelinek 1078*385cc6b4SJerry Jelinek const char * 1079*385cc6b4SJerry Jelinek AcpiUtPrintNumber ( 1080*385cc6b4SJerry Jelinek char *String, 1081*385cc6b4SJerry Jelinek UINT64 Number); 1082*385cc6b4SJerry Jelinek 1083*385cc6b4SJerry Jelinek int 1084*385cc6b4SJerry Jelinek AcpiUtVsnprintf ( 1085*385cc6b4SJerry Jelinek char *String, 1086*385cc6b4SJerry Jelinek ACPI_SIZE Size, 1087*385cc6b4SJerry Jelinek const char *Format, 1088*385cc6b4SJerry Jelinek va_list Args); 1089*385cc6b4SJerry Jelinek 1090*385cc6b4SJerry Jelinek int 1091*385cc6b4SJerry Jelinek AcpiUtSnprintf ( 1092*385cc6b4SJerry Jelinek char *String, 1093*385cc6b4SJerry Jelinek ACPI_SIZE Size, 1094*385cc6b4SJerry Jelinek const char *Format, 1095*385cc6b4SJerry Jelinek ...); 1096*385cc6b4SJerry Jelinek 1097*385cc6b4SJerry Jelinek #ifdef ACPI_APPLICATION 1098*385cc6b4SJerry Jelinek int 1099*385cc6b4SJerry Jelinek AcpiUtFileVprintf ( 1100*385cc6b4SJerry Jelinek ACPI_FILE File, 1101*385cc6b4SJerry Jelinek const char *Format, 1102*385cc6b4SJerry Jelinek va_list Args); 1103*385cc6b4SJerry Jelinek 1104*385cc6b4SJerry Jelinek int 1105*385cc6b4SJerry Jelinek AcpiUtFilePrintf ( 1106*385cc6b4SJerry Jelinek ACPI_FILE File, 1107*385cc6b4SJerry Jelinek const char *Format, 1108*385cc6b4SJerry Jelinek ...); 1109*385cc6b4SJerry Jelinek #endif 1110*385cc6b4SJerry Jelinek 1111*385cc6b4SJerry Jelinek 1112*385cc6b4SJerry Jelinek /* 1113*385cc6b4SJerry Jelinek * utuuid -- UUID support functions 1114*385cc6b4SJerry Jelinek */ 1115*385cc6b4SJerry Jelinek #if (defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP || defined ACPI_HELP_APP) 1116*385cc6b4SJerry Jelinek void 1117*385cc6b4SJerry Jelinek AcpiUtConvertStringToUuid ( 1118*385cc6b4SJerry Jelinek char *InString, 1119*385cc6b4SJerry Jelinek UINT8 *UuidBuffer); 1120*385cc6b4SJerry Jelinek #endif 1121*385cc6b4SJerry Jelinek 11227c478bd9Sstevel@tonic-gate #endif /* _ACUTILS_H */ 1123