xref: /minix3/minix/drivers/power/acpi/include/acutils.h (revision 29492bb71c7148a089a5afafa0c99409161218df)
1433d6423SLionel Sambuc /******************************************************************************
2433d6423SLionel Sambuc  *
3433d6423SLionel Sambuc  * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures
4433d6423SLionel Sambuc  *
5433d6423SLionel Sambuc  *****************************************************************************/
6433d6423SLionel Sambuc 
7*29492bb7SDavid van Moolenbroek /*
8*29492bb7SDavid van Moolenbroek  * Copyright (C) 2000 - 2014, Intel Corp.
9433d6423SLionel Sambuc  * All rights reserved.
10433d6423SLionel Sambuc  *
11*29492bb7SDavid van Moolenbroek  * Redistribution and use in source and binary forms, with or without
12*29492bb7SDavid van Moolenbroek  * modification, are permitted provided that the following conditions
13*29492bb7SDavid van Moolenbroek  * are met:
14*29492bb7SDavid van Moolenbroek  * 1. Redistributions of source code must retain the above copyright
15*29492bb7SDavid van Moolenbroek  *    notice, this list of conditions, and the following disclaimer,
16*29492bb7SDavid van Moolenbroek  *    without modification.
17*29492bb7SDavid van Moolenbroek  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18*29492bb7SDavid van Moolenbroek  *    substantially similar to the "NO WARRANTY" disclaimer below
19*29492bb7SDavid van Moolenbroek  *    ("Disclaimer") and any redistribution must be conditioned upon
20*29492bb7SDavid van Moolenbroek  *    including a substantially similar Disclaimer requirement for further
21*29492bb7SDavid van Moolenbroek  *    binary redistribution.
22*29492bb7SDavid van Moolenbroek  * 3. Neither the names of the above-listed copyright holders nor the names
23*29492bb7SDavid van Moolenbroek  *    of any contributors may be used to endorse or promote products derived
24*29492bb7SDavid van Moolenbroek  *    from this software without specific prior written permission.
25433d6423SLionel Sambuc  *
26*29492bb7SDavid van Moolenbroek  * Alternatively, this software may be distributed under the terms of the
27*29492bb7SDavid van Moolenbroek  * GNU General Public License ("GPL") version 2 as published by the Free
28*29492bb7SDavid van Moolenbroek  * Software Foundation.
29433d6423SLionel Sambuc  *
30*29492bb7SDavid van Moolenbroek  * NO WARRANTY
31*29492bb7SDavid van Moolenbroek  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32*29492bb7SDavid van Moolenbroek  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33*29492bb7SDavid van Moolenbroek  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34*29492bb7SDavid van Moolenbroek  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35*29492bb7SDavid van Moolenbroek  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36*29492bb7SDavid van Moolenbroek  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37*29492bb7SDavid van Moolenbroek  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38*29492bb7SDavid van Moolenbroek  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39*29492bb7SDavid van Moolenbroek  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40*29492bb7SDavid van Moolenbroek  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41*29492bb7SDavid van Moolenbroek  * POSSIBILITY OF SUCH DAMAGES.
42*29492bb7SDavid van Moolenbroek  */
43433d6423SLionel Sambuc 
44433d6423SLionel Sambuc #ifndef _ACUTILS_H
45433d6423SLionel Sambuc #define _ACUTILS_H
46433d6423SLionel Sambuc 
47433d6423SLionel Sambuc 
48433d6423SLionel Sambuc extern const UINT8                      AcpiGbl_ResourceAmlSizes[];
49*29492bb7SDavid van Moolenbroek extern const UINT8                      AcpiGbl_ResourceAmlSerialBusSizes[];
50433d6423SLionel Sambuc 
51433d6423SLionel Sambuc /* Strings used by the disassembler and debugger resource dump routines */
52433d6423SLionel Sambuc 
53*29492bb7SDavid van Moolenbroek #if defined(ACPI_DEBUG_OUTPUT) || defined (ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER)
54433d6423SLionel Sambuc 
55433d6423SLionel Sambuc extern const char                       *AcpiGbl_BmDecode[];
56433d6423SLionel Sambuc extern const char                       *AcpiGbl_ConfigDecode[];
57433d6423SLionel Sambuc extern const char                       *AcpiGbl_ConsumeDecode[];
58433d6423SLionel Sambuc extern const char                       *AcpiGbl_DecDecode[];
59433d6423SLionel Sambuc extern const char                       *AcpiGbl_HeDecode[];
60433d6423SLionel Sambuc extern const char                       *AcpiGbl_IoDecode[];
61433d6423SLionel Sambuc extern const char                       *AcpiGbl_LlDecode[];
62433d6423SLionel Sambuc extern const char                       *AcpiGbl_MaxDecode[];
63433d6423SLionel Sambuc extern const char                       *AcpiGbl_MemDecode[];
64433d6423SLionel Sambuc extern const char                       *AcpiGbl_MinDecode[];
65433d6423SLionel Sambuc extern const char                       *AcpiGbl_MtpDecode[];
66433d6423SLionel Sambuc extern const char                       *AcpiGbl_RngDecode[];
67433d6423SLionel Sambuc extern const char                       *AcpiGbl_RwDecode[];
68433d6423SLionel Sambuc extern const char                       *AcpiGbl_ShrDecode[];
69433d6423SLionel Sambuc extern const char                       *AcpiGbl_SizDecode[];
70433d6423SLionel Sambuc extern const char                       *AcpiGbl_TrsDecode[];
71433d6423SLionel Sambuc extern const char                       *AcpiGbl_TtpDecode[];
72433d6423SLionel Sambuc extern const char                       *AcpiGbl_TypDecode[];
73*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_PpcDecode[];
74*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_IorDecode[];
75*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_DtsDecode[];
76*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_CtDecode[];
77*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_SbtDecode[];
78*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_AmDecode[];
79*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_SmDecode[];
80*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_WmDecode[];
81*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_CphDecode[];
82*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_CpoDecode[];
83*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_DpDecode[];
84*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_EdDecode[];
85*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_BpbDecode[];
86*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_SbDecode[];
87*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_FcDecode[];
88*29492bb7SDavid van Moolenbroek extern const char                       *AcpiGbl_PtDecode[];
89433d6423SLionel Sambuc #endif
90433d6423SLionel Sambuc 
91*29492bb7SDavid van Moolenbroek /*
92*29492bb7SDavid van Moolenbroek  * For the iASL compiler case, the output is redirected to stderr so that
93*29492bb7SDavid van Moolenbroek  * any of the various ACPI errors and warnings do not appear in the output
94*29492bb7SDavid van Moolenbroek  * files, for either the compiler or disassembler portions of the tool.
95*29492bb7SDavid van Moolenbroek  */
96*29492bb7SDavid van Moolenbroek #ifdef ACPI_ASL_COMPILER
97*29492bb7SDavid van Moolenbroek 
98*29492bb7SDavid van Moolenbroek #include <stdio.h>
99*29492bb7SDavid van Moolenbroek 
100*29492bb7SDavid van Moolenbroek #define ACPI_MSG_REDIRECT_BEGIN \
101*29492bb7SDavid van Moolenbroek     FILE                    *OutputFile = AcpiGbl_OutputFile; \
102*29492bb7SDavid van Moolenbroek     AcpiOsRedirectOutput (stderr);
103*29492bb7SDavid van Moolenbroek 
104*29492bb7SDavid van Moolenbroek #define ACPI_MSG_REDIRECT_END \
105*29492bb7SDavid van Moolenbroek     AcpiOsRedirectOutput (OutputFile);
106*29492bb7SDavid van Moolenbroek 
107*29492bb7SDavid van Moolenbroek #else
108*29492bb7SDavid van Moolenbroek /*
109*29492bb7SDavid van Moolenbroek  * non-iASL case - no redirection, nothing to do
110*29492bb7SDavid van Moolenbroek  */
111*29492bb7SDavid van Moolenbroek #define ACPI_MSG_REDIRECT_BEGIN
112*29492bb7SDavid van Moolenbroek #define ACPI_MSG_REDIRECT_END
113*29492bb7SDavid van Moolenbroek #endif
114*29492bb7SDavid van Moolenbroek 
115*29492bb7SDavid van Moolenbroek /*
116*29492bb7SDavid van Moolenbroek  * Common error message prefixes
117*29492bb7SDavid van Moolenbroek  */
118*29492bb7SDavid van Moolenbroek #define ACPI_MSG_ERROR          "ACPI Error: "
119*29492bb7SDavid van Moolenbroek #define ACPI_MSG_EXCEPTION      "ACPI Exception: "
120*29492bb7SDavid van Moolenbroek #define ACPI_MSG_WARNING        "ACPI Warning: "
121*29492bb7SDavid van Moolenbroek #define ACPI_MSG_INFO           "ACPI: "
122*29492bb7SDavid van Moolenbroek 
123*29492bb7SDavid van Moolenbroek #define ACPI_MSG_BIOS_ERROR     "ACPI BIOS Error (bug): "
124*29492bb7SDavid van Moolenbroek #define ACPI_MSG_BIOS_WARNING   "ACPI BIOS Warning (bug): "
125*29492bb7SDavid van Moolenbroek 
126*29492bb7SDavid van Moolenbroek /*
127*29492bb7SDavid van Moolenbroek  * Common message suffix
128*29492bb7SDavid van Moolenbroek  */
129*29492bb7SDavid van Moolenbroek #define ACPI_MSG_SUFFIX \
130*29492bb7SDavid van Moolenbroek     AcpiOsPrintf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, ModuleName, LineNumber)
131*29492bb7SDavid van Moolenbroek 
132*29492bb7SDavid van Moolenbroek 
133433d6423SLionel Sambuc /* Types for Resource descriptor entries */
134433d6423SLionel Sambuc 
135433d6423SLionel Sambuc #define ACPI_INVALID_RESOURCE           0
136433d6423SLionel Sambuc #define ACPI_FIXED_LENGTH               1
137433d6423SLionel Sambuc #define ACPI_VARIABLE_LENGTH            2
138433d6423SLionel Sambuc #define ACPI_SMALL_VARIABLE_LENGTH      3
139433d6423SLionel Sambuc 
140433d6423SLionel Sambuc typedef
141433d6423SLionel Sambuc ACPI_STATUS (*ACPI_WALK_AML_CALLBACK) (
142433d6423SLionel Sambuc     UINT8                   *Aml,
143433d6423SLionel Sambuc     UINT32                  Length,
144433d6423SLionel Sambuc     UINT32                  Offset,
145433d6423SLionel Sambuc     UINT8                   ResourceIndex,
146*29492bb7SDavid van Moolenbroek     void                    **Context);
147433d6423SLionel Sambuc 
148433d6423SLionel Sambuc typedef
149433d6423SLionel Sambuc ACPI_STATUS (*ACPI_PKG_CALLBACK) (
150433d6423SLionel Sambuc     UINT8                   ObjectType,
151433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *SourceObject,
152433d6423SLionel Sambuc     ACPI_GENERIC_STATE      *State,
153433d6423SLionel Sambuc     void                    *Context);
154433d6423SLionel Sambuc 
155433d6423SLionel Sambuc typedef struct acpi_pkg_info
156433d6423SLionel Sambuc {
157433d6423SLionel Sambuc     UINT8                   *FreeSpace;
158433d6423SLionel Sambuc     ACPI_SIZE               Length;
159433d6423SLionel Sambuc     UINT32                  ObjectSpace;
160433d6423SLionel Sambuc     UINT32                  NumPackages;
161433d6423SLionel Sambuc 
162433d6423SLionel Sambuc } ACPI_PKG_INFO;
163433d6423SLionel Sambuc 
164*29492bb7SDavid van Moolenbroek /* Object reference counts */
165*29492bb7SDavid van Moolenbroek 
166433d6423SLionel Sambuc #define REF_INCREMENT       (UINT16) 0
167433d6423SLionel Sambuc #define REF_DECREMENT       (UINT16) 1
168433d6423SLionel Sambuc 
169433d6423SLionel Sambuc /* AcpiUtDumpBuffer */
170433d6423SLionel Sambuc 
171433d6423SLionel Sambuc #define DB_BYTE_DISPLAY     1
172433d6423SLionel Sambuc #define DB_WORD_DISPLAY     2
173433d6423SLionel Sambuc #define DB_DWORD_DISPLAY    4
174433d6423SLionel Sambuc #define DB_QWORD_DISPLAY    8
175433d6423SLionel Sambuc 
176433d6423SLionel Sambuc /*
177433d6423SLionel Sambuc  * utglobal - Global data structures and procedures
178433d6423SLionel Sambuc  */
179433d6423SLionel Sambuc ACPI_STATUS
180433d6423SLionel Sambuc AcpiUtInitGlobals (
181433d6423SLionel Sambuc     void);
182433d6423SLionel Sambuc 
183433d6423SLionel Sambuc #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
184433d6423SLionel Sambuc 
185433d6423SLionel Sambuc char *
186433d6423SLionel Sambuc AcpiUtGetMutexName (
187433d6423SLionel Sambuc     UINT32                  MutexId);
188433d6423SLionel Sambuc 
189433d6423SLionel Sambuc const char *
190433d6423SLionel Sambuc AcpiUtGetNotifyName (
191*29492bb7SDavid van Moolenbroek     UINT32                  NotifyValue,
192*29492bb7SDavid van Moolenbroek     ACPI_OBJECT_TYPE        Type);
193433d6423SLionel Sambuc #endif
194433d6423SLionel Sambuc 
195433d6423SLionel Sambuc char *
196433d6423SLionel Sambuc AcpiUtGetTypeName (
197433d6423SLionel Sambuc     ACPI_OBJECT_TYPE        Type);
198433d6423SLionel Sambuc 
199433d6423SLionel Sambuc char *
200433d6423SLionel Sambuc AcpiUtGetNodeName (
201433d6423SLionel Sambuc     void                    *Object);
202433d6423SLionel Sambuc 
203433d6423SLionel Sambuc char *
204433d6423SLionel Sambuc AcpiUtGetDescriptorName (
205433d6423SLionel Sambuc     void                    *Object);
206433d6423SLionel Sambuc 
207433d6423SLionel Sambuc const char *
208433d6423SLionel Sambuc AcpiUtGetReferenceName (
209433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *Object);
210433d6423SLionel Sambuc 
211433d6423SLionel Sambuc char *
212433d6423SLionel Sambuc AcpiUtGetObjectTypeName (
213433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *ObjDesc);
214433d6423SLionel Sambuc 
215433d6423SLionel Sambuc char *
216433d6423SLionel Sambuc AcpiUtGetRegionName (
217433d6423SLionel Sambuc     UINT8                   SpaceId);
218433d6423SLionel Sambuc 
219433d6423SLionel Sambuc char *
220433d6423SLionel Sambuc AcpiUtGetEventName (
221433d6423SLionel Sambuc     UINT32                  EventId);
222433d6423SLionel Sambuc 
223433d6423SLionel Sambuc char
224433d6423SLionel Sambuc AcpiUtHexToAsciiChar (
225433d6423SLionel Sambuc     UINT64                  Integer,
226433d6423SLionel Sambuc     UINT32                  Position);
227433d6423SLionel Sambuc 
228*29492bb7SDavid van Moolenbroek UINT8
229*29492bb7SDavid van Moolenbroek AcpiUtAsciiCharToHex (
230*29492bb7SDavid van Moolenbroek     int                     HexChar);
231*29492bb7SDavid van Moolenbroek 
232433d6423SLionel Sambuc BOOLEAN
233433d6423SLionel Sambuc AcpiUtValidObjectType (
234433d6423SLionel Sambuc     ACPI_OBJECT_TYPE        Type);
235433d6423SLionel Sambuc 
236433d6423SLionel Sambuc 
237433d6423SLionel Sambuc /*
238433d6423SLionel Sambuc  * utinit - miscellaneous initialization and shutdown
239433d6423SLionel Sambuc  */
240433d6423SLionel Sambuc ACPI_STATUS
241433d6423SLionel Sambuc AcpiUtHardwareInitialize (
242433d6423SLionel Sambuc     void);
243433d6423SLionel Sambuc 
244433d6423SLionel Sambuc void
245433d6423SLionel Sambuc AcpiUtSubsystemShutdown (
246433d6423SLionel Sambuc     void);
247433d6423SLionel Sambuc 
248433d6423SLionel Sambuc 
249433d6423SLionel Sambuc /*
250433d6423SLionel Sambuc  * utclib - Local implementations of C library functions
251433d6423SLionel Sambuc  */
252433d6423SLionel Sambuc #ifndef ACPI_USE_SYSTEM_CLIBRARY
253433d6423SLionel Sambuc 
254433d6423SLionel Sambuc ACPI_SIZE
255433d6423SLionel Sambuc AcpiUtStrlen (
256433d6423SLionel Sambuc     const char              *String);
257433d6423SLionel Sambuc 
258433d6423SLionel Sambuc char *
259*29492bb7SDavid van Moolenbroek AcpiUtStrchr (
260*29492bb7SDavid van Moolenbroek     const char              *String,
261*29492bb7SDavid van Moolenbroek     int                     ch);
262*29492bb7SDavid van Moolenbroek 
263*29492bb7SDavid van Moolenbroek char *
264433d6423SLionel Sambuc AcpiUtStrcpy (
265433d6423SLionel Sambuc     char                    *DstString,
266433d6423SLionel Sambuc     const char              *SrcString);
267433d6423SLionel Sambuc 
268433d6423SLionel Sambuc char *
269433d6423SLionel Sambuc AcpiUtStrncpy (
270433d6423SLionel Sambuc     char                    *DstString,
271433d6423SLionel Sambuc     const char              *SrcString,
272433d6423SLionel Sambuc     ACPI_SIZE               Count);
273433d6423SLionel Sambuc 
274433d6423SLionel Sambuc int
275433d6423SLionel Sambuc AcpiUtMemcmp (
276433d6423SLionel Sambuc     const char              *Buffer1,
277433d6423SLionel Sambuc     const char              *Buffer2,
278433d6423SLionel Sambuc     ACPI_SIZE               Count);
279433d6423SLionel Sambuc 
280433d6423SLionel Sambuc int
281433d6423SLionel Sambuc AcpiUtStrncmp (
282433d6423SLionel Sambuc     const char              *String1,
283433d6423SLionel Sambuc     const char              *String2,
284433d6423SLionel Sambuc     ACPI_SIZE               Count);
285433d6423SLionel Sambuc 
286433d6423SLionel Sambuc int
287433d6423SLionel Sambuc AcpiUtStrcmp (
288433d6423SLionel Sambuc     const char              *String1,
289433d6423SLionel Sambuc     const char              *String2);
290433d6423SLionel Sambuc 
291433d6423SLionel Sambuc char *
292433d6423SLionel Sambuc AcpiUtStrcat (
293433d6423SLionel Sambuc     char                    *DstString,
294433d6423SLionel Sambuc     const char              *SrcString);
295433d6423SLionel Sambuc 
296433d6423SLionel Sambuc char *
297433d6423SLionel Sambuc AcpiUtStrncat (
298433d6423SLionel Sambuc     char                    *DstString,
299433d6423SLionel Sambuc     const char              *SrcString,
300433d6423SLionel Sambuc     ACPI_SIZE               Count);
301433d6423SLionel Sambuc 
302433d6423SLionel Sambuc UINT32
303433d6423SLionel Sambuc AcpiUtStrtoul (
304433d6423SLionel Sambuc     const char              *String,
305433d6423SLionel Sambuc     char                    **Terminator,
306433d6423SLionel Sambuc     UINT32                  Base);
307433d6423SLionel Sambuc 
308433d6423SLionel Sambuc char *
309433d6423SLionel Sambuc AcpiUtStrstr (
310433d6423SLionel Sambuc     char                    *String1,
311433d6423SLionel Sambuc     char                    *String2);
312433d6423SLionel Sambuc 
313433d6423SLionel Sambuc void *
314433d6423SLionel Sambuc AcpiUtMemcpy (
315433d6423SLionel Sambuc     void                    *Dest,
316433d6423SLionel Sambuc     const void              *Src,
317433d6423SLionel Sambuc     ACPI_SIZE               Count);
318433d6423SLionel Sambuc 
319433d6423SLionel Sambuc void *
320433d6423SLionel Sambuc AcpiUtMemset (
321433d6423SLionel Sambuc     void                    *Dest,
322433d6423SLionel Sambuc     UINT8                   Value,
323433d6423SLionel Sambuc     ACPI_SIZE               Count);
324433d6423SLionel Sambuc 
325433d6423SLionel Sambuc int
326433d6423SLionel Sambuc AcpiUtToUpper (
327433d6423SLionel Sambuc     int                     c);
328433d6423SLionel Sambuc 
329433d6423SLionel Sambuc int
330433d6423SLionel Sambuc AcpiUtToLower (
331433d6423SLionel Sambuc     int                     c);
332433d6423SLionel Sambuc 
333433d6423SLionel Sambuc extern const UINT8 _acpi_ctype[];
334433d6423SLionel Sambuc 
335433d6423SLionel Sambuc #define _ACPI_XA     0x00    /* extra alphabetic - not supported */
336433d6423SLionel Sambuc #define _ACPI_XS     0x40    /* extra space */
337433d6423SLionel Sambuc #define _ACPI_BB     0x00    /* BEL, BS, etc. - not supported */
338433d6423SLionel Sambuc #define _ACPI_CN     0x20    /* CR, FF, HT, NL, VT */
339433d6423SLionel Sambuc #define _ACPI_DI     0x04    /* '0'-'9' */
340433d6423SLionel Sambuc #define _ACPI_LO     0x02    /* 'a'-'z' */
341433d6423SLionel Sambuc #define _ACPI_PU     0x10    /* punctuation */
342433d6423SLionel Sambuc #define _ACPI_SP     0x08    /* space */
343433d6423SLionel Sambuc #define _ACPI_UP     0x01    /* 'A'-'Z' */
344433d6423SLionel Sambuc #define _ACPI_XD     0x80    /* '0'-'9', 'A'-'F', 'a'-'f' */
345433d6423SLionel Sambuc 
346433d6423SLionel Sambuc #define ACPI_IS_DIGIT(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_DI))
347433d6423SLionel Sambuc #define ACPI_IS_SPACE(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_SP))
348433d6423SLionel Sambuc #define ACPI_IS_XDIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_XD))
349433d6423SLionel Sambuc #define ACPI_IS_UPPER(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_UP))
350433d6423SLionel Sambuc #define ACPI_IS_LOWER(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO))
351*29492bb7SDavid van Moolenbroek #define ACPI_IS_PRINT(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_XS | _ACPI_PU))
352433d6423SLionel Sambuc #define ACPI_IS_ALPHA(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP))
353433d6423SLionel Sambuc 
354433d6423SLionel Sambuc #endif /* !ACPI_USE_SYSTEM_CLIBRARY */
355433d6423SLionel Sambuc 
356433d6423SLionel Sambuc #define ACPI_IS_ASCII(c)  ((c) < 0x80)
357433d6423SLionel Sambuc 
358433d6423SLionel Sambuc 
359433d6423SLionel Sambuc /*
360433d6423SLionel Sambuc  * utcopy - Object construction and conversion interfaces
361433d6423SLionel Sambuc  */
362433d6423SLionel Sambuc ACPI_STATUS
363433d6423SLionel Sambuc AcpiUtBuildSimpleObject(
364433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *Obj,
365433d6423SLionel Sambuc     ACPI_OBJECT             *UserObj,
366433d6423SLionel Sambuc     UINT8                   *DataSpace,
367433d6423SLionel Sambuc     UINT32                  *BufferSpaceUsed);
368433d6423SLionel Sambuc 
369433d6423SLionel Sambuc ACPI_STATUS
370433d6423SLionel Sambuc AcpiUtBuildPackageObject (
371433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *Obj,
372433d6423SLionel Sambuc     UINT8                   *Buffer,
373433d6423SLionel Sambuc     UINT32                  *SpaceUsed);
374433d6423SLionel Sambuc 
375433d6423SLionel Sambuc ACPI_STATUS
376433d6423SLionel Sambuc AcpiUtCopyIobjectToEobject (
377433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *Obj,
378433d6423SLionel Sambuc     ACPI_BUFFER             *RetBuffer);
379433d6423SLionel Sambuc 
380433d6423SLionel Sambuc ACPI_STATUS
381433d6423SLionel Sambuc AcpiUtCopyEobjectToIobject (
382433d6423SLionel Sambuc     ACPI_OBJECT             *Obj,
383433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     **InternalObj);
384433d6423SLionel Sambuc 
385433d6423SLionel Sambuc ACPI_STATUS
386433d6423SLionel Sambuc AcpiUtCopyISimpleToIsimple (
387433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *SourceObj,
388433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *DestObj);
389433d6423SLionel Sambuc 
390433d6423SLionel Sambuc ACPI_STATUS
391433d6423SLionel Sambuc AcpiUtCopyIobjectToIobject (
392433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *SourceDesc,
393433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     **DestDesc,
394433d6423SLionel Sambuc     ACPI_WALK_STATE         *WalkState);
395433d6423SLionel Sambuc 
396433d6423SLionel Sambuc 
397433d6423SLionel Sambuc /*
398433d6423SLionel Sambuc  * utcreate - Object creation
399433d6423SLionel Sambuc  */
400433d6423SLionel Sambuc ACPI_STATUS
401433d6423SLionel Sambuc AcpiUtUpdateObjectReference (
402433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *Object,
403433d6423SLionel Sambuc     UINT16                  Action);
404433d6423SLionel Sambuc 
405433d6423SLionel Sambuc 
406433d6423SLionel Sambuc /*
407433d6423SLionel Sambuc  * utdebug - Debug interfaces
408433d6423SLionel Sambuc  */
409433d6423SLionel Sambuc void
410433d6423SLionel Sambuc AcpiUtInitStackPtrTrace (
411433d6423SLionel Sambuc     void);
412433d6423SLionel Sambuc 
413433d6423SLionel Sambuc void
414433d6423SLionel Sambuc AcpiUtTrackStackPtr (
415433d6423SLionel Sambuc     void);
416433d6423SLionel Sambuc 
417433d6423SLionel Sambuc void
418433d6423SLionel Sambuc AcpiUtTrace (
419433d6423SLionel Sambuc     UINT32                  LineNumber,
420433d6423SLionel Sambuc     const char              *FunctionName,
421433d6423SLionel Sambuc     const char              *ModuleName,
422433d6423SLionel Sambuc     UINT32                  ComponentId);
423433d6423SLionel Sambuc 
424433d6423SLionel Sambuc void
425433d6423SLionel Sambuc AcpiUtTracePtr (
426433d6423SLionel Sambuc     UINT32                  LineNumber,
427433d6423SLionel Sambuc     const char              *FunctionName,
428433d6423SLionel Sambuc     const char              *ModuleName,
429433d6423SLionel Sambuc     UINT32                  ComponentId,
430433d6423SLionel Sambuc     void                    *Pointer);
431433d6423SLionel Sambuc 
432433d6423SLionel Sambuc void
433433d6423SLionel Sambuc AcpiUtTraceU32 (
434433d6423SLionel Sambuc     UINT32                  LineNumber,
435433d6423SLionel Sambuc     const char              *FunctionName,
436433d6423SLionel Sambuc     const char              *ModuleName,
437433d6423SLionel Sambuc     UINT32                  ComponentId,
438433d6423SLionel Sambuc     UINT32                  Integer);
439433d6423SLionel Sambuc 
440433d6423SLionel Sambuc void
441433d6423SLionel Sambuc AcpiUtTraceStr (
442433d6423SLionel Sambuc     UINT32                  LineNumber,
443433d6423SLionel Sambuc     const char              *FunctionName,
444433d6423SLionel Sambuc     const char              *ModuleName,
445433d6423SLionel Sambuc     UINT32                  ComponentId,
446433d6423SLionel Sambuc     char                    *String);
447433d6423SLionel Sambuc 
448433d6423SLionel Sambuc void
449433d6423SLionel Sambuc AcpiUtExit (
450433d6423SLionel Sambuc     UINT32                  LineNumber,
451433d6423SLionel Sambuc     const char              *FunctionName,
452433d6423SLionel Sambuc     const char              *ModuleName,
453433d6423SLionel Sambuc     UINT32                  ComponentId);
454433d6423SLionel Sambuc 
455433d6423SLionel Sambuc void
456433d6423SLionel Sambuc AcpiUtStatusExit (
457433d6423SLionel Sambuc     UINT32                  LineNumber,
458433d6423SLionel Sambuc     const char              *FunctionName,
459433d6423SLionel Sambuc     const char              *ModuleName,
460433d6423SLionel Sambuc     UINT32                  ComponentId,
461433d6423SLionel Sambuc     ACPI_STATUS             Status);
462433d6423SLionel Sambuc 
463433d6423SLionel Sambuc void
464433d6423SLionel Sambuc AcpiUtValueExit (
465433d6423SLionel Sambuc     UINT32                  LineNumber,
466433d6423SLionel Sambuc     const char              *FunctionName,
467433d6423SLionel Sambuc     const char              *ModuleName,
468433d6423SLionel Sambuc     UINT32                  ComponentId,
469433d6423SLionel Sambuc     UINT64                  Value);
470433d6423SLionel Sambuc 
471433d6423SLionel Sambuc void
472433d6423SLionel Sambuc AcpiUtPtrExit (
473433d6423SLionel Sambuc     UINT32                  LineNumber,
474433d6423SLionel Sambuc     const char              *FunctionName,
475433d6423SLionel Sambuc     const char              *ModuleName,
476433d6423SLionel Sambuc     UINT32                  ComponentId,
477433d6423SLionel Sambuc     UINT8                   *Ptr);
478433d6423SLionel Sambuc 
479433d6423SLionel Sambuc void
480*29492bb7SDavid van Moolenbroek AcpiUtDebugDumpBuffer (
481*29492bb7SDavid van Moolenbroek     UINT8                   *Buffer,
482*29492bb7SDavid van Moolenbroek     UINT32                  Count,
483*29492bb7SDavid van Moolenbroek     UINT32                  Display,
484*29492bb7SDavid van Moolenbroek     UINT32                  ComponentId);
485*29492bb7SDavid van Moolenbroek 
486*29492bb7SDavid van Moolenbroek void
487433d6423SLionel Sambuc AcpiUtDumpBuffer (
488433d6423SLionel Sambuc     UINT8                   *Buffer,
489433d6423SLionel Sambuc     UINT32                  Count,
490433d6423SLionel Sambuc     UINT32                  Display,
491*29492bb7SDavid van Moolenbroek     UINT32                  Offset);
492433d6423SLionel Sambuc 
493*29492bb7SDavid van Moolenbroek #ifdef ACPI_APPLICATION
494433d6423SLionel Sambuc void
495*29492bb7SDavid van Moolenbroek AcpiUtDumpBufferToFile (
496*29492bb7SDavid van Moolenbroek     ACPI_FILE               File,
497433d6423SLionel Sambuc     UINT8                   *Buffer,
498433d6423SLionel Sambuc     UINT32                  Count,
499*29492bb7SDavid van Moolenbroek     UINT32                  Display,
500*29492bb7SDavid van Moolenbroek     UINT32                  BaseOffset);
501*29492bb7SDavid van Moolenbroek #endif
502433d6423SLionel Sambuc 
503433d6423SLionel Sambuc void
504433d6423SLionel Sambuc AcpiUtReportError (
505433d6423SLionel Sambuc     char                    *ModuleName,
506433d6423SLionel Sambuc     UINT32                  LineNumber);
507433d6423SLionel Sambuc 
508433d6423SLionel Sambuc void
509433d6423SLionel Sambuc AcpiUtReportInfo (
510433d6423SLionel Sambuc     char                    *ModuleName,
511433d6423SLionel Sambuc     UINT32                  LineNumber);
512433d6423SLionel Sambuc 
513433d6423SLionel Sambuc void
514433d6423SLionel Sambuc AcpiUtReportWarning (
515433d6423SLionel Sambuc     char                    *ModuleName,
516433d6423SLionel Sambuc     UINT32                  LineNumber);
517433d6423SLionel Sambuc 
518433d6423SLionel Sambuc /*
519433d6423SLionel Sambuc  * utdelete - Object deletion and reference counts
520433d6423SLionel Sambuc  */
521433d6423SLionel Sambuc void
522433d6423SLionel Sambuc AcpiUtAddReference (
523433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *Object);
524433d6423SLionel Sambuc 
525433d6423SLionel Sambuc void
526433d6423SLionel Sambuc AcpiUtRemoveReference (
527433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *Object);
528433d6423SLionel Sambuc 
529433d6423SLionel Sambuc void
530433d6423SLionel Sambuc AcpiUtDeleteInternalPackageObject (
531433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *Object);
532433d6423SLionel Sambuc 
533433d6423SLionel Sambuc void
534433d6423SLionel Sambuc AcpiUtDeleteInternalSimpleObject (
535433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *Object);
536433d6423SLionel Sambuc 
537433d6423SLionel Sambuc void
538433d6423SLionel Sambuc AcpiUtDeleteInternalObjectList (
539433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     **ObjList);
540433d6423SLionel Sambuc 
541433d6423SLionel Sambuc 
542433d6423SLionel Sambuc /*
543433d6423SLionel Sambuc  * uteval - object evaluation
544433d6423SLionel Sambuc  */
545433d6423SLionel Sambuc ACPI_STATUS
546433d6423SLionel Sambuc AcpiUtEvaluateObject (
547433d6423SLionel Sambuc     ACPI_NAMESPACE_NODE     *PrefixNode,
548433d6423SLionel Sambuc     char                    *Path,
549433d6423SLionel Sambuc     UINT32                  ExpectedReturnBtypes,
550433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     **ReturnDesc);
551433d6423SLionel Sambuc 
552433d6423SLionel Sambuc ACPI_STATUS
553433d6423SLionel Sambuc AcpiUtEvaluateNumericObject (
554433d6423SLionel Sambuc     char                    *ObjectName,
555433d6423SLionel Sambuc     ACPI_NAMESPACE_NODE     *DeviceNode,
556433d6423SLionel Sambuc     UINT64                  *Value);
557433d6423SLionel Sambuc 
558433d6423SLionel Sambuc ACPI_STATUS
559433d6423SLionel Sambuc AcpiUtExecute_STA (
560433d6423SLionel Sambuc     ACPI_NAMESPACE_NODE     *DeviceNode,
561433d6423SLionel Sambuc     UINT32                  *StatusFlags);
562433d6423SLionel Sambuc 
563433d6423SLionel Sambuc ACPI_STATUS
564433d6423SLionel Sambuc AcpiUtExecutePowerMethods (
565433d6423SLionel Sambuc     ACPI_NAMESPACE_NODE     *DeviceNode,
566433d6423SLionel Sambuc     const char              **MethodNames,
567433d6423SLionel Sambuc     UINT8                   MethodCount,
568433d6423SLionel Sambuc     UINT8                   *OutValues);
569433d6423SLionel Sambuc 
570433d6423SLionel Sambuc 
571433d6423SLionel Sambuc /*
572*29492bb7SDavid van Moolenbroek  * utfileio - file operations
573*29492bb7SDavid van Moolenbroek  */
574*29492bb7SDavid van Moolenbroek #ifdef ACPI_APPLICATION
575*29492bb7SDavid van Moolenbroek ACPI_STATUS
576*29492bb7SDavid van Moolenbroek AcpiUtReadTableFromFile (
577*29492bb7SDavid van Moolenbroek     char                    *Filename,
578*29492bb7SDavid van Moolenbroek     ACPI_TABLE_HEADER       **Table);
579*29492bb7SDavid van Moolenbroek #endif
580*29492bb7SDavid van Moolenbroek 
581*29492bb7SDavid van Moolenbroek 
582*29492bb7SDavid van Moolenbroek /*
583433d6423SLionel Sambuc  * utids - device ID support
584433d6423SLionel Sambuc  */
585433d6423SLionel Sambuc ACPI_STATUS
586433d6423SLionel Sambuc AcpiUtExecute_HID (
587433d6423SLionel Sambuc     ACPI_NAMESPACE_NODE     *DeviceNode,
588*29492bb7SDavid van Moolenbroek     ACPI_PNP_DEVICE_ID      **ReturnId);
589433d6423SLionel Sambuc 
590433d6423SLionel Sambuc ACPI_STATUS
591433d6423SLionel Sambuc AcpiUtExecute_UID (
592433d6423SLionel Sambuc     ACPI_NAMESPACE_NODE     *DeviceNode,
593*29492bb7SDavid van Moolenbroek     ACPI_PNP_DEVICE_ID      **ReturnId);
594*29492bb7SDavid van Moolenbroek 
595*29492bb7SDavid van Moolenbroek ACPI_STATUS
596*29492bb7SDavid van Moolenbroek AcpiUtExecute_SUB (
597*29492bb7SDavid van Moolenbroek     ACPI_NAMESPACE_NODE     *DeviceNode,
598*29492bb7SDavid van Moolenbroek     ACPI_PNP_DEVICE_ID      **ReturnId);
599433d6423SLionel Sambuc 
600433d6423SLionel Sambuc ACPI_STATUS
601433d6423SLionel Sambuc AcpiUtExecute_CID (
602433d6423SLionel Sambuc     ACPI_NAMESPACE_NODE     *DeviceNode,
603*29492bb7SDavid van Moolenbroek     ACPI_PNP_DEVICE_ID_LIST **ReturnCidList);
604433d6423SLionel Sambuc 
605433d6423SLionel Sambuc 
606433d6423SLionel Sambuc /*
607433d6423SLionel Sambuc  * utlock - reader/writer locks
608433d6423SLionel Sambuc  */
609433d6423SLionel Sambuc ACPI_STATUS
610433d6423SLionel Sambuc AcpiUtCreateRwLock (
611433d6423SLionel Sambuc     ACPI_RW_LOCK            *Lock);
612433d6423SLionel Sambuc 
613433d6423SLionel Sambuc void
614433d6423SLionel Sambuc AcpiUtDeleteRwLock (
615433d6423SLionel Sambuc     ACPI_RW_LOCK            *Lock);
616433d6423SLionel Sambuc 
617433d6423SLionel Sambuc ACPI_STATUS
618433d6423SLionel Sambuc AcpiUtAcquireReadLock (
619433d6423SLionel Sambuc     ACPI_RW_LOCK            *Lock);
620433d6423SLionel Sambuc 
621433d6423SLionel Sambuc ACPI_STATUS
622433d6423SLionel Sambuc AcpiUtReleaseReadLock (
623433d6423SLionel Sambuc     ACPI_RW_LOCK            *Lock);
624433d6423SLionel Sambuc 
625433d6423SLionel Sambuc ACPI_STATUS
626433d6423SLionel Sambuc AcpiUtAcquireWriteLock (
627433d6423SLionel Sambuc     ACPI_RW_LOCK            *Lock);
628433d6423SLionel Sambuc 
629433d6423SLionel Sambuc void
630433d6423SLionel Sambuc AcpiUtReleaseWriteLock (
631433d6423SLionel Sambuc     ACPI_RW_LOCK            *Lock);
632433d6423SLionel Sambuc 
633433d6423SLionel Sambuc 
634433d6423SLionel Sambuc /*
635433d6423SLionel Sambuc  * utobject - internal object create/delete/cache routines
636433d6423SLionel Sambuc  */
637433d6423SLionel Sambuc ACPI_OPERAND_OBJECT  *
638433d6423SLionel Sambuc AcpiUtCreateInternalObjectDbg (
639433d6423SLionel Sambuc     const char              *ModuleName,
640433d6423SLionel Sambuc     UINT32                  LineNumber,
641433d6423SLionel Sambuc     UINT32                  ComponentId,
642433d6423SLionel Sambuc     ACPI_OBJECT_TYPE        Type);
643433d6423SLionel Sambuc 
644433d6423SLionel Sambuc void *
645433d6423SLionel Sambuc AcpiUtAllocateObjectDescDbg (
646433d6423SLionel Sambuc     const char              *ModuleName,
647433d6423SLionel Sambuc     UINT32                  LineNumber,
648433d6423SLionel Sambuc     UINT32                  ComponentId);
649433d6423SLionel Sambuc 
650433d6423SLionel Sambuc #define AcpiUtCreateInternalObject(t)   AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t)
651433d6423SLionel Sambuc #define AcpiUtAllocateObjectDesc()      AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT)
652433d6423SLionel Sambuc 
653433d6423SLionel Sambuc void
654433d6423SLionel Sambuc AcpiUtDeleteObjectDesc (
655433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *Object);
656433d6423SLionel Sambuc 
657433d6423SLionel Sambuc BOOLEAN
658433d6423SLionel Sambuc AcpiUtValidInternalObject (
659433d6423SLionel Sambuc     void                    *Object);
660433d6423SLionel Sambuc 
661433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *
662433d6423SLionel Sambuc AcpiUtCreatePackageObject (
663433d6423SLionel Sambuc     UINT32                  Count);
664433d6423SLionel Sambuc 
665433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *
666433d6423SLionel Sambuc AcpiUtCreateIntegerObject (
667433d6423SLionel Sambuc     UINT64                  Value);
668433d6423SLionel Sambuc 
669433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *
670433d6423SLionel Sambuc AcpiUtCreateBufferObject (
671433d6423SLionel Sambuc     ACPI_SIZE               BufferSize);
672433d6423SLionel Sambuc 
673433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *
674433d6423SLionel Sambuc AcpiUtCreateStringObject (
675433d6423SLionel Sambuc     ACPI_SIZE               StringSize);
676433d6423SLionel Sambuc 
677433d6423SLionel Sambuc ACPI_STATUS
678433d6423SLionel Sambuc AcpiUtGetObjectSize(
679433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *Obj,
680433d6423SLionel Sambuc     ACPI_SIZE               *ObjLength);
681433d6423SLionel Sambuc 
682433d6423SLionel Sambuc 
683433d6423SLionel Sambuc /*
684*29492bb7SDavid van Moolenbroek  * utosi - Support for the _OSI predefined control method
685*29492bb7SDavid van Moolenbroek  */
686*29492bb7SDavid van Moolenbroek ACPI_STATUS
687*29492bb7SDavid van Moolenbroek AcpiUtInitializeInterfaces (
688*29492bb7SDavid van Moolenbroek     void);
689*29492bb7SDavid van Moolenbroek 
690*29492bb7SDavid van Moolenbroek ACPI_STATUS
691*29492bb7SDavid van Moolenbroek AcpiUtInterfaceTerminate (
692*29492bb7SDavid van Moolenbroek     void);
693*29492bb7SDavid van Moolenbroek 
694*29492bb7SDavid van Moolenbroek ACPI_STATUS
695*29492bb7SDavid van Moolenbroek AcpiUtInstallInterface (
696*29492bb7SDavid van Moolenbroek     ACPI_STRING             InterfaceName);
697*29492bb7SDavid van Moolenbroek 
698*29492bb7SDavid van Moolenbroek ACPI_STATUS
699*29492bb7SDavid van Moolenbroek AcpiUtRemoveInterface (
700*29492bb7SDavid van Moolenbroek     ACPI_STRING             InterfaceName);
701*29492bb7SDavid van Moolenbroek 
702*29492bb7SDavid van Moolenbroek ACPI_STATUS
703*29492bb7SDavid van Moolenbroek AcpiUtUpdateInterfaces (
704*29492bb7SDavid van Moolenbroek     UINT8                   Action);
705*29492bb7SDavid van Moolenbroek 
706*29492bb7SDavid van Moolenbroek ACPI_INTERFACE_INFO *
707*29492bb7SDavid van Moolenbroek AcpiUtGetInterface (
708*29492bb7SDavid van Moolenbroek     ACPI_STRING             InterfaceName);
709*29492bb7SDavid van Moolenbroek 
710*29492bb7SDavid van Moolenbroek ACPI_STATUS
711*29492bb7SDavid van Moolenbroek AcpiUtOsiImplementation (
712*29492bb7SDavid van Moolenbroek     ACPI_WALK_STATE         *WalkState);
713*29492bb7SDavid van Moolenbroek 
714*29492bb7SDavid van Moolenbroek 
715*29492bb7SDavid van Moolenbroek /*
716*29492bb7SDavid van Moolenbroek  * utpredef - support for predefined names
717*29492bb7SDavid van Moolenbroek  */
718*29492bb7SDavid van Moolenbroek const ACPI_PREDEFINED_INFO *
719*29492bb7SDavid van Moolenbroek AcpiUtGetNextPredefinedMethod (
720*29492bb7SDavid van Moolenbroek     const ACPI_PREDEFINED_INFO  *ThisName);
721*29492bb7SDavid van Moolenbroek 
722*29492bb7SDavid van Moolenbroek const ACPI_PREDEFINED_INFO *
723*29492bb7SDavid van Moolenbroek AcpiUtMatchPredefinedMethod (
724*29492bb7SDavid van Moolenbroek     char                        *Name);
725*29492bb7SDavid van Moolenbroek 
726*29492bb7SDavid van Moolenbroek const ACPI_PREDEFINED_INFO *
727*29492bb7SDavid van Moolenbroek AcpiUtMatchResourceName (
728*29492bb7SDavid van Moolenbroek     char                        *Name);
729*29492bb7SDavid van Moolenbroek 
730*29492bb7SDavid van Moolenbroek void
731*29492bb7SDavid van Moolenbroek AcpiUtDisplayPredefinedMethod (
732*29492bb7SDavid van Moolenbroek     char                        *Buffer,
733*29492bb7SDavid van Moolenbroek     const ACPI_PREDEFINED_INFO  *ThisName,
734*29492bb7SDavid van Moolenbroek     BOOLEAN                     MultiLine);
735*29492bb7SDavid van Moolenbroek 
736*29492bb7SDavid van Moolenbroek void
737*29492bb7SDavid van Moolenbroek AcpiUtGetExpectedReturnTypes (
738*29492bb7SDavid van Moolenbroek     char                    *Buffer,
739*29492bb7SDavid van Moolenbroek     UINT32                  ExpectedBtypes);
740*29492bb7SDavid van Moolenbroek 
741*29492bb7SDavid van Moolenbroek UINT32
742*29492bb7SDavid van Moolenbroek AcpiUtGetResourceBitWidth (
743*29492bb7SDavid van Moolenbroek     char                    *Buffer,
744*29492bb7SDavid van Moolenbroek     UINT16                  Types);
745*29492bb7SDavid van Moolenbroek 
746*29492bb7SDavid van Moolenbroek 
747*29492bb7SDavid van Moolenbroek /*
748433d6423SLionel Sambuc  * utstate - Generic state creation/cache routines
749433d6423SLionel Sambuc  */
750433d6423SLionel Sambuc void
751433d6423SLionel Sambuc AcpiUtPushGenericState (
752433d6423SLionel Sambuc     ACPI_GENERIC_STATE      **ListHead,
753433d6423SLionel Sambuc     ACPI_GENERIC_STATE      *State);
754433d6423SLionel Sambuc 
755433d6423SLionel Sambuc ACPI_GENERIC_STATE *
756433d6423SLionel Sambuc AcpiUtPopGenericState (
757433d6423SLionel Sambuc     ACPI_GENERIC_STATE      **ListHead);
758433d6423SLionel Sambuc 
759433d6423SLionel Sambuc 
760433d6423SLionel Sambuc ACPI_GENERIC_STATE *
761433d6423SLionel Sambuc AcpiUtCreateGenericState (
762433d6423SLionel Sambuc     void);
763433d6423SLionel Sambuc 
764433d6423SLionel Sambuc ACPI_THREAD_STATE *
765433d6423SLionel Sambuc AcpiUtCreateThreadState (
766433d6423SLionel Sambuc     void);
767433d6423SLionel Sambuc 
768433d6423SLionel Sambuc ACPI_GENERIC_STATE *
769433d6423SLionel Sambuc AcpiUtCreateUpdateState (
770433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *Object,
771433d6423SLionel Sambuc     UINT16                  Action);
772433d6423SLionel Sambuc 
773433d6423SLionel Sambuc ACPI_GENERIC_STATE *
774433d6423SLionel Sambuc AcpiUtCreatePkgState (
775433d6423SLionel Sambuc     void                    *InternalObject,
776433d6423SLionel Sambuc     void                    *ExternalObject,
777433d6423SLionel Sambuc     UINT16                  Index);
778433d6423SLionel Sambuc 
779433d6423SLionel Sambuc ACPI_STATUS
780433d6423SLionel Sambuc AcpiUtCreateUpdateStateAndPush (
781433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *Object,
782433d6423SLionel Sambuc     UINT16                  Action,
783433d6423SLionel Sambuc     ACPI_GENERIC_STATE      **StateList);
784433d6423SLionel Sambuc 
785433d6423SLionel Sambuc ACPI_STATUS
786433d6423SLionel Sambuc AcpiUtCreatePkgStateAndPush (
787433d6423SLionel Sambuc     void                    *InternalObject,
788433d6423SLionel Sambuc     void                    *ExternalObject,
789433d6423SLionel Sambuc     UINT16                  Index,
790433d6423SLionel Sambuc     ACPI_GENERIC_STATE      **StateList);
791433d6423SLionel Sambuc 
792433d6423SLionel Sambuc ACPI_GENERIC_STATE *
793433d6423SLionel Sambuc AcpiUtCreateControlState (
794433d6423SLionel Sambuc     void);
795433d6423SLionel Sambuc 
796433d6423SLionel Sambuc void
797433d6423SLionel Sambuc AcpiUtDeleteGenericState (
798433d6423SLionel Sambuc     ACPI_GENERIC_STATE      *State);
799433d6423SLionel Sambuc 
800433d6423SLionel Sambuc 
801433d6423SLionel Sambuc /*
802433d6423SLionel Sambuc  * utmath
803433d6423SLionel Sambuc  */
804433d6423SLionel Sambuc ACPI_STATUS
805433d6423SLionel Sambuc AcpiUtDivide (
806433d6423SLionel Sambuc     UINT64                  InDividend,
807433d6423SLionel Sambuc     UINT64                  InDivisor,
808433d6423SLionel Sambuc     UINT64                  *OutQuotient,
809433d6423SLionel Sambuc     UINT64                  *OutRemainder);
810433d6423SLionel Sambuc 
811433d6423SLionel Sambuc ACPI_STATUS
812433d6423SLionel Sambuc AcpiUtShortDivide (
813433d6423SLionel Sambuc     UINT64                  InDividend,
814433d6423SLionel Sambuc     UINT32                  Divisor,
815433d6423SLionel Sambuc     UINT64                  *OutQuotient,
816433d6423SLionel Sambuc     UINT32                  *OutRemainder);
817433d6423SLionel Sambuc 
818*29492bb7SDavid van Moolenbroek 
819433d6423SLionel Sambuc /*
820433d6423SLionel Sambuc  * utmisc
821433d6423SLionel Sambuc  */
822*29492bb7SDavid van Moolenbroek const ACPI_EXCEPTION_INFO *
823433d6423SLionel Sambuc AcpiUtValidateException (
824433d6423SLionel Sambuc     ACPI_STATUS             Status);
825433d6423SLionel Sambuc 
826433d6423SLionel Sambuc BOOLEAN
827433d6423SLionel Sambuc AcpiUtIsPciRootBridge (
828433d6423SLionel Sambuc     char                    *Id);
829433d6423SLionel Sambuc 
830433d6423SLionel Sambuc BOOLEAN
831433d6423SLionel Sambuc AcpiUtIsAmlTable (
832433d6423SLionel Sambuc     ACPI_TABLE_HEADER       *Table);
833433d6423SLionel Sambuc 
834433d6423SLionel Sambuc ACPI_STATUS
835433d6423SLionel Sambuc AcpiUtWalkPackageTree (
836433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *SourceObject,
837433d6423SLionel Sambuc     void                    *TargetObject,
838433d6423SLionel Sambuc     ACPI_PKG_CALLBACK       WalkCallback,
839433d6423SLionel Sambuc     void                    *Context);
840433d6423SLionel Sambuc 
841433d6423SLionel Sambuc 
842433d6423SLionel Sambuc /* Values for Base above (16=Hex, 10=Decimal) */
843433d6423SLionel Sambuc 
844433d6423SLionel Sambuc #define ACPI_ANY_BASE        0
845433d6423SLionel Sambuc 
846433d6423SLionel Sambuc UINT32
847433d6423SLionel Sambuc AcpiUtDwordByteSwap (
848433d6423SLionel Sambuc     UINT32                  Value);
849433d6423SLionel Sambuc 
850433d6423SLionel Sambuc void
851433d6423SLionel Sambuc AcpiUtSetIntegerWidth (
852433d6423SLionel Sambuc     UINT8                   Revision);
853433d6423SLionel Sambuc 
854433d6423SLionel Sambuc #ifdef ACPI_DEBUG_OUTPUT
855433d6423SLionel Sambuc void
856433d6423SLionel Sambuc AcpiUtDisplayInitPathname (
857433d6423SLionel Sambuc     UINT8                   Type,
858433d6423SLionel Sambuc     ACPI_NAMESPACE_NODE     *ObjHandle,
859433d6423SLionel Sambuc     char                    *Path);
860433d6423SLionel Sambuc #endif
861433d6423SLionel Sambuc 
862433d6423SLionel Sambuc 
863433d6423SLionel Sambuc /*
864*29492bb7SDavid van Moolenbroek  * utownerid - Support for Table/Method Owner IDs
865*29492bb7SDavid van Moolenbroek  */
866*29492bb7SDavid van Moolenbroek ACPI_STATUS
867*29492bb7SDavid van Moolenbroek AcpiUtAllocateOwnerId (
868*29492bb7SDavid van Moolenbroek     ACPI_OWNER_ID           *OwnerId);
869*29492bb7SDavid van Moolenbroek 
870*29492bb7SDavid van Moolenbroek void
871*29492bb7SDavid van Moolenbroek AcpiUtReleaseOwnerId (
872*29492bb7SDavid van Moolenbroek     ACPI_OWNER_ID           *OwnerId);
873*29492bb7SDavid van Moolenbroek 
874*29492bb7SDavid van Moolenbroek 
875*29492bb7SDavid van Moolenbroek /*
876433d6423SLionel Sambuc  * utresrc
877433d6423SLionel Sambuc  */
878433d6423SLionel Sambuc ACPI_STATUS
879433d6423SLionel Sambuc AcpiUtWalkAmlResources (
880*29492bb7SDavid van Moolenbroek     ACPI_WALK_STATE         *WalkState,
881433d6423SLionel Sambuc     UINT8                   *Aml,
882433d6423SLionel Sambuc     ACPI_SIZE               AmlLength,
883433d6423SLionel Sambuc     ACPI_WALK_AML_CALLBACK  UserFunction,
884*29492bb7SDavid van Moolenbroek     void                    **Context);
885433d6423SLionel Sambuc 
886433d6423SLionel Sambuc ACPI_STATUS
887433d6423SLionel Sambuc AcpiUtValidateResource (
888*29492bb7SDavid van Moolenbroek     ACPI_WALK_STATE         *WalkState,
889433d6423SLionel Sambuc     void                    *Aml,
890433d6423SLionel Sambuc     UINT8                   *ReturnIndex);
891433d6423SLionel Sambuc 
892433d6423SLionel Sambuc UINT32
893433d6423SLionel Sambuc AcpiUtGetDescriptorLength (
894433d6423SLionel Sambuc     void                    *Aml);
895433d6423SLionel Sambuc 
896433d6423SLionel Sambuc UINT16
897433d6423SLionel Sambuc AcpiUtGetResourceLength (
898433d6423SLionel Sambuc     void                    *Aml);
899433d6423SLionel Sambuc 
900433d6423SLionel Sambuc UINT8
901433d6423SLionel Sambuc AcpiUtGetResourceHeaderLength (
902433d6423SLionel Sambuc     void                    *Aml);
903433d6423SLionel Sambuc 
904433d6423SLionel Sambuc UINT8
905433d6423SLionel Sambuc AcpiUtGetResourceType (
906433d6423SLionel Sambuc     void                    *Aml);
907433d6423SLionel Sambuc 
908433d6423SLionel Sambuc ACPI_STATUS
909433d6423SLionel Sambuc AcpiUtGetResourceEndTag (
910433d6423SLionel Sambuc     ACPI_OPERAND_OBJECT     *ObjDesc,
911433d6423SLionel Sambuc     UINT8                   **EndTag);
912433d6423SLionel Sambuc 
913433d6423SLionel Sambuc 
914433d6423SLionel Sambuc /*
915*29492bb7SDavid van Moolenbroek  * utstring - String and character utilities
916*29492bb7SDavid van Moolenbroek  */
917*29492bb7SDavid van Moolenbroek void
918*29492bb7SDavid van Moolenbroek AcpiUtStrupr (
919*29492bb7SDavid van Moolenbroek     char                    *SrcString);
920*29492bb7SDavid van Moolenbroek 
921*29492bb7SDavid van Moolenbroek void
922*29492bb7SDavid van Moolenbroek AcpiUtStrlwr (
923*29492bb7SDavid van Moolenbroek     char                    *SrcString);
924*29492bb7SDavid van Moolenbroek 
925*29492bb7SDavid van Moolenbroek int
926*29492bb7SDavid van Moolenbroek AcpiUtStricmp (
927*29492bb7SDavid van Moolenbroek     char                    *String1,
928*29492bb7SDavid van Moolenbroek     char                    *String2);
929*29492bb7SDavid van Moolenbroek 
930*29492bb7SDavid van Moolenbroek ACPI_STATUS
931*29492bb7SDavid van Moolenbroek AcpiUtStrtoul64 (
932*29492bb7SDavid van Moolenbroek     char                    *String,
933*29492bb7SDavid van Moolenbroek     UINT32                  Base,
934*29492bb7SDavid van Moolenbroek     UINT64                  *RetInteger);
935*29492bb7SDavid van Moolenbroek 
936*29492bb7SDavid van Moolenbroek void
937*29492bb7SDavid van Moolenbroek AcpiUtPrintString (
938*29492bb7SDavid van Moolenbroek     char                    *String,
939*29492bb7SDavid van Moolenbroek     UINT16                  MaxLength);
940*29492bb7SDavid van Moolenbroek 
941*29492bb7SDavid van Moolenbroek void
942*29492bb7SDavid van Moolenbroek UtConvertBackslashes (
943*29492bb7SDavid van Moolenbroek     char                    *Pathname);
944*29492bb7SDavid van Moolenbroek 
945*29492bb7SDavid van Moolenbroek BOOLEAN
946*29492bb7SDavid van Moolenbroek AcpiUtValidAcpiName (
947*29492bb7SDavid van Moolenbroek     char                    *Name);
948*29492bb7SDavid van Moolenbroek 
949*29492bb7SDavid van Moolenbroek BOOLEAN
950*29492bb7SDavid van Moolenbroek AcpiUtValidAcpiChar (
951*29492bb7SDavid van Moolenbroek     char                    Character,
952*29492bb7SDavid van Moolenbroek     UINT32                  Position);
953*29492bb7SDavid van Moolenbroek 
954*29492bb7SDavid van Moolenbroek void
955*29492bb7SDavid van Moolenbroek AcpiUtRepairName (
956*29492bb7SDavid van Moolenbroek     char                    *Name);
957*29492bb7SDavid van Moolenbroek 
958*29492bb7SDavid van Moolenbroek #if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION)
959*29492bb7SDavid van Moolenbroek BOOLEAN
960*29492bb7SDavid van Moolenbroek AcpiUtSafeStrcpy (
961*29492bb7SDavid van Moolenbroek     char                    *Dest,
962*29492bb7SDavid van Moolenbroek     ACPI_SIZE               DestSize,
963*29492bb7SDavid van Moolenbroek     char                    *Source);
964*29492bb7SDavid van Moolenbroek 
965*29492bb7SDavid van Moolenbroek BOOLEAN
966*29492bb7SDavid van Moolenbroek AcpiUtSafeStrcat (
967*29492bb7SDavid van Moolenbroek     char                    *Dest,
968*29492bb7SDavid van Moolenbroek     ACPI_SIZE               DestSize,
969*29492bb7SDavid van Moolenbroek     char                    *Source);
970*29492bb7SDavid van Moolenbroek 
971*29492bb7SDavid van Moolenbroek BOOLEAN
972*29492bb7SDavid van Moolenbroek AcpiUtSafeStrncat (
973*29492bb7SDavid van Moolenbroek     char                    *Dest,
974*29492bb7SDavid van Moolenbroek     ACPI_SIZE               DestSize,
975*29492bb7SDavid van Moolenbroek     char                    *Source,
976*29492bb7SDavid van Moolenbroek     ACPI_SIZE               MaxTransferLength);
977*29492bb7SDavid van Moolenbroek #endif
978*29492bb7SDavid van Moolenbroek 
979*29492bb7SDavid van Moolenbroek 
980*29492bb7SDavid van Moolenbroek /*
981433d6423SLionel Sambuc  * utmutex - mutex support
982433d6423SLionel Sambuc  */
983433d6423SLionel Sambuc ACPI_STATUS
984433d6423SLionel Sambuc AcpiUtMutexInitialize (
985433d6423SLionel Sambuc     void);
986433d6423SLionel Sambuc 
987433d6423SLionel Sambuc void
988433d6423SLionel Sambuc AcpiUtMutexTerminate (
989433d6423SLionel Sambuc     void);
990433d6423SLionel Sambuc 
991433d6423SLionel Sambuc ACPI_STATUS
992433d6423SLionel Sambuc AcpiUtAcquireMutex (
993433d6423SLionel Sambuc     ACPI_MUTEX_HANDLE       MutexId);
994433d6423SLionel Sambuc 
995433d6423SLionel Sambuc ACPI_STATUS
996433d6423SLionel Sambuc AcpiUtReleaseMutex (
997433d6423SLionel Sambuc     ACPI_MUTEX_HANDLE       MutexId);
998433d6423SLionel Sambuc 
999433d6423SLionel Sambuc 
1000433d6423SLionel Sambuc /*
1001433d6423SLionel Sambuc  * utalloc - memory allocation and object caching
1002433d6423SLionel Sambuc  */
1003433d6423SLionel Sambuc ACPI_STATUS
1004433d6423SLionel Sambuc AcpiUtCreateCaches (
1005433d6423SLionel Sambuc     void);
1006433d6423SLionel Sambuc 
1007433d6423SLionel Sambuc ACPI_STATUS
1008433d6423SLionel Sambuc AcpiUtDeleteCaches (
1009433d6423SLionel Sambuc     void);
1010433d6423SLionel Sambuc 
1011433d6423SLionel Sambuc ACPI_STATUS
1012433d6423SLionel Sambuc AcpiUtValidateBuffer (
1013433d6423SLionel Sambuc     ACPI_BUFFER             *Buffer);
1014433d6423SLionel Sambuc 
1015433d6423SLionel Sambuc ACPI_STATUS
1016433d6423SLionel Sambuc AcpiUtInitializeBuffer (
1017433d6423SLionel Sambuc     ACPI_BUFFER             *Buffer,
1018433d6423SLionel Sambuc     ACPI_SIZE               RequiredLength);
1019433d6423SLionel Sambuc 
1020433d6423SLionel Sambuc #ifdef ACPI_DBG_TRACK_ALLOCATIONS
1021433d6423SLionel Sambuc void *
1022433d6423SLionel Sambuc AcpiUtAllocateAndTrack (
1023433d6423SLionel Sambuc     ACPI_SIZE               Size,
1024433d6423SLionel Sambuc     UINT32                  Component,
1025433d6423SLionel Sambuc     const char              *Module,
1026433d6423SLionel Sambuc     UINT32                  Line);
1027433d6423SLionel Sambuc 
1028433d6423SLionel Sambuc void *
1029433d6423SLionel Sambuc AcpiUtAllocateZeroedAndTrack (
1030433d6423SLionel Sambuc     ACPI_SIZE               Size,
1031433d6423SLionel Sambuc     UINT32                  Component,
1032433d6423SLionel Sambuc     const char              *Module,
1033433d6423SLionel Sambuc     UINT32                  Line);
1034433d6423SLionel Sambuc 
1035433d6423SLionel Sambuc void
1036433d6423SLionel Sambuc AcpiUtFreeAndTrack (
1037433d6423SLionel Sambuc     void                    *Address,
1038433d6423SLionel Sambuc     UINT32                  Component,
1039433d6423SLionel Sambuc     const char              *Module,
1040433d6423SLionel Sambuc     UINT32                  Line);
1041433d6423SLionel Sambuc 
1042433d6423SLionel Sambuc void
1043433d6423SLionel Sambuc AcpiUtDumpAllocationInfo (
1044433d6423SLionel Sambuc     void);
1045433d6423SLionel Sambuc 
1046433d6423SLionel Sambuc void
1047433d6423SLionel Sambuc AcpiUtDumpAllocations (
1048433d6423SLionel Sambuc     UINT32                  Component,
1049433d6423SLionel Sambuc     const char              *Module);
1050433d6423SLionel Sambuc 
1051433d6423SLionel Sambuc ACPI_STATUS
1052433d6423SLionel Sambuc AcpiUtCreateList (
1053433d6423SLionel Sambuc     char                    *ListName,
1054433d6423SLionel Sambuc     UINT16                  ObjectSize,
1055433d6423SLionel Sambuc     ACPI_MEMORY_LIST        **ReturnCache);
1056433d6423SLionel Sambuc 
1057*29492bb7SDavid van Moolenbroek #endif /* ACPI_DBG_TRACK_ALLOCATIONS */
1058433d6423SLionel Sambuc 
1059*29492bb7SDavid van Moolenbroek /*
1060*29492bb7SDavid van Moolenbroek  * utaddress - address range check
1061*29492bb7SDavid van Moolenbroek  */
1062*29492bb7SDavid van Moolenbroek ACPI_STATUS
1063*29492bb7SDavid van Moolenbroek AcpiUtAddAddressRange (
1064*29492bb7SDavid van Moolenbroek     ACPI_ADR_SPACE_TYPE     SpaceId,
1065*29492bb7SDavid van Moolenbroek     ACPI_PHYSICAL_ADDRESS   Address,
1066*29492bb7SDavid van Moolenbroek     UINT32                  Length,
1067*29492bb7SDavid van Moolenbroek     ACPI_NAMESPACE_NODE     *RegionNode);
1068*29492bb7SDavid van Moolenbroek 
1069*29492bb7SDavid van Moolenbroek void
1070*29492bb7SDavid van Moolenbroek AcpiUtRemoveAddressRange (
1071*29492bb7SDavid van Moolenbroek     ACPI_ADR_SPACE_TYPE     SpaceId,
1072*29492bb7SDavid van Moolenbroek     ACPI_NAMESPACE_NODE     *RegionNode);
1073*29492bb7SDavid van Moolenbroek 
1074*29492bb7SDavid van Moolenbroek UINT32
1075*29492bb7SDavid van Moolenbroek AcpiUtCheckAddressRange (
1076*29492bb7SDavid van Moolenbroek     ACPI_ADR_SPACE_TYPE     SpaceId,
1077*29492bb7SDavid van Moolenbroek     ACPI_PHYSICAL_ADDRESS   Address,
1078*29492bb7SDavid van Moolenbroek     UINT32                  Length,
1079*29492bb7SDavid van Moolenbroek     BOOLEAN                 Warn);
1080*29492bb7SDavid van Moolenbroek 
1081*29492bb7SDavid van Moolenbroek void
1082*29492bb7SDavid van Moolenbroek AcpiUtDeleteAddressLists (
1083*29492bb7SDavid van Moolenbroek     void);
1084*29492bb7SDavid van Moolenbroek 
1085*29492bb7SDavid van Moolenbroek /*
1086*29492bb7SDavid van Moolenbroek  * utxferror - various error/warning output functions
1087*29492bb7SDavid van Moolenbroek  */
1088*29492bb7SDavid van Moolenbroek void ACPI_INTERNAL_VAR_XFACE
1089*29492bb7SDavid van Moolenbroek AcpiUtPredefinedWarning (
1090*29492bb7SDavid van Moolenbroek     const char              *ModuleName,
1091*29492bb7SDavid van Moolenbroek     UINT32                  LineNumber,
1092*29492bb7SDavid van Moolenbroek     char                    *Pathname,
1093*29492bb7SDavid van Moolenbroek     UINT8                   NodeFlags,
1094*29492bb7SDavid van Moolenbroek     const char              *Format,
1095*29492bb7SDavid van Moolenbroek     ...);
1096*29492bb7SDavid van Moolenbroek 
1097*29492bb7SDavid van Moolenbroek void ACPI_INTERNAL_VAR_XFACE
1098*29492bb7SDavid van Moolenbroek AcpiUtPredefinedInfo (
1099*29492bb7SDavid van Moolenbroek     const char              *ModuleName,
1100*29492bb7SDavid van Moolenbroek     UINT32                  LineNumber,
1101*29492bb7SDavid van Moolenbroek     char                    *Pathname,
1102*29492bb7SDavid van Moolenbroek     UINT8                   NodeFlags,
1103*29492bb7SDavid van Moolenbroek     const char              *Format,
1104*29492bb7SDavid van Moolenbroek     ...);
1105*29492bb7SDavid van Moolenbroek 
1106*29492bb7SDavid van Moolenbroek void ACPI_INTERNAL_VAR_XFACE
1107*29492bb7SDavid van Moolenbroek AcpiUtPredefinedBiosError (
1108*29492bb7SDavid van Moolenbroek     const char              *ModuleName,
1109*29492bb7SDavid van Moolenbroek     UINT32                  LineNumber,
1110*29492bb7SDavid van Moolenbroek     char                    *Pathname,
1111*29492bb7SDavid van Moolenbroek     UINT8                   NodeFlags,
1112*29492bb7SDavid van Moolenbroek     const char              *Format,
1113*29492bb7SDavid van Moolenbroek     ...);
1114*29492bb7SDavid van Moolenbroek 
1115*29492bb7SDavid van Moolenbroek void
1116*29492bb7SDavid van Moolenbroek AcpiUtNamespaceError (
1117*29492bb7SDavid van Moolenbroek     const char              *ModuleName,
1118*29492bb7SDavid van Moolenbroek     UINT32                  LineNumber,
1119*29492bb7SDavid van Moolenbroek     const char              *InternalName,
1120*29492bb7SDavid van Moolenbroek     ACPI_STATUS             LookupStatus);
1121*29492bb7SDavid van Moolenbroek 
1122*29492bb7SDavid van Moolenbroek void
1123*29492bb7SDavid van Moolenbroek AcpiUtMethodError (
1124*29492bb7SDavid van Moolenbroek     const char              *ModuleName,
1125*29492bb7SDavid van Moolenbroek     UINT32                  LineNumber,
1126*29492bb7SDavid van Moolenbroek     const char              *Message,
1127*29492bb7SDavid van Moolenbroek     ACPI_NAMESPACE_NODE     *Node,
1128*29492bb7SDavid van Moolenbroek     const char              *Path,
1129*29492bb7SDavid van Moolenbroek     ACPI_STATUS             LookupStatus);
1130*29492bb7SDavid van Moolenbroek 
1131*29492bb7SDavid van Moolenbroek /*
1132*29492bb7SDavid van Moolenbroek  * Utility functions for ACPI names and IDs
1133*29492bb7SDavid van Moolenbroek  */
1134*29492bb7SDavid van Moolenbroek const AH_PREDEFINED_NAME *
1135*29492bb7SDavid van Moolenbroek AcpiAhMatchPredefinedName (
1136*29492bb7SDavid van Moolenbroek     char                    *Nameseg);
1137*29492bb7SDavid van Moolenbroek 
1138*29492bb7SDavid van Moolenbroek const AH_DEVICE_ID *
1139*29492bb7SDavid van Moolenbroek AcpiAhMatchHardwareId (
1140*29492bb7SDavid van Moolenbroek     char                    *Hid);
1141*29492bb7SDavid van Moolenbroek 
1142*29492bb7SDavid van Moolenbroek const char *
1143*29492bb7SDavid van Moolenbroek AcpiAhMatchUuid (
1144*29492bb7SDavid van Moolenbroek     UINT8                   *Data);
1145*29492bb7SDavid van Moolenbroek 
1146*29492bb7SDavid van Moolenbroek /*
1147*29492bb7SDavid van Moolenbroek  * utprint - printf/vprintf output functions
1148*29492bb7SDavid van Moolenbroek  */
1149*29492bb7SDavid van Moolenbroek const char *
1150*29492bb7SDavid van Moolenbroek AcpiUtScanNumber (
1151*29492bb7SDavid van Moolenbroek     const char              *String,
1152*29492bb7SDavid van Moolenbroek     UINT64                  *NumberPtr);
1153*29492bb7SDavid van Moolenbroek 
1154*29492bb7SDavid van Moolenbroek const char *
1155*29492bb7SDavid van Moolenbroek AcpiUtPrintNumber (
1156*29492bb7SDavid van Moolenbroek     char                    *String,
1157*29492bb7SDavid van Moolenbroek     UINT64                  Number);
1158*29492bb7SDavid van Moolenbroek 
1159*29492bb7SDavid van Moolenbroek int
1160*29492bb7SDavid van Moolenbroek AcpiUtVsnprintf (
1161*29492bb7SDavid van Moolenbroek     char                    *String,
1162*29492bb7SDavid van Moolenbroek     ACPI_SIZE               Size,
1163*29492bb7SDavid van Moolenbroek     const char              *Format,
1164*29492bb7SDavid van Moolenbroek     va_list                 Args);
1165*29492bb7SDavid van Moolenbroek 
1166*29492bb7SDavid van Moolenbroek int
1167*29492bb7SDavid van Moolenbroek AcpiUtSnprintf (
1168*29492bb7SDavid van Moolenbroek     char                    *String,
1169*29492bb7SDavid van Moolenbroek     ACPI_SIZE               Size,
1170*29492bb7SDavid van Moolenbroek     const char              *Format,
1171*29492bb7SDavid van Moolenbroek     ...);
1172*29492bb7SDavid van Moolenbroek 
1173*29492bb7SDavid van Moolenbroek #ifdef ACPI_APPLICATION
1174*29492bb7SDavid van Moolenbroek int
1175*29492bb7SDavid van Moolenbroek AcpiUtFileVprintf (
1176*29492bb7SDavid van Moolenbroek     ACPI_FILE               File,
1177*29492bb7SDavid van Moolenbroek     const char              *Format,
1178*29492bb7SDavid van Moolenbroek     va_list                 Args);
1179*29492bb7SDavid van Moolenbroek 
1180*29492bb7SDavid van Moolenbroek int
1181*29492bb7SDavid van Moolenbroek AcpiUtFilePrintf (
1182*29492bb7SDavid van Moolenbroek     ACPI_FILE               File,
1183*29492bb7SDavid van Moolenbroek     const char              *Format,
1184*29492bb7SDavid van Moolenbroek     ...);
1185433d6423SLionel Sambuc #endif
1186433d6423SLionel Sambuc 
1187*29492bb7SDavid van Moolenbroek /*
1188*29492bb7SDavid van Moolenbroek  * utuuid -- UUID support functions
1189*29492bb7SDavid van Moolenbroek  */
1190*29492bb7SDavid van Moolenbroek void
1191*29492bb7SDavid van Moolenbroek AcpiUtConvertStringToUuid (
1192*29492bb7SDavid van Moolenbroek     char                    *InString,
1193*29492bb7SDavid van Moolenbroek     UINT8                   *UuidBuffer);
1194*29492bb7SDavid van Moolenbroek 
1195433d6423SLionel Sambuc #endif /* _ACUTILS_H */
1196