10d02842fSSascha Wildner /****************************************************************************** 20d02842fSSascha Wildner * 30d02842fSSascha Wildner * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures 40d02842fSSascha Wildner * 50d02842fSSascha Wildner *****************************************************************************/ 60d02842fSSascha Wildner 7b4315fc7SSascha Wildner /****************************************************************************** 8b4315fc7SSascha Wildner * 9b4315fc7SSascha Wildner * 1. Copyright Notice 10b4315fc7SSascha Wildner * 11383048acSSascha Wildner * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. 120d02842fSSascha Wildner * All rights reserved. 130d02842fSSascha Wildner * 14b4315fc7SSascha Wildner * 2. License 15b4315fc7SSascha Wildner * 16b4315fc7SSascha Wildner * 2.1. This is your license from Intel Corp. under its intellectual property 17b4315fc7SSascha Wildner * rights. You may have additional license terms from the party that provided 18b4315fc7SSascha Wildner * you this software, covering your right to use that party's intellectual 19b4315fc7SSascha Wildner * property rights. 20b4315fc7SSascha Wildner * 21b4315fc7SSascha Wildner * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 22b4315fc7SSascha Wildner * copy of the source code appearing in this file ("Covered Code") an 23b4315fc7SSascha Wildner * irrevocable, perpetual, worldwide license under Intel's copyrights in the 24b4315fc7SSascha Wildner * base code distributed originally by Intel ("Original Intel Code") to copy, 25b4315fc7SSascha Wildner * make derivatives, distribute, use and display any portion of the Covered 26b4315fc7SSascha Wildner * Code in any form, with the right to sublicense such rights; and 27b4315fc7SSascha Wildner * 28b4315fc7SSascha Wildner * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 29b4315fc7SSascha Wildner * license (with the right to sublicense), under only those claims of Intel 30b4315fc7SSascha Wildner * patents that are infringed by the Original Intel Code, to make, use, sell, 31b4315fc7SSascha Wildner * offer to sell, and import the Covered Code and derivative works thereof 32b4315fc7SSascha Wildner * solely to the minimum extent necessary to exercise the above copyright 33b4315fc7SSascha Wildner * license, and in no event shall the patent license extend to any additions 34b4315fc7SSascha Wildner * to or modifications of the Original Intel Code. No other license or right 35b4315fc7SSascha Wildner * is granted directly or by implication, estoppel or otherwise; 36b4315fc7SSascha Wildner * 37b4315fc7SSascha Wildner * The above copyright and patent license is granted only if the following 38b4315fc7SSascha Wildner * conditions are met: 39b4315fc7SSascha Wildner * 40b4315fc7SSascha Wildner * 3. Conditions 41b4315fc7SSascha Wildner * 42b4315fc7SSascha Wildner * 3.1. Redistribution of Source with Rights to Further Distribute Source. 43b4315fc7SSascha Wildner * Redistribution of source code of any substantial portion of the Covered 44b4315fc7SSascha Wildner * Code or modification with rights to further distribute source must include 45b4315fc7SSascha Wildner * the above Copyright Notice, the above License, this list of Conditions, 46b4315fc7SSascha Wildner * and the following Disclaimer and Export Compliance provision. In addition, 47b4315fc7SSascha Wildner * Licensee must cause all Covered Code to which Licensee contributes to 48b4315fc7SSascha Wildner * contain a file documenting the changes Licensee made to create that Covered 49b4315fc7SSascha Wildner * Code and the date of any change. Licensee must include in that file the 50b4315fc7SSascha Wildner * documentation of any changes made by any predecessor Licensee. Licensee 51b4315fc7SSascha Wildner * must include a prominent statement that the modification is derived, 52b4315fc7SSascha Wildner * directly or indirectly, from Original Intel Code. 53b4315fc7SSascha Wildner * 54b4315fc7SSascha Wildner * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 55b4315fc7SSascha Wildner * Redistribution of source code of any substantial portion of the Covered 56b4315fc7SSascha Wildner * Code or modification without rights to further distribute source must 57b4315fc7SSascha Wildner * include the following Disclaimer and Export Compliance provision in the 58b4315fc7SSascha Wildner * documentation and/or other materials provided with distribution. In 59b4315fc7SSascha Wildner * addition, Licensee may not authorize further sublicense of source of any 60b4315fc7SSascha Wildner * portion of the Covered Code, and must include terms to the effect that the 61b4315fc7SSascha Wildner * license from Licensee to its licensee is limited to the intellectual 62b4315fc7SSascha Wildner * property embodied in the software Licensee provides to its licensee, and 63b4315fc7SSascha Wildner * not to intellectual property embodied in modifications its licensee may 64b4315fc7SSascha Wildner * make. 65b4315fc7SSascha Wildner * 66b4315fc7SSascha Wildner * 3.3. Redistribution of Executable. Redistribution in executable form of any 67b4315fc7SSascha Wildner * substantial portion of the Covered Code or modification must reproduce the 68b4315fc7SSascha Wildner * above Copyright Notice, and the following Disclaimer and Export Compliance 69b4315fc7SSascha Wildner * provision in the documentation and/or other materials provided with the 70b4315fc7SSascha Wildner * distribution. 71b4315fc7SSascha Wildner * 72b4315fc7SSascha Wildner * 3.4. Intel retains all right, title, and interest in and to the Original 73b4315fc7SSascha Wildner * Intel Code. 74b4315fc7SSascha Wildner * 75b4315fc7SSascha Wildner * 3.5. Neither the name Intel nor any other trademark owned or controlled by 76b4315fc7SSascha Wildner * Intel shall be used in advertising or otherwise to promote the sale, use or 77b4315fc7SSascha Wildner * other dealings in products derived from or relating to the Covered Code 78b4315fc7SSascha Wildner * without prior written authorization from Intel. 79b4315fc7SSascha Wildner * 80b4315fc7SSascha Wildner * 4. Disclaimer and Export Compliance 81b4315fc7SSascha Wildner * 82b4315fc7SSascha Wildner * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 83b4315fc7SSascha Wildner * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 84b4315fc7SSascha Wildner * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 85b4315fc7SSascha Wildner * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 86b4315fc7SSascha Wildner * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 87b4315fc7SSascha Wildner * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 88b4315fc7SSascha Wildner * PARTICULAR PURPOSE. 89b4315fc7SSascha Wildner * 90b4315fc7SSascha Wildner * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 91b4315fc7SSascha Wildner * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 92b4315fc7SSascha Wildner * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 93b4315fc7SSascha Wildner * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 94b4315fc7SSascha Wildner * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 95b4315fc7SSascha Wildner * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 96b4315fc7SSascha Wildner * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 97b4315fc7SSascha Wildner * LIMITED REMEDY. 98b4315fc7SSascha Wildner * 99b4315fc7SSascha Wildner * 4.3. Licensee shall not export, either directly or indirectly, any of this 100b4315fc7SSascha Wildner * software or system incorporating such software without first obtaining any 101b4315fc7SSascha Wildner * required license or other approval from the U. S. Department of Commerce or 102b4315fc7SSascha Wildner * any other agency or department of the United States Government. In the 103b4315fc7SSascha Wildner * event Licensee exports any such software from the United States or 104b4315fc7SSascha Wildner * re-exports any such software from a foreign destination, Licensee shall 105b4315fc7SSascha Wildner * ensure that the distribution and export/re-export of the software is in 106b4315fc7SSascha Wildner * compliance with all laws, regulations, orders, or other restrictions of the 107b4315fc7SSascha Wildner * U.S. Export Administration Regulations. Licensee agrees that neither it nor 108b4315fc7SSascha Wildner * any of its subsidiaries will export/re-export any technical data, process, 109b4315fc7SSascha Wildner * software, or service, directly or indirectly, to any country for which the 110b4315fc7SSascha Wildner * United States government or any agency thereof requires an export license, 111b4315fc7SSascha Wildner * other governmental approval, or letter of assurance, without first obtaining 112b4315fc7SSascha Wildner * such license, approval or letter. 113b4315fc7SSascha Wildner * 114b4315fc7SSascha Wildner ***************************************************************************** 115b4315fc7SSascha Wildner * 116b4315fc7SSascha Wildner * Alternatively, you may choose to be licensed under the terms of the 117b4315fc7SSascha Wildner * following license: 118b4315fc7SSascha Wildner * 1190d02842fSSascha Wildner * Redistribution and use in source and binary forms, with or without 1200d02842fSSascha Wildner * modification, are permitted provided that the following conditions 1210d02842fSSascha Wildner * are met: 1220d02842fSSascha Wildner * 1. Redistributions of source code must retain the above copyright 1230d02842fSSascha Wildner * notice, this list of conditions, and the following disclaimer, 1240d02842fSSascha Wildner * without modification. 1250d02842fSSascha Wildner * 2. Redistributions in binary form must reproduce at minimum a disclaimer 1260d02842fSSascha Wildner * substantially similar to the "NO WARRANTY" disclaimer below 1270d02842fSSascha Wildner * ("Disclaimer") and any redistribution must be conditioned upon 1280d02842fSSascha Wildner * including a substantially similar Disclaimer requirement for further 1290d02842fSSascha Wildner * binary redistribution. 1300d02842fSSascha Wildner * 3. Neither the names of the above-listed copyright holders nor the names 1310d02842fSSascha Wildner * of any contributors may be used to endorse or promote products derived 1320d02842fSSascha Wildner * from this software without specific prior written permission. 1330d02842fSSascha Wildner * 134b4315fc7SSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 135b4315fc7SSascha Wildner * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 136b4315fc7SSascha Wildner * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 137b4315fc7SSascha Wildner * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 138b4315fc7SSascha Wildner * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 139b4315fc7SSascha Wildner * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 140b4315fc7SSascha Wildner * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 141b4315fc7SSascha Wildner * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 142b4315fc7SSascha Wildner * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 143b4315fc7SSascha Wildner * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 144b4315fc7SSascha Wildner * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 145b4315fc7SSascha Wildner * 146b4315fc7SSascha Wildner * Alternatively, you may choose to be licensed under the terms of the 1470d02842fSSascha Wildner * GNU General Public License ("GPL") version 2 as published by the Free 1480d02842fSSascha Wildner * Software Foundation. 1490d02842fSSascha Wildner * 150b4315fc7SSascha Wildner *****************************************************************************/ 1510d02842fSSascha Wildner 1520d02842fSSascha Wildner #ifndef _ACUTILS_H 1530d02842fSSascha Wildner #define _ACUTILS_H 1540d02842fSSascha Wildner 1550d02842fSSascha Wildner 1560d02842fSSascha Wildner extern const UINT8 AcpiGbl_ResourceAmlSizes[]; 1570d02842fSSascha Wildner extern const UINT8 AcpiGbl_ResourceAmlSerialBusSizes[]; 1580d02842fSSascha Wildner 1590d02842fSSascha Wildner /* Strings used by the disassembler and debugger resource dump routines */ 1600d02842fSSascha Wildner 16120294b7eSSascha Wildner #if defined(ACPI_DEBUG_OUTPUT) || defined (ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER) 1620d02842fSSascha Wildner 1630d02842fSSascha Wildner extern const char *AcpiGbl_BmDecode[]; 1640d02842fSSascha Wildner extern const char *AcpiGbl_ConfigDecode[]; 1650d02842fSSascha Wildner extern const char *AcpiGbl_ConsumeDecode[]; 1660d02842fSSascha Wildner extern const char *AcpiGbl_DecDecode[]; 1670d02842fSSascha Wildner extern const char *AcpiGbl_HeDecode[]; 1680d02842fSSascha Wildner extern const char *AcpiGbl_IoDecode[]; 1690d02842fSSascha Wildner extern const char *AcpiGbl_LlDecode[]; 1700d02842fSSascha Wildner extern const char *AcpiGbl_MaxDecode[]; 1710d02842fSSascha Wildner extern const char *AcpiGbl_MemDecode[]; 1720d02842fSSascha Wildner extern const char *AcpiGbl_MinDecode[]; 1730d02842fSSascha Wildner extern const char *AcpiGbl_MtpDecode[]; 17401d5d5dfSSascha Wildner extern const char *AcpiGbl_PhyDecode[]; 1750d02842fSSascha Wildner extern const char *AcpiGbl_RngDecode[]; 1760d02842fSSascha Wildner extern const char *AcpiGbl_RwDecode[]; 1770d02842fSSascha Wildner extern const char *AcpiGbl_ShrDecode[]; 1780d02842fSSascha Wildner extern const char *AcpiGbl_SizDecode[]; 1790d02842fSSascha Wildner extern const char *AcpiGbl_TrsDecode[]; 1800d02842fSSascha Wildner extern const char *AcpiGbl_TtpDecode[]; 1810d02842fSSascha Wildner extern const char *AcpiGbl_TypDecode[]; 1820d02842fSSascha Wildner extern const char *AcpiGbl_PpcDecode[]; 1830d02842fSSascha Wildner extern const char *AcpiGbl_IorDecode[]; 1840d02842fSSascha Wildner extern const char *AcpiGbl_DtsDecode[]; 1850d02842fSSascha Wildner extern const char *AcpiGbl_CtDecode[]; 1860d02842fSSascha Wildner extern const char *AcpiGbl_SbtDecode[]; 1870d02842fSSascha Wildner extern const char *AcpiGbl_AmDecode[]; 1880d02842fSSascha Wildner extern const char *AcpiGbl_SmDecode[]; 1890d02842fSSascha Wildner extern const char *AcpiGbl_WmDecode[]; 1900d02842fSSascha Wildner extern const char *AcpiGbl_CphDecode[]; 1910d02842fSSascha Wildner extern const char *AcpiGbl_CpoDecode[]; 1920d02842fSSascha Wildner extern const char *AcpiGbl_DpDecode[]; 1930d02842fSSascha Wildner extern const char *AcpiGbl_EdDecode[]; 1940d02842fSSascha Wildner extern const char *AcpiGbl_BpbDecode[]; 1950d02842fSSascha Wildner extern const char *AcpiGbl_SbDecode[]; 1960d02842fSSascha Wildner extern const char *AcpiGbl_FcDecode[]; 1970d02842fSSascha Wildner extern const char *AcpiGbl_PtDecode[]; 1981093ca81SSascha Wildner extern const char *AcpiGbl_PtypDecode[]; 1990d02842fSSascha Wildner #endif 2000d02842fSSascha Wildner 2010d02842fSSascha Wildner /* 2020d02842fSSascha Wildner * For the iASL compiler case, the output is redirected to stderr so that 2030d02842fSSascha Wildner * any of the various ACPI errors and warnings do not appear in the output 2040d02842fSSascha Wildner * files, for either the compiler or disassembler portions of the tool. 2050d02842fSSascha Wildner */ 2060d02842fSSascha Wildner #ifdef ACPI_ASL_COMPILER 2070d02842fSSascha Wildner 2080d02842fSSascha Wildner #include <stdio.h> 2090d02842fSSascha Wildner 2100d02842fSSascha Wildner #define ACPI_MSG_REDIRECT_BEGIN \ 2110d02842fSSascha Wildner FILE *OutputFile = AcpiGbl_OutputFile; \ 2120d02842fSSascha Wildner AcpiOsRedirectOutput (stderr); 2130d02842fSSascha Wildner 2140d02842fSSascha Wildner #define ACPI_MSG_REDIRECT_END \ 2150d02842fSSascha Wildner AcpiOsRedirectOutput (OutputFile); 2160d02842fSSascha Wildner 2170d02842fSSascha Wildner #else 2180d02842fSSascha Wildner /* 2190d02842fSSascha Wildner * non-iASL case - no redirection, nothing to do 2200d02842fSSascha Wildner */ 2210d02842fSSascha Wildner #define ACPI_MSG_REDIRECT_BEGIN 2220d02842fSSascha Wildner #define ACPI_MSG_REDIRECT_END 2230d02842fSSascha Wildner #endif 2240d02842fSSascha Wildner 2250d02842fSSascha Wildner /* 2260d02842fSSascha Wildner * Common error message prefixes 2270d02842fSSascha Wildner */ 2282adac2b8SSascha Wildner #ifndef ACPI_MSG_ERROR 2290d02842fSSascha Wildner #define ACPI_MSG_ERROR "ACPI Error: " 2302adac2b8SSascha Wildner #endif 2312adac2b8SSascha Wildner #ifndef ACPI_MSG_WARNING 2320d02842fSSascha Wildner #define ACPI_MSG_WARNING "ACPI Warning: " 2332adac2b8SSascha Wildner #endif 2342adac2b8SSascha Wildner #ifndef ACPI_MSG_INFO 2350d02842fSSascha Wildner #define ACPI_MSG_INFO "ACPI: " 2362adac2b8SSascha Wildner #endif 2370d02842fSSascha Wildner 2382adac2b8SSascha Wildner #ifndef ACPI_MSG_BIOS_ERROR 2397bcb6cafSSascha Wildner #define ACPI_MSG_BIOS_ERROR "Firmware Error (ACPI): " 2402adac2b8SSascha Wildner #endif 2412adac2b8SSascha Wildner #ifndef ACPI_MSG_BIOS_WARNING 2427bcb6cafSSascha Wildner #define ACPI_MSG_BIOS_WARNING "Firmware Warning (ACPI): " 2432adac2b8SSascha Wildner #endif 2440d02842fSSascha Wildner 2450d02842fSSascha Wildner /* 2460d02842fSSascha Wildner * Common message suffix 2470d02842fSSascha Wildner */ 2480d02842fSSascha Wildner #define ACPI_MSG_SUFFIX \ 2490d02842fSSascha Wildner AcpiOsPrintf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, ModuleName, LineNumber) 2500d02842fSSascha Wildner 251cf6b3eb1SSascha Wildner /* Flags to indicate implicit or explicit string-to-integer conversion */ 252cf6b3eb1SSascha Wildner 253cf6b3eb1SSascha Wildner #define ACPI_IMPLICIT_CONVERSION TRUE 254cf6b3eb1SSascha Wildner #define ACPI_NO_IMPLICIT_CONVERSION FALSE 2550d02842fSSascha Wildner 2560d02842fSSascha Wildner /* Types for Resource descriptor entries */ 2570d02842fSSascha Wildner 2580d02842fSSascha Wildner #define ACPI_INVALID_RESOURCE 0 2590d02842fSSascha Wildner #define ACPI_FIXED_LENGTH 1 2600d02842fSSascha Wildner #define ACPI_VARIABLE_LENGTH 2 2610d02842fSSascha Wildner #define ACPI_SMALL_VARIABLE_LENGTH 3 2620d02842fSSascha Wildner 2630d02842fSSascha Wildner typedef 2640d02842fSSascha Wildner ACPI_STATUS (*ACPI_WALK_AML_CALLBACK) ( 2650d02842fSSascha Wildner UINT8 *Aml, 2660d02842fSSascha Wildner UINT32 Length, 2670d02842fSSascha Wildner UINT32 Offset, 2680d02842fSSascha Wildner UINT8 ResourceIndex, 2690d02842fSSascha Wildner void **Context); 2700d02842fSSascha Wildner 2710d02842fSSascha Wildner typedef 2720d02842fSSascha Wildner ACPI_STATUS (*ACPI_PKG_CALLBACK) ( 2730d02842fSSascha Wildner UINT8 ObjectType, 2740d02842fSSascha Wildner ACPI_OPERAND_OBJECT *SourceObject, 2750d02842fSSascha Wildner ACPI_GENERIC_STATE *State, 2760d02842fSSascha Wildner void *Context); 2770d02842fSSascha Wildner 2780d02842fSSascha Wildner typedef struct acpi_pkg_info 2790d02842fSSascha Wildner { 2800d02842fSSascha Wildner UINT8 *FreeSpace; 2810d02842fSSascha Wildner ACPI_SIZE Length; 2820d02842fSSascha Wildner UINT32 ObjectSpace; 2830d02842fSSascha Wildner UINT32 NumPackages; 2840d02842fSSascha Wildner 2850d02842fSSascha Wildner } ACPI_PKG_INFO; 2860d02842fSSascha Wildner 2870d02842fSSascha Wildner /* Object reference counts */ 2880d02842fSSascha Wildner 2890d02842fSSascha Wildner #define REF_INCREMENT (UINT16) 0 2900d02842fSSascha Wildner #define REF_DECREMENT (UINT16) 1 2910d02842fSSascha Wildner 2920d02842fSSascha Wildner /* AcpiUtDumpBuffer */ 2930d02842fSSascha Wildner 294e5412f1eSSascha Wildner #define DB_BYTE_DISPLAY 0x01 295e5412f1eSSascha Wildner #define DB_WORD_DISPLAY 0x02 296e5412f1eSSascha Wildner #define DB_DWORD_DISPLAY 0x04 297e5412f1eSSascha Wildner #define DB_QWORD_DISPLAY 0x08 298e5412f1eSSascha Wildner #define DB_DISPLAY_DATA_ONLY 0x10 2990d02842fSSascha Wildner 300267c04fdSSascha Wildner 301267c04fdSSascha Wildner /* 3020d27ae55SSascha Wildner * utascii - ASCII utilities 3030d27ae55SSascha Wildner */ 3040d27ae55SSascha Wildner BOOLEAN 3050d27ae55SSascha Wildner AcpiUtValidNameseg ( 3060d27ae55SSascha Wildner char *Signature); 3070d27ae55SSascha Wildner 3080d27ae55SSascha Wildner BOOLEAN 3090d27ae55SSascha Wildner AcpiUtValidNameChar ( 3100d27ae55SSascha Wildner char Character, 3110d27ae55SSascha Wildner UINT32 Position); 3120d27ae55SSascha Wildner 3130d27ae55SSascha Wildner void 3140d27ae55SSascha Wildner AcpiUtCheckAndRepairAscii ( 3150d27ae55SSascha Wildner UINT8 *Name, 3160d27ae55SSascha Wildner char *RepairedName, 3170d27ae55SSascha Wildner UINT32 Count); 3180d27ae55SSascha Wildner 3190d27ae55SSascha Wildner 3200d27ae55SSascha Wildner /* 321267c04fdSSascha Wildner * utnonansi - Non-ANSI C library functions 322267c04fdSSascha Wildner */ 323267c04fdSSascha Wildner void 324267c04fdSSascha Wildner AcpiUtStrupr ( 325267c04fdSSascha Wildner char *SrcString); 326267c04fdSSascha Wildner 327267c04fdSSascha Wildner void 328267c04fdSSascha Wildner AcpiUtStrlwr ( 329267c04fdSSascha Wildner char *SrcString); 330267c04fdSSascha Wildner 331267c04fdSSascha Wildner int 332267c04fdSSascha Wildner AcpiUtStricmp ( 333267c04fdSSascha Wildner char *String1, 334267c04fdSSascha Wildner char *String2); 335267c04fdSSascha Wildner 336cf6b3eb1SSascha Wildner 337cf6b3eb1SSascha Wildner /* 338cf6b3eb1SSascha Wildner * utstrsuppt - string-to-integer conversion support functions 339cf6b3eb1SSascha Wildner */ 340cf6b3eb1SSascha Wildner ACPI_STATUS 341cf6b3eb1SSascha Wildner AcpiUtConvertOctalString ( 342cf6b3eb1SSascha Wildner char *String, 343cf6b3eb1SSascha Wildner UINT64 *ReturnValue); 344cf6b3eb1SSascha Wildner 345cf6b3eb1SSascha Wildner ACPI_STATUS 346cf6b3eb1SSascha Wildner AcpiUtConvertDecimalString ( 347cf6b3eb1SSascha Wildner char *String, 348cf6b3eb1SSascha Wildner UINT64 *ReturnValuePtr); 349cf6b3eb1SSascha Wildner 350cf6b3eb1SSascha Wildner ACPI_STATUS 351cf6b3eb1SSascha Wildner AcpiUtConvertHexString ( 352cf6b3eb1SSascha Wildner char *String, 353cf6b3eb1SSascha Wildner UINT64 *ReturnValuePtr); 354cf6b3eb1SSascha Wildner 355cf6b3eb1SSascha Wildner char 356cf6b3eb1SSascha Wildner AcpiUtRemoveWhitespace ( 357cf6b3eb1SSascha Wildner char **String); 358cf6b3eb1SSascha Wildner 359cf6b3eb1SSascha Wildner char 360cf6b3eb1SSascha Wildner AcpiUtRemoveLeadingZeros ( 361cf6b3eb1SSascha Wildner char **String); 362cf6b3eb1SSascha Wildner 363cf6b3eb1SSascha Wildner BOOLEAN 364cf6b3eb1SSascha Wildner AcpiUtDetectHexPrefix ( 365cf6b3eb1SSascha Wildner char **String); 366cf6b3eb1SSascha Wildner 3672afeb59bSSascha Wildner void 3682afeb59bSSascha Wildner AcpiUtRemoveHexPrefix ( 3692afeb59bSSascha Wildner char **String); 3702afeb59bSSascha Wildner 371cf6b3eb1SSascha Wildner BOOLEAN 372cf6b3eb1SSascha Wildner AcpiUtDetectOctalPrefix ( 373cf6b3eb1SSascha Wildner char **String); 374cf6b3eb1SSascha Wildner 375cf6b3eb1SSascha Wildner 376cf6b3eb1SSascha Wildner /* 377cf6b3eb1SSascha Wildner * utstrtoul64 - string-to-integer conversion functions 378cf6b3eb1SSascha Wildner */ 379267c04fdSSascha Wildner ACPI_STATUS 380267c04fdSSascha Wildner AcpiUtStrtoul64 ( 381267c04fdSSascha Wildner char *String, 382267c04fdSSascha Wildner UINT64 *RetInteger); 383267c04fdSSascha Wildner 384cf6b3eb1SSascha Wildner UINT64 385cf6b3eb1SSascha Wildner AcpiUtExplicitStrtoul64 ( 386cf6b3eb1SSascha Wildner char *String); 387cf6b3eb1SSascha Wildner 388cf6b3eb1SSascha Wildner UINT64 389cf6b3eb1SSascha Wildner AcpiUtImplicitStrtoul64 ( 390cf6b3eb1SSascha Wildner char *String); 3912ffe9f16SSascha Wildner 392267c04fdSSascha Wildner 3930d02842fSSascha Wildner /* 3940d02842fSSascha Wildner * utglobal - Global data structures and procedures 3950d02842fSSascha Wildner */ 3960d02842fSSascha Wildner ACPI_STATUS 3970d02842fSSascha Wildner AcpiUtInitGlobals ( 3980d02842fSSascha Wildner void); 3990d02842fSSascha Wildner 400820c5b08SSascha Wildner const char * 4010d02842fSSascha Wildner AcpiUtGetMutexName ( 4020d02842fSSascha Wildner UINT32 MutexId); 4030d02842fSSascha Wildner 4047bcb6cafSSascha Wildner #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 4057bcb6cafSSascha Wildner 4060d02842fSSascha Wildner const char * 4070d02842fSSascha Wildner AcpiUtGetNotifyName ( 408d4972a9cSSascha Wildner UINT32 NotifyValue, 409d4972a9cSSascha Wildner ACPI_OBJECT_TYPE Type); 4100d02842fSSascha Wildner #endif 4110d02842fSSascha Wildner 412820c5b08SSascha Wildner const char * 4130d02842fSSascha Wildner AcpiUtGetTypeName ( 4140d02842fSSascha Wildner ACPI_OBJECT_TYPE Type); 4150d02842fSSascha Wildner 416820c5b08SSascha Wildner const char * 4170d02842fSSascha Wildner AcpiUtGetNodeName ( 4180d02842fSSascha Wildner void *Object); 4190d02842fSSascha Wildner 420820c5b08SSascha Wildner const char * 4210d02842fSSascha Wildner AcpiUtGetDescriptorName ( 4220d02842fSSascha Wildner void *Object); 4230d02842fSSascha Wildner 4240d02842fSSascha Wildner const char * 4250d02842fSSascha Wildner AcpiUtGetReferenceName ( 4260d02842fSSascha Wildner ACPI_OPERAND_OBJECT *Object); 4270d02842fSSascha Wildner 428820c5b08SSascha Wildner const char * 4290d02842fSSascha Wildner AcpiUtGetObjectTypeName ( 4300d02842fSSascha Wildner ACPI_OPERAND_OBJECT *ObjDesc); 4310d02842fSSascha Wildner 432820c5b08SSascha Wildner const char * 4330d02842fSSascha Wildner AcpiUtGetRegionName ( 4340d02842fSSascha Wildner UINT8 SpaceId); 4350d02842fSSascha Wildner 436820c5b08SSascha Wildner const char * 4370d02842fSSascha Wildner AcpiUtGetEventName ( 4380d02842fSSascha Wildner UINT32 EventId); 4390d02842fSSascha Wildner 440a96e04f2SSascha Wildner const char * 441a96e04f2SSascha Wildner AcpiUtGetArgumentTypeName ( 442a96e04f2SSascha Wildner UINT32 ArgType); 443a96e04f2SSascha Wildner 4440d02842fSSascha Wildner char 4450d02842fSSascha Wildner AcpiUtHexToAsciiChar ( 4460d02842fSSascha Wildner UINT64 Integer, 4470d02842fSSascha Wildner UINT32 Position); 4480d02842fSSascha Wildner 449e5e174adSSascha Wildner ACPI_STATUS 450e5e174adSSascha Wildner AcpiUtAsciiToHexByte ( 451e5e174adSSascha Wildner char *TwoAsciiChars, 452e5e174adSSascha Wildner UINT8 *ReturnByte); 453e5e174adSSascha Wildner 454066b6da2SSascha Wildner UINT8 455066b6da2SSascha Wildner AcpiUtAsciiCharToHex ( 456066b6da2SSascha Wildner int HexChar); 457066b6da2SSascha Wildner 4580d02842fSSascha Wildner BOOLEAN 4590d02842fSSascha Wildner AcpiUtValidObjectType ( 4600d02842fSSascha Wildner ACPI_OBJECT_TYPE Type); 4610d02842fSSascha Wildner 4620d02842fSSascha Wildner 4630d02842fSSascha Wildner /* 4640d02842fSSascha Wildner * utinit - miscellaneous initialization and shutdown 4650d02842fSSascha Wildner */ 4660d02842fSSascha Wildner ACPI_STATUS 4670d02842fSSascha Wildner AcpiUtHardwareInitialize ( 4680d02842fSSascha Wildner void); 4690d02842fSSascha Wildner 4700d02842fSSascha Wildner void 4710d02842fSSascha Wildner AcpiUtSubsystemShutdown ( 4720d02842fSSascha Wildner void); 4730d02842fSSascha Wildner 4740d02842fSSascha Wildner 4750d02842fSSascha Wildner /* 4760d02842fSSascha Wildner * utcopy - Object construction and conversion interfaces 4770d02842fSSascha Wildner */ 4780d02842fSSascha Wildner ACPI_STATUS 4790d02842fSSascha Wildner AcpiUtBuildSimpleObject( 4800d02842fSSascha Wildner ACPI_OPERAND_OBJECT *Obj, 4810d02842fSSascha Wildner ACPI_OBJECT *UserObj, 4820d02842fSSascha Wildner UINT8 *DataSpace, 4830d02842fSSascha Wildner UINT32 *BufferSpaceUsed); 4840d02842fSSascha Wildner 4850d02842fSSascha Wildner ACPI_STATUS 4860d02842fSSascha Wildner AcpiUtBuildPackageObject ( 4870d02842fSSascha Wildner ACPI_OPERAND_OBJECT *Obj, 4880d02842fSSascha Wildner UINT8 *Buffer, 4890d02842fSSascha Wildner UINT32 *SpaceUsed); 4900d02842fSSascha Wildner 4910d02842fSSascha Wildner ACPI_STATUS 4920d02842fSSascha Wildner AcpiUtCopyIobjectToEobject ( 4930d02842fSSascha Wildner ACPI_OPERAND_OBJECT *Obj, 4940d02842fSSascha Wildner ACPI_BUFFER *RetBuffer); 4950d02842fSSascha Wildner 4960d02842fSSascha Wildner ACPI_STATUS 4970d02842fSSascha Wildner AcpiUtCopyEobjectToIobject ( 4980d02842fSSascha Wildner ACPI_OBJECT *Obj, 4990d02842fSSascha Wildner ACPI_OPERAND_OBJECT **InternalObj); 5000d02842fSSascha Wildner 5010d02842fSSascha Wildner ACPI_STATUS 5020d02842fSSascha Wildner AcpiUtCopyISimpleToIsimple ( 5030d02842fSSascha Wildner ACPI_OPERAND_OBJECT *SourceObj, 5040d02842fSSascha Wildner ACPI_OPERAND_OBJECT *DestObj); 5050d02842fSSascha Wildner 5060d02842fSSascha Wildner ACPI_STATUS 5070d02842fSSascha Wildner AcpiUtCopyIobjectToIobject ( 5080d02842fSSascha Wildner ACPI_OPERAND_OBJECT *SourceDesc, 5090d02842fSSascha Wildner ACPI_OPERAND_OBJECT **DestDesc, 5100d02842fSSascha Wildner ACPI_WALK_STATE *WalkState); 5110d02842fSSascha Wildner 5120d02842fSSascha Wildner 5130d02842fSSascha Wildner /* 5140d02842fSSascha Wildner * utcreate - Object creation 5150d02842fSSascha Wildner */ 5160d02842fSSascha Wildner ACPI_STATUS 5170d02842fSSascha Wildner AcpiUtUpdateObjectReference ( 5180d02842fSSascha Wildner ACPI_OPERAND_OBJECT *Object, 5190d02842fSSascha Wildner UINT16 Action); 5200d02842fSSascha Wildner 5210d02842fSSascha Wildner 5220d02842fSSascha Wildner /* 5230d02842fSSascha Wildner * utdebug - Debug interfaces 5240d02842fSSascha Wildner */ 5250d02842fSSascha Wildner void 5260d02842fSSascha Wildner AcpiUtInitStackPtrTrace ( 5270d02842fSSascha Wildner void); 5280d02842fSSascha Wildner 5290d02842fSSascha Wildner void 5300d02842fSSascha Wildner AcpiUtTrackStackPtr ( 5310d02842fSSascha Wildner void); 5320d02842fSSascha Wildner 5330d02842fSSascha Wildner void 5340d02842fSSascha Wildner AcpiUtTrace ( 5350d02842fSSascha Wildner UINT32 LineNumber, 5360d02842fSSascha Wildner const char *FunctionName, 5370d02842fSSascha Wildner const char *ModuleName, 5380d02842fSSascha Wildner UINT32 ComponentId); 5390d02842fSSascha Wildner 5400d02842fSSascha Wildner void 5410d02842fSSascha Wildner AcpiUtTracePtr ( 5420d02842fSSascha Wildner UINT32 LineNumber, 5430d02842fSSascha Wildner const char *FunctionName, 5440d02842fSSascha Wildner const char *ModuleName, 5450d02842fSSascha Wildner UINT32 ComponentId, 5462ffe9f16SSascha Wildner const void *Pointer); 5470d02842fSSascha Wildner 5480d02842fSSascha Wildner void 5490d02842fSSascha Wildner AcpiUtTraceU32 ( 5500d02842fSSascha Wildner UINT32 LineNumber, 5510d02842fSSascha Wildner const char *FunctionName, 5520d02842fSSascha Wildner const char *ModuleName, 5530d02842fSSascha Wildner UINT32 ComponentId, 5540d02842fSSascha Wildner UINT32 Integer); 5550d02842fSSascha Wildner 5560d02842fSSascha Wildner void 5570d02842fSSascha Wildner AcpiUtTraceStr ( 5580d02842fSSascha Wildner UINT32 LineNumber, 5590d02842fSSascha Wildner const char *FunctionName, 5600d02842fSSascha Wildner const char *ModuleName, 5610d02842fSSascha Wildner UINT32 ComponentId, 5622ffe9f16SSascha Wildner const char *String); 5630d02842fSSascha Wildner 5640d02842fSSascha Wildner void 5650d02842fSSascha Wildner AcpiUtExit ( 5660d02842fSSascha Wildner UINT32 LineNumber, 5670d02842fSSascha Wildner const char *FunctionName, 5680d02842fSSascha Wildner const char *ModuleName, 5690d02842fSSascha Wildner UINT32 ComponentId); 5700d02842fSSascha Wildner 5710d02842fSSascha Wildner void 5720d02842fSSascha Wildner AcpiUtStatusExit ( 5730d02842fSSascha Wildner UINT32 LineNumber, 5740d02842fSSascha Wildner const char *FunctionName, 5750d02842fSSascha Wildner const char *ModuleName, 5760d02842fSSascha Wildner UINT32 ComponentId, 5770d02842fSSascha Wildner ACPI_STATUS Status); 5780d02842fSSascha Wildner 5790d02842fSSascha Wildner void 5800d02842fSSascha Wildner AcpiUtValueExit ( 5810d02842fSSascha Wildner UINT32 LineNumber, 5820d02842fSSascha Wildner const char *FunctionName, 5830d02842fSSascha Wildner const char *ModuleName, 5840d02842fSSascha Wildner UINT32 ComponentId, 5850d02842fSSascha Wildner UINT64 Value); 5860d02842fSSascha Wildner 5870d02842fSSascha Wildner void 5880d02842fSSascha Wildner AcpiUtPtrExit ( 5890d02842fSSascha Wildner UINT32 LineNumber, 5900d02842fSSascha Wildner const char *FunctionName, 5910d02842fSSascha Wildner const char *ModuleName, 5920d02842fSSascha Wildner UINT32 ComponentId, 5930d02842fSSascha Wildner UINT8 *Ptr); 5940d02842fSSascha Wildner 5950d02842fSSascha Wildner void 5962adac2b8SSascha Wildner AcpiUtStrExit ( 5972adac2b8SSascha Wildner UINT32 LineNumber, 5982adac2b8SSascha Wildner const char *FunctionName, 5992adac2b8SSascha Wildner const char *ModuleName, 6002adac2b8SSascha Wildner UINT32 ComponentId, 6012adac2b8SSascha Wildner const char *String); 6022adac2b8SSascha Wildner 6032adac2b8SSascha Wildner void 6040d02842fSSascha Wildner AcpiUtDebugDumpBuffer ( 6050d02842fSSascha Wildner UINT8 *Buffer, 6060d02842fSSascha Wildner UINT32 Count, 6070d02842fSSascha Wildner UINT32 Display, 6080d02842fSSascha Wildner UINT32 ComponentId); 6090d02842fSSascha Wildner 6100d02842fSSascha Wildner void 6110d02842fSSascha Wildner AcpiUtDumpBuffer ( 6120d02842fSSascha Wildner UINT8 *Buffer, 6130d02842fSSascha Wildner UINT32 Count, 6140d02842fSSascha Wildner UINT32 Display, 6150d02842fSSascha Wildner UINT32 Offset); 6160d02842fSSascha Wildner 6175f39c7e7SSascha Wildner #ifdef ACPI_APPLICATION 6185f39c7e7SSascha Wildner void 6195f39c7e7SSascha Wildner AcpiUtDumpBufferToFile ( 6205f39c7e7SSascha Wildner ACPI_FILE File, 6215f39c7e7SSascha Wildner UINT8 *Buffer, 6225f39c7e7SSascha Wildner UINT32 Count, 6235f39c7e7SSascha Wildner UINT32 Display, 6245f39c7e7SSascha Wildner UINT32 BaseOffset); 6255f39c7e7SSascha Wildner #endif 6265f39c7e7SSascha Wildner 6270d02842fSSascha Wildner void 6280d02842fSSascha Wildner AcpiUtReportError ( 6290d02842fSSascha Wildner char *ModuleName, 6300d02842fSSascha Wildner UINT32 LineNumber); 6310d02842fSSascha Wildner 6320d02842fSSascha Wildner void 6330d02842fSSascha Wildner AcpiUtReportInfo ( 6340d02842fSSascha Wildner char *ModuleName, 6350d02842fSSascha Wildner UINT32 LineNumber); 6360d02842fSSascha Wildner 6370d02842fSSascha Wildner void 6380d02842fSSascha Wildner AcpiUtReportWarning ( 6390d02842fSSascha Wildner char *ModuleName, 6400d02842fSSascha Wildner UINT32 LineNumber); 6410d02842fSSascha Wildner 642267c04fdSSascha Wildner 6430d02842fSSascha Wildner /* 6440d02842fSSascha Wildner * utdelete - Object deletion and reference counts 6450d02842fSSascha Wildner */ 6460d02842fSSascha Wildner void 6470d02842fSSascha Wildner AcpiUtAddReference ( 6480d02842fSSascha Wildner ACPI_OPERAND_OBJECT *Object); 6490d02842fSSascha Wildner 6500d02842fSSascha Wildner void 6510d02842fSSascha Wildner AcpiUtRemoveReference ( 6520d02842fSSascha Wildner ACPI_OPERAND_OBJECT *Object); 6530d02842fSSascha Wildner 6540d02842fSSascha Wildner void 6550d02842fSSascha Wildner AcpiUtDeleteInternalPackageObject ( 6560d02842fSSascha Wildner ACPI_OPERAND_OBJECT *Object); 6570d02842fSSascha Wildner 6580d02842fSSascha Wildner void 6590d02842fSSascha Wildner AcpiUtDeleteInternalSimpleObject ( 6600d02842fSSascha Wildner ACPI_OPERAND_OBJECT *Object); 6610d02842fSSascha Wildner 6620d02842fSSascha Wildner void 6630d02842fSSascha Wildner AcpiUtDeleteInternalObjectList ( 6640d02842fSSascha Wildner ACPI_OPERAND_OBJECT **ObjList); 6650d02842fSSascha Wildner 6660d02842fSSascha Wildner 6670d02842fSSascha Wildner /* 6680d02842fSSascha Wildner * uteval - object evaluation 6690d02842fSSascha Wildner */ 6700d02842fSSascha Wildner ACPI_STATUS 6710d02842fSSascha Wildner AcpiUtEvaluateObject ( 6720d02842fSSascha Wildner ACPI_NAMESPACE_NODE *PrefixNode, 6732ffe9f16SSascha Wildner const char *Path, 6740d02842fSSascha Wildner UINT32 ExpectedReturnBtypes, 6750d02842fSSascha Wildner ACPI_OPERAND_OBJECT **ReturnDesc); 6760d02842fSSascha Wildner 6770d02842fSSascha Wildner ACPI_STATUS 6780d02842fSSascha Wildner AcpiUtEvaluateNumericObject ( 6792ffe9f16SSascha Wildner const char *ObjectName, 6800d02842fSSascha Wildner ACPI_NAMESPACE_NODE *DeviceNode, 6810d02842fSSascha Wildner UINT64 *Value); 6820d02842fSSascha Wildner 6830d02842fSSascha Wildner ACPI_STATUS 6840d02842fSSascha Wildner AcpiUtExecute_STA ( 6850d02842fSSascha Wildner ACPI_NAMESPACE_NODE *DeviceNode, 6860d02842fSSascha Wildner UINT32 *StatusFlags); 6870d02842fSSascha Wildner 6880d02842fSSascha Wildner ACPI_STATUS 6890d02842fSSascha Wildner AcpiUtExecutePowerMethods ( 6900d02842fSSascha Wildner ACPI_NAMESPACE_NODE *DeviceNode, 6910d02842fSSascha Wildner const char **MethodNames, 6920d02842fSSascha Wildner UINT8 MethodCount, 6930d02842fSSascha Wildner UINT8 *OutValues); 6940d02842fSSascha Wildner 6950d02842fSSascha Wildner 6960d02842fSSascha Wildner /* 6970d02842fSSascha Wildner * utids - device ID support 6980d02842fSSascha Wildner */ 6990d02842fSSascha Wildner ACPI_STATUS 7000d02842fSSascha Wildner AcpiUtExecute_HID ( 7010d02842fSSascha Wildner ACPI_NAMESPACE_NODE *DeviceNode, 7020d02842fSSascha Wildner ACPI_PNP_DEVICE_ID **ReturnId); 7030d02842fSSascha Wildner 7040d02842fSSascha Wildner ACPI_STATUS 7050d02842fSSascha Wildner AcpiUtExecute_UID ( 7060d02842fSSascha Wildner ACPI_NAMESPACE_NODE *DeviceNode, 7070d02842fSSascha Wildner ACPI_PNP_DEVICE_ID **ReturnId); 7080d02842fSSascha Wildner 7090d02842fSSascha Wildner ACPI_STATUS 7100d02842fSSascha Wildner AcpiUtExecute_CID ( 7110d02842fSSascha Wildner ACPI_NAMESPACE_NODE *DeviceNode, 7120d02842fSSascha Wildner ACPI_PNP_DEVICE_ID_LIST **ReturnCidList); 7130d02842fSSascha Wildner 71425ca8c79SSascha Wildner ACPI_STATUS 71525ca8c79SSascha Wildner AcpiUtExecute_CLS ( 71625ca8c79SSascha Wildner ACPI_NAMESPACE_NODE *DeviceNode, 71725ca8c79SSascha Wildner ACPI_PNP_DEVICE_ID **ReturnId); 71825ca8c79SSascha Wildner 7190d02842fSSascha Wildner 7200d02842fSSascha Wildner /* 7210d02842fSSascha Wildner * utlock - reader/writer locks 7220d02842fSSascha Wildner */ 7230d02842fSSascha Wildner ACPI_STATUS 7240d02842fSSascha Wildner AcpiUtCreateRwLock ( 7250d02842fSSascha Wildner ACPI_RW_LOCK *Lock); 7260d02842fSSascha Wildner 7270d02842fSSascha Wildner void 7280d02842fSSascha Wildner AcpiUtDeleteRwLock ( 7290d02842fSSascha Wildner ACPI_RW_LOCK *Lock); 7300d02842fSSascha Wildner 7310d02842fSSascha Wildner ACPI_STATUS 7320d02842fSSascha Wildner AcpiUtAcquireReadLock ( 7330d02842fSSascha Wildner ACPI_RW_LOCK *Lock); 7340d02842fSSascha Wildner 7350d02842fSSascha Wildner ACPI_STATUS 7360d02842fSSascha Wildner AcpiUtReleaseReadLock ( 7370d02842fSSascha Wildner ACPI_RW_LOCK *Lock); 7380d02842fSSascha Wildner 7390d02842fSSascha Wildner ACPI_STATUS 7400d02842fSSascha Wildner AcpiUtAcquireWriteLock ( 7410d02842fSSascha Wildner ACPI_RW_LOCK *Lock); 7420d02842fSSascha Wildner 7430d02842fSSascha Wildner void 7440d02842fSSascha Wildner AcpiUtReleaseWriteLock ( 7450d02842fSSascha Wildner ACPI_RW_LOCK *Lock); 7460d02842fSSascha Wildner 7470d02842fSSascha Wildner 7480d02842fSSascha Wildner /* 7490d02842fSSascha Wildner * utobject - internal object create/delete/cache routines 7500d02842fSSascha Wildner */ 7510d02842fSSascha Wildner ACPI_OPERAND_OBJECT * 7520d02842fSSascha Wildner AcpiUtCreateInternalObjectDbg ( 7530d02842fSSascha Wildner const char *ModuleName, 7540d02842fSSascha Wildner UINT32 LineNumber, 7550d02842fSSascha Wildner UINT32 ComponentId, 7560d02842fSSascha Wildner ACPI_OBJECT_TYPE Type); 7570d02842fSSascha Wildner 7580d02842fSSascha Wildner void * 7590d02842fSSascha Wildner AcpiUtAllocateObjectDescDbg ( 7600d02842fSSascha Wildner const char *ModuleName, 7610d02842fSSascha Wildner UINT32 LineNumber, 7620d02842fSSascha Wildner UINT32 ComponentId); 7630d02842fSSascha Wildner 7640d02842fSSascha Wildner #define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t) 7650d02842fSSascha Wildner #define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT) 7660d02842fSSascha Wildner 7670d02842fSSascha Wildner void 7680d02842fSSascha Wildner AcpiUtDeleteObjectDesc ( 7690d02842fSSascha Wildner ACPI_OPERAND_OBJECT *Object); 7700d02842fSSascha Wildner 7710d02842fSSascha Wildner BOOLEAN 7720d02842fSSascha Wildner AcpiUtValidInternalObject ( 7730d02842fSSascha Wildner void *Object); 7740d02842fSSascha Wildner 7750d02842fSSascha Wildner ACPI_OPERAND_OBJECT * 7760d02842fSSascha Wildner AcpiUtCreatePackageObject ( 7770d02842fSSascha Wildner UINT32 Count); 7780d02842fSSascha Wildner 7790d02842fSSascha Wildner ACPI_OPERAND_OBJECT * 7800d02842fSSascha Wildner AcpiUtCreateIntegerObject ( 7810d02842fSSascha Wildner UINT64 Value); 7820d02842fSSascha Wildner 7830d02842fSSascha Wildner ACPI_OPERAND_OBJECT * 7840d02842fSSascha Wildner AcpiUtCreateBufferObject ( 7850d02842fSSascha Wildner ACPI_SIZE BufferSize); 7860d02842fSSascha Wildner 7870d02842fSSascha Wildner ACPI_OPERAND_OBJECT * 7880d02842fSSascha Wildner AcpiUtCreateStringObject ( 7890d02842fSSascha Wildner ACPI_SIZE StringSize); 7900d02842fSSascha Wildner 7910d02842fSSascha Wildner ACPI_STATUS 7920d02842fSSascha Wildner AcpiUtGetObjectSize( 7930d02842fSSascha Wildner ACPI_OPERAND_OBJECT *Obj, 7940d02842fSSascha Wildner ACPI_SIZE *ObjLength); 7950d02842fSSascha Wildner 7960d02842fSSascha Wildner 7970d02842fSSascha Wildner /* 7980d02842fSSascha Wildner * utosi - Support for the _OSI predefined control method 7990d02842fSSascha Wildner */ 8000d02842fSSascha Wildner ACPI_STATUS 8010d02842fSSascha Wildner AcpiUtInitializeInterfaces ( 8020d02842fSSascha Wildner void); 8030d02842fSSascha Wildner 8040d02842fSSascha Wildner ACPI_STATUS 8050d02842fSSascha Wildner AcpiUtInterfaceTerminate ( 8060d02842fSSascha Wildner void); 8070d02842fSSascha Wildner 8080d02842fSSascha Wildner ACPI_STATUS 8090d02842fSSascha Wildner AcpiUtInstallInterface ( 8100d02842fSSascha Wildner ACPI_STRING InterfaceName); 8110d02842fSSascha Wildner 8120d02842fSSascha Wildner ACPI_STATUS 8130d02842fSSascha Wildner AcpiUtRemoveInterface ( 8140d02842fSSascha Wildner ACPI_STRING InterfaceName); 8150d02842fSSascha Wildner 8160d02842fSSascha Wildner ACPI_STATUS 8170d02842fSSascha Wildner AcpiUtUpdateInterfaces ( 8180d02842fSSascha Wildner UINT8 Action); 8190d02842fSSascha Wildner 8200d02842fSSascha Wildner ACPI_INTERFACE_INFO * 8210d02842fSSascha Wildner AcpiUtGetInterface ( 8220d02842fSSascha Wildner ACPI_STRING InterfaceName); 8230d02842fSSascha Wildner 8240d02842fSSascha Wildner ACPI_STATUS 8250d02842fSSascha Wildner AcpiUtOsiImplementation ( 8260d02842fSSascha Wildner ACPI_WALK_STATE *WalkState); 8270d02842fSSascha Wildner 8280d02842fSSascha Wildner 8290d02842fSSascha Wildner /* 8300d02842fSSascha Wildner * utpredef - support for predefined names 8310d02842fSSascha Wildner */ 8320d02842fSSascha Wildner const ACPI_PREDEFINED_INFO * 8330d02842fSSascha Wildner AcpiUtGetNextPredefinedMethod ( 8340d02842fSSascha Wildner const ACPI_PREDEFINED_INFO *ThisName); 8350d02842fSSascha Wildner 8360d02842fSSascha Wildner const ACPI_PREDEFINED_INFO * 8370d02842fSSascha Wildner AcpiUtMatchPredefinedMethod ( 8380d02842fSSascha Wildner char *Name); 8390d02842fSSascha Wildner 8405943f66cSSascha Wildner void 8415943f66cSSascha Wildner AcpiUtGetExpectedReturnTypes ( 8425943f66cSSascha Wildner char *Buffer, 8435943f66cSSascha Wildner UINT32 ExpectedBtypes); 8445943f66cSSascha Wildner 8455943f66cSSascha Wildner #if (defined ACPI_ASL_COMPILER || defined ACPI_HELP_APP) 8460d02842fSSascha Wildner const ACPI_PREDEFINED_INFO * 8470d02842fSSascha Wildner AcpiUtMatchResourceName ( 8480d02842fSSascha Wildner char *Name); 8490d02842fSSascha Wildner 8500d02842fSSascha Wildner void 8510d02842fSSascha Wildner AcpiUtDisplayPredefinedMethod ( 8520d02842fSSascha Wildner char *Buffer, 8530d02842fSSascha Wildner const ACPI_PREDEFINED_INFO *ThisName, 8540d02842fSSascha Wildner BOOLEAN MultiLine); 8550d02842fSSascha Wildner 8560d02842fSSascha Wildner UINT32 8570d02842fSSascha Wildner AcpiUtGetResourceBitWidth ( 8580d02842fSSascha Wildner char *Buffer, 8590d02842fSSascha Wildner UINT16 Types); 8605943f66cSSascha Wildner #endif 8610d02842fSSascha Wildner 8620d02842fSSascha Wildner 8630d02842fSSascha Wildner /* 8640d02842fSSascha Wildner * utstate - Generic state creation/cache routines 8650d02842fSSascha Wildner */ 8660d02842fSSascha Wildner void 8670d02842fSSascha Wildner AcpiUtPushGenericState ( 8680d02842fSSascha Wildner ACPI_GENERIC_STATE **ListHead, 8690d02842fSSascha Wildner ACPI_GENERIC_STATE *State); 8700d02842fSSascha Wildner 8710d02842fSSascha Wildner ACPI_GENERIC_STATE * 8720d02842fSSascha Wildner AcpiUtPopGenericState ( 8730d02842fSSascha Wildner ACPI_GENERIC_STATE **ListHead); 8740d02842fSSascha Wildner 8750d02842fSSascha Wildner 8760d02842fSSascha Wildner ACPI_GENERIC_STATE * 8770d02842fSSascha Wildner AcpiUtCreateGenericState ( 8780d02842fSSascha Wildner void); 8790d02842fSSascha Wildner 8800d02842fSSascha Wildner ACPI_THREAD_STATE * 8810d02842fSSascha Wildner AcpiUtCreateThreadState ( 8820d02842fSSascha Wildner void); 8830d02842fSSascha Wildner 8840d02842fSSascha Wildner ACPI_GENERIC_STATE * 8850d02842fSSascha Wildner AcpiUtCreateUpdateState ( 8860d02842fSSascha Wildner ACPI_OPERAND_OBJECT *Object, 8870d02842fSSascha Wildner UINT16 Action); 8880d02842fSSascha Wildner 8890d02842fSSascha Wildner ACPI_GENERIC_STATE * 8900d02842fSSascha Wildner AcpiUtCreatePkgState ( 8910d02842fSSascha Wildner void *InternalObject, 8920d02842fSSascha Wildner void *ExternalObject, 8933c639e0cSSascha Wildner UINT32 Index); 8940d02842fSSascha Wildner 8950d02842fSSascha Wildner ACPI_STATUS 8960d02842fSSascha Wildner AcpiUtCreateUpdateStateAndPush ( 8970d02842fSSascha Wildner ACPI_OPERAND_OBJECT *Object, 8980d02842fSSascha Wildner UINT16 Action, 8990d02842fSSascha Wildner ACPI_GENERIC_STATE **StateList); 9000d02842fSSascha Wildner 9010d02842fSSascha Wildner ACPI_GENERIC_STATE * 9020d02842fSSascha Wildner AcpiUtCreateControlState ( 9030d02842fSSascha Wildner void); 9040d02842fSSascha Wildner 9050d02842fSSascha Wildner void 9060d02842fSSascha Wildner AcpiUtDeleteGenericState ( 9070d02842fSSascha Wildner ACPI_GENERIC_STATE *State); 9080d02842fSSascha Wildner 9090d02842fSSascha Wildner 9100d02842fSSascha Wildner /* 9110d02842fSSascha Wildner * utmath 9120d02842fSSascha Wildner */ 9130d02842fSSascha Wildner ACPI_STATUS 9140d02842fSSascha Wildner AcpiUtDivide ( 9150d02842fSSascha Wildner UINT64 InDividend, 9160d02842fSSascha Wildner UINT64 InDivisor, 9170d02842fSSascha Wildner UINT64 *OutQuotient, 9180d02842fSSascha Wildner UINT64 *OutRemainder); 9190d02842fSSascha Wildner 9200d02842fSSascha Wildner ACPI_STATUS 9210d02842fSSascha Wildner AcpiUtShortDivide ( 9220d02842fSSascha Wildner UINT64 InDividend, 9230d02842fSSascha Wildner UINT32 Divisor, 9240d02842fSSascha Wildner UINT64 *OutQuotient, 9250d02842fSSascha Wildner UINT32 *OutRemainder); 9260d02842fSSascha Wildner 9273c639e0cSSascha Wildner ACPI_STATUS 9283c639e0cSSascha Wildner AcpiUtShortMultiply ( 9293c639e0cSSascha Wildner UINT64 InMultiplicand, 9303c639e0cSSascha Wildner UINT32 Multiplier, 9313c639e0cSSascha Wildner UINT64 *Outproduct); 9323c639e0cSSascha Wildner 9333c639e0cSSascha Wildner ACPI_STATUS 9343c639e0cSSascha Wildner AcpiUtShortShiftLeft ( 9353c639e0cSSascha Wildner UINT64 Operand, 9363c639e0cSSascha Wildner UINT32 Count, 9373c639e0cSSascha Wildner UINT64 *OutResult); 9383c639e0cSSascha Wildner 9393c639e0cSSascha Wildner ACPI_STATUS 9403c639e0cSSascha Wildner AcpiUtShortShiftRight ( 9413c639e0cSSascha Wildner UINT64 Operand, 9423c639e0cSSascha Wildner UINT32 Count, 9433c639e0cSSascha Wildner UINT64 *OutResult); 9443c639e0cSSascha Wildner 9450d02842fSSascha Wildner 9460d02842fSSascha Wildner /* 9470d02842fSSascha Wildner * utmisc 9480d02842fSSascha Wildner */ 9490d02842fSSascha Wildner const ACPI_EXCEPTION_INFO * 9500d02842fSSascha Wildner AcpiUtValidateException ( 9510d02842fSSascha Wildner ACPI_STATUS Status); 9520d02842fSSascha Wildner 9530d02842fSSascha Wildner BOOLEAN 9540d02842fSSascha Wildner AcpiUtIsPciRootBridge ( 9550d02842fSSascha Wildner char *Id); 9560d02842fSSascha Wildner 9573cc0afc6SSascha Wildner #if (defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP || defined ACPI_NAMES_APP) 9580d02842fSSascha Wildner BOOLEAN 9590d02842fSSascha Wildner AcpiUtIsAmlTable ( 9600d02842fSSascha Wildner ACPI_TABLE_HEADER *Table); 9615943f66cSSascha Wildner #endif 9620d02842fSSascha Wildner 9630d02842fSSascha Wildner ACPI_STATUS 9640d02842fSSascha Wildner AcpiUtWalkPackageTree ( 9650d02842fSSascha Wildner ACPI_OPERAND_OBJECT *SourceObject, 9660d02842fSSascha Wildner void *TargetObject, 9670d02842fSSascha Wildner ACPI_PKG_CALLBACK WalkCallback, 9680d02842fSSascha Wildner void *Context); 9690d02842fSSascha Wildner 9700d02842fSSascha Wildner /* Values for Base above (16=Hex, 10=Decimal) */ 9710d02842fSSascha Wildner 9720d02842fSSascha Wildner #define ACPI_ANY_BASE 0 9730d02842fSSascha Wildner 974267c04fdSSascha Wildner 9750d02842fSSascha Wildner UINT32 9760d02842fSSascha Wildner AcpiUtDwordByteSwap ( 9770d02842fSSascha Wildner UINT32 Value); 9780d02842fSSascha Wildner 9790d02842fSSascha Wildner void 9800d02842fSSascha Wildner AcpiUtSetIntegerWidth ( 9810d02842fSSascha Wildner UINT8 Revision); 9820d02842fSSascha Wildner 9830d02842fSSascha Wildner #ifdef ACPI_DEBUG_OUTPUT 9840d02842fSSascha Wildner void 9850d02842fSSascha Wildner AcpiUtDisplayInitPathname ( 9860d02842fSSascha Wildner UINT8 Type, 9870d02842fSSascha Wildner ACPI_NAMESPACE_NODE *ObjHandle, 9882ffe9f16SSascha Wildner const char *Path); 9890d02842fSSascha Wildner #endif 9900d02842fSSascha Wildner 9910d02842fSSascha Wildner 9920d02842fSSascha Wildner /* 9930d02842fSSascha Wildner * utownerid - Support for Table/Method Owner IDs 9940d02842fSSascha Wildner */ 9950d02842fSSascha Wildner ACPI_STATUS 9960d02842fSSascha Wildner AcpiUtAllocateOwnerId ( 9970d02842fSSascha Wildner ACPI_OWNER_ID *OwnerId); 9980d02842fSSascha Wildner 9990d02842fSSascha Wildner void 10000d02842fSSascha Wildner AcpiUtReleaseOwnerId ( 10010d02842fSSascha Wildner ACPI_OWNER_ID *OwnerId); 10020d02842fSSascha Wildner 10030d02842fSSascha Wildner 10040d02842fSSascha Wildner /* 10050d02842fSSascha Wildner * utresrc 10060d02842fSSascha Wildner */ 10070d02842fSSascha Wildner ACPI_STATUS 10080d02842fSSascha Wildner AcpiUtWalkAmlResources ( 10090d02842fSSascha Wildner ACPI_WALK_STATE *WalkState, 10100d02842fSSascha Wildner UINT8 *Aml, 10110d02842fSSascha Wildner ACPI_SIZE AmlLength, 10120d02842fSSascha Wildner ACPI_WALK_AML_CALLBACK UserFunction, 10130d02842fSSascha Wildner void **Context); 10140d02842fSSascha Wildner 10150d02842fSSascha Wildner ACPI_STATUS 10160d02842fSSascha Wildner AcpiUtValidateResource ( 10170d02842fSSascha Wildner ACPI_WALK_STATE *WalkState, 10180d02842fSSascha Wildner void *Aml, 10190d02842fSSascha Wildner UINT8 *ReturnIndex); 10200d02842fSSascha Wildner 10210d02842fSSascha Wildner UINT32 10220d02842fSSascha Wildner AcpiUtGetDescriptorLength ( 10230d02842fSSascha Wildner void *Aml); 10240d02842fSSascha Wildner 10250d02842fSSascha Wildner UINT16 10260d02842fSSascha Wildner AcpiUtGetResourceLength ( 10270d02842fSSascha Wildner void *Aml); 10280d02842fSSascha Wildner 10290d02842fSSascha Wildner UINT8 10300d02842fSSascha Wildner AcpiUtGetResourceHeaderLength ( 10310d02842fSSascha Wildner void *Aml); 10320d02842fSSascha Wildner 10330d02842fSSascha Wildner UINT8 10340d02842fSSascha Wildner AcpiUtGetResourceType ( 10350d02842fSSascha Wildner void *Aml); 10360d02842fSSascha Wildner 10370d02842fSSascha Wildner ACPI_STATUS 10380d02842fSSascha Wildner AcpiUtGetResourceEndTag ( 10390d02842fSSascha Wildner ACPI_OPERAND_OBJECT *ObjDesc, 10400d02842fSSascha Wildner UINT8 **EndTag); 10410d02842fSSascha Wildner 10420d02842fSSascha Wildner 10430d02842fSSascha Wildner /* 10440d02842fSSascha Wildner * utstring - String and character utilities 10450d02842fSSascha Wildner */ 10460d02842fSSascha Wildner void 10470d02842fSSascha Wildner AcpiUtPrintString ( 10480d02842fSSascha Wildner char *String, 10490d02842fSSascha Wildner UINT16 MaxLength); 10500d02842fSSascha Wildner 10515943f66cSSascha Wildner #if defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP 10520d02842fSSascha Wildner void 10530d02842fSSascha Wildner UtConvertBackslashes ( 10540d02842fSSascha Wildner char *Pathname); 10555943f66cSSascha Wildner #endif 10560d02842fSSascha Wildner 10570d02842fSSascha Wildner void 10580d02842fSSascha Wildner AcpiUtRepairName ( 10590d02842fSSascha Wildner char *Name); 10600d02842fSSascha Wildner 10617bcb6cafSSascha Wildner #if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION) || defined (ACPI_DEBUG_OUTPUT) 10620d02842fSSascha Wildner BOOLEAN 10630d02842fSSascha Wildner AcpiUtSafeStrcpy ( 10640d02842fSSascha Wildner char *Dest, 10650d02842fSSascha Wildner ACPI_SIZE DestSize, 10660d02842fSSascha Wildner char *Source); 10670d02842fSSascha Wildner 10687bcb6cafSSascha Wildner void 10697bcb6cafSSascha Wildner AcpiUtSafeStrncpy ( 10707bcb6cafSSascha Wildner char *Dest, 10717bcb6cafSSascha Wildner char *Source, 10727bcb6cafSSascha Wildner ACPI_SIZE DestSize); 10737bcb6cafSSascha Wildner 10740d02842fSSascha Wildner BOOLEAN 10750d02842fSSascha Wildner AcpiUtSafeStrcat ( 10760d02842fSSascha Wildner char *Dest, 10770d02842fSSascha Wildner ACPI_SIZE DestSize, 10780d02842fSSascha Wildner char *Source); 10790d02842fSSascha Wildner 10800d02842fSSascha Wildner BOOLEAN 10810d02842fSSascha Wildner AcpiUtSafeStrncat ( 10820d02842fSSascha Wildner char *Dest, 10830d02842fSSascha Wildner ACPI_SIZE DestSize, 10840d02842fSSascha Wildner char *Source, 10850d02842fSSascha Wildner ACPI_SIZE MaxTransferLength); 10860d02842fSSascha Wildner #endif 10870d02842fSSascha Wildner 10880d02842fSSascha Wildner 10890d02842fSSascha Wildner /* 10900d02842fSSascha Wildner * utmutex - mutex support 10910d02842fSSascha Wildner */ 10920d02842fSSascha Wildner ACPI_STATUS 10930d02842fSSascha Wildner AcpiUtMutexInitialize ( 10940d02842fSSascha Wildner void); 10950d02842fSSascha Wildner 10960d02842fSSascha Wildner void 10970d02842fSSascha Wildner AcpiUtMutexTerminate ( 10980d02842fSSascha Wildner void); 10990d02842fSSascha Wildner 11000d02842fSSascha Wildner ACPI_STATUS 11010d02842fSSascha Wildner AcpiUtAcquireMutex ( 11020d02842fSSascha Wildner ACPI_MUTEX_HANDLE MutexId); 11030d02842fSSascha Wildner 11040d02842fSSascha Wildner ACPI_STATUS 11050d02842fSSascha Wildner AcpiUtReleaseMutex ( 11060d02842fSSascha Wildner ACPI_MUTEX_HANDLE MutexId); 11070d02842fSSascha Wildner 11080d02842fSSascha Wildner 11090d02842fSSascha Wildner /* 11100d02842fSSascha Wildner * utalloc - memory allocation and object caching 11110d02842fSSascha Wildner */ 11120d02842fSSascha Wildner ACPI_STATUS 11130d02842fSSascha Wildner AcpiUtCreateCaches ( 11140d02842fSSascha Wildner void); 11150d02842fSSascha Wildner 11160d02842fSSascha Wildner ACPI_STATUS 11170d02842fSSascha Wildner AcpiUtDeleteCaches ( 11180d02842fSSascha Wildner void); 11190d02842fSSascha Wildner 11200d02842fSSascha Wildner ACPI_STATUS 11210d02842fSSascha Wildner AcpiUtValidateBuffer ( 11220d02842fSSascha Wildner ACPI_BUFFER *Buffer); 11230d02842fSSascha Wildner 11240d02842fSSascha Wildner ACPI_STATUS 11250d02842fSSascha Wildner AcpiUtInitializeBuffer ( 11260d02842fSSascha Wildner ACPI_BUFFER *Buffer, 11270d02842fSSascha Wildner ACPI_SIZE RequiredLength); 11280d02842fSSascha Wildner 11290d02842fSSascha Wildner #ifdef ACPI_DBG_TRACK_ALLOCATIONS 11300d02842fSSascha Wildner void * 11310d02842fSSascha Wildner AcpiUtAllocateAndTrack ( 11320d02842fSSascha Wildner ACPI_SIZE Size, 11330d02842fSSascha Wildner UINT32 Component, 11340d02842fSSascha Wildner const char *Module, 11350d02842fSSascha Wildner UINT32 Line); 11360d02842fSSascha Wildner 11370d02842fSSascha Wildner void * 11380d02842fSSascha Wildner AcpiUtAllocateZeroedAndTrack ( 11390d02842fSSascha Wildner ACPI_SIZE Size, 11400d02842fSSascha Wildner UINT32 Component, 11410d02842fSSascha Wildner const char *Module, 11420d02842fSSascha Wildner UINT32 Line); 11430d02842fSSascha Wildner 11440d02842fSSascha Wildner void 11450d02842fSSascha Wildner AcpiUtFreeAndTrack ( 11460d02842fSSascha Wildner void *Address, 11470d02842fSSascha Wildner UINT32 Component, 11480d02842fSSascha Wildner const char *Module, 11490d02842fSSascha Wildner UINT32 Line); 11500d02842fSSascha Wildner 11510d02842fSSascha Wildner void 11520d02842fSSascha Wildner AcpiUtDumpAllocationInfo ( 11530d02842fSSascha Wildner void); 11540d02842fSSascha Wildner 11550d02842fSSascha Wildner void 11560d02842fSSascha Wildner AcpiUtDumpAllocations ( 11570d02842fSSascha Wildner UINT32 Component, 11580d02842fSSascha Wildner const char *Module); 11590d02842fSSascha Wildner 11600d02842fSSascha Wildner ACPI_STATUS 11610d02842fSSascha Wildner AcpiUtCreateList ( 11622ffe9f16SSascha Wildner const char *ListName, 11630d02842fSSascha Wildner UINT16 ObjectSize, 11640d02842fSSascha Wildner ACPI_MEMORY_LIST **ReturnCache); 11650d02842fSSascha Wildner 11660d02842fSSascha Wildner #endif /* ACPI_DBG_TRACK_ALLOCATIONS */ 11670d02842fSSascha Wildner 1168267c04fdSSascha Wildner 11690d02842fSSascha Wildner /* 11700d02842fSSascha Wildner * utaddress - address range check 11710d02842fSSascha Wildner */ 11720d02842fSSascha Wildner ACPI_STATUS 11730d02842fSSascha Wildner AcpiUtAddAddressRange ( 11740d02842fSSascha Wildner ACPI_ADR_SPACE_TYPE SpaceId, 11750d02842fSSascha Wildner ACPI_PHYSICAL_ADDRESS Address, 11760d02842fSSascha Wildner UINT32 Length, 11770d02842fSSascha Wildner ACPI_NAMESPACE_NODE *RegionNode); 11780d02842fSSascha Wildner 11790d02842fSSascha Wildner void 11800d02842fSSascha Wildner AcpiUtRemoveAddressRange ( 11810d02842fSSascha Wildner ACPI_ADR_SPACE_TYPE SpaceId, 11820d02842fSSascha Wildner ACPI_NAMESPACE_NODE *RegionNode); 11830d02842fSSascha Wildner 11840d02842fSSascha Wildner UINT32 11850d02842fSSascha Wildner AcpiUtCheckAddressRange ( 11860d02842fSSascha Wildner ACPI_ADR_SPACE_TYPE SpaceId, 11870d02842fSSascha Wildner ACPI_PHYSICAL_ADDRESS Address, 11880d02842fSSascha Wildner UINT32 Length, 11890d02842fSSascha Wildner BOOLEAN Warn); 11900d02842fSSascha Wildner 11910d02842fSSascha Wildner void 11920d02842fSSascha Wildner AcpiUtDeleteAddressLists ( 11930d02842fSSascha Wildner void); 11940d02842fSSascha Wildner 1195267c04fdSSascha Wildner 11960d02842fSSascha Wildner /* 11970d02842fSSascha Wildner * utxferror - various error/warning output functions 11980d02842fSSascha Wildner */ 1199e5412f1eSSascha Wildner ACPI_PRINTF_LIKE(5) 12000d02842fSSascha Wildner void ACPI_INTERNAL_VAR_XFACE 12010d02842fSSascha Wildner AcpiUtPredefinedWarning ( 12020d02842fSSascha Wildner const char *ModuleName, 12030d02842fSSascha Wildner UINT32 LineNumber, 12040d02842fSSascha Wildner char *Pathname, 1205e5412f1eSSascha Wildner UINT16 NodeFlags, 12060d02842fSSascha Wildner const char *Format, 12070d02842fSSascha Wildner ...); 12080d02842fSSascha Wildner 1209e5412f1eSSascha Wildner ACPI_PRINTF_LIKE(5) 12100d02842fSSascha Wildner void ACPI_INTERNAL_VAR_XFACE 12110d02842fSSascha Wildner AcpiUtPredefinedInfo ( 12120d02842fSSascha Wildner const char *ModuleName, 12130d02842fSSascha Wildner UINT32 LineNumber, 12140d02842fSSascha Wildner char *Pathname, 1215e5412f1eSSascha Wildner UINT16 NodeFlags, 12160d02842fSSascha Wildner const char *Format, 12170d02842fSSascha Wildner ...); 12180d02842fSSascha Wildner 1219e5412f1eSSascha Wildner ACPI_PRINTF_LIKE(5) 12200d02842fSSascha Wildner void ACPI_INTERNAL_VAR_XFACE 12210d02842fSSascha Wildner AcpiUtPredefinedBiosError ( 12220d02842fSSascha Wildner const char *ModuleName, 12230d02842fSSascha Wildner UINT32 LineNumber, 12240d02842fSSascha Wildner char *Pathname, 1225e5412f1eSSascha Wildner UINT16 NodeFlags, 12260d02842fSSascha Wildner const char *Format, 12270d02842fSSascha Wildner ...); 12280d02842fSSascha Wildner 12290d02842fSSascha Wildner void 12307bcb6cafSSascha Wildner AcpiUtPrefixedNamespaceError ( 12310d02842fSSascha Wildner const char *ModuleName, 12320d02842fSSascha Wildner UINT32 LineNumber, 12337bcb6cafSSascha Wildner ACPI_GENERIC_STATE *PrefixScope, 12340d02842fSSascha Wildner const char *InternalName, 12350d02842fSSascha Wildner ACPI_STATUS LookupStatus); 12360d02842fSSascha Wildner 12370d02842fSSascha Wildner void 12380d02842fSSascha Wildner AcpiUtMethodError ( 12390d02842fSSascha Wildner const char *ModuleName, 12400d02842fSSascha Wildner UINT32 LineNumber, 12410d02842fSSascha Wildner const char *Message, 12420d02842fSSascha Wildner ACPI_NAMESPACE_NODE *Node, 12430d02842fSSascha Wildner const char *Path, 12440d02842fSSascha Wildner ACPI_STATUS LookupStatus); 12450d02842fSSascha Wildner 1246267c04fdSSascha Wildner 1247d4972a9cSSascha Wildner /* 1248d4972a9cSSascha Wildner * Utility functions for ACPI names and IDs 1249d4972a9cSSascha Wildner */ 1250d4972a9cSSascha Wildner const AH_PREDEFINED_NAME * 1251d4972a9cSSascha Wildner AcpiAhMatchPredefinedName ( 1252d4972a9cSSascha Wildner char *Nameseg); 12536a0135c2SSascha Wildner 1254d4972a9cSSascha Wildner const AH_DEVICE_ID * 1255d4972a9cSSascha Wildner AcpiAhMatchHardwareId ( 1256d4972a9cSSascha Wildner char *Hid); 12576a0135c2SSascha Wildner 1258066b6da2SSascha Wildner const char * 1259066b6da2SSascha Wildner AcpiAhMatchUuid ( 1260066b6da2SSascha Wildner UINT8 *Data); 1261066b6da2SSascha Wildner 1262267c04fdSSascha Wildner 12635f39c7e7SSascha Wildner /* 1264066b6da2SSascha Wildner * utuuid -- UUID support functions 1265066b6da2SSascha Wildner */ 126617cfbf2bSSascha Wildner #if (defined ACPI_ASL_COMPILER || defined ACPI_DISASSEMBLER || defined ACPI_EXEC_APP || defined ACPI_HELP_APP || defined KLD_MODULE) 1267066b6da2SSascha Wildner void 1268066b6da2SSascha Wildner AcpiUtConvertStringToUuid ( 1269066b6da2SSascha Wildner char *InString, 1270066b6da2SSascha Wildner UINT8 *UuidBuffer); 1271*4898bea4SSascha Wildner 1272*4898bea4SSascha Wildner ACPI_STATUS 1273*4898bea4SSascha Wildner AcpiUtConvertUuidToString ( 1274*4898bea4SSascha Wildner char *UuidBuffer, 1275*4898bea4SSascha Wildner char *OutString); 12765943f66cSSascha Wildner #endif 1277066b6da2SSascha Wildner 12780d02842fSSascha Wildner #endif /* _ACUTILS_H */ 1279