xref: /dflybsd-src/sys/contrib/dev/acpica/source/include/acutils.h (revision 4898bea4f8fa2e0c5362bfd557dbfc06cbe9106a)
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