167754Smsmith/******************************************************************************
267754Smsmith *
377424Smsmith * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures
467754Smsmith *
567754Smsmith *****************************************************************************/
667754Smsmith
7217365Sjkim/*
8245582Sjkim * Copyright (C) 2000 - 2013, 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
53167802Sjkim#if 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>
99250838Sjkimextern FILE                 *AcpiGbl_OutputFile;
100250838Sjkim
101250838Sjkim#define ACPI_MSG_REDIRECT_BEGIN \
102250838Sjkim    FILE                    *OutputFile = AcpiGbl_OutputFile; \
103250838Sjkim    AcpiOsRedirectOutput (stderr);
104250838Sjkim
105250838Sjkim#define ACPI_MSG_REDIRECT_END \
106250838Sjkim    AcpiOsRedirectOutput (OutputFile);
107250838Sjkim
108250838Sjkim#else
109250838Sjkim/*
110250838Sjkim * non-iASL case - no redirection, nothing to do
111250838Sjkim */
112250838Sjkim#define ACPI_MSG_REDIRECT_BEGIN
113250838Sjkim#define ACPI_MSG_REDIRECT_END
114250838Sjkim#endif
115250838Sjkim
116250838Sjkim/*
117250838Sjkim * Common error message prefixes
118250838Sjkim */
119250838Sjkim#define ACPI_MSG_ERROR          "ACPI Error: "
120250838Sjkim#define ACPI_MSG_EXCEPTION      "ACPI Exception: "
121250838Sjkim#define ACPI_MSG_WARNING        "ACPI Warning: "
122250838Sjkim#define ACPI_MSG_INFO           "ACPI: "
123250838Sjkim
124250838Sjkim#define ACPI_MSG_BIOS_ERROR     "ACPI BIOS Error (bug): "
125250838Sjkim#define ACPI_MSG_BIOS_WARNING   "ACPI BIOS Warning (bug): "
126250838Sjkim
127250838Sjkim/*
128250838Sjkim * Common message suffix
129250838Sjkim */
130250838Sjkim#define ACPI_MSG_SUFFIX \
131250838Sjkim    AcpiOsPrintf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, ModuleName, LineNumber)
132250838Sjkim
133250838Sjkim
134167802Sjkim/* Types for Resource descriptor entries */
135167802Sjkim
136167802Sjkim#define ACPI_INVALID_RESOURCE           0
137167802Sjkim#define ACPI_FIXED_LENGTH               1
138167802Sjkim#define ACPI_VARIABLE_LENGTH            2
139167802Sjkim#define ACPI_SMALL_VARIABLE_LENGTH      3
140167802Sjkim
14173561Smsmithtypedef
142167802SjkimACPI_STATUS (*ACPI_WALK_AML_CALLBACK) (
143167802Sjkim    UINT8                   *Aml,
144167802Sjkim    UINT32                  Length,
145167802Sjkim    UINT32                  Offset,
146167802Sjkim    UINT8                   ResourceIndex,
147245582Sjkim    void                    **Context);
148167802Sjkim
149167802Sjkimtypedef
15073561SmsmithACPI_STATUS (*ACPI_PKG_CALLBACK) (
15173561Smsmith    UINT8                   ObjectType,
15273561Smsmith    ACPI_OPERAND_OBJECT     *SourceObject,
15373561Smsmith    ACPI_GENERIC_STATE      *State,
15473561Smsmith    void                    *Context);
15573561Smsmith
15673561Smsmithtypedef struct acpi_pkg_info
15773561Smsmith{
15873561Smsmith    UINT8                   *FreeSpace;
15991116Smsmith    ACPI_SIZE               Length;
16073561Smsmith    UINT32                  ObjectSpace;
16173561Smsmith    UINT32                  NumPackages;
162114237Snjl
16373561Smsmith} ACPI_PKG_INFO;
16473561Smsmith
165249112Sjkim/* Object reference counts */
166249112Sjkim
16767754Smsmith#define REF_INCREMENT       (UINT16) 0
16867754Smsmith#define REF_DECREMENT       (UINT16) 1
16967754Smsmith
17077424Smsmith/* AcpiUtDumpBuffer */
17167754Smsmith
17267754Smsmith#define DB_BYTE_DISPLAY     1
17367754Smsmith#define DB_WORD_DISPLAY     2
17467754Smsmith#define DB_DWORD_DISPLAY    4
17567754Smsmith#define DB_QWORD_DISPLAY    8
17667754Smsmith
17767754Smsmith/*
178151937Sjkim * utglobal - Global data structures and procedures
17967754Smsmith */
180193267SjkimACPI_STATUS
181151937SjkimAcpiUtInitGlobals (
18267754Smsmith    void);
18367754Smsmith
184102550Siwasaki#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
18569746Smsmith
186114237Snjlchar *
18777424SmsmithAcpiUtGetMutexName (
18867754Smsmith    UINT32                  MutexId);
18967754Smsmith
190193267Sjkimconst char *
191193267SjkimAcpiUtGetNotifyName (
192193267Sjkim    UINT32                  NotifyValue);
193193267Sjkim
194100966Siwasaki#endif
195100966Siwasaki
196114237Snjlchar *
19777424SmsmithAcpiUtGetTypeName (
19891116Smsmith    ACPI_OBJECT_TYPE        Type);
19967754Smsmith
200114237Snjlchar *
201123315SnjlAcpiUtGetNodeName (
202123315Snjl    void                    *Object);
203123315Snjl
204123315Snjlchar *
205123315SnjlAcpiUtGetDescriptorName (
206123315Snjl    void                    *Object);
207123315Snjl
208193267Sjkimconst char *
209193267SjkimAcpiUtGetReferenceName (
210193267Sjkim    ACPI_OPERAND_OBJECT     *Object);
211193267Sjkim
212123315Snjlchar *
21399679SiwasakiAcpiUtGetObjectTypeName (
21499679Siwasaki    ACPI_OPERAND_OBJECT     *ObjDesc);
21599679Siwasaki
216114237Snjlchar *
21777424SmsmithAcpiUtGetRegionName (
21869746Smsmith    UINT8                   SpaceId);
21969746Smsmith
220114237Snjlchar *
22191116SmsmithAcpiUtGetEventName (
22291116Smsmith    UINT32                  EventId);
22369746Smsmith
22499679Siwasakichar
22582367SmsmithAcpiUtHexToAsciiChar (
226202771Sjkim    UINT64                  Integer,
22782367Smsmith    UINT32                  Position);
22882367Smsmith
22967754SmsmithBOOLEAN
23077424SmsmithAcpiUtValidObjectType (
23191116Smsmith    ACPI_OBJECT_TYPE        Type);
23267754Smsmith
23367754Smsmith
234151937Sjkim/*
235151937Sjkim * utinit - miscellaneous initialization and shutdown
236151937Sjkim */
237151937SjkimACPI_STATUS
238151937SjkimAcpiUtHardwareInitialize (
239151937Sjkim    void);
24067754Smsmith
241151937Sjkimvoid
242151937SjkimAcpiUtSubsystemShutdown (
243151937Sjkim    void);
244151937Sjkim
245151937Sjkim
24667754Smsmith/*
247151937Sjkim * utclib - Local implementations of C library functions
24867754Smsmith */
24971867Smsmith#ifndef ACPI_USE_SYSTEM_CLIBRARY
25071867Smsmith
251104470SiwasakiACPI_SIZE
25277424SmsmithAcpiUtStrlen (
253114237Snjl    const char              *String);
25467754Smsmith
255114237Snjlchar *
25677424SmsmithAcpiUtStrcpy (
257114237Snjl    char                    *DstString,
258114237Snjl    const char              *SrcString);
25967754Smsmith
260114237Snjlchar *
26177424SmsmithAcpiUtStrncpy (
262114237Snjl    char                    *DstString,
263114237Snjl    const char              *SrcString,
264104470Siwasaki    ACPI_SIZE               Count);
26567754Smsmith
26699679Siwasakiint
267138287SmarksAcpiUtMemcmp (
268138287Smarks    const char              *Buffer1,
269138287Smarks    const char              *Buffer2,
270138287Smarks    ACPI_SIZE               Count);
271138287Smarks
272138287Smarksint
27377424SmsmithAcpiUtStrncmp (
274114237Snjl    const char              *String1,
275114237Snjl    const char              *String2,
276104470Siwasaki    ACPI_SIZE               Count);
27767754Smsmith
278104470Siwasakiint
27977424SmsmithAcpiUtStrcmp (
280114237Snjl    const char              *String1,
281114237Snjl    const char              *String2);
28267754Smsmith
283114237Snjlchar *
28477424SmsmithAcpiUtStrcat (
285114237Snjl    char                    *DstString,
286114237Snjl    const char              *SrcString);
28767754Smsmith
288114237Snjlchar *
28977424SmsmithAcpiUtStrncat (
290114237Snjl    char                    *DstString,
291114237Snjl    const char              *SrcString,
292104470Siwasaki    ACPI_SIZE               Count);
29367754Smsmith
29467754SmsmithUINT32
29577424SmsmithAcpiUtStrtoul (
296114237Snjl    const char              *String,
297114237Snjl    char                    **Terminator,
29877424Smsmith    UINT32                  Base);
29967754Smsmith
300114237Snjlchar *
30177424SmsmithAcpiUtStrstr (
302114237Snjl    char                    *String1,
303114237Snjl    char                    *String2);
30467754Smsmith
30567754Smsmithvoid *
30677424SmsmithAcpiUtMemcpy (
30767754Smsmith    void                    *Dest,
30867754Smsmith    const void              *Src,
309104470Siwasaki    ACPI_SIZE               Count);
31067754Smsmith
31167754Smsmithvoid *
31277424SmsmithAcpiUtMemset (
31367754Smsmith    void                    *Dest,
314193267Sjkim    UINT8                   Value,
315104470Siwasaki    ACPI_SIZE               Count);
31667754Smsmith
31799679Siwasakiint
31877424SmsmithAcpiUtToUpper (
31999679Siwasaki    int                     c);
32067754Smsmith
32199679Siwasakiint
32277424SmsmithAcpiUtToLower (
32399679Siwasaki    int                     c);
32467754Smsmith
32599679Siwasakiextern const UINT8 _acpi_ctype[];
32699679Siwasaki
32799679Siwasaki#define _ACPI_XA     0x00    /* extra alphabetic - not supported */
32899679Siwasaki#define _ACPI_XS     0x40    /* extra space */
32999679Siwasaki#define _ACPI_BB     0x00    /* BEL, BS, etc. - not supported */
33099679Siwasaki#define _ACPI_CN     0x20    /* CR, FF, HT, NL, VT */
33199679Siwasaki#define _ACPI_DI     0x04    /* '0'-'9' */
33299679Siwasaki#define _ACPI_LO     0x02    /* 'a'-'z' */
33399679Siwasaki#define _ACPI_PU     0x10    /* punctuation */
33499679Siwasaki#define _ACPI_SP     0x08    /* space */
33599679Siwasaki#define _ACPI_UP     0x01    /* 'A'-'Z' */
33699679Siwasaki#define _ACPI_XD     0x80    /* '0'-'9', 'A'-'F', 'a'-'f' */
33799679Siwasaki
33899679Siwasaki#define ACPI_IS_DIGIT(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_DI))
33999679Siwasaki#define ACPI_IS_SPACE(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_SP))
34099679Siwasaki#define ACPI_IS_XDIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_XD))
34199679Siwasaki#define ACPI_IS_UPPER(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_UP))
34299679Siwasaki#define ACPI_IS_LOWER(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO))
343100966Siwasaki#define ACPI_IS_PRINT(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_SP | _ACPI_PU))
344100966Siwasaki#define ACPI_IS_ALPHA(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP))
34599679Siwasaki
346193267Sjkim#endif /* !ACPI_USE_SYSTEM_CLIBRARY */
34767754Smsmith
348193267Sjkim#define ACPI_IS_ASCII(c)  ((c) < 0x80)
349151937Sjkim
350193267Sjkim
35167754Smsmith/*
352151937Sjkim * utcopy - Object construction and conversion interfaces
35367754Smsmith */
35467754SmsmithACPI_STATUS
35577424SmsmithAcpiUtBuildSimpleObject(
35667754Smsmith    ACPI_OPERAND_OBJECT     *Obj,
35767754Smsmith    ACPI_OBJECT             *UserObj,
35867754Smsmith    UINT8                   *DataSpace,
35967754Smsmith    UINT32                  *BufferSpaceUsed);
36067754Smsmith
36167754SmsmithACPI_STATUS
36277424SmsmithAcpiUtBuildPackageObject (
36367754Smsmith    ACPI_OPERAND_OBJECT     *Obj,
36467754Smsmith    UINT8                   *Buffer,
36567754Smsmith    UINT32                  *SpaceUsed);
36667754Smsmith
36767754SmsmithACPI_STATUS
36877424SmsmithAcpiUtCopyIobjectToEobject (
36967754Smsmith    ACPI_OPERAND_OBJECT     *Obj,
37067754Smsmith    ACPI_BUFFER             *RetBuffer);
37167754Smsmith
37267754SmsmithACPI_STATUS
37377424SmsmithAcpiUtCopyEobjectToIobject (
37467754Smsmith    ACPI_OBJECT             *Obj,
37584491Smsmith    ACPI_OPERAND_OBJECT     **InternalObj);
37667754Smsmith
37767754SmsmithACPI_STATUS
37877424SmsmithAcpiUtCopyISimpleToIsimple (
37967754Smsmith    ACPI_OPERAND_OBJECT     *SourceObj,
38067754Smsmith    ACPI_OPERAND_OBJECT     *DestObj);
38167754Smsmith
38267754SmsmithACPI_STATUS
38391116SmsmithAcpiUtCopyIobjectToIobject (
38491116Smsmith    ACPI_OPERAND_OBJECT     *SourceDesc,
38591116Smsmith    ACPI_OPERAND_OBJECT     **DestDesc,
38691116Smsmith    ACPI_WALK_STATE         *WalkState);
38791116Smsmith
38891116Smsmith
38967754Smsmith/*
390151937Sjkim * utcreate - Object creation
39167754Smsmith */
39267754SmsmithACPI_STATUS
39377424SmsmithAcpiUtUpdateObjectReference (
39467754Smsmith    ACPI_OPERAND_OBJECT     *Object,
39567754Smsmith    UINT16                  Action);
39667754Smsmith
39767754Smsmith
39867754Smsmith/*
399151937Sjkim * utdebug - Debug interfaces
40067754Smsmith */
40183174Smsmithvoid
40283174SmsmithAcpiUtInitStackPtrTrace (
40367754Smsmith    void);
40467754Smsmith
40567754Smsmithvoid
40683174SmsmithAcpiUtTrackStackPtr (
40783174Smsmith    void);
40867754Smsmith
40967754Smsmithvoid
41083174SmsmithAcpiUtTrace (
41167754Smsmith    UINT32                  LineNumber,
412151937Sjkim    const char              *FunctionName,
413193267Sjkim    const char              *ModuleName,
414151937Sjkim    UINT32                  ComponentId);
41567754Smsmith
41667754Smsmithvoid
41783174SmsmithAcpiUtTracePtr (
41867754Smsmith    UINT32                  LineNumber,
419151937Sjkim    const char              *FunctionName,
420193267Sjkim    const char              *ModuleName,
421151937Sjkim    UINT32                  ComponentId,
42267754Smsmith    void                    *Pointer);
42367754Smsmith
42467754Smsmithvoid
42583174SmsmithAcpiUtTraceU32 (
42667754Smsmith    UINT32                  LineNumber,
427151937Sjkim    const char              *FunctionName,
428193267Sjkim    const char              *ModuleName,
429151937Sjkim    UINT32                  ComponentId,
43067754Smsmith    UINT32                  Integer);
43167754Smsmith
43267754Smsmithvoid
43383174SmsmithAcpiUtTraceStr (
43467754Smsmith    UINT32                  LineNumber,
435151937Sjkim    const char              *FunctionName,
436193267Sjkim    const char              *ModuleName,
437151937Sjkim    UINT32                  ComponentId,
438114237Snjl    char                    *String);
43967754Smsmith
44067754Smsmithvoid
44183174SmsmithAcpiUtExit (
44267754Smsmith    UINT32                  LineNumber,
443151937Sjkim    const char              *FunctionName,
444193267Sjkim    const char              *ModuleName,
445151937Sjkim    UINT32                  ComponentId);
44667754Smsmith
44767754Smsmithvoid
44883174SmsmithAcpiUtStatusExit (
44967754Smsmith    UINT32                  LineNumber,
450151937Sjkim    const char              *FunctionName,
451193267Sjkim    const char              *ModuleName,
452151937Sjkim    UINT32                  ComponentId,
45367754Smsmith    ACPI_STATUS             Status);
45467754Smsmith
45567754Smsmithvoid
45683174SmsmithAcpiUtValueExit (
45767754Smsmith    UINT32                  LineNumber,
458151937Sjkim    const char              *FunctionName,
459193267Sjkim    const char              *ModuleName,
460151937Sjkim    UINT32                  ComponentId,
461202771Sjkim    UINT64                  Value);
46267754Smsmith
46367754Smsmithvoid
46483174SmsmithAcpiUtPtrExit (
46567754Smsmith    UINT32                  LineNumber,
466151937Sjkim    const char              *FunctionName,
467193267Sjkim    const char              *ModuleName,
468151937Sjkim    UINT32                  ComponentId,
46967754Smsmith    UINT8                   *Ptr);
47067754Smsmith
47167754Smsmithvoid
472241973SjkimAcpiUtDebugDumpBuffer (
473167802Sjkim    UINT8                   *Buffer,
474167802Sjkim    UINT32                  Count,
475167802Sjkim    UINT32                  Display,
476237412Sjkim    UINT32                  ComponentId);
47767754Smsmith
47867754Smsmithvoid
479241973SjkimAcpiUtDumpBuffer (
480167802Sjkim    UINT8                   *Buffer,
481167802Sjkim    UINT32                  Count,
482241973Sjkim    UINT32                  Display,
483241973Sjkim    UINT32                  Offset);
484167802Sjkim
485167802Sjkimvoid
48683174SmsmithAcpiUtReportError (
487114237Snjl    char                    *ModuleName,
488167802Sjkim    UINT32                  LineNumber);
48967754Smsmith
49067754Smsmithvoid
491167802SjkimAcpiUtReportInfo (
492114237Snjl    char                    *ModuleName,
493167802Sjkim    UINT32                  LineNumber);
49467754Smsmith
49567754Smsmithvoid
496167802SjkimAcpiUtReportWarning (
497167802Sjkim    char                    *ModuleName,
498167802Sjkim    UINT32                  LineNumber);
49967754Smsmith
50067754Smsmith/*
501151937Sjkim * utdelete - Object deletion and reference counts
50267754Smsmith */
503151937Sjkimvoid
504151937SjkimAcpiUtAddReference (
505151937Sjkim    ACPI_OPERAND_OBJECT     *Object);
50667754Smsmith
50767754Smsmithvoid
508151937SjkimAcpiUtRemoveReference (
50967754Smsmith    ACPI_OPERAND_OBJECT     *Object);
51067754Smsmith
51167754Smsmithvoid
51277424SmsmithAcpiUtDeleteInternalPackageObject (
51367754Smsmith    ACPI_OPERAND_OBJECT     *Object);
51467754Smsmith
51567754Smsmithvoid
51677424SmsmithAcpiUtDeleteInternalSimpleObject (
51767754Smsmith    ACPI_OPERAND_OBJECT     *Object);
51867754Smsmith
51999679Siwasakivoid
52077424SmsmithAcpiUtDeleteInternalObjectList (
52167754Smsmith    ACPI_OPERAND_OBJECT     **ObjList);
52267754Smsmith
52367754Smsmith
52467754Smsmith/*
525151937Sjkim * uteval - object evaluation
52667754Smsmith */
52767754SmsmithACPI_STATUS
528114237SnjlAcpiUtEvaluateObject (
529114237Snjl    ACPI_NAMESPACE_NODE     *PrefixNode,
530114237Snjl    char                    *Path,
531114237Snjl    UINT32                  ExpectedReturnBtypes,
532114237Snjl    ACPI_OPERAND_OBJECT     **ReturnDesc);
533114237Snjl
534114237SnjlACPI_STATUS
53577424SmsmithAcpiUtEvaluateNumericObject (
536114237Snjl    char                    *ObjectName,
53767754Smsmith    ACPI_NAMESPACE_NODE     *DeviceNode,
538202771Sjkim    UINT64                  *Value);
53967754Smsmith
54067754SmsmithACPI_STATUS
541197104SjkimAcpiUtExecute_STA (
54267754Smsmith    ACPI_NAMESPACE_NODE     *DeviceNode,
543197104Sjkim    UINT32                  *StatusFlags);
54467754Smsmith
54567754SmsmithACPI_STATUS
546197104SjkimAcpiUtExecutePowerMethods (
54787031Smsmith    ACPI_NAMESPACE_NODE     *DeviceNode,
548197104Sjkim    const char              **MethodNames,
549197104Sjkim    UINT8                   MethodCount,
550197104Sjkim    UINT8                   *OutValues);
55187031Smsmith
552197104Sjkim
553197104Sjkim/*
554197104Sjkim * utids - device ID support
555197104Sjkim */
55687031SmsmithACPI_STATUS
557197104SjkimAcpiUtExecute_HID (
55867754Smsmith    ACPI_NAMESPACE_NODE     *DeviceNode,
559241973Sjkim    ACPI_PNP_DEVICE_ID      **ReturnId);
56067754Smsmith
56167754SmsmithACPI_STATUS
56277424SmsmithAcpiUtExecute_UID (
56367754Smsmith    ACPI_NAMESPACE_NODE     *DeviceNode,
564241973Sjkim    ACPI_PNP_DEVICE_ID      **ReturnId);
56567754Smsmith
566126372SnjlACPI_STATUS
567241973SjkimAcpiUtExecute_SUB (
568241973Sjkim    ACPI_NAMESPACE_NODE     *DeviceNode,
569241973Sjkim    ACPI_PNP_DEVICE_ID      **ReturnId);
570241973Sjkim
571241973SjkimACPI_STATUS
572197104SjkimAcpiUtExecute_CID (
573126372Snjl    ACPI_NAMESPACE_NODE     *DeviceNode,
574241973Sjkim    ACPI_PNP_DEVICE_ID_LIST **ReturnCidList);
57567754Smsmith
576197104Sjkim
577193267Sjkim/*
578193267Sjkim * utlock - reader/writer locks
579193267Sjkim */
580193267SjkimACPI_STATUS
581193267SjkimAcpiUtCreateRwLock (
582193267Sjkim    ACPI_RW_LOCK            *Lock);
58367754Smsmith
584193267Sjkimvoid
585193267SjkimAcpiUtDeleteRwLock (
586193267Sjkim    ACPI_RW_LOCK            *Lock);
587193267Sjkim
588193267SjkimACPI_STATUS
589193267SjkimAcpiUtAcquireReadLock (
590193267Sjkim    ACPI_RW_LOCK            *Lock);
591193267Sjkim
592193267SjkimACPI_STATUS
593193267SjkimAcpiUtReleaseReadLock (
594193267Sjkim    ACPI_RW_LOCK            *Lock);
595193267Sjkim
596193267SjkimACPI_STATUS
597193267SjkimAcpiUtAcquireWriteLock (
598193267Sjkim    ACPI_RW_LOCK            *Lock);
599193267Sjkim
600193267Sjkimvoid
601193267SjkimAcpiUtReleaseWriteLock (
602193267Sjkim    ACPI_RW_LOCK            *Lock);
603193267Sjkim
604193267Sjkim
60567754Smsmith/*
606151937Sjkim * utobject - internal object create/delete/cache routines
60767754Smsmith */
60883174SmsmithACPI_OPERAND_OBJECT  *
60983174SmsmithAcpiUtCreateInternalObjectDbg (
610193267Sjkim    const char              *ModuleName,
61183174Smsmith    UINT32                  LineNumber,
61283174Smsmith    UINT32                  ComponentId,
61391116Smsmith    ACPI_OBJECT_TYPE        Type);
61483174Smsmith
61567754Smsmithvoid *
61683174SmsmithAcpiUtAllocateObjectDescDbg (
617193267Sjkim    const char              *ModuleName,
61867754Smsmith    UINT32                  LineNumber,
61967754Smsmith    UINT32                  ComponentId);
62067754Smsmith
621151937Sjkim#define AcpiUtCreateInternalObject(t)   AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t)
622151937Sjkim#define AcpiUtAllocateObjectDesc()      AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT)
62367754Smsmith
62467754Smsmithvoid
62577424SmsmithAcpiUtDeleteObjectDesc (
62667754Smsmith    ACPI_OPERAND_OBJECT     *Object);
62767754Smsmith
62867754SmsmithBOOLEAN
62977424SmsmithAcpiUtValidInternalObject (
63067754Smsmith    void                    *Object);
63167754Smsmith
632107325SiwasakiACPI_OPERAND_OBJECT *
633193267SjkimAcpiUtCreatePackageObject (
634193267Sjkim    UINT32                  Count);
635193267Sjkim
636193267SjkimACPI_OPERAND_OBJECT *
637199337SjkimAcpiUtCreateIntegerObject (
638199337Sjkim    UINT64                  Value);
639199337Sjkim
640199337SjkimACPI_OPERAND_OBJECT *
641107325SiwasakiAcpiUtCreateBufferObject (
642107325Siwasaki    ACPI_SIZE               BufferSize);
64367754Smsmith
644138287SmarksACPI_OPERAND_OBJECT *
645138287SmarksAcpiUtCreateStringObject (
646138287Smarks    ACPI_SIZE               StringSize);
647107325Siwasaki
64867754SmsmithACPI_STATUS
64977424SmsmithAcpiUtGetObjectSize(
65067754Smsmith    ACPI_OPERAND_OBJECT     *Obj,
65191116Smsmith    ACPI_SIZE               *ObjLength);
65267754Smsmith
65367754Smsmith
65467754Smsmith/*
655210976Sjkim * utosi - Support for the _OSI predefined control method
656210976Sjkim */
657210976SjkimACPI_STATUS
658210976SjkimAcpiUtInitializeInterfaces (
659210976Sjkim    void);
660210976Sjkim
661249112SjkimACPI_STATUS
662210976SjkimAcpiUtInterfaceTerminate (
663210976Sjkim    void);
664210976Sjkim
665210976SjkimACPI_STATUS
666210976SjkimAcpiUtInstallInterface (
667210976Sjkim    ACPI_STRING             InterfaceName);
668210976Sjkim
669210976SjkimACPI_STATUS
670210976SjkimAcpiUtRemoveInterface (
671210976Sjkim    ACPI_STRING             InterfaceName);
672210976Sjkim
673253690SjkimACPI_STATUS
674253690SjkimAcpiUtUpdateInterfaces (
675253690Sjkim    UINT8                   Action);
676253690Sjkim
677210976SjkimACPI_INTERFACE_INFO *
678210976SjkimAcpiUtGetInterface (
679210976Sjkim    ACPI_STRING             InterfaceName);
680210976Sjkim
681210976SjkimACPI_STATUS
682210976SjkimAcpiUtOsiImplementation (
683210976Sjkim    ACPI_WALK_STATE         *WalkState);
684210976Sjkim
685210976Sjkim
686210976Sjkim/*
687249112Sjkim * utpredef - support for predefined names
688249112Sjkim */
689249112Sjkimconst ACPI_PREDEFINED_INFO *
690249112SjkimAcpiUtGetNextPredefinedMethod (
691249112Sjkim    const ACPI_PREDEFINED_INFO  *ThisName);
692249112Sjkim
693249112Sjkimconst ACPI_PREDEFINED_INFO *
694249112SjkimAcpiUtMatchPredefinedMethod (
695249112Sjkim    char                        *Name);
696249112Sjkim
697249112Sjkimconst ACPI_PREDEFINED_INFO *
698249112SjkimAcpiUtMatchResourceName (
699249112Sjkim    char                        *Name);
700249112Sjkim
701249112Sjkimvoid
702249112SjkimAcpiUtDisplayPredefinedMethod (
703249112Sjkim    char                        *Buffer,
704249112Sjkim    const ACPI_PREDEFINED_INFO  *ThisName,
705249112Sjkim    BOOLEAN                     MultiLine);
706249112Sjkim
707249112Sjkimvoid
708249112SjkimAcpiUtGetExpectedReturnTypes (
709249112Sjkim    char                    *Buffer,
710249112Sjkim    UINT32                  ExpectedBtypes);
711249112Sjkim
712249112SjkimUINT32
713249112SjkimAcpiUtGetResourceBitWidth (
714249112Sjkim    char                    *Buffer,
715249112Sjkim    UINT16                  Types);
716249112Sjkim
717249112Sjkim
718249112Sjkim/*
719151937Sjkim * utstate - Generic state creation/cache routines
72067754Smsmith */
72167754Smsmithvoid
72277424SmsmithAcpiUtPushGenericState (
72367754Smsmith    ACPI_GENERIC_STATE      **ListHead,
72467754Smsmith    ACPI_GENERIC_STATE      *State);
72567754Smsmith
72667754SmsmithACPI_GENERIC_STATE *
72777424SmsmithAcpiUtPopGenericState (
72867754Smsmith    ACPI_GENERIC_STATE      **ListHead);
72967754Smsmith
73067754Smsmith
73167754SmsmithACPI_GENERIC_STATE *
73277424SmsmithAcpiUtCreateGenericState (
73367754Smsmith    void);
73467754Smsmith
73587031SmsmithACPI_THREAD_STATE *
73687031SmsmithAcpiUtCreateThreadState (
73787031Smsmith    void);
73887031Smsmith
73967754SmsmithACPI_GENERIC_STATE *
74077424SmsmithAcpiUtCreateUpdateState (
74167754Smsmith    ACPI_OPERAND_OBJECT     *Object,
74267754Smsmith    UINT16                  Action);
74367754Smsmith
74473561SmsmithACPI_GENERIC_STATE *
74577424SmsmithAcpiUtCreatePkgState (
74673561Smsmith    void                    *InternalObject,
74773561Smsmith    void                    *ExternalObject,
74873561Smsmith    UINT16                  Index);
74973561Smsmith
75067754SmsmithACPI_STATUS
75177424SmsmithAcpiUtCreateUpdateStateAndPush (
75267754Smsmith    ACPI_OPERAND_OBJECT     *Object,
75367754Smsmith    UINT16                  Action,
75467754Smsmith    ACPI_GENERIC_STATE      **StateList);
75567754Smsmith
75673561SmsmithACPI_STATUS
75777424SmsmithAcpiUtCreatePkgStateAndPush (
75873561Smsmith    void                    *InternalObject,
75973561Smsmith    void                    *ExternalObject,
76073561Smsmith    UINT16                  Index,
76173561Smsmith    ACPI_GENERIC_STATE      **StateList);
76273561Smsmith
76367754SmsmithACPI_GENERIC_STATE *
76477424SmsmithAcpiUtCreateControlState (
76567754Smsmith    void);
76667754Smsmith
76767754Smsmithvoid
76877424SmsmithAcpiUtDeleteGenericState (
76967754Smsmith    ACPI_GENERIC_STATE      *State);
77067754Smsmith
77167754Smsmith
77267754Smsmith/*
773151937Sjkim * utmath
77467754Smsmith */
77584491SmsmithACPI_STATUS
77684491SmsmithAcpiUtDivide (
777202771Sjkim    UINT64                  InDividend,
778202771Sjkim    UINT64                  InDivisor,
779202771Sjkim    UINT64                  *OutQuotient,
780202771Sjkim    UINT64                  *OutRemainder);
78184491Smsmith
78284491SmsmithACPI_STATUS
78384491SmsmithAcpiUtShortDivide (
784202771Sjkim    UINT64                  InDividend,
78584491Smsmith    UINT32                  Divisor,
786202771Sjkim    UINT64                  *OutQuotient,
78784491Smsmith    UINT32                  *OutRemainder);
78884491Smsmith
789246849Sjkim
790151937Sjkim/*
791151937Sjkim * utmisc
792151937Sjkim */
793246849Sjkimconst ACPI_EXCEPTION_INFO *
794167802SjkimAcpiUtValidateException (
795167802Sjkim    ACPI_STATUS             Status);
796167802Sjkim
797167802SjkimBOOLEAN
798197104SjkimAcpiUtIsPciRootBridge (
799197104Sjkim    char                    *Id);
800197104Sjkim
801197104SjkimBOOLEAN
802167802SjkimAcpiUtIsAmlTable (
803167802Sjkim    ACPI_TABLE_HEADER       *Table);
804167802Sjkim
805151937SjkimACPI_STATUS
806151937SjkimAcpiUtWalkPackageTree (
807151937Sjkim    ACPI_OPERAND_OBJECT     *SourceObject,
808151937Sjkim    void                    *TargetObject,
809151937Sjkim    ACPI_PKG_CALLBACK       WalkCallback,
810151937Sjkim    void                    *Context);
811151937Sjkim
812151937Sjkim
813138287Smarks/* Values for Base above (16=Hex, 10=Decimal) */
814138287Smarks
815138287Smarks#define ACPI_ANY_BASE        0
816138287Smarks
817151937SjkimUINT32
81899679SiwasakiAcpiUtDwordByteSwap (
81999679Siwasaki    UINT32                  Value);
82099679Siwasaki
82199679Siwasakivoid
82299679SiwasakiAcpiUtSetIntegerWidth (
82399679Siwasaki    UINT8                   Revision);
82499679Siwasaki
825102550Siwasaki#ifdef ACPI_DEBUG_OUTPUT
82673561Smsmithvoid
82777424SmsmithAcpiUtDisplayInitPathname (
828114237Snjl    UINT8                   Type,
829114237Snjl    ACPI_NAMESPACE_NODE     *ObjHandle,
83073561Smsmith    char                    *Path);
83173561Smsmith#endif
83273561Smsmith
83373561Smsmith
83467754Smsmith/*
835245582Sjkim * utownerid - Support for Table/Method Owner IDs
836245582Sjkim */
837245582SjkimACPI_STATUS
838245582SjkimAcpiUtAllocateOwnerId (
839245582Sjkim    ACPI_OWNER_ID           *OwnerId);
840245582Sjkim
841245582Sjkimvoid
842245582SjkimAcpiUtReleaseOwnerId (
843245582Sjkim    ACPI_OWNER_ID           *OwnerId);
844245582Sjkim
845245582Sjkim
846245582Sjkim/*
847167802Sjkim * utresrc
848167802Sjkim */
849167802SjkimACPI_STATUS
850167802SjkimAcpiUtWalkAmlResources (
851243347Sjkim    ACPI_WALK_STATE         *WalkState,
852167802Sjkim    UINT8                   *Aml,
853167802Sjkim    ACPI_SIZE               AmlLength,
854167802Sjkim    ACPI_WALK_AML_CALLBACK  UserFunction,
855245582Sjkim    void                    **Context);
856167802Sjkim
857167802SjkimACPI_STATUS
858167802SjkimAcpiUtValidateResource (
859243347Sjkim    ACPI_WALK_STATE         *WalkState,
860167802Sjkim    void                    *Aml,
861167802Sjkim    UINT8                   *ReturnIndex);
862167802Sjkim
863167802SjkimUINT32
864167802SjkimAcpiUtGetDescriptorLength (
865167802Sjkim    void                    *Aml);
866167802Sjkim
867167802SjkimUINT16
868167802SjkimAcpiUtGetResourceLength (
869167802Sjkim    void                    *Aml);
870167802Sjkim
871167802SjkimUINT8
872167802SjkimAcpiUtGetResourceHeaderLength (
873167802Sjkim    void                    *Aml);
874167802Sjkim
875167802SjkimUINT8
876167802SjkimAcpiUtGetResourceType (
877167802Sjkim    void                    *Aml);
878167802Sjkim
879167802SjkimACPI_STATUS
880167802SjkimAcpiUtGetResourceEndTag (
881167802Sjkim    ACPI_OPERAND_OBJECT     *ObjDesc,
882167802Sjkim    UINT8                   **EndTag);
883167802Sjkim
884167802Sjkim
885167802Sjkim/*
886245582Sjkim * utstring - String and character utilities
887245582Sjkim */
888245582Sjkimvoid
889245582SjkimAcpiUtStrupr (
890245582Sjkim    char                    *SrcString);
891245582Sjkim
892245582Sjkimvoid
893245582SjkimAcpiUtStrlwr (
894245582Sjkim    char                    *SrcString);
895245582Sjkim
896245582Sjkimint
897245582SjkimAcpiUtStricmp (
898245582Sjkim    char                    *String1,
899245582Sjkim    char                    *String2);
900245582Sjkim
901245582SjkimACPI_STATUS
902245582SjkimAcpiUtStrtoul64 (
903245582Sjkim    char                    *String,
904245582Sjkim    UINT32                  Base,
905245582Sjkim    UINT64                  *RetInteger);
906245582Sjkim
907245582Sjkimvoid
908245582SjkimAcpiUtPrintString (
909245582Sjkim    char                    *String,
910252279Sjkim    UINT16                  MaxLength);
911245582Sjkim
912245582Sjkimvoid
913245582SjkimUtConvertBackslashes (
914245582Sjkim    char                    *Pathname);
915245582Sjkim
916245582SjkimBOOLEAN
917245582SjkimAcpiUtValidAcpiName (
918250838Sjkim    char                    *Name);
919245582Sjkim
920245582SjkimBOOLEAN
921245582SjkimAcpiUtValidAcpiChar (
922245582Sjkim    char                    Character,
923245582Sjkim    UINT32                  Position);
924245582Sjkim
925245582Sjkimvoid
926245582SjkimAcpiUtRepairName (
927245582Sjkim    char                    *Name);
928245582Sjkim
929245582Sjkim
930245582Sjkim/*
931151937Sjkim * utmutex - mutex support
93267754Smsmith */
933151937SjkimACPI_STATUS
934151937SjkimAcpiUtMutexInitialize (
935151937Sjkim    void);
93667754Smsmith
93782367Smsmithvoid
938151937SjkimAcpiUtMutexTerminate (
939151937Sjkim    void);
94082367Smsmith
941151937SjkimACPI_STATUS
942151937SjkimAcpiUtAcquireMutex (
943151937Sjkim    ACPI_MUTEX_HANDLE       MutexId);
94482367Smsmith
94591116SmsmithACPI_STATUS
946151937SjkimAcpiUtReleaseMutex (
947151937Sjkim    ACPI_MUTEX_HANDLE       MutexId);
948151937Sjkim
949151937Sjkim
950151937Sjkim/*
951151937Sjkim * utalloc - memory allocation and object caching
952151937Sjkim */
953151937SjkimACPI_STATUS
954151937SjkimAcpiUtCreateCaches (
955151937Sjkim    void);
956151937Sjkim
957151937SjkimACPI_STATUS
958151937SjkimAcpiUtDeleteCaches (
959151937Sjkim    void);
960151937Sjkim
961151937SjkimACPI_STATUS
96291116SmsmithAcpiUtValidateBuffer (
96391116Smsmith    ACPI_BUFFER             *Buffer);
96482367Smsmith
96591116SmsmithACPI_STATUS
96691116SmsmithAcpiUtInitializeBuffer (
96791116Smsmith    ACPI_BUFFER             *Buffer,
96891116Smsmith    ACPI_SIZE               RequiredLength);
96982367Smsmith
97082367Smsmithvoid *
97180062SmsmithAcpiUtAllocate (
97291116Smsmith    ACPI_SIZE               Size,
97367754Smsmith    UINT32                  Component,
974193267Sjkim    const char              *Module,
97567754Smsmith    UINT32                  Line);
97667754Smsmith
97767754Smsmithvoid *
978167802SjkimAcpiUtAllocateZeroed (
97991116Smsmith    ACPI_SIZE               Size,
98067754Smsmith    UINT32                  Component,
981193267Sjkim    const char              *Module,
98267754Smsmith    UINT32                  Line);
98367754Smsmith
98491116Smsmith#ifdef ACPI_DBG_TRACK_ALLOCATIONS
98591116Smsmithvoid *
98691116SmsmithAcpiUtAllocateAndTrack (
98791116Smsmith    ACPI_SIZE               Size,
98891116Smsmith    UINT32                  Component,
989193267Sjkim    const char              *Module,
99091116Smsmith    UINT32                  Line);
99191116Smsmith
99291116Smsmithvoid *
993167802SjkimAcpiUtAllocateZeroedAndTrack (
99491116Smsmith    ACPI_SIZE               Size,
99591116Smsmith    UINT32                  Component,
996193267Sjkim    const char              *Module,
99791116Smsmith    UINT32                  Line);
99891116Smsmith
99967754Smsmithvoid
100091116SmsmithAcpiUtFreeAndTrack (
100167754Smsmith    void                    *Address,
100267754Smsmith    UINT32                  Component,
1003193267Sjkim    const char              *Module,
100467754Smsmith    UINT32                  Line);
100599679Siwasaki
100667754Smsmithvoid
100777424SmsmithAcpiUtDumpAllocationInfo (
100867754Smsmith    void);
100967754Smsmith
101067754Smsmithvoid
101184491SmsmithAcpiUtDumpAllocations (
101267754Smsmith    UINT32                  Component,
1013193267Sjkim    const char              *Module);
1014167802Sjkim
1015167802SjkimACPI_STATUS
1016167802SjkimAcpiUtCreateList (
1017167802Sjkim    char                    *ListName,
1018167802Sjkim    UINT16                  ObjectSize,
1019167802Sjkim    ACPI_MEMORY_LIST        **ReturnCache);
1020167802Sjkim
1021212761Sjkim#endif /* ACPI_DBG_TRACK_ALLOCATIONS */
1022167802Sjkim
1023229989Sjkim/*
1024229989Sjkim * utaddress - address range check
1025229989Sjkim */
1026229989SjkimACPI_STATUS
1027229989SjkimAcpiUtAddAddressRange (
1028229989Sjkim    ACPI_ADR_SPACE_TYPE     SpaceId,
1029229989Sjkim    ACPI_PHYSICAL_ADDRESS   Address,
1030229989Sjkim    UINT32                  Length,
1031229989Sjkim    ACPI_NAMESPACE_NODE     *RegionNode);
103267754Smsmith
1033229989Sjkimvoid
1034229989SjkimAcpiUtRemoveAddressRange (
1035229989Sjkim    ACPI_ADR_SPACE_TYPE     SpaceId,
1036229989Sjkim    ACPI_NAMESPACE_NODE     *RegionNode);
1037229989Sjkim
1038229989SjkimUINT32
1039229989SjkimAcpiUtCheckAddressRange (
1040229989Sjkim    ACPI_ADR_SPACE_TYPE     SpaceId,
1041229989Sjkim    ACPI_PHYSICAL_ADDRESS   Address,
1042229989Sjkim    UINT32                  Length,
1043229989Sjkim    BOOLEAN                 Warn);
1044229989Sjkim
1045229989Sjkimvoid
1046229989SjkimAcpiUtDeleteAddressLists (
1047229989Sjkim    void);
1048229989Sjkim
1049212761Sjkim/*
1050212761Sjkim * utxferror - various error/warning output functions
1051212761Sjkim */
1052212761Sjkimvoid ACPI_INTERNAL_VAR_XFACE
1053212761SjkimAcpiUtPredefinedWarning (
1054212761Sjkim    const char              *ModuleName,
1055212761Sjkim    UINT32                  LineNumber,
1056212761Sjkim    char                    *Pathname,
1057212761Sjkim    UINT8                   NodeFlags,
1058212761Sjkim    const char              *Format,
1059212761Sjkim    ...);
1060212761Sjkim
1061212761Sjkimvoid ACPI_INTERNAL_VAR_XFACE
1062212761SjkimAcpiUtPredefinedInfo (
1063212761Sjkim    const char              *ModuleName,
1064212761Sjkim    UINT32                  LineNumber,
1065212761Sjkim    char                    *Pathname,
1066212761Sjkim    UINT8                   NodeFlags,
1067212761Sjkim    const char              *Format,
1068212761Sjkim    ...);
1069212761Sjkim
1070249663Sjkimvoid ACPI_INTERNAL_VAR_XFACE
1071249663SjkimAcpiUtPredefinedBiosError (
1072249663Sjkim    const char              *ModuleName,
1073249663Sjkim    UINT32                  LineNumber,
1074249663Sjkim    char                    *Pathname,
1075249663Sjkim    UINT8                   NodeFlags,
1076249663Sjkim    const char              *Format,
1077249663Sjkim    ...);
1078249663Sjkim
1079212761Sjkimvoid
1080212761SjkimAcpiUtNamespaceError (
1081212761Sjkim    const char              *ModuleName,
1082212761Sjkim    UINT32                  LineNumber,
1083212761Sjkim    const char              *InternalName,
1084212761Sjkim    ACPI_STATUS             LookupStatus);
1085212761Sjkim
1086212761Sjkimvoid
1087212761SjkimAcpiUtMethodError (
1088212761Sjkim    const char              *ModuleName,
1089212761Sjkim    UINT32                  LineNumber,
1090212761Sjkim    const char              *Message,
1091212761Sjkim    ACPI_NAMESPACE_NODE     *Node,
1092212761Sjkim    const char              *Path,
1093212761Sjkim    ACPI_STATUS             LookupStatus);
1094212761Sjkim
109577424Smsmith#endif /* _ACUTILS_H */
1096