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 7*35786f68SRobert Mustacchi /****************************************************************************** 8*35786f68SRobert Mustacchi * 9*35786f68SRobert Mustacchi * 1. Copyright Notice 10*35786f68SRobert Mustacchi * 11*35786f68SRobert Mustacchi * Some or all of this work - Copyright (c) 1999 - 2018, Intel Corp. 127c478bd9Sstevel@tonic-gate * All rights reserved. 137c478bd9Sstevel@tonic-gate * 14*35786f68SRobert Mustacchi * 2. License 15*35786f68SRobert Mustacchi * 16*35786f68SRobert Mustacchi * 2.1. This is your license from Intel Corp. under its intellectual property 17*35786f68SRobert Mustacchi * rights. You may have additional license terms from the party that provided 18*35786f68SRobert Mustacchi * you this software, covering your right to use that party's intellectual 19*35786f68SRobert Mustacchi * property rights. 20*35786f68SRobert Mustacchi * 21*35786f68SRobert Mustacchi * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 22*35786f68SRobert Mustacchi * copy of the source code appearing in this file ("Covered Code") an 23*35786f68SRobert Mustacchi * irrevocable, perpetual, worldwide license under Intel's copyrights in the 24*35786f68SRobert Mustacchi * base code distributed originally by Intel ("Original Intel Code") to copy, 25*35786f68SRobert Mustacchi * make derivatives, distribute, use and display any portion of the Covered 26*35786f68SRobert Mustacchi * Code in any form, with the right to sublicense such rights; and 27*35786f68SRobert Mustacchi * 28*35786f68SRobert Mustacchi * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 29*35786f68SRobert Mustacchi * license (with the right to sublicense), under only those claims of Intel 30*35786f68SRobert Mustacchi * patents that are infringed by the Original Intel Code, to make, use, sell, 31*35786f68SRobert Mustacchi * offer to sell, and import the Covered Code and derivative works thereof 32*35786f68SRobert Mustacchi * solely to the minimum extent necessary to exercise the above copyright 33*35786f68SRobert Mustacchi * license, and in no event shall the patent license extend to any additions 34*35786f68SRobert Mustacchi * to or modifications of the Original Intel Code. No other license or right 35*35786f68SRobert Mustacchi * is granted directly or by implication, estoppel or otherwise; 36*35786f68SRobert Mustacchi * 37*35786f68SRobert Mustacchi * The above copyright and patent license is granted only if the following 38*35786f68SRobert Mustacchi * conditions are met: 39*35786f68SRobert Mustacchi * 40*35786f68SRobert Mustacchi * 3. Conditions 41*35786f68SRobert Mustacchi * 42*35786f68SRobert Mustacchi * 3.1. Redistribution of Source with Rights to Further Distribute Source. 43*35786f68SRobert Mustacchi * Redistribution of source code of any substantial portion of the Covered 44*35786f68SRobert Mustacchi * Code or modification with rights to further distribute source must include 45*35786f68SRobert Mustacchi * the above Copyright Notice, the above License, this list of Conditions, 46*35786f68SRobert Mustacchi * and the following Disclaimer and Export Compliance provision. In addition, 47*35786f68SRobert Mustacchi * Licensee must cause all Covered Code to which Licensee contributes to 48*35786f68SRobert Mustacchi * contain a file documenting the changes Licensee made to create that Covered 49*35786f68SRobert Mustacchi * Code and the date of any change. Licensee must include in that file the 50*35786f68SRobert Mustacchi * documentation of any changes made by any predecessor Licensee. Licensee 51*35786f68SRobert Mustacchi * must include a prominent statement that the modification is derived, 52*35786f68SRobert Mustacchi * directly or indirectly, from Original Intel Code. 53*35786f68SRobert Mustacchi * 54*35786f68SRobert Mustacchi * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 55*35786f68SRobert Mustacchi * Redistribution of source code of any substantial portion of the Covered 56*35786f68SRobert Mustacchi * Code or modification without rights to further distribute source must 57*35786f68SRobert Mustacchi * include the following Disclaimer and Export Compliance provision in the 58*35786f68SRobert Mustacchi * documentation and/or other materials provided with distribution. In 59*35786f68SRobert Mustacchi * addition, Licensee may not authorize further sublicense of source of any 60*35786f68SRobert Mustacchi * portion of the Covered Code, and must include terms to the effect that the 61*35786f68SRobert Mustacchi * license from Licensee to its licensee is limited to the intellectual 62*35786f68SRobert Mustacchi * property embodied in the software Licensee provides to its licensee, and 63*35786f68SRobert Mustacchi * not to intellectual property embodied in modifications its licensee may 64*35786f68SRobert Mustacchi * make. 65*35786f68SRobert Mustacchi * 66*35786f68SRobert Mustacchi * 3.3. Redistribution of Executable. Redistribution in executable form of any 67*35786f68SRobert Mustacchi * substantial portion of the Covered Code or modification must reproduce the 68*35786f68SRobert Mustacchi * above Copyright Notice, and the following Disclaimer and Export Compliance 69*35786f68SRobert Mustacchi * provision in the documentation and/or other materials provided with the 70*35786f68SRobert Mustacchi * distribution. 71*35786f68SRobert Mustacchi * 72*35786f68SRobert Mustacchi * 3.4. Intel retains all right, title, and interest in and to the Original 73*35786f68SRobert Mustacchi * Intel Code. 74*35786f68SRobert Mustacchi * 75*35786f68SRobert Mustacchi * 3.5. Neither the name Intel nor any other trademark owned or controlled by 76*35786f68SRobert Mustacchi * Intel shall be used in advertising or otherwise to promote the sale, use or 77*35786f68SRobert Mustacchi * other dealings in products derived from or relating to the Covered Code 78*35786f68SRobert Mustacchi * without prior written authorization from Intel. 79*35786f68SRobert Mustacchi * 80*35786f68SRobert Mustacchi * 4. Disclaimer and Export Compliance 81*35786f68SRobert Mustacchi * 82*35786f68SRobert Mustacchi * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 83*35786f68SRobert Mustacchi * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 84*35786f68SRobert Mustacchi * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 85*35786f68SRobert Mustacchi * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 86*35786f68SRobert Mustacchi * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 87*35786f68SRobert Mustacchi * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 88*35786f68SRobert Mustacchi * PARTICULAR PURPOSE. 89*35786f68SRobert Mustacchi * 90*35786f68SRobert Mustacchi * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 91*35786f68SRobert Mustacchi * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 92*35786f68SRobert Mustacchi * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 93*35786f68SRobert Mustacchi * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 94*35786f68SRobert Mustacchi * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 95*35786f68SRobert Mustacchi * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 96*35786f68SRobert Mustacchi * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 97*35786f68SRobert Mustacchi * LIMITED REMEDY. 98*35786f68SRobert Mustacchi * 99*35786f68SRobert Mustacchi * 4.3. Licensee shall not export, either directly or indirectly, any of this 100*35786f68SRobert Mustacchi * software or system incorporating such software without first obtaining any 101*35786f68SRobert Mustacchi * required license or other approval from the U. S. Department of Commerce or 102*35786f68SRobert Mustacchi * any other agency or department of the United States Government. In the 103*35786f68SRobert Mustacchi * event Licensee exports any such software from the United States or 104*35786f68SRobert Mustacchi * re-exports any such software from a foreign destination, Licensee shall 105*35786f68SRobert Mustacchi * ensure that the distribution and export/re-export of the software is in 106*35786f68SRobert Mustacchi * compliance with all laws, regulations, orders, or other restrictions of the 107*35786f68SRobert Mustacchi * U.S. Export Administration Regulations. Licensee agrees that neither it nor 108*35786f68SRobert Mustacchi * any of its subsidiaries will export/re-export any technical data, process, 109*35786f68SRobert Mustacchi * software, or service, directly or indirectly, to any country for which the 110*35786f68SRobert Mustacchi * United States government or any agency thereof requires an export license, 111*35786f68SRobert Mustacchi * other governmental approval, or letter of assurance, without first obtaining 112*35786f68SRobert Mustacchi * such license, approval or letter. 113*35786f68SRobert Mustacchi * 114*35786f68SRobert Mustacchi ***************************************************************************** 115*35786f68SRobert Mustacchi * 116*35786f68SRobert Mustacchi * Alternatively, you may choose to be licensed under the terms of the 117*35786f68SRobert Mustacchi * following license: 118*35786f68SRobert Mustacchi * 11926f3cdf0SGordon Ross * Redistribution and use in source and binary forms, with or without 12026f3cdf0SGordon Ross * modification, are permitted provided that the following conditions 12126f3cdf0SGordon Ross * are met: 12226f3cdf0SGordon Ross * 1. Redistributions of source code must retain the above copyright 12326f3cdf0SGordon Ross * notice, this list of conditions, and the following disclaimer, 12426f3cdf0SGordon Ross * without modification. 12526f3cdf0SGordon Ross * 2. Redistributions in binary form must reproduce at minimum a disclaimer 12626f3cdf0SGordon Ross * substantially similar to the "NO WARRANTY" disclaimer below 12726f3cdf0SGordon Ross * ("Disclaimer") and any redistribution must be conditioned upon 12826f3cdf0SGordon Ross * including a substantially similar Disclaimer requirement for further 12926f3cdf0SGordon Ross * binary redistribution. 13026f3cdf0SGordon Ross * 3. Neither the names of the above-listed copyright holders nor the names 13126f3cdf0SGordon Ross * of any contributors may be used to endorse or promote products derived 13226f3cdf0SGordon Ross * from this software without specific prior written permission. 1337c478bd9Sstevel@tonic-gate * 134*35786f68SRobert Mustacchi * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 135*35786f68SRobert Mustacchi * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 136*35786f68SRobert Mustacchi * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 137*35786f68SRobert Mustacchi * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 138*35786f68SRobert Mustacchi * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 139*35786f68SRobert Mustacchi * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 140*35786f68SRobert Mustacchi * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 141*35786f68SRobert Mustacchi * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 142*35786f68SRobert Mustacchi * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 143*35786f68SRobert Mustacchi * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 144*35786f68SRobert Mustacchi * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 145*35786f68SRobert Mustacchi * 146*35786f68SRobert Mustacchi * Alternatively, you may choose to be licensed under the terms of the 14726f3cdf0SGordon Ross * GNU General Public License ("GPL") version 2 as published by the Free 14826f3cdf0SGordon Ross * Software Foundation. 1497c478bd9Sstevel@tonic-gate * 150*35786f68SRobert Mustacchi *****************************************************************************/ 1517c478bd9Sstevel@tonic-gate 1527c478bd9Sstevel@tonic-gate #ifndef _ACUTILS_H 1537c478bd9Sstevel@tonic-gate #define _ACUTILS_H 1547c478bd9Sstevel@tonic-gate 1557c478bd9Sstevel@tonic-gate 15630082d0cSmyers extern const UINT8 AcpiGbl_ResourceAmlSizes[]; 1577b1019a6SJerry Jelinek extern const UINT8 AcpiGbl_ResourceAmlSerialBusSizes[]; 15830082d0cSmyers 15930082d0cSmyers /* Strings used by the disassembler and debugger resource dump routines */ 16030082d0cSmyers 1617b1019a6SJerry Jelinek #if defined(ACPI_DEBUG_OUTPUT) || defined (ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER) 16230082d0cSmyers 16327f7c583Smyers extern const char *AcpiGbl_BmDecode[]; 16427f7c583Smyers extern const char *AcpiGbl_ConfigDecode[]; 16527f7c583Smyers extern const char *AcpiGbl_ConsumeDecode[]; 16627f7c583Smyers extern const char *AcpiGbl_DecDecode[]; 16727f7c583Smyers extern const char *AcpiGbl_HeDecode[]; 16827f7c583Smyers extern const char *AcpiGbl_IoDecode[]; 16927f7c583Smyers extern const char *AcpiGbl_LlDecode[]; 17027f7c583Smyers extern const char *AcpiGbl_MaxDecode[]; 17127f7c583Smyers extern const char *AcpiGbl_MemDecode[]; 17227f7c583Smyers extern const char *AcpiGbl_MinDecode[]; 17327f7c583Smyers extern const char *AcpiGbl_MtpDecode[]; 17427f7c583Smyers extern const char *AcpiGbl_RngDecode[]; 17527f7c583Smyers extern const char *AcpiGbl_RwDecode[]; 17627f7c583Smyers extern const char *AcpiGbl_ShrDecode[]; 17727f7c583Smyers extern const char *AcpiGbl_SizDecode[]; 17827f7c583Smyers extern const char *AcpiGbl_TrsDecode[]; 17927f7c583Smyers extern const char *AcpiGbl_TtpDecode[]; 18027f7c583Smyers extern const char *AcpiGbl_TypDecode[]; 1817b1019a6SJerry Jelinek extern const char *AcpiGbl_PpcDecode[]; 1827b1019a6SJerry Jelinek extern const char *AcpiGbl_IorDecode[]; 1837b1019a6SJerry Jelinek extern const char *AcpiGbl_DtsDecode[]; 1847b1019a6SJerry Jelinek extern const char *AcpiGbl_CtDecode[]; 1857b1019a6SJerry Jelinek extern const char *AcpiGbl_SbtDecode[]; 1867b1019a6SJerry Jelinek extern const char *AcpiGbl_AmDecode[]; 1877b1019a6SJerry Jelinek extern const char *AcpiGbl_SmDecode[]; 1887b1019a6SJerry Jelinek extern const char *AcpiGbl_WmDecode[]; 1897b1019a6SJerry Jelinek extern const char *AcpiGbl_CphDecode[]; 1907b1019a6SJerry Jelinek extern const char *AcpiGbl_CpoDecode[]; 1917b1019a6SJerry Jelinek extern const char *AcpiGbl_DpDecode[]; 1927b1019a6SJerry Jelinek extern const char *AcpiGbl_EdDecode[]; 1937b1019a6SJerry Jelinek extern const char *AcpiGbl_BpbDecode[]; 1947b1019a6SJerry Jelinek extern const char *AcpiGbl_SbDecode[]; 1957b1019a6SJerry Jelinek extern const char *AcpiGbl_FcDecode[]; 1967b1019a6SJerry Jelinek extern const char *AcpiGbl_PtDecode[]; 197*35786f68SRobert Mustacchi extern const char *AcpiGbl_PtypDecode[]; 19830082d0cSmyers #endif 19930082d0cSmyers 2007b1019a6SJerry Jelinek /* 2017b1019a6SJerry Jelinek * For the iASL compiler case, the output is redirected to stderr so that 2027b1019a6SJerry Jelinek * any of the various ACPI errors and warnings do not appear in the output 2037b1019a6SJerry Jelinek * files, for either the compiler or disassembler portions of the tool. 2047b1019a6SJerry Jelinek */ 2057b1019a6SJerry Jelinek #ifdef ACPI_ASL_COMPILER 2067b1019a6SJerry Jelinek 2077b1019a6SJerry Jelinek #include <stdio.h> 2087b1019a6SJerry Jelinek 2097b1019a6SJerry Jelinek #define ACPI_MSG_REDIRECT_BEGIN \ 2107b1019a6SJerry Jelinek FILE *OutputFile = AcpiGbl_OutputFile; \ 2117b1019a6SJerry Jelinek AcpiOsRedirectOutput (stderr); 2127b1019a6SJerry Jelinek 2137b1019a6SJerry Jelinek #define ACPI_MSG_REDIRECT_END \ 2147b1019a6SJerry Jelinek AcpiOsRedirectOutput (OutputFile); 2157b1019a6SJerry Jelinek 2167b1019a6SJerry Jelinek #else 2177b1019a6SJerry Jelinek /* 2187b1019a6SJerry Jelinek * non-iASL case - no redirection, nothing to do 2197b1019a6SJerry Jelinek */ 2207b1019a6SJerry Jelinek #define ACPI_MSG_REDIRECT_BEGIN 2217b1019a6SJerry Jelinek #define ACPI_MSG_REDIRECT_END 2227b1019a6SJerry Jelinek #endif 2237b1019a6SJerry Jelinek 2247b1019a6SJerry Jelinek /* 2257b1019a6SJerry Jelinek * Common error message prefixes 2267b1019a6SJerry Jelinek */ 2277b1019a6SJerry Jelinek #ifndef ACPI_MSG_ERROR 2287b1019a6SJerry Jelinek #define ACPI_MSG_ERROR "ACPI Error: " 2297b1019a6SJerry Jelinek #endif 2307b1019a6SJerry Jelinek #ifndef ACPI_MSG_WARNING 2317b1019a6SJerry Jelinek #define ACPI_MSG_WARNING "ACPI Warning: " 2327b1019a6SJerry Jelinek #endif 2337b1019a6SJerry Jelinek #ifndef ACPI_MSG_INFO 2347b1019a6SJerry Jelinek #define ACPI_MSG_INFO "ACPI: " 2357b1019a6SJerry Jelinek #endif 2367b1019a6SJerry Jelinek 2377b1019a6SJerry Jelinek #ifndef ACPI_MSG_BIOS_ERROR 238*35786f68SRobert Mustacchi #define ACPI_MSG_BIOS_ERROR "Firmware Error (ACPI): " 2397b1019a6SJerry Jelinek #endif 2407b1019a6SJerry Jelinek #ifndef ACPI_MSG_BIOS_WARNING 241*35786f68SRobert Mustacchi #define ACPI_MSG_BIOS_WARNING "Firmware Warning (ACPI): " 2427b1019a6SJerry Jelinek #endif 2437b1019a6SJerry Jelinek 2447b1019a6SJerry Jelinek /* 2457b1019a6SJerry Jelinek * Common message suffix 2467b1019a6SJerry Jelinek */ 2477b1019a6SJerry Jelinek #define ACPI_MSG_SUFFIX \ 2487b1019a6SJerry Jelinek AcpiOsPrintf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, ModuleName, LineNumber) 2497b1019a6SJerry Jelinek 250*35786f68SRobert Mustacchi /* Flags to indicate implicit or explicit string-to-integer conversion */ 251*35786f68SRobert Mustacchi 252*35786f68SRobert Mustacchi #define ACPI_IMPLICIT_CONVERSION TRUE 253*35786f68SRobert Mustacchi #define ACPI_NO_IMPLICIT_CONVERSION FALSE 2547b1019a6SJerry Jelinek 25530082d0cSmyers /* Types for Resource descriptor entries */ 25630082d0cSmyers 25730082d0cSmyers #define ACPI_INVALID_RESOURCE 0 25830082d0cSmyers #define ACPI_FIXED_LENGTH 1 25930082d0cSmyers #define ACPI_VARIABLE_LENGTH 2 26030082d0cSmyers #define ACPI_SMALL_VARIABLE_LENGTH 3 26130082d0cSmyers 2627c478bd9Sstevel@tonic-gate typedef 26327f7c583Smyers ACPI_STATUS (*ACPI_WALK_AML_CALLBACK) ( 26427f7c583Smyers UINT8 *Aml, 26527f7c583Smyers UINT32 Length, 26627f7c583Smyers UINT32 Offset, 26727f7c583Smyers UINT8 ResourceIndex, 2687b1019a6SJerry Jelinek void **Context); 26927f7c583Smyers 27027f7c583Smyers typedef 2717c478bd9Sstevel@tonic-gate ACPI_STATUS (*ACPI_PKG_CALLBACK) ( 2727c478bd9Sstevel@tonic-gate UINT8 ObjectType, 2737c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *SourceObject, 2747c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE *State, 2757c478bd9Sstevel@tonic-gate void *Context); 2767c478bd9Sstevel@tonic-gate 2777c478bd9Sstevel@tonic-gate typedef struct acpi_pkg_info 2787c478bd9Sstevel@tonic-gate { 2797c478bd9Sstevel@tonic-gate UINT8 *FreeSpace; 2807c478bd9Sstevel@tonic-gate ACPI_SIZE Length; 2817c478bd9Sstevel@tonic-gate UINT32 ObjectSpace; 2827c478bd9Sstevel@tonic-gate UINT32 NumPackages; 2837c478bd9Sstevel@tonic-gate 2847c478bd9Sstevel@tonic-gate } ACPI_PKG_INFO; 2857c478bd9Sstevel@tonic-gate 2867b1019a6SJerry Jelinek /* Object reference counts */ 2877b1019a6SJerry Jelinek 2887c478bd9Sstevel@tonic-gate #define REF_INCREMENT (UINT16) 0 2897c478bd9Sstevel@tonic-gate #define REF_DECREMENT (UINT16) 1 2907c478bd9Sstevel@tonic-gate 2917c478bd9Sstevel@tonic-gate /* AcpiUtDumpBuffer */ 2927c478bd9Sstevel@tonic-gate 2937c478bd9Sstevel@tonic-gate #define DB_BYTE_DISPLAY 1 2947c478bd9Sstevel@tonic-gate #define DB_WORD_DISPLAY 2 2957c478bd9Sstevel@tonic-gate #define DB_DWORD_DISPLAY 4 2967c478bd9Sstevel@tonic-gate #define DB_QWORD_DISPLAY 8 2977c478bd9Sstevel@tonic-gate 2987c478bd9Sstevel@tonic-gate 2997c478bd9Sstevel@tonic-gate /* 3007b1019a6SJerry Jelinek * utascii - ASCII utilities 3017b1019a6SJerry Jelinek */ 3027b1019a6SJerry Jelinek BOOLEAN 3037b1019a6SJerry Jelinek AcpiUtValidNameseg ( 3047b1019a6SJerry Jelinek char *Signature); 3057b1019a6SJerry Jelinek 3067b1019a6SJerry Jelinek BOOLEAN 3077b1019a6SJerry Jelinek AcpiUtValidNameChar ( 3087b1019a6SJerry Jelinek char Character, 3097b1019a6SJerry Jelinek UINT32 Position); 3107b1019a6SJerry Jelinek 3117b1019a6SJerry Jelinek void 3127b1019a6SJerry Jelinek AcpiUtCheckAndRepairAscii ( 3137b1019a6SJerry Jelinek UINT8 *Name, 3147b1019a6SJerry Jelinek char *RepairedName, 3157b1019a6SJerry Jelinek UINT32 Count); 3167b1019a6SJerry Jelinek 3177b1019a6SJerry Jelinek 3187b1019a6SJerry Jelinek /* 3197b1019a6SJerry Jelinek * utnonansi - Non-ANSI C library functions 3207b1019a6SJerry Jelinek */ 3217b1019a6SJerry Jelinek void 3227b1019a6SJerry Jelinek AcpiUtStrupr ( 3237b1019a6SJerry Jelinek char *SrcString); 3247b1019a6SJerry Jelinek 3257b1019a6SJerry Jelinek void 3267b1019a6SJerry Jelinek AcpiUtStrlwr ( 3277b1019a6SJerry Jelinek char *SrcString); 3287b1019a6SJerry Jelinek 3297b1019a6SJerry Jelinek int 3307b1019a6SJerry Jelinek AcpiUtStricmp ( 3317b1019a6SJerry Jelinek char *String1, 3327b1019a6SJerry Jelinek char *String2); 3337b1019a6SJerry Jelinek 334*35786f68SRobert Mustacchi 335*35786f68SRobert Mustacchi /* 336*35786f68SRobert Mustacchi * utstrsuppt - string-to-integer conversion support functions 337*35786f68SRobert Mustacchi */ 338*35786f68SRobert Mustacchi ACPI_STATUS 339*35786f68SRobert Mustacchi AcpiUtConvertOctalString ( 340*35786f68SRobert Mustacchi char *String, 341*35786f68SRobert Mustacchi UINT64 *ReturnValue); 342*35786f68SRobert Mustacchi 343*35786f68SRobert Mustacchi ACPI_STATUS 344*35786f68SRobert Mustacchi AcpiUtConvertDecimalString ( 345*35786f68SRobert Mustacchi char *String, 346*35786f68SRobert Mustacchi UINT64 *ReturnValuePtr); 347*35786f68SRobert Mustacchi 348*35786f68SRobert Mustacchi ACPI_STATUS 349*35786f68SRobert Mustacchi AcpiUtConvertHexString ( 350*35786f68SRobert Mustacchi char *String, 351*35786f68SRobert Mustacchi UINT64 *ReturnValuePtr); 352*35786f68SRobert Mustacchi 353*35786f68SRobert Mustacchi char 354*35786f68SRobert Mustacchi AcpiUtRemoveWhitespace ( 355*35786f68SRobert Mustacchi char **String); 356*35786f68SRobert Mustacchi 357*35786f68SRobert Mustacchi char 358*35786f68SRobert Mustacchi AcpiUtRemoveLeadingZeros ( 359*35786f68SRobert Mustacchi char **String); 360*35786f68SRobert Mustacchi 361*35786f68SRobert Mustacchi BOOLEAN 362*35786f68SRobert Mustacchi AcpiUtDetectHexPrefix ( 363*35786f68SRobert Mustacchi char **String); 364*35786f68SRobert Mustacchi 365*35786f68SRobert Mustacchi BOOLEAN 366*35786f68SRobert Mustacchi AcpiUtDetectOctalPrefix ( 367*35786f68SRobert Mustacchi char **String); 368*35786f68SRobert Mustacchi 369*35786f68SRobert Mustacchi 370*35786f68SRobert Mustacchi /* 371*35786f68SRobert Mustacchi * utstrtoul64 - string-to-integer conversion functions 372*35786f68SRobert Mustacchi */ 3737b1019a6SJerry Jelinek ACPI_STATUS 3747b1019a6SJerry Jelinek AcpiUtStrtoul64 ( 3757b1019a6SJerry Jelinek char *String, 3767b1019a6SJerry Jelinek UINT64 *RetInteger); 3777b1019a6SJerry Jelinek 378*35786f68SRobert Mustacchi UINT64 379*35786f68SRobert Mustacchi AcpiUtExplicitStrtoul64 ( 380*35786f68SRobert Mustacchi char *String); 3817b1019a6SJerry Jelinek 382*35786f68SRobert Mustacchi UINT64 383*35786f68SRobert Mustacchi AcpiUtImplicitStrtoul64 ( 384*35786f68SRobert Mustacchi char *String); 3857b1019a6SJerry Jelinek 3867b1019a6SJerry Jelinek 3877b1019a6SJerry Jelinek /* 3887c478bd9Sstevel@tonic-gate * utglobal - Global data structures and procedures 3897c478bd9Sstevel@tonic-gate */ 390db2bae30SDana Myers ACPI_STATUS 3917c478bd9Sstevel@tonic-gate AcpiUtInitGlobals ( 3927c478bd9Sstevel@tonic-gate void); 3937c478bd9Sstevel@tonic-gate 3947b1019a6SJerry Jelinek const char * 3957c478bd9Sstevel@tonic-gate AcpiUtGetMutexName ( 3967c478bd9Sstevel@tonic-gate UINT32 MutexId); 3977c478bd9Sstevel@tonic-gate 398*35786f68SRobert Mustacchi #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 399*35786f68SRobert Mustacchi 400db2bae30SDana Myers const char * 401db2bae30SDana Myers AcpiUtGetNotifyName ( 4027b1019a6SJerry Jelinek UINT32 NotifyValue, 4037b1019a6SJerry Jelinek ACPI_OBJECT_TYPE Type); 4047c478bd9Sstevel@tonic-gate #endif 4057c478bd9Sstevel@tonic-gate 4067b1019a6SJerry Jelinek const char * 4077c478bd9Sstevel@tonic-gate AcpiUtGetTypeName ( 4087c478bd9Sstevel@tonic-gate ACPI_OBJECT_TYPE Type); 4097c478bd9Sstevel@tonic-gate 4107b1019a6SJerry Jelinek const char * 4117c478bd9Sstevel@tonic-gate AcpiUtGetNodeName ( 4127c478bd9Sstevel@tonic-gate void *Object); 4137c478bd9Sstevel@tonic-gate 4147b1019a6SJerry Jelinek const char * 4157c478bd9Sstevel@tonic-gate AcpiUtGetDescriptorName ( 4167c478bd9Sstevel@tonic-gate void *Object); 4177c478bd9Sstevel@tonic-gate 418db2bae30SDana Myers const char * 419db2bae30SDana Myers AcpiUtGetReferenceName ( 420db2bae30SDana Myers ACPI_OPERAND_OBJECT *Object); 421db2bae30SDana Myers 4227b1019a6SJerry Jelinek const char * 4237c478bd9Sstevel@tonic-gate AcpiUtGetObjectTypeName ( 4247c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *ObjDesc); 4257c478bd9Sstevel@tonic-gate 4267b1019a6SJerry Jelinek const char * 4277c478bd9Sstevel@tonic-gate AcpiUtGetRegionName ( 4287c478bd9Sstevel@tonic-gate UINT8 SpaceId); 4297c478bd9Sstevel@tonic-gate 4307b1019a6SJerry Jelinek const char * 4317c478bd9Sstevel@tonic-gate AcpiUtGetEventName ( 4327c478bd9Sstevel@tonic-gate UINT32 EventId); 4337c478bd9Sstevel@tonic-gate 434*35786f68SRobert Mustacchi const char * 435*35786f68SRobert Mustacchi AcpiUtGetArgumentTypeName ( 436*35786f68SRobert Mustacchi UINT32 ArgType); 437*35786f68SRobert Mustacchi 4387c478bd9Sstevel@tonic-gate char 4397c478bd9Sstevel@tonic-gate AcpiUtHexToAsciiChar ( 44026f3cdf0SGordon Ross UINT64 Integer, 4417c478bd9Sstevel@tonic-gate UINT32 Position); 4427c478bd9Sstevel@tonic-gate 443*35786f68SRobert Mustacchi ACPI_STATUS 444*35786f68SRobert Mustacchi AcpiUtAsciiToHexByte ( 445*35786f68SRobert Mustacchi char *TwoAsciiChars, 446*35786f68SRobert Mustacchi UINT8 *ReturnByte); 447*35786f68SRobert Mustacchi 4487b1019a6SJerry Jelinek UINT8 4497b1019a6SJerry Jelinek AcpiUtAsciiCharToHex ( 4507b1019a6SJerry Jelinek int HexChar); 4517b1019a6SJerry Jelinek 4527c478bd9Sstevel@tonic-gate BOOLEAN 4537c478bd9Sstevel@tonic-gate AcpiUtValidObjectType ( 4547c478bd9Sstevel@tonic-gate ACPI_OBJECT_TYPE Type); 4557c478bd9Sstevel@tonic-gate 4567c478bd9Sstevel@tonic-gate 4577c478bd9Sstevel@tonic-gate /* 4587c478bd9Sstevel@tonic-gate * utinit - miscellaneous initialization and shutdown 4597c478bd9Sstevel@tonic-gate */ 4607c478bd9Sstevel@tonic-gate ACPI_STATUS 4617c478bd9Sstevel@tonic-gate AcpiUtHardwareInitialize ( 4627c478bd9Sstevel@tonic-gate void); 4637c478bd9Sstevel@tonic-gate 4647c478bd9Sstevel@tonic-gate void 4657c478bd9Sstevel@tonic-gate AcpiUtSubsystemShutdown ( 4667c478bd9Sstevel@tonic-gate void); 4677c478bd9Sstevel@tonic-gate 4687c478bd9Sstevel@tonic-gate 4697c478bd9Sstevel@tonic-gate /* 4707c478bd9Sstevel@tonic-gate * utcopy - Object construction and conversion interfaces 4717c478bd9Sstevel@tonic-gate */ 4727c478bd9Sstevel@tonic-gate ACPI_STATUS 4737c478bd9Sstevel@tonic-gate AcpiUtBuildSimpleObject( 4747c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Obj, 4757c478bd9Sstevel@tonic-gate ACPI_OBJECT *UserObj, 4767c478bd9Sstevel@tonic-gate UINT8 *DataSpace, 4777c478bd9Sstevel@tonic-gate UINT32 *BufferSpaceUsed); 4787c478bd9Sstevel@tonic-gate 4797c478bd9Sstevel@tonic-gate ACPI_STATUS 4807c478bd9Sstevel@tonic-gate AcpiUtBuildPackageObject ( 4817c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Obj, 4827c478bd9Sstevel@tonic-gate UINT8 *Buffer, 4837c478bd9Sstevel@tonic-gate UINT32 *SpaceUsed); 4847c478bd9Sstevel@tonic-gate 4857c478bd9Sstevel@tonic-gate ACPI_STATUS 4867c478bd9Sstevel@tonic-gate AcpiUtCopyIobjectToEobject ( 4877c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Obj, 4887c478bd9Sstevel@tonic-gate ACPI_BUFFER *RetBuffer); 4897c478bd9Sstevel@tonic-gate 4907c478bd9Sstevel@tonic-gate ACPI_STATUS 4917c478bd9Sstevel@tonic-gate AcpiUtCopyEobjectToIobject ( 4927c478bd9Sstevel@tonic-gate ACPI_OBJECT *Obj, 4937c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT **InternalObj); 4947c478bd9Sstevel@tonic-gate 4957c478bd9Sstevel@tonic-gate ACPI_STATUS 4967c478bd9Sstevel@tonic-gate AcpiUtCopyISimpleToIsimple ( 4977c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *SourceObj, 4987c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *DestObj); 4997c478bd9Sstevel@tonic-gate 5007c478bd9Sstevel@tonic-gate ACPI_STATUS 5017c478bd9Sstevel@tonic-gate AcpiUtCopyIobjectToIobject ( 5027c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *SourceDesc, 5037c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT **DestDesc, 5047c478bd9Sstevel@tonic-gate ACPI_WALK_STATE *WalkState); 5057c478bd9Sstevel@tonic-gate 5067c478bd9Sstevel@tonic-gate 5077c478bd9Sstevel@tonic-gate /* 5087c478bd9Sstevel@tonic-gate * utcreate - Object creation 5097c478bd9Sstevel@tonic-gate */ 5107c478bd9Sstevel@tonic-gate ACPI_STATUS 5117c478bd9Sstevel@tonic-gate AcpiUtUpdateObjectReference ( 5127c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object, 5137c478bd9Sstevel@tonic-gate UINT16 Action); 5147c478bd9Sstevel@tonic-gate 5157c478bd9Sstevel@tonic-gate 5167c478bd9Sstevel@tonic-gate /* 5177c478bd9Sstevel@tonic-gate * utdebug - Debug interfaces 5187c478bd9Sstevel@tonic-gate */ 5197c478bd9Sstevel@tonic-gate void 5207c478bd9Sstevel@tonic-gate AcpiUtInitStackPtrTrace ( 5217c478bd9Sstevel@tonic-gate void); 5227c478bd9Sstevel@tonic-gate 5237c478bd9Sstevel@tonic-gate void 5247c478bd9Sstevel@tonic-gate AcpiUtTrackStackPtr ( 5257c478bd9Sstevel@tonic-gate void); 5267c478bd9Sstevel@tonic-gate 5277c478bd9Sstevel@tonic-gate void 5287c478bd9Sstevel@tonic-gate AcpiUtTrace ( 5297c478bd9Sstevel@tonic-gate UINT32 LineNumber, 530186507a7Smyers const char *FunctionName, 531db2bae30SDana Myers const char *ModuleName, 532450d6964Smyers UINT32 ComponentId); 5337c478bd9Sstevel@tonic-gate 5347c478bd9Sstevel@tonic-gate void 5357c478bd9Sstevel@tonic-gate AcpiUtTracePtr ( 5367c478bd9Sstevel@tonic-gate UINT32 LineNumber, 537186507a7Smyers const char *FunctionName, 538db2bae30SDana Myers const char *ModuleName, 539450d6964Smyers UINT32 ComponentId, 5407b1019a6SJerry Jelinek const void *Pointer); 5417c478bd9Sstevel@tonic-gate 5427c478bd9Sstevel@tonic-gate void 5437c478bd9Sstevel@tonic-gate AcpiUtTraceU32 ( 5447c478bd9Sstevel@tonic-gate UINT32 LineNumber, 545186507a7Smyers const char *FunctionName, 546db2bae30SDana Myers const char *ModuleName, 547450d6964Smyers UINT32 ComponentId, 5487c478bd9Sstevel@tonic-gate UINT32 Integer); 5497c478bd9Sstevel@tonic-gate 5507c478bd9Sstevel@tonic-gate void 5517c478bd9Sstevel@tonic-gate AcpiUtTraceStr ( 5527c478bd9Sstevel@tonic-gate UINT32 LineNumber, 553186507a7Smyers const char *FunctionName, 554db2bae30SDana Myers const char *ModuleName, 555450d6964Smyers UINT32 ComponentId, 5567b1019a6SJerry Jelinek const char *String); 5577c478bd9Sstevel@tonic-gate 5587c478bd9Sstevel@tonic-gate void 5597c478bd9Sstevel@tonic-gate AcpiUtExit ( 5607c478bd9Sstevel@tonic-gate UINT32 LineNumber, 561186507a7Smyers const char *FunctionName, 562db2bae30SDana Myers const char *ModuleName, 563450d6964Smyers UINT32 ComponentId); 5647c478bd9Sstevel@tonic-gate 5657c478bd9Sstevel@tonic-gate void 5667c478bd9Sstevel@tonic-gate AcpiUtStatusExit ( 5677c478bd9Sstevel@tonic-gate UINT32 LineNumber, 568186507a7Smyers const char *FunctionName, 569db2bae30SDana Myers const char *ModuleName, 570450d6964Smyers UINT32 ComponentId, 5717c478bd9Sstevel@tonic-gate ACPI_STATUS Status); 5727c478bd9Sstevel@tonic-gate 5737c478bd9Sstevel@tonic-gate void 5747c478bd9Sstevel@tonic-gate AcpiUtValueExit ( 5757c478bd9Sstevel@tonic-gate UINT32 LineNumber, 576186507a7Smyers const char *FunctionName, 577db2bae30SDana Myers const char *ModuleName, 578450d6964Smyers UINT32 ComponentId, 57926f3cdf0SGordon Ross UINT64 Value); 5807c478bd9Sstevel@tonic-gate 5817c478bd9Sstevel@tonic-gate void 5827c478bd9Sstevel@tonic-gate AcpiUtPtrExit ( 5837c478bd9Sstevel@tonic-gate UINT32 LineNumber, 584186507a7Smyers const char *FunctionName, 585db2bae30SDana Myers const char *ModuleName, 586450d6964Smyers UINT32 ComponentId, 5877c478bd9Sstevel@tonic-gate UINT8 *Ptr); 5887c478bd9Sstevel@tonic-gate 5897c478bd9Sstevel@tonic-gate void 5907b1019a6SJerry Jelinek AcpiUtStrExit ( 5917b1019a6SJerry Jelinek UINT32 LineNumber, 5927b1019a6SJerry Jelinek const char *FunctionName, 5937b1019a6SJerry Jelinek const char *ModuleName, 5947b1019a6SJerry Jelinek UINT32 ComponentId, 5957b1019a6SJerry Jelinek const char *String); 5967b1019a6SJerry Jelinek 5977b1019a6SJerry Jelinek void 5987b1019a6SJerry Jelinek AcpiUtDebugDumpBuffer ( 5997b1019a6SJerry Jelinek UINT8 *Buffer, 6007b1019a6SJerry Jelinek UINT32 Count, 6017b1019a6SJerry Jelinek UINT32 Display, 6027b1019a6SJerry Jelinek UINT32 ComponentId); 6037b1019a6SJerry Jelinek 6047b1019a6SJerry Jelinek void 6057c478bd9Sstevel@tonic-gate AcpiUtDumpBuffer ( 6067c478bd9Sstevel@tonic-gate UINT8 *Buffer, 6077c478bd9Sstevel@tonic-gate UINT32 Count, 6087c478bd9Sstevel@tonic-gate UINT32 Display, 6097b1019a6SJerry Jelinek UINT32 Offset); 6107c478bd9Sstevel@tonic-gate 6117b1019a6SJerry Jelinek #ifdef ACPI_APPLICATION 61230082d0cSmyers void 6137b1019a6SJerry Jelinek AcpiUtDumpBufferToFile ( 6147b1019a6SJerry Jelinek ACPI_FILE File, 61527f7c583Smyers UINT8 *Buffer, 61627f7c583Smyers UINT32 Count, 6177b1019a6SJerry Jelinek UINT32 Display, 6187b1019a6SJerry Jelinek UINT32 BaseOffset); 6197b1019a6SJerry Jelinek #endif 62027f7c583Smyers 62127f7c583Smyers void 62230082d0cSmyers AcpiUtReportError ( 62330082d0cSmyers char *ModuleName, 62430082d0cSmyers UINT32 LineNumber); 62530082d0cSmyers 62630082d0cSmyers void 62730082d0cSmyers AcpiUtReportInfo ( 62830082d0cSmyers char *ModuleName, 62930082d0cSmyers UINT32 LineNumber); 63030082d0cSmyers 63130082d0cSmyers void 63230082d0cSmyers AcpiUtReportWarning ( 63330082d0cSmyers char *ModuleName, 63430082d0cSmyers UINT32 LineNumber); 63530082d0cSmyers 6367b1019a6SJerry Jelinek 6377c478bd9Sstevel@tonic-gate /* 6387c478bd9Sstevel@tonic-gate * utdelete - Object deletion and reference counts 6397c478bd9Sstevel@tonic-gate */ 6407c478bd9Sstevel@tonic-gate void 6417c478bd9Sstevel@tonic-gate AcpiUtAddReference ( 6427c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object); 6437c478bd9Sstevel@tonic-gate 6447c478bd9Sstevel@tonic-gate void 6457c478bd9Sstevel@tonic-gate AcpiUtRemoveReference ( 6467c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object); 6477c478bd9Sstevel@tonic-gate 6487c478bd9Sstevel@tonic-gate void 6497c478bd9Sstevel@tonic-gate AcpiUtDeleteInternalPackageObject ( 6507c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object); 6517c478bd9Sstevel@tonic-gate 6527c478bd9Sstevel@tonic-gate void 6537c478bd9Sstevel@tonic-gate AcpiUtDeleteInternalSimpleObject ( 6547c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object); 6557c478bd9Sstevel@tonic-gate 6567c478bd9Sstevel@tonic-gate void 6577c478bd9Sstevel@tonic-gate AcpiUtDeleteInternalObjectList ( 6587c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT **ObjList); 6597c478bd9Sstevel@tonic-gate 6607c478bd9Sstevel@tonic-gate 6617c478bd9Sstevel@tonic-gate /* 6627c478bd9Sstevel@tonic-gate * uteval - object evaluation 6637c478bd9Sstevel@tonic-gate */ 6647c478bd9Sstevel@tonic-gate ACPI_STATUS 6657c478bd9Sstevel@tonic-gate AcpiUtEvaluateObject ( 6667c478bd9Sstevel@tonic-gate ACPI_NAMESPACE_NODE *PrefixNode, 6677b1019a6SJerry Jelinek const char *Path, 6687c478bd9Sstevel@tonic-gate UINT32 ExpectedReturnBtypes, 6697c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT **ReturnDesc); 6707c478bd9Sstevel@tonic-gate 6717c478bd9Sstevel@tonic-gate ACPI_STATUS 6727c478bd9Sstevel@tonic-gate AcpiUtEvaluateNumericObject ( 6737b1019a6SJerry Jelinek const char *ObjectName, 6747c478bd9Sstevel@tonic-gate ACPI_NAMESPACE_NODE *DeviceNode, 67526f3cdf0SGordon Ross UINT64 *Value); 6767c478bd9Sstevel@tonic-gate 6777c478bd9Sstevel@tonic-gate ACPI_STATUS 6787c478bd9Sstevel@tonic-gate AcpiUtExecute_STA ( 6797c478bd9Sstevel@tonic-gate ACPI_NAMESPACE_NODE *DeviceNode, 6807c478bd9Sstevel@tonic-gate UINT32 *StatusFlags); 6817c478bd9Sstevel@tonic-gate 6827c478bd9Sstevel@tonic-gate ACPI_STATUS 68357190917SDana Myers AcpiUtExecutePowerMethods ( 6847c478bd9Sstevel@tonic-gate ACPI_NAMESPACE_NODE *DeviceNode, 68557190917SDana Myers const char **MethodNames, 68657190917SDana Myers UINT8 MethodCount, 68757190917SDana Myers UINT8 *OutValues); 68857190917SDana Myers 68957190917SDana Myers 69057190917SDana Myers /* 69157190917SDana Myers * utids - device ID support 69257190917SDana Myers */ 69357190917SDana Myers ACPI_STATUS 69457190917SDana Myers AcpiUtExecute_HID ( 69557190917SDana Myers ACPI_NAMESPACE_NODE *DeviceNode, 6967b1019a6SJerry Jelinek ACPI_PNP_DEVICE_ID **ReturnId); 6977c478bd9Sstevel@tonic-gate 6987c478bd9Sstevel@tonic-gate ACPI_STATUS 69957190917SDana Myers AcpiUtExecute_UID ( 7007c478bd9Sstevel@tonic-gate ACPI_NAMESPACE_NODE *DeviceNode, 7017b1019a6SJerry Jelinek ACPI_PNP_DEVICE_ID **ReturnId); 70257190917SDana Myers 70357190917SDana Myers ACPI_STATUS 70457190917SDana Myers AcpiUtExecute_CID ( 70557190917SDana Myers ACPI_NAMESPACE_NODE *DeviceNode, 7067b1019a6SJerry Jelinek ACPI_PNP_DEVICE_ID_LIST **ReturnCidList); 7077b1019a6SJerry Jelinek 7087b1019a6SJerry Jelinek ACPI_STATUS 7097b1019a6SJerry Jelinek AcpiUtExecute_CLS ( 7107b1019a6SJerry Jelinek ACPI_NAMESPACE_NODE *DeviceNode, 7117b1019a6SJerry Jelinek ACPI_PNP_DEVICE_ID **ReturnId); 71257190917SDana Myers 7137c478bd9Sstevel@tonic-gate 714aa2aa9a6SDana Myers /* 715aa2aa9a6SDana Myers * utlock - reader/writer locks 716aa2aa9a6SDana Myers */ 717aa2aa9a6SDana Myers ACPI_STATUS 718aa2aa9a6SDana Myers AcpiUtCreateRwLock ( 719aa2aa9a6SDana Myers ACPI_RW_LOCK *Lock); 720aa2aa9a6SDana Myers 721aa2aa9a6SDana Myers void 722aa2aa9a6SDana Myers AcpiUtDeleteRwLock ( 723aa2aa9a6SDana Myers ACPI_RW_LOCK *Lock); 724aa2aa9a6SDana Myers 725aa2aa9a6SDana Myers ACPI_STATUS 726aa2aa9a6SDana Myers AcpiUtAcquireReadLock ( 727aa2aa9a6SDana Myers ACPI_RW_LOCK *Lock); 728aa2aa9a6SDana Myers 729aa2aa9a6SDana Myers ACPI_STATUS 730aa2aa9a6SDana Myers AcpiUtReleaseReadLock ( 731aa2aa9a6SDana Myers ACPI_RW_LOCK *Lock); 732aa2aa9a6SDana Myers 733aa2aa9a6SDana Myers ACPI_STATUS 734aa2aa9a6SDana Myers AcpiUtAcquireWriteLock ( 735aa2aa9a6SDana Myers ACPI_RW_LOCK *Lock); 736aa2aa9a6SDana Myers 737aa2aa9a6SDana Myers void 738aa2aa9a6SDana Myers AcpiUtReleaseWriteLock ( 739aa2aa9a6SDana Myers ACPI_RW_LOCK *Lock); 740aa2aa9a6SDana Myers 7417c478bd9Sstevel@tonic-gate 7427c478bd9Sstevel@tonic-gate /* 7437c478bd9Sstevel@tonic-gate * utobject - internal object create/delete/cache routines 7447c478bd9Sstevel@tonic-gate */ 7457c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT * 7467c478bd9Sstevel@tonic-gate AcpiUtCreateInternalObjectDbg ( 747db2bae30SDana Myers const char *ModuleName, 7487c478bd9Sstevel@tonic-gate UINT32 LineNumber, 7497c478bd9Sstevel@tonic-gate UINT32 ComponentId, 7507c478bd9Sstevel@tonic-gate ACPI_OBJECT_TYPE Type); 7517c478bd9Sstevel@tonic-gate 7527c478bd9Sstevel@tonic-gate void * 7537c478bd9Sstevel@tonic-gate AcpiUtAllocateObjectDescDbg ( 754db2bae30SDana Myers const char *ModuleName, 7557c478bd9Sstevel@tonic-gate UINT32 LineNumber, 7567c478bd9Sstevel@tonic-gate UINT32 ComponentId); 7577c478bd9Sstevel@tonic-gate 758450d6964Smyers #define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t) 759450d6964Smyers #define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT) 7607c478bd9Sstevel@tonic-gate 7617c478bd9Sstevel@tonic-gate void 7627c478bd9Sstevel@tonic-gate AcpiUtDeleteObjectDesc ( 7637c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object); 7647c478bd9Sstevel@tonic-gate 7657c478bd9Sstevel@tonic-gate BOOLEAN 7667c478bd9Sstevel@tonic-gate AcpiUtValidInternalObject ( 7677c478bd9Sstevel@tonic-gate void *Object); 7687c478bd9Sstevel@tonic-gate 7697c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT * 770db2bae30SDana Myers AcpiUtCreatePackageObject ( 771db2bae30SDana Myers UINT32 Count); 772db2bae30SDana Myers 773db2bae30SDana Myers ACPI_OPERAND_OBJECT * 77457190917SDana Myers AcpiUtCreateIntegerObject ( 77557190917SDana Myers UINT64 Value); 77657190917SDana Myers 77757190917SDana Myers ACPI_OPERAND_OBJECT * 7787c478bd9Sstevel@tonic-gate AcpiUtCreateBufferObject ( 7797c478bd9Sstevel@tonic-gate ACPI_SIZE BufferSize); 7807c478bd9Sstevel@tonic-gate 7817c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT * 7827c478bd9Sstevel@tonic-gate AcpiUtCreateStringObject ( 7837c478bd9Sstevel@tonic-gate ACPI_SIZE StringSize); 7847c478bd9Sstevel@tonic-gate 7857c478bd9Sstevel@tonic-gate ACPI_STATUS 7867c478bd9Sstevel@tonic-gate AcpiUtGetObjectSize( 7877c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Obj, 7887c478bd9Sstevel@tonic-gate ACPI_SIZE *ObjLength); 7897c478bd9Sstevel@tonic-gate 7907c478bd9Sstevel@tonic-gate 7917c478bd9Sstevel@tonic-gate /* 79226f3cdf0SGordon Ross * utosi - Support for the _OSI predefined control method 79326f3cdf0SGordon Ross */ 79426f3cdf0SGordon Ross ACPI_STATUS 79526f3cdf0SGordon Ross AcpiUtInitializeInterfaces ( 79626f3cdf0SGordon Ross void); 79726f3cdf0SGordon Ross 7987b1019a6SJerry Jelinek ACPI_STATUS 79926f3cdf0SGordon Ross AcpiUtInterfaceTerminate ( 80026f3cdf0SGordon Ross void); 80126f3cdf0SGordon Ross 80226f3cdf0SGordon Ross ACPI_STATUS 80326f3cdf0SGordon Ross AcpiUtInstallInterface ( 80426f3cdf0SGordon Ross ACPI_STRING InterfaceName); 80526f3cdf0SGordon Ross 80626f3cdf0SGordon Ross ACPI_STATUS 80726f3cdf0SGordon Ross AcpiUtRemoveInterface ( 80826f3cdf0SGordon Ross ACPI_STRING InterfaceName); 80926f3cdf0SGordon Ross 8107b1019a6SJerry Jelinek ACPI_STATUS 8117b1019a6SJerry Jelinek AcpiUtUpdateInterfaces ( 8127b1019a6SJerry Jelinek UINT8 Action); 8137b1019a6SJerry Jelinek 81426f3cdf0SGordon Ross ACPI_INTERFACE_INFO * 81526f3cdf0SGordon Ross AcpiUtGetInterface ( 81626f3cdf0SGordon Ross ACPI_STRING InterfaceName); 81726f3cdf0SGordon Ross 81826f3cdf0SGordon Ross ACPI_STATUS 81926f3cdf0SGordon Ross AcpiUtOsiImplementation ( 82026f3cdf0SGordon Ross ACPI_WALK_STATE *WalkState); 82126f3cdf0SGordon Ross 82226f3cdf0SGordon Ross 82326f3cdf0SGordon Ross /* 8247b1019a6SJerry Jelinek * utpredef - support for predefined names 8257b1019a6SJerry Jelinek */ 8267b1019a6SJerry Jelinek const ACPI_PREDEFINED_INFO * 8277b1019a6SJerry Jelinek AcpiUtGetNextPredefinedMethod ( 8287b1019a6SJerry Jelinek const ACPI_PREDEFINED_INFO *ThisName); 8297b1019a6SJerry Jelinek 8307b1019a6SJerry Jelinek const ACPI_PREDEFINED_INFO * 8317b1019a6SJerry Jelinek AcpiUtMatchPredefinedMethod ( 8327b1019a6SJerry Jelinek char *Name); 8337b1019a6SJerry Jelinek 8347b1019a6SJerry Jelinek void 8357b1019a6SJerry Jelinek AcpiUtGetExpectedReturnTypes ( 8367b1019a6SJerry Jelinek char *Buffer, 8377b1019a6SJerry Jelinek UINT32 ExpectedBtypes); 8387b1019a6SJerry Jelinek 8397b1019a6SJerry Jelinek #if (defined ACPI_ASL_COMPILER || defined ACPI_HELP_APP) 8407b1019a6SJerry Jelinek const ACPI_PREDEFINED_INFO * 8417b1019a6SJerry Jelinek AcpiUtMatchResourceName ( 8427b1019a6SJerry Jelinek char *Name); 8437b1019a6SJerry Jelinek 8447b1019a6SJerry Jelinek void 8457b1019a6SJerry Jelinek AcpiUtDisplayPredefinedMethod ( 8467b1019a6SJerry Jelinek char *Buffer, 8477b1019a6SJerry Jelinek const ACPI_PREDEFINED_INFO *ThisName, 8487b1019a6SJerry Jelinek BOOLEAN MultiLine); 8497b1019a6SJerry Jelinek 8507b1019a6SJerry Jelinek UINT32 8517b1019a6SJerry Jelinek AcpiUtGetResourceBitWidth ( 8527b1019a6SJerry Jelinek char *Buffer, 8537b1019a6SJerry Jelinek UINT16 Types); 8547b1019a6SJerry Jelinek #endif 8557b1019a6SJerry Jelinek 8567b1019a6SJerry Jelinek 8577b1019a6SJerry Jelinek /* 8587c478bd9Sstevel@tonic-gate * utstate - Generic state creation/cache routines 8597c478bd9Sstevel@tonic-gate */ 8607c478bd9Sstevel@tonic-gate void 8617c478bd9Sstevel@tonic-gate AcpiUtPushGenericState ( 8627c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE **ListHead, 8637c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE *State); 8647c478bd9Sstevel@tonic-gate 8657c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE * 8667c478bd9Sstevel@tonic-gate AcpiUtPopGenericState ( 8677c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE **ListHead); 8687c478bd9Sstevel@tonic-gate 8697c478bd9Sstevel@tonic-gate 8707c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE * 8717c478bd9Sstevel@tonic-gate AcpiUtCreateGenericState ( 8727c478bd9Sstevel@tonic-gate void); 8737c478bd9Sstevel@tonic-gate 8747c478bd9Sstevel@tonic-gate ACPI_THREAD_STATE * 8757c478bd9Sstevel@tonic-gate AcpiUtCreateThreadState ( 8767c478bd9Sstevel@tonic-gate void); 8777c478bd9Sstevel@tonic-gate 8787c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE * 8797c478bd9Sstevel@tonic-gate AcpiUtCreateUpdateState ( 8807c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object, 8817c478bd9Sstevel@tonic-gate UINT16 Action); 8827c478bd9Sstevel@tonic-gate 8837c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE * 8847c478bd9Sstevel@tonic-gate AcpiUtCreatePkgState ( 8857c478bd9Sstevel@tonic-gate void *InternalObject, 8867c478bd9Sstevel@tonic-gate void *ExternalObject, 887*35786f68SRobert Mustacchi UINT32 Index); 8887c478bd9Sstevel@tonic-gate 8897c478bd9Sstevel@tonic-gate ACPI_STATUS 8907c478bd9Sstevel@tonic-gate AcpiUtCreateUpdateStateAndPush ( 8917c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *Object, 8927c478bd9Sstevel@tonic-gate UINT16 Action, 8937c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE **StateList); 8947c478bd9Sstevel@tonic-gate 8957c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE * 8967c478bd9Sstevel@tonic-gate AcpiUtCreateControlState ( 8977c478bd9Sstevel@tonic-gate void); 8987c478bd9Sstevel@tonic-gate 8997c478bd9Sstevel@tonic-gate void 9007c478bd9Sstevel@tonic-gate AcpiUtDeleteGenericState ( 9017c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE *State); 9027c478bd9Sstevel@tonic-gate 9037c478bd9Sstevel@tonic-gate 9047c478bd9Sstevel@tonic-gate /* 9057c478bd9Sstevel@tonic-gate * utmath 9067c478bd9Sstevel@tonic-gate */ 9077c478bd9Sstevel@tonic-gate ACPI_STATUS 9087c478bd9Sstevel@tonic-gate AcpiUtDivide ( 90926f3cdf0SGordon Ross UINT64 InDividend, 91026f3cdf0SGordon Ross UINT64 InDivisor, 91126f3cdf0SGordon Ross UINT64 *OutQuotient, 91226f3cdf0SGordon Ross UINT64 *OutRemainder); 9137c478bd9Sstevel@tonic-gate 9147c478bd9Sstevel@tonic-gate ACPI_STATUS 9157c478bd9Sstevel@tonic-gate AcpiUtShortDivide ( 91626f3cdf0SGordon Ross UINT64 InDividend, 9177c478bd9Sstevel@tonic-gate UINT32 Divisor, 91826f3cdf0SGordon Ross UINT64 *OutQuotient, 9197c478bd9Sstevel@tonic-gate UINT32 *OutRemainder); 9207c478bd9Sstevel@tonic-gate 921*35786f68SRobert Mustacchi ACPI_STATUS 922*35786f68SRobert Mustacchi AcpiUtShortMultiply ( 923*35786f68SRobert Mustacchi UINT64 InMultiplicand, 924*35786f68SRobert Mustacchi UINT32 Multiplier, 925*35786f68SRobert Mustacchi UINT64 *Outproduct); 926*35786f68SRobert Mustacchi 927*35786f68SRobert Mustacchi ACPI_STATUS 928*35786f68SRobert Mustacchi AcpiUtShortShiftLeft ( 929*35786f68SRobert Mustacchi UINT64 Operand, 930*35786f68SRobert Mustacchi UINT32 Count, 931*35786f68SRobert Mustacchi UINT64 *OutResult); 932*35786f68SRobert Mustacchi 933*35786f68SRobert Mustacchi ACPI_STATUS 934*35786f68SRobert Mustacchi AcpiUtShortShiftRight ( 935*35786f68SRobert Mustacchi UINT64 Operand, 936*35786f68SRobert Mustacchi UINT32 Count, 937*35786f68SRobert Mustacchi UINT64 *OutResult); 938*35786f68SRobert Mustacchi 9397b1019a6SJerry Jelinek 9407c478bd9Sstevel@tonic-gate /* 9417c478bd9Sstevel@tonic-gate * utmisc 9427c478bd9Sstevel@tonic-gate */ 9437b1019a6SJerry Jelinek const ACPI_EXCEPTION_INFO * 944db2bae30SDana Myers AcpiUtValidateException ( 945db2bae30SDana Myers ACPI_STATUS Status); 946db2bae30SDana Myers 94727f7c583Smyers BOOLEAN 94857190917SDana Myers AcpiUtIsPciRootBridge ( 94957190917SDana Myers char *Id); 95057190917SDana Myers 9517b1019a6SJerry Jelinek #if (defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP || defined ACPI_NAMES_APP) 95257190917SDana Myers BOOLEAN 95327f7c583Smyers AcpiUtIsAmlTable ( 95427f7c583Smyers ACPI_TABLE_HEADER *Table); 9557b1019a6SJerry Jelinek #endif 956450d6964Smyers 957450d6964Smyers ACPI_STATUS 9587c478bd9Sstevel@tonic-gate AcpiUtWalkPackageTree ( 9597c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *SourceObject, 9607c478bd9Sstevel@tonic-gate void *TargetObject, 9617c478bd9Sstevel@tonic-gate ACPI_PKG_CALLBACK WalkCallback, 9627c478bd9Sstevel@tonic-gate void *Context); 9637c478bd9Sstevel@tonic-gate 9647c478bd9Sstevel@tonic-gate /* Values for Base above (16=Hex, 10=Decimal) */ 9657c478bd9Sstevel@tonic-gate 9667c478bd9Sstevel@tonic-gate #define ACPI_ANY_BASE 0 9677c478bd9Sstevel@tonic-gate 9687b1019a6SJerry Jelinek 96927f7c583Smyers UINT32 97027f7c583Smyers AcpiUtDwordByteSwap ( 97127f7c583Smyers UINT32 Value); 97227f7c583Smyers 97327f7c583Smyers void 97427f7c583Smyers AcpiUtSetIntegerWidth ( 97527f7c583Smyers UINT8 Revision); 97627f7c583Smyers 97727f7c583Smyers #ifdef ACPI_DEBUG_OUTPUT 97827f7c583Smyers void 97927f7c583Smyers AcpiUtDisplayInitPathname ( 98027f7c583Smyers UINT8 Type, 98127f7c583Smyers ACPI_NAMESPACE_NODE *ObjHandle, 9827b1019a6SJerry Jelinek const char *Path); 98327f7c583Smyers #endif 98427f7c583Smyers 98527f7c583Smyers 98627f7c583Smyers /* 9877b1019a6SJerry Jelinek * utownerid - Support for Table/Method Owner IDs 9887b1019a6SJerry Jelinek */ 9897b1019a6SJerry Jelinek ACPI_STATUS 9907b1019a6SJerry Jelinek AcpiUtAllocateOwnerId ( 9917b1019a6SJerry Jelinek ACPI_OWNER_ID *OwnerId); 9927b1019a6SJerry Jelinek 9937b1019a6SJerry Jelinek void 9947b1019a6SJerry Jelinek AcpiUtReleaseOwnerId ( 9957b1019a6SJerry Jelinek ACPI_OWNER_ID *OwnerId); 9967b1019a6SJerry Jelinek 9977b1019a6SJerry Jelinek 9987b1019a6SJerry Jelinek /* 99927f7c583Smyers * utresrc 100027f7c583Smyers */ 100127f7c583Smyers ACPI_STATUS 100227f7c583Smyers AcpiUtWalkAmlResources ( 10037b1019a6SJerry Jelinek ACPI_WALK_STATE *WalkState, 100427f7c583Smyers UINT8 *Aml, 100527f7c583Smyers ACPI_SIZE AmlLength, 100627f7c583Smyers ACPI_WALK_AML_CALLBACK UserFunction, 10077b1019a6SJerry Jelinek void **Context); 100827f7c583Smyers 100930082d0cSmyers ACPI_STATUS 101030082d0cSmyers AcpiUtValidateResource ( 10117b1019a6SJerry Jelinek ACPI_WALK_STATE *WalkState, 101230082d0cSmyers void *Aml, 101330082d0cSmyers UINT8 *ReturnIndex); 101430082d0cSmyers 101530082d0cSmyers UINT32 101630082d0cSmyers AcpiUtGetDescriptorLength ( 101730082d0cSmyers void *Aml); 101830082d0cSmyers 101930082d0cSmyers UINT16 102030082d0cSmyers AcpiUtGetResourceLength ( 102130082d0cSmyers void *Aml); 10227c478bd9Sstevel@tonic-gate 10237c478bd9Sstevel@tonic-gate UINT8 102430082d0cSmyers AcpiUtGetResourceHeaderLength ( 102530082d0cSmyers void *Aml); 102630082d0cSmyers 102730082d0cSmyers UINT8 102830082d0cSmyers AcpiUtGetResourceType ( 102930082d0cSmyers void *Aml); 103030082d0cSmyers 103130082d0cSmyers ACPI_STATUS 103230082d0cSmyers AcpiUtGetResourceEndTag ( 103330082d0cSmyers ACPI_OPERAND_OBJECT *ObjDesc, 103430082d0cSmyers UINT8 **EndTag); 10357c478bd9Sstevel@tonic-gate 10367c478bd9Sstevel@tonic-gate 10377c478bd9Sstevel@tonic-gate /* 10387b1019a6SJerry Jelinek * utstring - String and character utilities 10397b1019a6SJerry Jelinek */ 10407b1019a6SJerry Jelinek void 10417b1019a6SJerry Jelinek AcpiUtPrintString ( 10427b1019a6SJerry Jelinek char *String, 10437b1019a6SJerry Jelinek UINT16 MaxLength); 10447b1019a6SJerry Jelinek 10457b1019a6SJerry Jelinek #if defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP 10467b1019a6SJerry Jelinek void 10477b1019a6SJerry Jelinek UtConvertBackslashes ( 10487b1019a6SJerry Jelinek char *Pathname); 10497b1019a6SJerry Jelinek #endif 10507b1019a6SJerry Jelinek 10517b1019a6SJerry Jelinek void 10527b1019a6SJerry Jelinek AcpiUtRepairName ( 10537b1019a6SJerry Jelinek char *Name); 10547b1019a6SJerry Jelinek 1055*35786f68SRobert Mustacchi #if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION) || defined (ACPI_DEBUG_OUTPUT) 10567b1019a6SJerry Jelinek BOOLEAN 10577b1019a6SJerry Jelinek AcpiUtSafeStrcpy ( 10587b1019a6SJerry Jelinek char *Dest, 10597b1019a6SJerry Jelinek ACPI_SIZE DestSize, 10607b1019a6SJerry Jelinek char *Source); 10617b1019a6SJerry Jelinek 1062*35786f68SRobert Mustacchi void 1063*35786f68SRobert Mustacchi AcpiUtSafeStrncpy ( 1064*35786f68SRobert Mustacchi char *Dest, 1065*35786f68SRobert Mustacchi char *Source, 1066*35786f68SRobert Mustacchi ACPI_SIZE DestSize); 1067*35786f68SRobert Mustacchi 10687b1019a6SJerry Jelinek BOOLEAN 10697b1019a6SJerry Jelinek AcpiUtSafeStrcat ( 10707b1019a6SJerry Jelinek char *Dest, 10717b1019a6SJerry Jelinek ACPI_SIZE DestSize, 10727b1019a6SJerry Jelinek char *Source); 10737b1019a6SJerry Jelinek 10747b1019a6SJerry Jelinek BOOLEAN 10757b1019a6SJerry Jelinek AcpiUtSafeStrncat ( 10767b1019a6SJerry Jelinek char *Dest, 10777b1019a6SJerry Jelinek ACPI_SIZE DestSize, 10787b1019a6SJerry Jelinek char *Source, 10797b1019a6SJerry Jelinek ACPI_SIZE MaxTransferLength); 10807b1019a6SJerry Jelinek #endif 10817b1019a6SJerry Jelinek 10827b1019a6SJerry Jelinek 10837b1019a6SJerry Jelinek /* 1084450d6964Smyers * utmutex - mutex support 1085450d6964Smyers */ 1086450d6964Smyers ACPI_STATUS 1087450d6964Smyers AcpiUtMutexInitialize ( 1088450d6964Smyers void); 1089450d6964Smyers 1090450d6964Smyers void 1091450d6964Smyers AcpiUtMutexTerminate ( 1092450d6964Smyers void); 1093450d6964Smyers 1094450d6964Smyers ACPI_STATUS 1095450d6964Smyers AcpiUtAcquireMutex ( 1096450d6964Smyers ACPI_MUTEX_HANDLE MutexId); 1097450d6964Smyers 1098450d6964Smyers ACPI_STATUS 1099450d6964Smyers AcpiUtReleaseMutex ( 1100450d6964Smyers ACPI_MUTEX_HANDLE MutexId); 1101450d6964Smyers 1102450d6964Smyers 1103450d6964Smyers /* 11047c478bd9Sstevel@tonic-gate * utalloc - memory allocation and object caching 11057c478bd9Sstevel@tonic-gate */ 1106450d6964Smyers ACPI_STATUS 1107450d6964Smyers AcpiUtCreateCaches ( 1108450d6964Smyers void); 11097c478bd9Sstevel@tonic-gate 1110450d6964Smyers ACPI_STATUS 1111450d6964Smyers AcpiUtDeleteCaches ( 1112450d6964Smyers void); 11137c478bd9Sstevel@tonic-gate 11147c478bd9Sstevel@tonic-gate ACPI_STATUS 11157c478bd9Sstevel@tonic-gate AcpiUtValidateBuffer ( 11167c478bd9Sstevel@tonic-gate ACPI_BUFFER *Buffer); 11177c478bd9Sstevel@tonic-gate 11187c478bd9Sstevel@tonic-gate ACPI_STATUS 11197c478bd9Sstevel@tonic-gate AcpiUtInitializeBuffer ( 11207c478bd9Sstevel@tonic-gate ACPI_BUFFER *Buffer, 11217c478bd9Sstevel@tonic-gate ACPI_SIZE RequiredLength); 11227c478bd9Sstevel@tonic-gate 11237c478bd9Sstevel@tonic-gate #ifdef ACPI_DBG_TRACK_ALLOCATIONS 11247c478bd9Sstevel@tonic-gate void * 11257c478bd9Sstevel@tonic-gate AcpiUtAllocateAndTrack ( 11267c478bd9Sstevel@tonic-gate ACPI_SIZE Size, 11277c478bd9Sstevel@tonic-gate UINT32 Component, 1128db2bae30SDana Myers const char *Module, 11297c478bd9Sstevel@tonic-gate UINT32 Line); 11307c478bd9Sstevel@tonic-gate 11317c478bd9Sstevel@tonic-gate void * 113227f7c583Smyers AcpiUtAllocateZeroedAndTrack ( 11337c478bd9Sstevel@tonic-gate ACPI_SIZE Size, 11347c478bd9Sstevel@tonic-gate UINT32 Component, 1135db2bae30SDana Myers const char *Module, 11367c478bd9Sstevel@tonic-gate UINT32 Line); 11377c478bd9Sstevel@tonic-gate 11387c478bd9Sstevel@tonic-gate void 11397c478bd9Sstevel@tonic-gate AcpiUtFreeAndTrack ( 11407c478bd9Sstevel@tonic-gate void *Address, 11417c478bd9Sstevel@tonic-gate UINT32 Component, 1142db2bae30SDana Myers const char *Module, 11437c478bd9Sstevel@tonic-gate UINT32 Line); 11447c478bd9Sstevel@tonic-gate 11457c478bd9Sstevel@tonic-gate void 11467c478bd9Sstevel@tonic-gate AcpiUtDumpAllocationInfo ( 11477c478bd9Sstevel@tonic-gate void); 11487c478bd9Sstevel@tonic-gate 11497c478bd9Sstevel@tonic-gate void 11507c478bd9Sstevel@tonic-gate AcpiUtDumpAllocations ( 11517c478bd9Sstevel@tonic-gate UINT32 Component, 1152db2bae30SDana Myers const char *Module); 115327f7c583Smyers 115427f7c583Smyers ACPI_STATUS 115527f7c583Smyers AcpiUtCreateList ( 11567b1019a6SJerry Jelinek const char *ListName, 115727f7c583Smyers UINT16 ObjectSize, 115827f7c583Smyers ACPI_MEMORY_LIST **ReturnCache); 115927f7c583Smyers 116026f3cdf0SGordon Ross #endif /* ACPI_DBG_TRACK_ALLOCATIONS */ 116127f7c583Smyers 116226f3cdf0SGordon Ross 116326f3cdf0SGordon Ross /* 11647b1019a6SJerry Jelinek * utaddress - address range check 11657b1019a6SJerry Jelinek */ 11667b1019a6SJerry Jelinek ACPI_STATUS 11677b1019a6SJerry Jelinek AcpiUtAddAddressRange ( 11687b1019a6SJerry Jelinek ACPI_ADR_SPACE_TYPE SpaceId, 11697b1019a6SJerry Jelinek ACPI_PHYSICAL_ADDRESS Address, 11707b1019a6SJerry Jelinek UINT32 Length, 11717b1019a6SJerry Jelinek ACPI_NAMESPACE_NODE *RegionNode); 11727b1019a6SJerry Jelinek 11737b1019a6SJerry Jelinek void 11747b1019a6SJerry Jelinek AcpiUtRemoveAddressRange ( 11757b1019a6SJerry Jelinek ACPI_ADR_SPACE_TYPE SpaceId, 11767b1019a6SJerry Jelinek ACPI_NAMESPACE_NODE *RegionNode); 11777b1019a6SJerry Jelinek 11787b1019a6SJerry Jelinek UINT32 11797b1019a6SJerry Jelinek AcpiUtCheckAddressRange ( 11807b1019a6SJerry Jelinek ACPI_ADR_SPACE_TYPE SpaceId, 11817b1019a6SJerry Jelinek ACPI_PHYSICAL_ADDRESS Address, 11827b1019a6SJerry Jelinek UINT32 Length, 11837b1019a6SJerry Jelinek BOOLEAN Warn); 11847b1019a6SJerry Jelinek 11857b1019a6SJerry Jelinek void 11867b1019a6SJerry Jelinek AcpiUtDeleteAddressLists ( 11877b1019a6SJerry Jelinek void); 11887b1019a6SJerry Jelinek 11897b1019a6SJerry Jelinek 11907b1019a6SJerry Jelinek /* 119126f3cdf0SGordon Ross * utxferror - various error/warning output functions 119226f3cdf0SGordon Ross */ 119326f3cdf0SGordon Ross void ACPI_INTERNAL_VAR_XFACE 119426f3cdf0SGordon Ross AcpiUtPredefinedWarning ( 119526f3cdf0SGordon Ross const char *ModuleName, 119626f3cdf0SGordon Ross UINT32 LineNumber, 119726f3cdf0SGordon Ross char *Pathname, 119826f3cdf0SGordon Ross UINT8 NodeFlags, 119926f3cdf0SGordon Ross const char *Format, 120026f3cdf0SGordon Ross ...); 120126f3cdf0SGordon Ross 120226f3cdf0SGordon Ross void ACPI_INTERNAL_VAR_XFACE 120326f3cdf0SGordon Ross AcpiUtPredefinedInfo ( 120426f3cdf0SGordon Ross const char *ModuleName, 120526f3cdf0SGordon Ross UINT32 LineNumber, 120626f3cdf0SGordon Ross char *Pathname, 120726f3cdf0SGordon Ross UINT8 NodeFlags, 120826f3cdf0SGordon Ross const char *Format, 120926f3cdf0SGordon Ross ...); 121026f3cdf0SGordon Ross 12117b1019a6SJerry Jelinek void ACPI_INTERNAL_VAR_XFACE 12127b1019a6SJerry Jelinek AcpiUtPredefinedBiosError ( 12137b1019a6SJerry Jelinek const char *ModuleName, 12147b1019a6SJerry Jelinek UINT32 LineNumber, 12157b1019a6SJerry Jelinek char *Pathname, 12167b1019a6SJerry Jelinek UINT8 NodeFlags, 12177b1019a6SJerry Jelinek const char *Format, 12187b1019a6SJerry Jelinek ...); 12197b1019a6SJerry Jelinek 122026f3cdf0SGordon Ross void 1221*35786f68SRobert Mustacchi AcpiUtPrefixedNamespaceError ( 122226f3cdf0SGordon Ross const char *ModuleName, 122326f3cdf0SGordon Ross UINT32 LineNumber, 1224*35786f68SRobert Mustacchi ACPI_GENERIC_STATE *PrefixScope, 122526f3cdf0SGordon Ross const char *InternalName, 122626f3cdf0SGordon Ross ACPI_STATUS LookupStatus); 122726f3cdf0SGordon Ross 122826f3cdf0SGordon Ross void 122926f3cdf0SGordon Ross AcpiUtMethodError ( 123026f3cdf0SGordon Ross const char *ModuleName, 123126f3cdf0SGordon Ross UINT32 LineNumber, 123226f3cdf0SGordon Ross const char *Message, 123326f3cdf0SGordon Ross ACPI_NAMESPACE_NODE *Node, 123426f3cdf0SGordon Ross const char *Path, 123526f3cdf0SGordon Ross ACPI_STATUS LookupStatus); 12367c478bd9Sstevel@tonic-gate 12377b1019a6SJerry Jelinek 12387b1019a6SJerry Jelinek /* 12397b1019a6SJerry Jelinek * Utility functions for ACPI names and IDs 12407b1019a6SJerry Jelinek */ 12417b1019a6SJerry Jelinek const AH_PREDEFINED_NAME * 12427b1019a6SJerry Jelinek AcpiAhMatchPredefinedName ( 12437b1019a6SJerry Jelinek char *Nameseg); 12447b1019a6SJerry Jelinek 12457b1019a6SJerry Jelinek const AH_DEVICE_ID * 12467b1019a6SJerry Jelinek AcpiAhMatchHardwareId ( 12477b1019a6SJerry Jelinek char *Hid); 12487b1019a6SJerry Jelinek 12497b1019a6SJerry Jelinek const char * 12507b1019a6SJerry Jelinek AcpiAhMatchUuid ( 12517b1019a6SJerry Jelinek UINT8 *Data); 12527b1019a6SJerry Jelinek 12537b1019a6SJerry Jelinek 12547b1019a6SJerry Jelinek /* 12557b1019a6SJerry Jelinek * utuuid -- UUID support functions 12567b1019a6SJerry Jelinek */ 12577b1019a6SJerry Jelinek #if (defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP || defined ACPI_HELP_APP) 12587b1019a6SJerry Jelinek void 12597b1019a6SJerry Jelinek AcpiUtConvertStringToUuid ( 12607b1019a6SJerry Jelinek char *InString, 12617b1019a6SJerry Jelinek UINT8 *UuidBuffer); 12627b1019a6SJerry Jelinek #endif 12637b1019a6SJerry Jelinek 12647c478bd9Sstevel@tonic-gate #endif /* _ACUTILS_H */ 1265