167754Smsmith/******************************************************************************
267754Smsmith *
377424Smsmith * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures
467754Smsmith *
567754Smsmith *****************************************************************************/
667754Smsmith
7217365Sjkim/*
8306536Sjkim * Copyright (C) 2000 - 2016, Intel Corp.
970243Smsmith * All rights reserved.
1067754Smsmith *
11217365Sjkim * Redistribution and use in source and binary forms, with or without
12217365Sjkim * modification, are permitted provided that the following conditions
13217365Sjkim * are met:
14217365Sjkim * 1. Redistributions of source code must retain the above copyright
15217365Sjkim *    notice, this list of conditions, and the following disclaimer,
16217365Sjkim *    without modification.
17217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18217365Sjkim *    substantially similar to the "NO WARRANTY" disclaimer below
19217365Sjkim *    ("Disclaimer") and any redistribution must be conditioned upon
20217365Sjkim *    including a substantially similar Disclaimer requirement for further
21217365Sjkim *    binary redistribution.
22217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names
23217365Sjkim *    of any contributors may be used to endorse or promote products derived
24217365Sjkim *    from this software without specific prior written permission.
2567754Smsmith *
26217365Sjkim * Alternatively, this software may be distributed under the terms of the
27217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free
28217365Sjkim * Software Foundation.
2967754Smsmith *
30217365Sjkim * NO WARRANTY
31217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41217365Sjkim * POSSIBILITY OF SUCH DAMAGES.
42217365Sjkim */
4367754Smsmith
4477424Smsmith#ifndef _ACUTILS_H
4577424Smsmith#define _ACUTILS_H
4667754Smsmith
4767754Smsmith
48167802Sjkimextern const UINT8                      AcpiGbl_ResourceAmlSizes[];
49228110Sjkimextern const UINT8                      AcpiGbl_ResourceAmlSerialBusSizes[];
50167802Sjkim
51167802Sjkim/* Strings used by the disassembler and debugger resource dump routines */
52167802Sjkim
53281075Sdim#if defined(ACPI_DEBUG_OUTPUT) || defined (ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER)
54167802Sjkim
55167802Sjkimextern const char                       *AcpiGbl_BmDecode[];
56167802Sjkimextern const char                       *AcpiGbl_ConfigDecode[];
57167802Sjkimextern const char                       *AcpiGbl_ConsumeDecode[];
58167802Sjkimextern const char                       *AcpiGbl_DecDecode[];
59167802Sjkimextern const char                       *AcpiGbl_HeDecode[];
60167802Sjkimextern const char                       *AcpiGbl_IoDecode[];
61167802Sjkimextern const char                       *AcpiGbl_LlDecode[];
62167802Sjkimextern const char                       *AcpiGbl_MaxDecode[];
63167802Sjkimextern const char                       *AcpiGbl_MemDecode[];
64167802Sjkimextern const char                       *AcpiGbl_MinDecode[];
65167802Sjkimextern const char                       *AcpiGbl_MtpDecode[];
66167802Sjkimextern const char                       *AcpiGbl_RngDecode[];
67167802Sjkimextern const char                       *AcpiGbl_RwDecode[];
68167802Sjkimextern const char                       *AcpiGbl_ShrDecode[];
69167802Sjkimextern const char                       *AcpiGbl_SizDecode[];
70167802Sjkimextern const char                       *AcpiGbl_TrsDecode[];
71167802Sjkimextern const char                       *AcpiGbl_TtpDecode[];
72167802Sjkimextern const char                       *AcpiGbl_TypDecode[];
73228110Sjkimextern const char                       *AcpiGbl_PpcDecode[];
74228110Sjkimextern const char                       *AcpiGbl_IorDecode[];
75228110Sjkimextern const char                       *AcpiGbl_DtsDecode[];
76228110Sjkimextern const char                       *AcpiGbl_CtDecode[];
77228110Sjkimextern const char                       *AcpiGbl_SbtDecode[];
78228110Sjkimextern const char                       *AcpiGbl_AmDecode[];
79228110Sjkimextern const char                       *AcpiGbl_SmDecode[];
80228110Sjkimextern const char                       *AcpiGbl_WmDecode[];
81228110Sjkimextern const char                       *AcpiGbl_CphDecode[];
82228110Sjkimextern const char                       *AcpiGbl_CpoDecode[];
83228110Sjkimextern const char                       *AcpiGbl_DpDecode[];
84228110Sjkimextern const char                       *AcpiGbl_EdDecode[];
85228110Sjkimextern const char                       *AcpiGbl_BpbDecode[];
86228110Sjkimextern const char                       *AcpiGbl_SbDecode[];
87228110Sjkimextern const char                       *AcpiGbl_FcDecode[];
88228110Sjkimextern const char                       *AcpiGbl_PtDecode[];
89167802Sjkim#endif
90167802Sjkim
91250838Sjkim/*
92250838Sjkim * For the iASL compiler case, the output is redirected to stderr so that
93250838Sjkim * any of the various ACPI errors and warnings do not appear in the output
94250838Sjkim * files, for either the compiler or disassembler portions of the tool.
95250838Sjkim */
96250838Sjkim#ifdef ACPI_ASL_COMPILER
97250838Sjkim
98250838Sjkim#include <stdio.h>
99250838Sjkim
100250838Sjkim#define ACPI_MSG_REDIRECT_BEGIN \
101250838Sjkim    FILE                    *OutputFile = AcpiGbl_OutputFile; \
102250838Sjkim    AcpiOsRedirectOutput (stderr);
103250838Sjkim
104250838Sjkim#define ACPI_MSG_REDIRECT_END \
105250838Sjkim    AcpiOsRedirectOutput (OutputFile);
106250838Sjkim
107250838Sjkim#else
108250838Sjkim/*
109250838Sjkim * non-iASL case - no redirection, nothing to do
110250838Sjkim */
111250838Sjkim#define ACPI_MSG_REDIRECT_BEGIN
112250838Sjkim#define ACPI_MSG_REDIRECT_END
113250838Sjkim#endif
114250838Sjkim
115250838Sjkim/*
116250838Sjkim * Common error message prefixes
117250838Sjkim */
118306536Sjkim#ifndef ACPI_MSG_ERROR
119250838Sjkim#define ACPI_MSG_ERROR          "ACPI Error: "
120306536Sjkim#endif
121306536Sjkim#ifndef ACPI_MSG_EXCEPTION
122250838Sjkim#define ACPI_MSG_EXCEPTION      "ACPI Exception: "
123306536Sjkim#endif
124306536Sjkim#ifndef ACPI_MSG_WARNING
125250838Sjkim#define ACPI_MSG_WARNING        "ACPI Warning: "
126306536Sjkim#endif
127306536Sjkim#ifndef ACPI_MSG_INFO
128250838Sjkim#define ACPI_MSG_INFO           "ACPI: "
129306536Sjkim#endif
130250838Sjkim
131306536Sjkim#ifndef ACPI_MSG_BIOS_ERROR
132250838Sjkim#define ACPI_MSG_BIOS_ERROR     "ACPI BIOS Error (bug): "
133306536Sjkim#endif
134306536Sjkim#ifndef ACPI_MSG_BIOS_WARNING
135250838Sjkim#define ACPI_MSG_BIOS_WARNING   "ACPI BIOS Warning (bug): "
136306536Sjkim#endif
137250838Sjkim
138250838Sjkim/*
139250838Sjkim * Common message suffix
140250838Sjkim */
141250838Sjkim#define ACPI_MSG_SUFFIX \
142250838Sjkim    AcpiOsPrintf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, ModuleName, LineNumber)
143250838Sjkim
144250838Sjkim
145167802Sjkim/* Types for Resource descriptor entries */
146167802Sjkim
147167802Sjkim#define ACPI_INVALID_RESOURCE           0
148167802Sjkim#define ACPI_FIXED_LENGTH               1
149167802Sjkim#define ACPI_VARIABLE_LENGTH            2
150167802Sjkim#define ACPI_SMALL_VARIABLE_LENGTH      3
151167802Sjkim
15273561Smsmithtypedef
153167802SjkimACPI_STATUS (*ACPI_WALK_AML_CALLBACK) (
154167802Sjkim    UINT8                   *Aml,
155167802Sjkim    UINT32                  Length,
156167802Sjkim    UINT32                  Offset,
157167802Sjkim    UINT8                   ResourceIndex,
158245582Sjkim    void                    **Context);
159167802Sjkim
160167802Sjkimtypedef
16173561SmsmithACPI_STATUS (*ACPI_PKG_CALLBACK) (
16273561Smsmith    UINT8                   ObjectType,
16373561Smsmith    ACPI_OPERAND_OBJECT     *SourceObject,
16473561Smsmith    ACPI_GENERIC_STATE      *State,
16573561Smsmith    void                    *Context);
16673561Smsmith
16773561Smsmithtypedef struct acpi_pkg_info
16873561Smsmith{
16973561Smsmith    UINT8                   *FreeSpace;
17091116Smsmith    ACPI_SIZE               Length;
17173561Smsmith    UINT32                  ObjectSpace;
17273561Smsmith    UINT32                  NumPackages;
173114237Snjl
17473561Smsmith} ACPI_PKG_INFO;
17573561Smsmith
176249112Sjkim/* Object reference counts */
177249112Sjkim
17867754Smsmith#define REF_INCREMENT       (UINT16) 0
17967754Smsmith#define REF_DECREMENT       (UINT16) 1
18067754Smsmith
18177424Smsmith/* AcpiUtDumpBuffer */
18267754Smsmith
18367754Smsmith#define DB_BYTE_DISPLAY     1
18467754Smsmith#define DB_WORD_DISPLAY     2
18567754Smsmith#define DB_DWORD_DISPLAY    4
18667754Smsmith#define DB_QWORD_DISPLAY    8
18767754Smsmith
188306536Sjkim
18967754Smsmith/*
190306536Sjkim * utascii - ASCII utilities
191306536Sjkim */
192306536SjkimBOOLEAN
193306536SjkimAcpiUtValidNameseg (
194306536Sjkim    char                    *Signature);
195306536Sjkim
196306536SjkimBOOLEAN
197306536SjkimAcpiUtValidNameChar (
198306536Sjkim    char                    Character,
199306536Sjkim    UINT32                  Position);
200306536Sjkim
201306536Sjkimvoid
202306536SjkimAcpiUtCheckAndRepairAscii (
203306536Sjkim    UINT8                   *Name,
204306536Sjkim    char                    *RepairedName,
205306536Sjkim    UINT32                  Count);
206306536Sjkim
207306536Sjkim
208306536Sjkim/*
209306536Sjkim * utnonansi - Non-ANSI C library functions
210306536Sjkim */
211306536Sjkimvoid
212306536SjkimAcpiUtStrupr (
213306536Sjkim    char                    *SrcString);
214306536Sjkim
215306536Sjkimvoid
216306536SjkimAcpiUtStrlwr (
217306536Sjkim    char                    *SrcString);
218306536Sjkim
219306536Sjkimint
220306536SjkimAcpiUtStricmp (
221306536Sjkim    char                    *String1,
222306536Sjkim    char                    *String2);
223306536Sjkim
224306536SjkimACPI_STATUS
225306536SjkimAcpiUtStrtoul64 (
226306536Sjkim    char                    *String,
227306536Sjkim    UINT32                  Base,
228306536Sjkim    UINT32                  MaxIntegerByteWidth,
229306536Sjkim    UINT64                  *RetInteger);
230306536Sjkim
231306536Sjkim/* Values for MaxIntegerByteWidth above */
232306536Sjkim
233306536Sjkim#define ACPI_MAX32_BYTE_WIDTH       4
234306536Sjkim#define ACPI_MAX64_BYTE_WIDTH       8
235306536Sjkim
236306536Sjkim
237306536Sjkim/*
238151937Sjkim * utglobal - Global data structures and procedures
23967754Smsmith */
240193267SjkimACPI_STATUS
241151937SjkimAcpiUtInitGlobals (
24267754Smsmith    void);
24367754Smsmith
244102550Siwasaki#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
24569746Smsmith
246306536Sjkimconst char *
24777424SmsmithAcpiUtGetMutexName (
24867754Smsmith    UINT32                  MutexId);
24967754Smsmith
250193267Sjkimconst char *
251193267SjkimAcpiUtGetNotifyName (
252281075Sdim    UINT32                  NotifyValue,
253281075Sdim    ACPI_OBJECT_TYPE        Type);
254100966Siwasaki#endif
255100966Siwasaki
256306536Sjkimconst char *
25777424SmsmithAcpiUtGetTypeName (
25891116Smsmith    ACPI_OBJECT_TYPE        Type);
25967754Smsmith
260306536Sjkimconst char *
261123315SnjlAcpiUtGetNodeName (
262123315Snjl    void                    *Object);
263123315Snjl
264306536Sjkimconst char *
265123315SnjlAcpiUtGetDescriptorName (
266123315Snjl    void                    *Object);
267123315Snjl
268193267Sjkimconst char *
269193267SjkimAcpiUtGetReferenceName (
270193267Sjkim    ACPI_OPERAND_OBJECT     *Object);
271193267Sjkim
272306536Sjkimconst char *
27399679SiwasakiAcpiUtGetObjectTypeName (
27499679Siwasaki    ACPI_OPERAND_OBJECT     *ObjDesc);
27599679Siwasaki
276306536Sjkimconst char *
27777424SmsmithAcpiUtGetRegionName (
27869746Smsmith    UINT8                   SpaceId);
27969746Smsmith
280306536Sjkimconst char *
28191116SmsmithAcpiUtGetEventName (
28291116Smsmith    UINT32                  EventId);
28369746Smsmith
28499679Siwasakichar
28582367SmsmithAcpiUtHexToAsciiChar (
286202771Sjkim    UINT64                  Integer,
28782367Smsmith    UINT32                  Position);
28882367Smsmith
289281075SdimUINT8
290281075SdimAcpiUtAsciiCharToHex (
291281075Sdim    int                     HexChar);
292281075Sdim
29367754SmsmithBOOLEAN
29477424SmsmithAcpiUtValidObjectType (
29591116Smsmith    ACPI_OBJECT_TYPE        Type);
29667754Smsmith
29767754Smsmith
298151937Sjkim/*
299151937Sjkim * utinit - miscellaneous initialization and shutdown
300151937Sjkim */
301151937SjkimACPI_STATUS
302151937SjkimAcpiUtHardwareInitialize (
303151937Sjkim    void);
30467754Smsmith
305151937Sjkimvoid
306151937SjkimAcpiUtSubsystemShutdown (
307151937Sjkim    void);
308151937Sjkim
309151937Sjkim
31067754Smsmith/*
311151937Sjkim * utcopy - Object construction and conversion interfaces
31267754Smsmith */
31367754SmsmithACPI_STATUS
31477424SmsmithAcpiUtBuildSimpleObject(
31567754Smsmith    ACPI_OPERAND_OBJECT     *Obj,
31667754Smsmith    ACPI_OBJECT             *UserObj,
31767754Smsmith    UINT8                   *DataSpace,
31867754Smsmith    UINT32                  *BufferSpaceUsed);
31967754Smsmith
32067754SmsmithACPI_STATUS
32177424SmsmithAcpiUtBuildPackageObject (
32267754Smsmith    ACPI_OPERAND_OBJECT     *Obj,
32367754Smsmith    UINT8                   *Buffer,
32467754Smsmith    UINT32                  *SpaceUsed);
32567754Smsmith
32667754SmsmithACPI_STATUS
32777424SmsmithAcpiUtCopyIobjectToEobject (
32867754Smsmith    ACPI_OPERAND_OBJECT     *Obj,
32967754Smsmith    ACPI_BUFFER             *RetBuffer);
33067754Smsmith
33167754SmsmithACPI_STATUS
33277424SmsmithAcpiUtCopyEobjectToIobject (
33367754Smsmith    ACPI_OBJECT             *Obj,
33484491Smsmith    ACPI_OPERAND_OBJECT     **InternalObj);
33567754Smsmith
33667754SmsmithACPI_STATUS
33777424SmsmithAcpiUtCopyISimpleToIsimple (
33867754Smsmith    ACPI_OPERAND_OBJECT     *SourceObj,
33967754Smsmith    ACPI_OPERAND_OBJECT     *DestObj);
34067754Smsmith
34167754SmsmithACPI_STATUS
34291116SmsmithAcpiUtCopyIobjectToIobject (
34391116Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
34491116Smsmith    ACPI_OPERAND_OBJECT     **DestDesc,
34591116Smsmith    ACPI_WALK_STATE         *WalkState);
34691116Smsmith
34791116Smsmith
34867754Smsmith/*
349151937Sjkim * utcreate - Object creation
35067754Smsmith */
35167754SmsmithACPI_STATUS
35277424SmsmithAcpiUtUpdateObjectReference (
35367754Smsmith    ACPI_OPERAND_OBJECT     *Object,
35467754Smsmith    UINT16                  Action);
35567754Smsmith
35667754Smsmith
35767754Smsmith/*
358151937Sjkim * utdebug - Debug interfaces
35967754Smsmith */
36083174Smsmithvoid
36183174SmsmithAcpiUtInitStackPtrTrace (
36267754Smsmith    void);
36367754Smsmith
36467754Smsmithvoid
36583174SmsmithAcpiUtTrackStackPtr (
36683174Smsmith    void);
36767754Smsmith
36867754Smsmithvoid
36983174SmsmithAcpiUtTrace (
37067754Smsmith    UINT32                  LineNumber,
371151937Sjkim    const char              *FunctionName,
372193267Sjkim    const char              *ModuleName,
373151937Sjkim    UINT32                  ComponentId);
37467754Smsmith
37567754Smsmithvoid
37683174SmsmithAcpiUtTracePtr (
37767754Smsmith    UINT32                  LineNumber,
378151937Sjkim    const char              *FunctionName,
379193267Sjkim    const char              *ModuleName,
380151937Sjkim    UINT32                  ComponentId,
381306536Sjkim    const void              *Pointer);
38267754Smsmith
38367754Smsmithvoid
38483174SmsmithAcpiUtTraceU32 (
38567754Smsmith    UINT32                  LineNumber,
386151937Sjkim    const char              *FunctionName,
387193267Sjkim    const char              *ModuleName,
388151937Sjkim    UINT32                  ComponentId,
38967754Smsmith    UINT32                  Integer);
39067754Smsmith
39167754Smsmithvoid
39283174SmsmithAcpiUtTraceStr (
39367754Smsmith    UINT32                  LineNumber,
394151937Sjkim    const char              *FunctionName,
395193267Sjkim    const char              *ModuleName,
396151937Sjkim    UINT32                  ComponentId,
397306536Sjkim    const char              *String);
39867754Smsmith
39967754Smsmithvoid
40083174SmsmithAcpiUtExit (
40167754Smsmith    UINT32                  LineNumber,
402151937Sjkim    const char              *FunctionName,
403193267Sjkim    const char              *ModuleName,
404151937Sjkim    UINT32                  ComponentId);
40567754Smsmith
40667754Smsmithvoid
40783174SmsmithAcpiUtStatusExit (
40867754Smsmith    UINT32                  LineNumber,
409151937Sjkim    const char              *FunctionName,
410193267Sjkim    const char              *ModuleName,
411151937Sjkim    UINT32                  ComponentId,
41267754Smsmith    ACPI_STATUS             Status);
41367754Smsmith
41467754Smsmithvoid
41583174SmsmithAcpiUtValueExit (
41667754Smsmith    UINT32                  LineNumber,
417151937Sjkim    const char              *FunctionName,
418193267Sjkim    const char              *ModuleName,
419151937Sjkim    UINT32                  ComponentId,
420202771Sjkim    UINT64                  Value);
42167754Smsmith
42267754Smsmithvoid
42383174SmsmithAcpiUtPtrExit (
42467754Smsmith    UINT32                  LineNumber,
425151937Sjkim    const char              *FunctionName,
426193267Sjkim    const char              *ModuleName,
427151937Sjkim    UINT32                  ComponentId,
42867754Smsmith    UINT8                   *Ptr);
42967754Smsmith
43067754Smsmithvoid
431306536SjkimAcpiUtStrExit (
432306536Sjkim    UINT32                  LineNumber,
433306536Sjkim    const char              *FunctionName,
434306536Sjkim    const char              *ModuleName,
435306536Sjkim    UINT32                  ComponentId,
436306536Sjkim    const char              *String);
437306536Sjkim
438306536Sjkimvoid
439241973SjkimAcpiUtDebugDumpBuffer (
440167802Sjkim    UINT8                   *Buffer,
441167802Sjkim    UINT32                  Count,
442167802Sjkim    UINT32                  Display,
443237412Sjkim    UINT32                  ComponentId);
44467754Smsmith
44567754Smsmithvoid
446241973SjkimAcpiUtDumpBuffer (
447167802Sjkim    UINT8                   *Buffer,
448167802Sjkim    UINT32                  Count,
449241973Sjkim    UINT32                  Display,
450241973Sjkim    UINT32                  Offset);
451167802Sjkim
452281075Sdim#ifdef ACPI_APPLICATION
453167802Sjkimvoid
454281075SdimAcpiUtDumpBufferToFile (
455281075Sdim    ACPI_FILE               File,
456281075Sdim    UINT8                   *Buffer,
457281075Sdim    UINT32                  Count,
458281075Sdim    UINT32                  Display,
459281075Sdim    UINT32                  BaseOffset);
460281075Sdim#endif
461281075Sdim
462281075Sdimvoid
46383174SmsmithAcpiUtReportError (
464114237Snjl    char                    *ModuleName,
465167802Sjkim    UINT32                  LineNumber);
46667754Smsmith
46767754Smsmithvoid
468167802SjkimAcpiUtReportInfo (
469114237Snjl    char                    *ModuleName,
470167802Sjkim    UINT32                  LineNumber);
47167754Smsmith
47267754Smsmithvoid
473167802SjkimAcpiUtReportWarning (
474167802Sjkim    char                    *ModuleName,
475167802Sjkim    UINT32                  LineNumber);
47667754Smsmith
477306536Sjkim
47867754Smsmith/*
479151937Sjkim * utdelete - Object deletion and reference counts
48067754Smsmith */
481151937Sjkimvoid
482151937SjkimAcpiUtAddReference (
483151937Sjkim    ACPI_OPERAND_OBJECT     *Object);
48467754Smsmith
48567754Smsmithvoid
486151937SjkimAcpiUtRemoveReference (
48767754Smsmith    ACPI_OPERAND_OBJECT     *Object);
48867754Smsmith
48967754Smsmithvoid
49077424SmsmithAcpiUtDeleteInternalPackageObject (
49167754Smsmith    ACPI_OPERAND_OBJECT     *Object);
49267754Smsmith
49367754Smsmithvoid
49477424SmsmithAcpiUtDeleteInternalSimpleObject (
49567754Smsmith    ACPI_OPERAND_OBJECT     *Object);
49667754Smsmith
49799679Siwasakivoid
49877424SmsmithAcpiUtDeleteInternalObjectList (
49967754Smsmith    ACPI_OPERAND_OBJECT     **ObjList);
50067754Smsmith
50167754Smsmith
50267754Smsmith/*
503151937Sjkim * uteval - object evaluation
50467754Smsmith */
50567754SmsmithACPI_STATUS
506114237SnjlAcpiUtEvaluateObject (
507114237Snjl    ACPI_NAMESPACE_NODE     *PrefixNode,
508306536Sjkim    const char              *Path,
509114237Snjl    UINT32                  ExpectedReturnBtypes,
510114237Snjl    ACPI_OPERAND_OBJECT     **ReturnDesc);
511114237Snjl
512114237SnjlACPI_STATUS
51377424SmsmithAcpiUtEvaluateNumericObject (
514306536Sjkim    const char              *ObjectName,
51567754Smsmith    ACPI_NAMESPACE_NODE     *DeviceNode,
516202771Sjkim    UINT64                  *Value);
51767754Smsmith
51867754SmsmithACPI_STATUS
519197104SjkimAcpiUtExecute_STA (
52067754Smsmith    ACPI_NAMESPACE_NODE     *DeviceNode,
521197104Sjkim    UINT32                  *StatusFlags);
52267754Smsmith
52367754SmsmithACPI_STATUS
524197104SjkimAcpiUtExecutePowerMethods (
52587031Smsmith    ACPI_NAMESPACE_NODE     *DeviceNode,
526197104Sjkim    const char              **MethodNames,
527197104Sjkim    UINT8                   MethodCount,
528197104Sjkim    UINT8                   *OutValues);
52987031Smsmith
530197104Sjkim
531197104Sjkim/*
532197104Sjkim * utids - device ID support
533197104Sjkim */
53487031SmsmithACPI_STATUS
535197104SjkimAcpiUtExecute_HID (
53667754Smsmith    ACPI_NAMESPACE_NODE     *DeviceNode,
537241973Sjkim    ACPI_PNP_DEVICE_ID      **ReturnId);
53867754Smsmith
53967754SmsmithACPI_STATUS
54077424SmsmithAcpiUtExecute_UID (
54167754Smsmith    ACPI_NAMESPACE_NODE     *DeviceNode,
542241973Sjkim    ACPI_PNP_DEVICE_ID      **ReturnId);
54367754Smsmith
544126372SnjlACPI_STATUS
545306536SjkimAcpiUtExecute_CID (
546241973Sjkim    ACPI_NAMESPACE_NODE     *DeviceNode,
547306536Sjkim    ACPI_PNP_DEVICE_ID_LIST **ReturnCidList);
548241973Sjkim
549241973SjkimACPI_STATUS
550306536SjkimAcpiUtExecute_CLS (
551126372Snjl    ACPI_NAMESPACE_NODE     *DeviceNode,
552306536Sjkim    ACPI_PNP_DEVICE_ID      **ReturnId);
55367754Smsmith
554197104Sjkim
555193267Sjkim/*
556193267Sjkim * utlock - reader/writer locks
557193267Sjkim */
558193267SjkimACPI_STATUS
559193267SjkimAcpiUtCreateRwLock (
560193267Sjkim    ACPI_RW_LOCK            *Lock);
56167754Smsmith
562193267Sjkimvoid
563193267SjkimAcpiUtDeleteRwLock (
564193267Sjkim    ACPI_RW_LOCK            *Lock);
565193267Sjkim
566193267SjkimACPI_STATUS
567193267SjkimAcpiUtAcquireReadLock (
568193267Sjkim    ACPI_RW_LOCK            *Lock);
569193267Sjkim
570193267SjkimACPI_STATUS
571193267SjkimAcpiUtReleaseReadLock (
572193267Sjkim    ACPI_RW_LOCK            *Lock);
573193267Sjkim
574193267SjkimACPI_STATUS
575193267SjkimAcpiUtAcquireWriteLock (
576193267Sjkim    ACPI_RW_LOCK            *Lock);
577193267Sjkim
578193267Sjkimvoid
579193267SjkimAcpiUtReleaseWriteLock (
580193267Sjkim    ACPI_RW_LOCK            *Lock);
581193267Sjkim
582193267Sjkim
58367754Smsmith/*
584151937Sjkim * utobject - internal object create/delete/cache routines
58567754Smsmith */
58683174SmsmithACPI_OPERAND_OBJECT  *
58783174SmsmithAcpiUtCreateInternalObjectDbg (
588193267Sjkim    const char              *ModuleName,
58983174Smsmith    UINT32                  LineNumber,
59083174Smsmith    UINT32                  ComponentId,
59191116Smsmith    ACPI_OBJECT_TYPE        Type);
59283174Smsmith
59367754Smsmithvoid *
59483174SmsmithAcpiUtAllocateObjectDescDbg (
595193267Sjkim    const char              *ModuleName,
59667754Smsmith    UINT32                  LineNumber,
59767754Smsmith    UINT32                  ComponentId);
59867754Smsmith
599151937Sjkim#define AcpiUtCreateInternalObject(t)   AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t)
600151937Sjkim#define AcpiUtAllocateObjectDesc()      AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT)
60167754Smsmith
60267754Smsmithvoid
60377424SmsmithAcpiUtDeleteObjectDesc (
60467754Smsmith    ACPI_OPERAND_OBJECT     *Object);
60567754Smsmith
60667754SmsmithBOOLEAN
60777424SmsmithAcpiUtValidInternalObject (
60867754Smsmith    void                    *Object);
60967754Smsmith
610107325SiwasakiACPI_OPERAND_OBJECT *
611193267SjkimAcpiUtCreatePackageObject (
612193267Sjkim    UINT32                  Count);
613193267Sjkim
614193267SjkimACPI_OPERAND_OBJECT *
615199337SjkimAcpiUtCreateIntegerObject (
616199337Sjkim    UINT64                  Value);
617199337Sjkim
618199337SjkimACPI_OPERAND_OBJECT *
619107325SiwasakiAcpiUtCreateBufferObject (
620107325Siwasaki    ACPI_SIZE               BufferSize);
62167754Smsmith
622138287SmarksACPI_OPERAND_OBJECT *
623138287SmarksAcpiUtCreateStringObject (
624138287Smarks    ACPI_SIZE               StringSize);
625107325Siwasaki
62667754SmsmithACPI_STATUS
62777424SmsmithAcpiUtGetObjectSize(
62867754Smsmith    ACPI_OPERAND_OBJECT     *Obj,
62991116Smsmith    ACPI_SIZE               *ObjLength);
63067754Smsmith
63167754Smsmith
63267754Smsmith/*
633210976Sjkim * utosi - Support for the _OSI predefined control method
634210976Sjkim */
635210976SjkimACPI_STATUS
636210976SjkimAcpiUtInitializeInterfaces (
637210976Sjkim    void);
638210976Sjkim
639249112SjkimACPI_STATUS
640210976SjkimAcpiUtInterfaceTerminate (
641210976Sjkim    void);
642210976Sjkim
643210976SjkimACPI_STATUS
644210976SjkimAcpiUtInstallInterface (
645210976Sjkim    ACPI_STRING             InterfaceName);
646210976Sjkim
647210976SjkimACPI_STATUS
648210976SjkimAcpiUtRemoveInterface (
649210976Sjkim    ACPI_STRING             InterfaceName);
650210976Sjkim
651253690SjkimACPI_STATUS
652253690SjkimAcpiUtUpdateInterfaces (
653253690Sjkim    UINT8                   Action);
654253690Sjkim
655210976SjkimACPI_INTERFACE_INFO *
656210976SjkimAcpiUtGetInterface (
657210976Sjkim    ACPI_STRING             InterfaceName);
658210976Sjkim
659210976SjkimACPI_STATUS
660210976SjkimAcpiUtOsiImplementation (
661210976Sjkim    ACPI_WALK_STATE         *WalkState);
662210976Sjkim
663210976Sjkim
664210976Sjkim/*
665249112Sjkim * utpredef - support for predefined names
666249112Sjkim */
667249112Sjkimconst ACPI_PREDEFINED_INFO *
668249112SjkimAcpiUtGetNextPredefinedMethod (
669249112Sjkim    const ACPI_PREDEFINED_INFO  *ThisName);
670249112Sjkim
671249112Sjkimconst ACPI_PREDEFINED_INFO *
672249112SjkimAcpiUtMatchPredefinedMethod (
673249112Sjkim    char                        *Name);
674249112Sjkim
675281687Sjkimvoid
676281687SjkimAcpiUtGetExpectedReturnTypes (
677281687Sjkim    char                    *Buffer,
678281687Sjkim    UINT32                  ExpectedBtypes);
679281687Sjkim
680281687Sjkim#if (defined ACPI_ASL_COMPILER || defined ACPI_HELP_APP)
681249112Sjkimconst ACPI_PREDEFINED_INFO *
682249112SjkimAcpiUtMatchResourceName (
683249112Sjkim    char                        *Name);
684249112Sjkim
685249112Sjkimvoid
686249112SjkimAcpiUtDisplayPredefinedMethod (
687249112Sjkim    char                        *Buffer,
688249112Sjkim    const ACPI_PREDEFINED_INFO  *ThisName,
689249112Sjkim    BOOLEAN                     MultiLine);
690249112Sjkim
691249112SjkimUINT32
692249112SjkimAcpiUtGetResourceBitWidth (
693249112Sjkim    char                    *Buffer,
694249112Sjkim    UINT16                  Types);
695281687Sjkim#endif
696249112Sjkim
697249112Sjkim
698249112Sjkim/*
699151937Sjkim * utstate - Generic state creation/cache routines
70067754Smsmith */
70167754Smsmithvoid
70277424SmsmithAcpiUtPushGenericState (
70367754Smsmith    ACPI_GENERIC_STATE      **ListHead,
70467754Smsmith    ACPI_GENERIC_STATE      *State);
70567754Smsmith
70667754SmsmithACPI_GENERIC_STATE *
70777424SmsmithAcpiUtPopGenericState (
70867754Smsmith    ACPI_GENERIC_STATE      **ListHead);
70967754Smsmith
71067754Smsmith
71167754SmsmithACPI_GENERIC_STATE *
71277424SmsmithAcpiUtCreateGenericState (
71367754Smsmith    void);
71467754Smsmith
71587031SmsmithACPI_THREAD_STATE *
71687031SmsmithAcpiUtCreateThreadState (
71787031Smsmith    void);
71887031Smsmith
71967754SmsmithACPI_GENERIC_STATE *
72077424SmsmithAcpiUtCreateUpdateState (
72167754Smsmith    ACPI_OPERAND_OBJECT     *Object,
72267754Smsmith    UINT16                  Action);
72367754Smsmith
72473561SmsmithACPI_GENERIC_STATE *
72577424SmsmithAcpiUtCreatePkgState (
72673561Smsmith    void                    *InternalObject,
72773561Smsmith    void                    *ExternalObject,
72873561Smsmith    UINT16                  Index);
72973561Smsmith
73067754SmsmithACPI_STATUS
73177424SmsmithAcpiUtCreateUpdateStateAndPush (
73267754Smsmith    ACPI_OPERAND_OBJECT     *Object,
73367754Smsmith    UINT16                  Action,
73467754Smsmith    ACPI_GENERIC_STATE      **StateList);
73567754Smsmith
73667754SmsmithACPI_GENERIC_STATE *
73777424SmsmithAcpiUtCreateControlState (
73867754Smsmith    void);
73967754Smsmith
74067754Smsmithvoid
74177424SmsmithAcpiUtDeleteGenericState (
74267754Smsmith    ACPI_GENERIC_STATE      *State);
74367754Smsmith
74467754Smsmith
74567754Smsmith/*
746151937Sjkim * utmath
74767754Smsmith */
74884491SmsmithACPI_STATUS
74984491SmsmithAcpiUtDivide (
750202771Sjkim    UINT64                  InDividend,
751202771Sjkim    UINT64                  InDivisor,
752202771Sjkim    UINT64                  *OutQuotient,
753202771Sjkim    UINT64                  *OutRemainder);
75484491Smsmith
75584491SmsmithACPI_STATUS
75684491SmsmithAcpiUtShortDivide (
757202771Sjkim    UINT64                  InDividend,
75884491Smsmith    UINT32                  Divisor,
759202771Sjkim    UINT64                  *OutQuotient,
76084491Smsmith    UINT32                  *OutRemainder);
76184491Smsmith
762246849Sjkim
763151937Sjkim/*
764151937Sjkim * utmisc
765151937Sjkim */
766246849Sjkimconst ACPI_EXCEPTION_INFO *
767167802SjkimAcpiUtValidateException (
768167802Sjkim    ACPI_STATUS             Status);
769167802Sjkim
770167802SjkimBOOLEAN
771197104SjkimAcpiUtIsPciRootBridge (
772197104Sjkim    char                    *Id);
773197104Sjkim
774306536Sjkim#if (defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP || defined ACPI_NAMES_APP)
775197104SjkimBOOLEAN
776167802SjkimAcpiUtIsAmlTable (
777167802Sjkim    ACPI_TABLE_HEADER       *Table);
778281687Sjkim#endif
779167802Sjkim
780151937SjkimACPI_STATUS
781151937SjkimAcpiUtWalkPackageTree (
782151937Sjkim    ACPI_OPERAND_OBJECT     *SourceObject,
783151937Sjkim    void                    *TargetObject,
784151937Sjkim    ACPI_PKG_CALLBACK       WalkCallback,
785151937Sjkim    void                    *Context);
786151937Sjkim
787138287Smarks/* Values for Base above (16=Hex, 10=Decimal) */
788138287Smarks
789138287Smarks#define ACPI_ANY_BASE        0
790138287Smarks
791306536Sjkim
792151937SjkimUINT32
79399679SiwasakiAcpiUtDwordByteSwap (
79499679Siwasaki    UINT32                  Value);
79599679Siwasaki
79699679Siwasakivoid
79799679SiwasakiAcpiUtSetIntegerWidth (
79899679Siwasaki    UINT8                   Revision);
79999679Siwasaki
800102550Siwasaki#ifdef ACPI_DEBUG_OUTPUT
80173561Smsmithvoid
80277424SmsmithAcpiUtDisplayInitPathname (
803114237Snjl    UINT8                   Type,
804114237Snjl    ACPI_NAMESPACE_NODE     *ObjHandle,
805306536Sjkim    const char              *Path);
80673561Smsmith#endif
80773561Smsmith
80873561Smsmith
80967754Smsmith/*
810245582Sjkim * utownerid - Support for Table/Method Owner IDs
811245582Sjkim */
812245582SjkimACPI_STATUS
813245582SjkimAcpiUtAllocateOwnerId (
814245582Sjkim    ACPI_OWNER_ID           *OwnerId);
815245582Sjkim
816245582Sjkimvoid
817245582SjkimAcpiUtReleaseOwnerId (
818245582Sjkim    ACPI_OWNER_ID           *OwnerId);
819245582Sjkim
820245582Sjkim
821245582Sjkim/*
822167802Sjkim * utresrc
823167802Sjkim */
824167802SjkimACPI_STATUS
825167802SjkimAcpiUtWalkAmlResources (
826243347Sjkim    ACPI_WALK_STATE         *WalkState,
827167802Sjkim    UINT8                   *Aml,
828167802Sjkim    ACPI_SIZE               AmlLength,
829167802Sjkim    ACPI_WALK_AML_CALLBACK  UserFunction,
830245582Sjkim    void                    **Context);
831167802Sjkim
832167802SjkimACPI_STATUS
833167802SjkimAcpiUtValidateResource (
834243347Sjkim    ACPI_WALK_STATE         *WalkState,
835167802Sjkim    void                    *Aml,
836167802Sjkim    UINT8                   *ReturnIndex);
837167802Sjkim
838167802SjkimUINT32
839167802SjkimAcpiUtGetDescriptorLength (
840167802Sjkim    void                    *Aml);
841167802Sjkim
842167802SjkimUINT16
843167802SjkimAcpiUtGetResourceLength (
844167802Sjkim    void                    *Aml);
845167802Sjkim
846167802SjkimUINT8
847167802SjkimAcpiUtGetResourceHeaderLength (
848167802Sjkim    void                    *Aml);
849167802Sjkim
850167802SjkimUINT8
851167802SjkimAcpiUtGetResourceType (
852167802Sjkim    void                    *Aml);
853167802Sjkim
854167802SjkimACPI_STATUS
855167802SjkimAcpiUtGetResourceEndTag (
856167802Sjkim    ACPI_OPERAND_OBJECT     *ObjDesc,
857167802Sjkim    UINT8                   **EndTag);
858167802Sjkim
859167802Sjkim
860167802Sjkim/*
861245582Sjkim * utstring - String and character utilities
862245582Sjkim */
863245582Sjkimvoid
864245582SjkimAcpiUtPrintString (
865245582Sjkim    char                    *String,
866252279Sjkim    UINT16                  MaxLength);
867245582Sjkim
868281687Sjkim#if defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP
869245582Sjkimvoid
870245582SjkimUtConvertBackslashes (
871245582Sjkim    char                    *Pathname);
872281687Sjkim#endif
873245582Sjkim
874245582Sjkimvoid
875245582SjkimAcpiUtRepairName (
876245582Sjkim    char                    *Name);
877245582Sjkim
878281075Sdim#if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION)
879281075SdimBOOLEAN
880281075SdimAcpiUtSafeStrcpy (
881281075Sdim    char                    *Dest,
882281075Sdim    ACPI_SIZE               DestSize,
883281075Sdim    char                    *Source);
884245582Sjkim
885281075SdimBOOLEAN
886281075SdimAcpiUtSafeStrcat (
887281075Sdim    char                    *Dest,
888281075Sdim    ACPI_SIZE               DestSize,
889281075Sdim    char                    *Source);
890281075Sdim
891281075SdimBOOLEAN
892281075SdimAcpiUtSafeStrncat (
893281075Sdim    char                    *Dest,
894281075Sdim    ACPI_SIZE               DestSize,
895281075Sdim    char                    *Source,
896281075Sdim    ACPI_SIZE               MaxTransferLength);
897281075Sdim#endif
898281075Sdim
899281075Sdim
900245582Sjkim/*
901151937Sjkim * utmutex - mutex support
90267754Smsmith */
903151937SjkimACPI_STATUS
904151937SjkimAcpiUtMutexInitialize (
905151937Sjkim    void);
90667754Smsmith
90782367Smsmithvoid
908151937SjkimAcpiUtMutexTerminate (
909151937Sjkim    void);
91082367Smsmith
911151937SjkimACPI_STATUS
912151937SjkimAcpiUtAcquireMutex (
913151937Sjkim    ACPI_MUTEX_HANDLE       MutexId);
91482367Smsmith
91591116SmsmithACPI_STATUS
916151937SjkimAcpiUtReleaseMutex (
917151937Sjkim    ACPI_MUTEX_HANDLE       MutexId);
918151937Sjkim
919151937Sjkim
920151937Sjkim/*
921151937Sjkim * utalloc - memory allocation and object caching
922151937Sjkim */
923151937SjkimACPI_STATUS
924151937SjkimAcpiUtCreateCaches (
925151937Sjkim    void);
926151937Sjkim
927151937SjkimACPI_STATUS
928151937SjkimAcpiUtDeleteCaches (
929151937Sjkim    void);
930151937Sjkim
931151937SjkimACPI_STATUS
93291116SmsmithAcpiUtValidateBuffer (
93391116Smsmith    ACPI_BUFFER             *Buffer);
93482367Smsmith
93591116SmsmithACPI_STATUS
93691116SmsmithAcpiUtInitializeBuffer (
93791116Smsmith    ACPI_BUFFER             *Buffer,
93891116Smsmith    ACPI_SIZE               RequiredLength);
93982367Smsmith
94091116Smsmith#ifdef ACPI_DBG_TRACK_ALLOCATIONS
94191116Smsmithvoid *
94291116SmsmithAcpiUtAllocateAndTrack (
94391116Smsmith    ACPI_SIZE               Size,
94491116Smsmith    UINT32                  Component,
945193267Sjkim    const char              *Module,
94691116Smsmith    UINT32                  Line);
94791116Smsmith
94891116Smsmithvoid *
949167802SjkimAcpiUtAllocateZeroedAndTrack (
95091116Smsmith    ACPI_SIZE               Size,
95191116Smsmith    UINT32                  Component,
952193267Sjkim    const char              *Module,
95391116Smsmith    UINT32                  Line);
95491116Smsmith
95567754Smsmithvoid
95691116SmsmithAcpiUtFreeAndTrack (
95767754Smsmith    void                    *Address,
95867754Smsmith    UINT32                  Component,
959193267Sjkim    const char              *Module,
96067754Smsmith    UINT32                  Line);
96199679Siwasaki
96267754Smsmithvoid
96377424SmsmithAcpiUtDumpAllocationInfo (
96467754Smsmith    void);
96567754Smsmith
96667754Smsmithvoid
96784491SmsmithAcpiUtDumpAllocations (
96867754Smsmith    UINT32                  Component,
969193267Sjkim    const char              *Module);
970167802Sjkim
971167802SjkimACPI_STATUS
972167802SjkimAcpiUtCreateList (
973306536Sjkim    const char              *ListName,
974167802Sjkim    UINT16                  ObjectSize,
975167802Sjkim    ACPI_MEMORY_LIST        **ReturnCache);
976167802Sjkim
977212761Sjkim#endif /* ACPI_DBG_TRACK_ALLOCATIONS */
978167802Sjkim
979306536Sjkim
980229989Sjkim/*
981229989Sjkim * utaddress - address range check
982229989Sjkim */
983229989SjkimACPI_STATUS
984229989SjkimAcpiUtAddAddressRange (
985229989Sjkim    ACPI_ADR_SPACE_TYPE     SpaceId,
986229989Sjkim    ACPI_PHYSICAL_ADDRESS   Address,
987229989Sjkim    UINT32                  Length,
988229989Sjkim    ACPI_NAMESPACE_NODE     *RegionNode);
98967754Smsmith
990229989Sjkimvoid
991229989SjkimAcpiUtRemoveAddressRange (
992229989Sjkim    ACPI_ADR_SPACE_TYPE     SpaceId,
993229989Sjkim    ACPI_NAMESPACE_NODE     *RegionNode);
994229989Sjkim
995229989SjkimUINT32
996229989SjkimAcpiUtCheckAddressRange (
997229989Sjkim    ACPI_ADR_SPACE_TYPE     SpaceId,
998229989Sjkim    ACPI_PHYSICAL_ADDRESS   Address,
999229989Sjkim    UINT32                  Length,
1000229989Sjkim    BOOLEAN                 Warn);
1001229989Sjkim
1002229989Sjkimvoid
1003229989SjkimAcpiUtDeleteAddressLists (
1004229989Sjkim    void);
1005229989Sjkim
1006306536Sjkim
1007212761Sjkim/*
1008212761Sjkim * utxferror - various error/warning output functions
1009212761Sjkim */
1010212761Sjkimvoid ACPI_INTERNAL_VAR_XFACE
1011212761SjkimAcpiUtPredefinedWarning (
1012212761Sjkim    const char              *ModuleName,
1013212761Sjkim    UINT32                  LineNumber,
1014212761Sjkim    char                    *Pathname,
1015212761Sjkim    UINT8                   NodeFlags,
1016212761Sjkim    const char              *Format,
1017212761Sjkim    ...);
1018212761Sjkim
1019212761Sjkimvoid ACPI_INTERNAL_VAR_XFACE
1020212761SjkimAcpiUtPredefinedInfo (
1021212761Sjkim    const char              *ModuleName,
1022212761Sjkim    UINT32                  LineNumber,
1023212761Sjkim    char                    *Pathname,
1024212761Sjkim    UINT8                   NodeFlags,
1025212761Sjkim    const char              *Format,
1026212761Sjkim    ...);
1027212761Sjkim
1028249663Sjkimvoid ACPI_INTERNAL_VAR_XFACE
1029249663SjkimAcpiUtPredefinedBiosError (
1030249663Sjkim    const char              *ModuleName,
1031249663Sjkim    UINT32                  LineNumber,
1032249663Sjkim    char                    *Pathname,
1033249663Sjkim    UINT8                   NodeFlags,
1034249663Sjkim    const char              *Format,
1035249663Sjkim    ...);
1036249663Sjkim
1037212761Sjkimvoid
1038212761SjkimAcpiUtNamespaceError (
1039212761Sjkim    const char              *ModuleName,
1040212761Sjkim    UINT32                  LineNumber,
1041212761Sjkim    const char              *InternalName,
1042212761Sjkim    ACPI_STATUS             LookupStatus);
1043212761Sjkim
1044212761Sjkimvoid
1045212761SjkimAcpiUtMethodError (
1046212761Sjkim    const char              *ModuleName,
1047212761Sjkim    UINT32                  LineNumber,
1048212761Sjkim    const char              *Message,
1049212761Sjkim    ACPI_NAMESPACE_NODE     *Node,
1050212761Sjkim    const char              *Path,
1051212761Sjkim    ACPI_STATUS             LookupStatus);
1052212761Sjkim
1053306536Sjkim
1054281075Sdim/*
1055281075Sdim * Utility functions for ACPI names and IDs
1056281075Sdim */
1057281075Sdimconst AH_PREDEFINED_NAME *
1058281075SdimAcpiAhMatchPredefinedName (
1059281075Sdim    char                    *Nameseg);
1060281075Sdim
1061281075Sdimconst AH_DEVICE_ID *
1062281075SdimAcpiAhMatchHardwareId (
1063281075Sdim    char                    *Hid);
1064281075Sdim
1065281075Sdimconst char *
1066281075SdimAcpiAhMatchUuid (
1067281075Sdim    UINT8                   *Data);
1068281075Sdim
1069306536Sjkim
1070281075Sdim/*
1071281075Sdim * utprint - printf/vprintf output functions
1072281075Sdim */
1073281075Sdimconst char *
1074281075SdimAcpiUtScanNumber (
1075281075Sdim    const char              *String,
1076281075Sdim    UINT64                  *NumberPtr);
1077281075Sdim
1078281075Sdimconst char *
1079281075SdimAcpiUtPrintNumber (
1080281075Sdim    char                    *String,
1081281075Sdim    UINT64                  Number);
1082281075Sdim
1083281075Sdimint
1084281075SdimAcpiUtVsnprintf (
1085281075Sdim    char                    *String,
1086281075Sdim    ACPI_SIZE               Size,
1087281075Sdim    const char              *Format,
1088281075Sdim    va_list                 Args);
1089281075Sdim
1090281075Sdimint
1091281075SdimAcpiUtSnprintf (
1092281075Sdim    char                    *String,
1093281075Sdim    ACPI_SIZE               Size,
1094281075Sdim    const char              *Format,
1095281075Sdim    ...);
1096281075Sdim
1097281075Sdim#ifdef ACPI_APPLICATION
1098281075Sdimint
1099281075SdimAcpiUtFileVprintf (
1100281075Sdim    ACPI_FILE               File,
1101281075Sdim    const char              *Format,
1102281075Sdim    va_list                 Args);
1103281075Sdim
1104281075Sdimint
1105281075SdimAcpiUtFilePrintf (
1106281075Sdim    ACPI_FILE               File,
1107281075Sdim    const char              *Format,
1108281075Sdim    ...);
1109281075Sdim#endif
1110281075Sdim
1111306536Sjkim
1112281075Sdim/*
1113281075Sdim * utuuid -- UUID support functions
1114281075Sdim */
1115281687Sjkim#if (defined ACPI_ASL_COMPILER || defined ACPI_DISASSEMBLER || defined ACPI_EXEC_APP || defined ACPI_HELP_APP)
1116281075Sdimvoid
1117281075SdimAcpiUtConvertStringToUuid (
1118281075Sdim    char                    *InString,
1119281075Sdim    UINT8                   *UuidBuffer);
1120281687Sjkim#endif
1121281075Sdim
112277424Smsmith#endif /* _ACUTILS_H */
1123