xref: /illumos-gate/usr/src/uts/intel/sys/acpi/acutils.h (revision 26f3cdf0)
17c478bd9Sstevel@tonic-gate /******************************************************************************
27c478bd9Sstevel@tonic-gate  *
37c478bd9Sstevel@tonic-gate  * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures
47c478bd9Sstevel@tonic-gate  *
57c478bd9Sstevel@tonic-gate  *****************************************************************************/
67c478bd9Sstevel@tonic-gate 
7*26f3cdf0SGordon Ross /*
8*26f3cdf0SGordon Ross  * Copyright (C) 2000 - 2011, Intel Corp.
97c478bd9Sstevel@tonic-gate  * All rights reserved.
107c478bd9Sstevel@tonic-gate  *
11*26f3cdf0SGordon Ross  * Redistribution and use in source and binary forms, with or without
12*26f3cdf0SGordon Ross  * modification, are permitted provided that the following conditions
13*26f3cdf0SGordon Ross  * are met:
14*26f3cdf0SGordon Ross  * 1. Redistributions of source code must retain the above copyright
15*26f3cdf0SGordon Ross  *    notice, this list of conditions, and the following disclaimer,
16*26f3cdf0SGordon Ross  *    without modification.
17*26f3cdf0SGordon Ross  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18*26f3cdf0SGordon Ross  *    substantially similar to the "NO WARRANTY" disclaimer below
19*26f3cdf0SGordon Ross  *    ("Disclaimer") and any redistribution must be conditioned upon
20*26f3cdf0SGordon Ross  *    including a substantially similar Disclaimer requirement for further
21*26f3cdf0SGordon Ross  *    binary redistribution.
22*26f3cdf0SGordon Ross  * 3. Neither the names of the above-listed copyright holders nor the names
23*26f3cdf0SGordon Ross  *    of any contributors may be used to endorse or promote products derived
24*26f3cdf0SGordon Ross  *    from this software without specific prior written permission.
257c478bd9Sstevel@tonic-gate  *
26*26f3cdf0SGordon Ross  * Alternatively, this software may be distributed under the terms of the
27*26f3cdf0SGordon Ross  * GNU General Public License ("GPL") version 2 as published by the Free
28*26f3cdf0SGordon Ross  * Software Foundation.
297c478bd9Sstevel@tonic-gate  *
30*26f3cdf0SGordon Ross  * NO WARRANTY
31*26f3cdf0SGordon Ross  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32*26f3cdf0SGordon Ross  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33*26f3cdf0SGordon Ross  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34*26f3cdf0SGordon Ross  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35*26f3cdf0SGordon Ross  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36*26f3cdf0SGordon Ross  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37*26f3cdf0SGordon Ross  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38*26f3cdf0SGordon Ross  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39*26f3cdf0SGordon Ross  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40*26f3cdf0SGordon Ross  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41*26f3cdf0SGordon Ross  * POSSIBILITY OF SUCH DAMAGES.
42*26f3cdf0SGordon Ross  */
437c478bd9Sstevel@tonic-gate 
447c478bd9Sstevel@tonic-gate #ifndef _ACUTILS_H
457c478bd9Sstevel@tonic-gate #define _ACUTILS_H
467c478bd9Sstevel@tonic-gate 
477c478bd9Sstevel@tonic-gate 
4830082d0cSmyers extern const UINT8                      AcpiGbl_ResourceAmlSizes[];
4930082d0cSmyers 
5030082d0cSmyers /* Strings used by the disassembler and debugger resource dump routines */
5130082d0cSmyers 
5230082d0cSmyers #if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER)
5330082d0cSmyers 
5427f7c583Smyers extern const char                       *AcpiGbl_BmDecode[];
5527f7c583Smyers extern const char                       *AcpiGbl_ConfigDecode[];
5627f7c583Smyers extern const char                       *AcpiGbl_ConsumeDecode[];
5727f7c583Smyers extern const char                       *AcpiGbl_DecDecode[];
5827f7c583Smyers extern const char                       *AcpiGbl_HeDecode[];
5927f7c583Smyers extern const char                       *AcpiGbl_IoDecode[];
6027f7c583Smyers extern const char                       *AcpiGbl_LlDecode[];
6127f7c583Smyers extern const char                       *AcpiGbl_MaxDecode[];
6227f7c583Smyers extern const char                       *AcpiGbl_MemDecode[];
6327f7c583Smyers extern const char                       *AcpiGbl_MinDecode[];
6427f7c583Smyers extern const char                       *AcpiGbl_MtpDecode[];
6527f7c583Smyers extern const char                       *AcpiGbl_RngDecode[];
6627f7c583Smyers extern const char                       *AcpiGbl_RwDecode[];
6727f7c583Smyers extern const char                       *AcpiGbl_ShrDecode[];
6827f7c583Smyers extern const char                       *AcpiGbl_SizDecode[];
6927f7c583Smyers extern const char                       *AcpiGbl_TrsDecode[];
7027f7c583Smyers extern const char                       *AcpiGbl_TtpDecode[];
7127f7c583Smyers extern const char                       *AcpiGbl_TypDecode[];
7230082d0cSmyers #endif
7330082d0cSmyers 
7430082d0cSmyers /* Types for Resource descriptor entries */
7530082d0cSmyers 
7630082d0cSmyers #define ACPI_INVALID_RESOURCE           0
7730082d0cSmyers #define ACPI_FIXED_LENGTH               1
7830082d0cSmyers #define ACPI_VARIABLE_LENGTH            2
7930082d0cSmyers #define ACPI_SMALL_VARIABLE_LENGTH      3
8030082d0cSmyers 
8127f7c583Smyers typedef
8227f7c583Smyers ACPI_STATUS (*ACPI_WALK_AML_CALLBACK) (
8327f7c583Smyers     UINT8                   *Aml,
8427f7c583Smyers     UINT32                  Length,
8527f7c583Smyers     UINT32                  Offset,
8627f7c583Smyers     UINT8                   ResourceIndex,
8727f7c583Smyers     void                    *Context);
8827f7c583Smyers 
897c478bd9Sstevel@tonic-gate typedef
907c478bd9Sstevel@tonic-gate ACPI_STATUS (*ACPI_PKG_CALLBACK) (
917c478bd9Sstevel@tonic-gate     UINT8                   ObjectType,
927c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *SourceObject,
937c478bd9Sstevel@tonic-gate     ACPI_GENERIC_STATE      *State,
947c478bd9Sstevel@tonic-gate     void                    *Context);
957c478bd9Sstevel@tonic-gate 
967c478bd9Sstevel@tonic-gate typedef struct acpi_pkg_info
977c478bd9Sstevel@tonic-gate {
987c478bd9Sstevel@tonic-gate     UINT8                   *FreeSpace;
997c478bd9Sstevel@tonic-gate     ACPI_SIZE               Length;
1007c478bd9Sstevel@tonic-gate     UINT32                  ObjectSpace;
1017c478bd9Sstevel@tonic-gate     UINT32                  NumPackages;
1027c478bd9Sstevel@tonic-gate 
1037c478bd9Sstevel@tonic-gate } ACPI_PKG_INFO;
1047c478bd9Sstevel@tonic-gate 
1057c478bd9Sstevel@tonic-gate #define REF_INCREMENT       (UINT16) 0
1067c478bd9Sstevel@tonic-gate #define REF_DECREMENT       (UINT16) 1
1077c478bd9Sstevel@tonic-gate #define REF_FORCE_DELETE    (UINT16) 2
1087c478bd9Sstevel@tonic-gate 
1097c478bd9Sstevel@tonic-gate /* AcpiUtDumpBuffer */
1107c478bd9Sstevel@tonic-gate 
1117c478bd9Sstevel@tonic-gate #define DB_BYTE_DISPLAY     1
1127c478bd9Sstevel@tonic-gate #define DB_WORD_DISPLAY     2
1137c478bd9Sstevel@tonic-gate #define DB_DWORD_DISPLAY    4
1147c478bd9Sstevel@tonic-gate #define DB_QWORD_DISPLAY    8
1157c478bd9Sstevel@tonic-gate 
1167c478bd9Sstevel@tonic-gate 
1177c478bd9Sstevel@tonic-gate /*
1187c478bd9Sstevel@tonic-gate  * utglobal - Global data structures and procedures
1197c478bd9Sstevel@tonic-gate  */
120db2bae30SDana Myers ACPI_STATUS
1217c478bd9Sstevel@tonic-gate AcpiUtInitGlobals (
1227c478bd9Sstevel@tonic-gate     void);
1237c478bd9Sstevel@tonic-gate 
1247c478bd9Sstevel@tonic-gate #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
1257c478bd9Sstevel@tonic-gate 
1267c478bd9Sstevel@tonic-gate char *
1277c478bd9Sstevel@tonic-gate AcpiUtGetMutexName (
1287c478bd9Sstevel@tonic-gate     UINT32                  MutexId);
1297c478bd9Sstevel@tonic-gate 
130db2bae30SDana Myers const char *
131db2bae30SDana Myers AcpiUtGetNotifyName (
132db2bae30SDana Myers     UINT32                  NotifyValue);
133db2bae30SDana Myers 
1347c478bd9Sstevel@tonic-gate #endif
1357c478bd9Sstevel@tonic-gate 
1367c478bd9Sstevel@tonic-gate char *
1377c478bd9Sstevel@tonic-gate AcpiUtGetTypeName (
1387c478bd9Sstevel@tonic-gate     ACPI_OBJECT_TYPE        Type);
1397c478bd9Sstevel@tonic-gate 
1407c478bd9Sstevel@tonic-gate char *
1417c478bd9Sstevel@tonic-gate AcpiUtGetNodeName (
1427c478bd9Sstevel@tonic-gate     void                    *Object);
1437c478bd9Sstevel@tonic-gate 
1447c478bd9Sstevel@tonic-gate char *
1457c478bd9Sstevel@tonic-gate AcpiUtGetDescriptorName (
1467c478bd9Sstevel@tonic-gate     void                    *Object);
1477c478bd9Sstevel@tonic-gate 
148db2bae30SDana Myers const char *
149db2bae30SDana Myers AcpiUtGetReferenceName (
150db2bae30SDana Myers     ACPI_OPERAND_OBJECT     *Object);
151db2bae30SDana Myers 
1527c478bd9Sstevel@tonic-gate char *
1537c478bd9Sstevel@tonic-gate AcpiUtGetObjectTypeName (
1547c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *ObjDesc);
1557c478bd9Sstevel@tonic-gate 
1567c478bd9Sstevel@tonic-gate char *
1577c478bd9Sstevel@tonic-gate AcpiUtGetRegionName (
1587c478bd9Sstevel@tonic-gate     UINT8                   SpaceId);
1597c478bd9Sstevel@tonic-gate 
1607c478bd9Sstevel@tonic-gate char *
1617c478bd9Sstevel@tonic-gate AcpiUtGetEventName (
1627c478bd9Sstevel@tonic-gate     UINT32                  EventId);
1637c478bd9Sstevel@tonic-gate 
1647c478bd9Sstevel@tonic-gate char
1657c478bd9Sstevel@tonic-gate AcpiUtHexToAsciiChar (
166*26f3cdf0SGordon Ross     UINT64                  Integer,
1677c478bd9Sstevel@tonic-gate     UINT32                  Position);
1687c478bd9Sstevel@tonic-gate 
1697c478bd9Sstevel@tonic-gate BOOLEAN
1707c478bd9Sstevel@tonic-gate AcpiUtValidObjectType (
1717c478bd9Sstevel@tonic-gate     ACPI_OBJECT_TYPE        Type);
1727c478bd9Sstevel@tonic-gate 
1737c478bd9Sstevel@tonic-gate 
1747c478bd9Sstevel@tonic-gate /*
1757c478bd9Sstevel@tonic-gate  * utinit - miscellaneous initialization and shutdown
1767c478bd9Sstevel@tonic-gate  */
1777c478bd9Sstevel@tonic-gate ACPI_STATUS
1787c478bd9Sstevel@tonic-gate AcpiUtHardwareInitialize (
1797c478bd9Sstevel@tonic-gate     void);
1807c478bd9Sstevel@tonic-gate 
1817c478bd9Sstevel@tonic-gate void
1827c478bd9Sstevel@tonic-gate AcpiUtSubsystemShutdown (
1837c478bd9Sstevel@tonic-gate     void);
1847c478bd9Sstevel@tonic-gate 
1857c478bd9Sstevel@tonic-gate 
1867c478bd9Sstevel@tonic-gate /*
1877c478bd9Sstevel@tonic-gate  * utclib - Local implementations of C library functions
1887c478bd9Sstevel@tonic-gate  */
1897c478bd9Sstevel@tonic-gate #ifndef ACPI_USE_SYSTEM_CLIBRARY
1907c478bd9Sstevel@tonic-gate 
1917c478bd9Sstevel@tonic-gate ACPI_SIZE
1927c478bd9Sstevel@tonic-gate AcpiUtStrlen (
1937c478bd9Sstevel@tonic-gate     const char              *String);
1947c478bd9Sstevel@tonic-gate 
1957c478bd9Sstevel@tonic-gate char *
1967c478bd9Sstevel@tonic-gate AcpiUtStrcpy (
1977c478bd9Sstevel@tonic-gate     char                    *DstString,
1987c478bd9Sstevel@tonic-gate     const char              *SrcString);
1997c478bd9Sstevel@tonic-gate 
2007c478bd9Sstevel@tonic-gate char *
2017c478bd9Sstevel@tonic-gate AcpiUtStrncpy (
2027c478bd9Sstevel@tonic-gate     char                    *DstString,
2037c478bd9Sstevel@tonic-gate     const char              *SrcString,
2047c478bd9Sstevel@tonic-gate     ACPI_SIZE               Count);
2057c478bd9Sstevel@tonic-gate 
2067c478bd9Sstevel@tonic-gate int
2077c478bd9Sstevel@tonic-gate AcpiUtMemcmp (
2087c478bd9Sstevel@tonic-gate     const char              *Buffer1,
2097c478bd9Sstevel@tonic-gate     const char              *Buffer2,
2107c478bd9Sstevel@tonic-gate     ACPI_SIZE               Count);
2117c478bd9Sstevel@tonic-gate 
2127c478bd9Sstevel@tonic-gate int
2137c478bd9Sstevel@tonic-gate AcpiUtStrncmp (
2147c478bd9Sstevel@tonic-gate     const char              *String1,
2157c478bd9Sstevel@tonic-gate     const char              *String2,
2167c478bd9Sstevel@tonic-gate     ACPI_SIZE               Count);
2177c478bd9Sstevel@tonic-gate 
2187c478bd9Sstevel@tonic-gate int
2197c478bd9Sstevel@tonic-gate AcpiUtStrcmp (
2207c478bd9Sstevel@tonic-gate     const char              *String1,
2217c478bd9Sstevel@tonic-gate     const char              *String2);
2227c478bd9Sstevel@tonic-gate 
2237c478bd9Sstevel@tonic-gate char *
2247c478bd9Sstevel@tonic-gate AcpiUtStrcat (
2257c478bd9Sstevel@tonic-gate     char                    *DstString,
2267c478bd9Sstevel@tonic-gate     const char              *SrcString);
2277c478bd9Sstevel@tonic-gate 
2287c478bd9Sstevel@tonic-gate char *
2297c478bd9Sstevel@tonic-gate AcpiUtStrncat (
2307c478bd9Sstevel@tonic-gate     char                    *DstString,
2317c478bd9Sstevel@tonic-gate     const char              *SrcString,
2327c478bd9Sstevel@tonic-gate     ACPI_SIZE               Count);
2337c478bd9Sstevel@tonic-gate 
2347c478bd9Sstevel@tonic-gate UINT32
2357c478bd9Sstevel@tonic-gate AcpiUtStrtoul (
2367c478bd9Sstevel@tonic-gate     const char              *String,
2377c478bd9Sstevel@tonic-gate     char                    **Terminator,
2387c478bd9Sstevel@tonic-gate     UINT32                  Base);
2397c478bd9Sstevel@tonic-gate 
2407c478bd9Sstevel@tonic-gate char *
2417c478bd9Sstevel@tonic-gate AcpiUtStrstr (
2427c478bd9Sstevel@tonic-gate     char                    *String1,
2437c478bd9Sstevel@tonic-gate     char                    *String2);
2447c478bd9Sstevel@tonic-gate 
2457c478bd9Sstevel@tonic-gate void *
2467c478bd9Sstevel@tonic-gate AcpiUtMemcpy (
2477c478bd9Sstevel@tonic-gate     void                    *Dest,
2487c478bd9Sstevel@tonic-gate     const void              *Src,
2497c478bd9Sstevel@tonic-gate     ACPI_SIZE               Count);
2507c478bd9Sstevel@tonic-gate 
2517c478bd9Sstevel@tonic-gate void *
2527c478bd9Sstevel@tonic-gate AcpiUtMemset (
2537c478bd9Sstevel@tonic-gate     void                    *Dest,
254db2bae30SDana Myers     UINT8                   Value,
2557c478bd9Sstevel@tonic-gate     ACPI_SIZE               Count);
2567c478bd9Sstevel@tonic-gate 
2577c478bd9Sstevel@tonic-gate int
2587c478bd9Sstevel@tonic-gate AcpiUtToUpper (
2597c478bd9Sstevel@tonic-gate     int                     c);
2607c478bd9Sstevel@tonic-gate 
2617c478bd9Sstevel@tonic-gate int
2627c478bd9Sstevel@tonic-gate AcpiUtToLower (
2637c478bd9Sstevel@tonic-gate     int                     c);
2647c478bd9Sstevel@tonic-gate 
2657c478bd9Sstevel@tonic-gate extern const UINT8 _acpi_ctype[];
2667c478bd9Sstevel@tonic-gate 
2677c478bd9Sstevel@tonic-gate #define _ACPI_XA     0x00    /* extra alphabetic - not supported */
2687c478bd9Sstevel@tonic-gate #define _ACPI_XS     0x40    /* extra space */
2697c478bd9Sstevel@tonic-gate #define _ACPI_BB     0x00    /* BEL, BS, etc. - not supported */
2707c478bd9Sstevel@tonic-gate #define _ACPI_CN     0x20    /* CR, FF, HT, NL, VT */
2717c478bd9Sstevel@tonic-gate #define _ACPI_DI     0x04    /* '0'-'9' */
2727c478bd9Sstevel@tonic-gate #define _ACPI_LO     0x02    /* 'a'-'z' */
2737c478bd9Sstevel@tonic-gate #define _ACPI_PU     0x10    /* punctuation */
2747c478bd9Sstevel@tonic-gate #define _ACPI_SP     0x08    /* space */
2757c478bd9Sstevel@tonic-gate #define _ACPI_UP     0x01    /* 'A'-'Z' */
2767c478bd9Sstevel@tonic-gate #define _ACPI_XD     0x80    /* '0'-'9', 'A'-'F', 'a'-'f' */
2777c478bd9Sstevel@tonic-gate 
2787c478bd9Sstevel@tonic-gate #define ACPI_IS_DIGIT(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_DI))
2797c478bd9Sstevel@tonic-gate #define ACPI_IS_SPACE(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_SP))
2807c478bd9Sstevel@tonic-gate #define ACPI_IS_XDIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_XD))
2817c478bd9Sstevel@tonic-gate #define ACPI_IS_UPPER(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_UP))
2827c478bd9Sstevel@tonic-gate #define ACPI_IS_LOWER(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO))
2837c478bd9Sstevel@tonic-gate #define ACPI_IS_PRINT(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_SP | _ACPI_PU))
2847c478bd9Sstevel@tonic-gate #define ACPI_IS_ALPHA(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP))
2857c478bd9Sstevel@tonic-gate 
286aa2aa9a6SDana Myers #endif /* !ACPI_USE_SYSTEM_CLIBRARY */
287aa2aa9a6SDana Myers 
288aa2aa9a6SDana Myers #define ACPI_IS_ASCII(c)  ((c) < 0x80)
2897c478bd9Sstevel@tonic-gate 
2907c478bd9Sstevel@tonic-gate 
2917c478bd9Sstevel@tonic-gate /*
2927c478bd9Sstevel@tonic-gate  * utcopy - Object construction and conversion interfaces
2937c478bd9Sstevel@tonic-gate  */
2947c478bd9Sstevel@tonic-gate ACPI_STATUS
2957c478bd9Sstevel@tonic-gate AcpiUtBuildSimpleObject(
2967c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *Obj,
2977c478bd9Sstevel@tonic-gate     ACPI_OBJECT             *UserObj,
2987c478bd9Sstevel@tonic-gate     UINT8                   *DataSpace,
2997c478bd9Sstevel@tonic-gate     UINT32                  *BufferSpaceUsed);
3007c478bd9Sstevel@tonic-gate 
3017c478bd9Sstevel@tonic-gate ACPI_STATUS
3027c478bd9Sstevel@tonic-gate AcpiUtBuildPackageObject (
3037c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *Obj,
3047c478bd9Sstevel@tonic-gate     UINT8                   *Buffer,
3057c478bd9Sstevel@tonic-gate     UINT32                  *SpaceUsed);
3067c478bd9Sstevel@tonic-gate 
3077c478bd9Sstevel@tonic-gate ACPI_STATUS
3087c478bd9Sstevel@tonic-gate AcpiUtCopyIobjectToEobject (
3097c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *Obj,
3107c478bd9Sstevel@tonic-gate     ACPI_BUFFER             *RetBuffer);
3117c478bd9Sstevel@tonic-gate 
3127c478bd9Sstevel@tonic-gate ACPI_STATUS
3137c478bd9Sstevel@tonic-gate AcpiUtCopyEobjectToIobject (
3147c478bd9Sstevel@tonic-gate     ACPI_OBJECT             *Obj,
3157c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     **InternalObj);
3167c478bd9Sstevel@tonic-gate 
3177c478bd9Sstevel@tonic-gate ACPI_STATUS
3187c478bd9Sstevel@tonic-gate AcpiUtCopyISimpleToIsimple (
3197c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *SourceObj,
3207c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *DestObj);
3217c478bd9Sstevel@tonic-gate 
3227c478bd9Sstevel@tonic-gate ACPI_STATUS
3237c478bd9Sstevel@tonic-gate AcpiUtCopyIobjectToIobject (
3247c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *SourceDesc,
3257c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     **DestDesc,
3267c478bd9Sstevel@tonic-gate     ACPI_WALK_STATE         *WalkState);
3277c478bd9Sstevel@tonic-gate 
3287c478bd9Sstevel@tonic-gate 
3297c478bd9Sstevel@tonic-gate /*
3307c478bd9Sstevel@tonic-gate  * utcreate - Object creation
3317c478bd9Sstevel@tonic-gate  */
3327c478bd9Sstevel@tonic-gate ACPI_STATUS
3337c478bd9Sstevel@tonic-gate AcpiUtUpdateObjectReference (
3347c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *Object,
3357c478bd9Sstevel@tonic-gate     UINT16                  Action);
3367c478bd9Sstevel@tonic-gate 
3377c478bd9Sstevel@tonic-gate 
3387c478bd9Sstevel@tonic-gate /*
3397c478bd9Sstevel@tonic-gate  * utdebug - Debug interfaces
3407c478bd9Sstevel@tonic-gate  */
3417c478bd9Sstevel@tonic-gate void
3427c478bd9Sstevel@tonic-gate AcpiUtInitStackPtrTrace (
3437c478bd9Sstevel@tonic-gate     void);
3447c478bd9Sstevel@tonic-gate 
3457c478bd9Sstevel@tonic-gate void
3467c478bd9Sstevel@tonic-gate AcpiUtTrackStackPtr (
3477c478bd9Sstevel@tonic-gate     void);
3487c478bd9Sstevel@tonic-gate 
3497c478bd9Sstevel@tonic-gate void
3507c478bd9Sstevel@tonic-gate AcpiUtTrace (
3517c478bd9Sstevel@tonic-gate     UINT32                  LineNumber,
352186507a7Smyers     const char              *FunctionName,
353db2bae30SDana Myers     const char              *ModuleName,
354450d6964Smyers     UINT32                  ComponentId);
3557c478bd9Sstevel@tonic-gate 
3567c478bd9Sstevel@tonic-gate void
3577c478bd9Sstevel@tonic-gate AcpiUtTracePtr (
3587c478bd9Sstevel@tonic-gate     UINT32                  LineNumber,
359186507a7Smyers     const char              *FunctionName,
360db2bae30SDana Myers     const char              *ModuleName,
361450d6964Smyers     UINT32                  ComponentId,
3627c478bd9Sstevel@tonic-gate     void                    *Pointer);
3637c478bd9Sstevel@tonic-gate 
3647c478bd9Sstevel@tonic-gate void
3657c478bd9Sstevel@tonic-gate AcpiUtTraceU32 (
3667c478bd9Sstevel@tonic-gate     UINT32                  LineNumber,
367186507a7Smyers     const char              *FunctionName,
368db2bae30SDana Myers     const char              *ModuleName,
369450d6964Smyers     UINT32                  ComponentId,
3707c478bd9Sstevel@tonic-gate     UINT32                  Integer);
3717c478bd9Sstevel@tonic-gate 
3727c478bd9Sstevel@tonic-gate void
3737c478bd9Sstevel@tonic-gate AcpiUtTraceStr (
3747c478bd9Sstevel@tonic-gate     UINT32                  LineNumber,
375186507a7Smyers     const char              *FunctionName,
376db2bae30SDana Myers     const char              *ModuleName,
377450d6964Smyers     UINT32                  ComponentId,
3787c478bd9Sstevel@tonic-gate     char                    *String);
3797c478bd9Sstevel@tonic-gate 
3807c478bd9Sstevel@tonic-gate void
3817c478bd9Sstevel@tonic-gate AcpiUtExit (
3827c478bd9Sstevel@tonic-gate     UINT32                  LineNumber,
383186507a7Smyers     const char              *FunctionName,
384db2bae30SDana Myers     const char              *ModuleName,
385450d6964Smyers     UINT32                  ComponentId);
3867c478bd9Sstevel@tonic-gate 
3877c478bd9Sstevel@tonic-gate void
3887c478bd9Sstevel@tonic-gate AcpiUtStatusExit (
3897c478bd9Sstevel@tonic-gate     UINT32                  LineNumber,
390186507a7Smyers     const char              *FunctionName,
391db2bae30SDana Myers     const char              *ModuleName,
392450d6964Smyers     UINT32                  ComponentId,
3937c478bd9Sstevel@tonic-gate     ACPI_STATUS             Status);
3947c478bd9Sstevel@tonic-gate 
3957c478bd9Sstevel@tonic-gate void
3967c478bd9Sstevel@tonic-gate AcpiUtValueExit (
3977c478bd9Sstevel@tonic-gate     UINT32                  LineNumber,
398186507a7Smyers     const char              *FunctionName,
399db2bae30SDana Myers     const char              *ModuleName,
400450d6964Smyers     UINT32                  ComponentId,
401*26f3cdf0SGordon Ross     UINT64                  Value);
4027c478bd9Sstevel@tonic-gate 
4037c478bd9Sstevel@tonic-gate void
4047c478bd9Sstevel@tonic-gate AcpiUtPtrExit (
4057c478bd9Sstevel@tonic-gate     UINT32                  LineNumber,
406186507a7Smyers     const char              *FunctionName,
407db2bae30SDana Myers     const char              *ModuleName,
408450d6964Smyers     UINT32                  ComponentId,
4097c478bd9Sstevel@tonic-gate     UINT8                   *Ptr);
4107c478bd9Sstevel@tonic-gate 
4117c478bd9Sstevel@tonic-gate void
41230082d0cSmyers AcpiUtDumpBuffer (
41330082d0cSmyers     UINT8                   *Buffer,
41430082d0cSmyers     UINT32                  Count,
41530082d0cSmyers     UINT32                  Display,
41630082d0cSmyers     UINT32                  componentId);
4177c478bd9Sstevel@tonic-gate 
41827f7c583Smyers void
41927f7c583Smyers AcpiUtDumpBuffer2 (
42027f7c583Smyers     UINT8                   *Buffer,
42127f7c583Smyers     UINT32                  Count,
42227f7c583Smyers     UINT32                  Display);
42327f7c583Smyers 
4247c478bd9Sstevel@tonic-gate void
4257c478bd9Sstevel@tonic-gate AcpiUtReportError (
4267c478bd9Sstevel@tonic-gate     char                    *ModuleName,
42730082d0cSmyers     UINT32                  LineNumber);
4287c478bd9Sstevel@tonic-gate 
4297c478bd9Sstevel@tonic-gate void
43030082d0cSmyers AcpiUtReportInfo (
4317c478bd9Sstevel@tonic-gate     char                    *ModuleName,
43230082d0cSmyers     UINT32                  LineNumber);
4337c478bd9Sstevel@tonic-gate 
4347c478bd9Sstevel@tonic-gate void
43530082d0cSmyers AcpiUtReportWarning (
43630082d0cSmyers     char                    *ModuleName,
43730082d0cSmyers     UINT32                  LineNumber);
43830082d0cSmyers 
4397c478bd9Sstevel@tonic-gate /*
4407c478bd9Sstevel@tonic-gate  * utdelete - Object deletion and reference counts
4417c478bd9Sstevel@tonic-gate  */
4427c478bd9Sstevel@tonic-gate void
4437c478bd9Sstevel@tonic-gate AcpiUtAddReference (
4447c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *Object);
4457c478bd9Sstevel@tonic-gate 
4467c478bd9Sstevel@tonic-gate void
4477c478bd9Sstevel@tonic-gate AcpiUtRemoveReference (
4487c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *Object);
4497c478bd9Sstevel@tonic-gate 
4507c478bd9Sstevel@tonic-gate void
4517c478bd9Sstevel@tonic-gate AcpiUtDeleteInternalPackageObject (
4527c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *Object);
4537c478bd9Sstevel@tonic-gate 
4547c478bd9Sstevel@tonic-gate void
4557c478bd9Sstevel@tonic-gate AcpiUtDeleteInternalSimpleObject (
4567c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *Object);
4577c478bd9Sstevel@tonic-gate 
4587c478bd9Sstevel@tonic-gate void
4597c478bd9Sstevel@tonic-gate AcpiUtDeleteInternalObjectList (
4607c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     **ObjList);
4617c478bd9Sstevel@tonic-gate 
4627c478bd9Sstevel@tonic-gate 
4637c478bd9Sstevel@tonic-gate /*
4647c478bd9Sstevel@tonic-gate  * uteval - object evaluation
4657c478bd9Sstevel@tonic-gate  */
4667c478bd9Sstevel@tonic-gate ACPI_STATUS
4677c478bd9Sstevel@tonic-gate AcpiUtEvaluateObject (
4687c478bd9Sstevel@tonic-gate     ACPI_NAMESPACE_NODE     *PrefixNode,
4697c478bd9Sstevel@tonic-gate     char                    *Path,
4707c478bd9Sstevel@tonic-gate     UINT32                  ExpectedReturnBtypes,
4717c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     **ReturnDesc);
4727c478bd9Sstevel@tonic-gate 
4737c478bd9Sstevel@tonic-gate ACPI_STATUS
4747c478bd9Sstevel@tonic-gate AcpiUtEvaluateNumericObject (
4757c478bd9Sstevel@tonic-gate     char                    *ObjectName,
4767c478bd9Sstevel@tonic-gate     ACPI_NAMESPACE_NODE     *DeviceNode,
477*26f3cdf0SGordon Ross     UINT64                  *Value);
4787c478bd9Sstevel@tonic-gate 
4797c478bd9Sstevel@tonic-gate ACPI_STATUS
48057190917SDana Myers AcpiUtExecute_STA (
4817c478bd9Sstevel@tonic-gate     ACPI_NAMESPACE_NODE     *DeviceNode,
48257190917SDana Myers     UINT32                  *StatusFlags);
4837c478bd9Sstevel@tonic-gate 
4847c478bd9Sstevel@tonic-gate ACPI_STATUS
48557190917SDana Myers AcpiUtExecutePowerMethods (
4867c478bd9Sstevel@tonic-gate     ACPI_NAMESPACE_NODE     *DeviceNode,
48757190917SDana Myers     const char              **MethodNames,
48857190917SDana Myers     UINT8                   MethodCount,
48957190917SDana Myers     UINT8                   *OutValues);
49057190917SDana Myers 
4917c478bd9Sstevel@tonic-gate 
49257190917SDana Myers /*
49357190917SDana Myers  * utids - device ID support
49457190917SDana Myers  */
4957c478bd9Sstevel@tonic-gate ACPI_STATUS
49657190917SDana Myers AcpiUtExecute_HID (
4977c478bd9Sstevel@tonic-gate     ACPI_NAMESPACE_NODE     *DeviceNode,
49857190917SDana Myers     ACPI_DEVICE_ID          **ReturnId);
4997c478bd9Sstevel@tonic-gate 
5007c478bd9Sstevel@tonic-gate ACPI_STATUS
5017c478bd9Sstevel@tonic-gate AcpiUtExecute_UID (
5027c478bd9Sstevel@tonic-gate     ACPI_NAMESPACE_NODE     *DeviceNode,
50357190917SDana Myers     ACPI_DEVICE_ID          **ReturnId);
5047c478bd9Sstevel@tonic-gate 
5057c478bd9Sstevel@tonic-gate ACPI_STATUS
50657190917SDana Myers AcpiUtExecute_CID (
5077c478bd9Sstevel@tonic-gate     ACPI_NAMESPACE_NODE     *DeviceNode,
50857190917SDana Myers     ACPI_DEVICE_ID_LIST     **ReturnCidList);
50957190917SDana Myers 
5107c478bd9Sstevel@tonic-gate 
511aa2aa9a6SDana Myers /*
512aa2aa9a6SDana Myers  * utlock - reader/writer locks
513aa2aa9a6SDana Myers  */
514aa2aa9a6SDana Myers ACPI_STATUS
515aa2aa9a6SDana Myers AcpiUtCreateRwLock (
516aa2aa9a6SDana Myers     ACPI_RW_LOCK            *Lock);
517aa2aa9a6SDana Myers 
518aa2aa9a6SDana Myers void
519aa2aa9a6SDana Myers AcpiUtDeleteRwLock (
520aa2aa9a6SDana Myers     ACPI_RW_LOCK            *Lock);
521aa2aa9a6SDana Myers 
522aa2aa9a6SDana Myers ACPI_STATUS
523aa2aa9a6SDana Myers AcpiUtAcquireReadLock (
524aa2aa9a6SDana Myers     ACPI_RW_LOCK            *Lock);
525aa2aa9a6SDana Myers 
526aa2aa9a6SDana Myers ACPI_STATUS
527aa2aa9a6SDana Myers AcpiUtReleaseReadLock (
528aa2aa9a6SDana Myers     ACPI_RW_LOCK            *Lock);
529aa2aa9a6SDana Myers 
530aa2aa9a6SDana Myers ACPI_STATUS
531aa2aa9a6SDana Myers AcpiUtAcquireWriteLock (
532aa2aa9a6SDana Myers     ACPI_RW_LOCK            *Lock);
533aa2aa9a6SDana Myers 
534aa2aa9a6SDana Myers void
535aa2aa9a6SDana Myers AcpiUtReleaseWriteLock (
536aa2aa9a6SDana Myers     ACPI_RW_LOCK            *Lock);
537aa2aa9a6SDana Myers 
5387c478bd9Sstevel@tonic-gate 
5397c478bd9Sstevel@tonic-gate /*
5407c478bd9Sstevel@tonic-gate  * utobject - internal object create/delete/cache routines
5417c478bd9Sstevel@tonic-gate  */
5427c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT  *
5437c478bd9Sstevel@tonic-gate AcpiUtCreateInternalObjectDbg (
544db2bae30SDana Myers     const char              *ModuleName,
5457c478bd9Sstevel@tonic-gate     UINT32                  LineNumber,
5467c478bd9Sstevel@tonic-gate     UINT32                  ComponentId,
5477c478bd9Sstevel@tonic-gate     ACPI_OBJECT_TYPE        Type);
5487c478bd9Sstevel@tonic-gate 
5497c478bd9Sstevel@tonic-gate void *
5507c478bd9Sstevel@tonic-gate AcpiUtAllocateObjectDescDbg (
551db2bae30SDana Myers     const char              *ModuleName,
5527c478bd9Sstevel@tonic-gate     UINT32                  LineNumber,
5537c478bd9Sstevel@tonic-gate     UINT32                  ComponentId);
5547c478bd9Sstevel@tonic-gate 
555450d6964Smyers #define AcpiUtCreateInternalObject(t)   AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t)
556450d6964Smyers #define AcpiUtAllocateObjectDesc()      AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT)
5577c478bd9Sstevel@tonic-gate 
5587c478bd9Sstevel@tonic-gate void
5597c478bd9Sstevel@tonic-gate AcpiUtDeleteObjectDesc (
5607c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *Object);
5617c478bd9Sstevel@tonic-gate 
5627c478bd9Sstevel@tonic-gate BOOLEAN
5637c478bd9Sstevel@tonic-gate AcpiUtValidInternalObject (
5647c478bd9Sstevel@tonic-gate     void                    *Object);
5657c478bd9Sstevel@tonic-gate 
566db2bae30SDana Myers ACPI_OPERAND_OBJECT *
567db2bae30SDana Myers AcpiUtCreatePackageObject (
568db2bae30SDana Myers     UINT32                  Count);
569db2bae30SDana Myers 
57057190917SDana Myers ACPI_OPERAND_OBJECT *
57157190917SDana Myers AcpiUtCreateIntegerObject (
57257190917SDana Myers     UINT64                  Value);
57357190917SDana Myers 
5747c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *
5757c478bd9Sstevel@tonic-gate AcpiUtCreateBufferObject (
5767c478bd9Sstevel@tonic-gate     ACPI_SIZE               BufferSize);
5777c478bd9Sstevel@tonic-gate 
5787c478bd9Sstevel@tonic-gate ACPI_OPERAND_OBJECT *
5797c478bd9Sstevel@tonic-gate AcpiUtCreateStringObject (
5807c478bd9Sstevel@tonic-gate     ACPI_SIZE               StringSize);
5817c478bd9Sstevel@tonic-gate 
5827c478bd9Sstevel@tonic-gate ACPI_STATUS
5837c478bd9Sstevel@tonic-gate AcpiUtGetObjectSize(
5847c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *Obj,
5857c478bd9Sstevel@tonic-gate     ACPI_SIZE               *ObjLength);
5867c478bd9Sstevel@tonic-gate 
5877c478bd9Sstevel@tonic-gate 
588*26f3cdf0SGordon Ross /*
589*26f3cdf0SGordon Ross  * utosi - Support for the _OSI predefined control method
590*26f3cdf0SGordon Ross  */
591*26f3cdf0SGordon Ross ACPI_STATUS
592*26f3cdf0SGordon Ross AcpiUtInitializeInterfaces (
593*26f3cdf0SGordon Ross     void);
594*26f3cdf0SGordon Ross 
595*26f3cdf0SGordon Ross void
596*26f3cdf0SGordon Ross AcpiUtInterfaceTerminate (
597*26f3cdf0SGordon Ross     void);
598*26f3cdf0SGordon Ross 
599*26f3cdf0SGordon Ross ACPI_STATUS
600*26f3cdf0SGordon Ross AcpiUtInstallInterface (
601*26f3cdf0SGordon Ross     ACPI_STRING             InterfaceName);
602*26f3cdf0SGordon Ross 
603*26f3cdf0SGordon Ross ACPI_STATUS
604*26f3cdf0SGordon Ross AcpiUtRemoveInterface (
605*26f3cdf0SGordon Ross     ACPI_STRING             InterfaceName);
606*26f3cdf0SGordon Ross 
607*26f3cdf0SGordon Ross ACPI_INTERFACE_INFO *
608*26f3cdf0SGordon Ross AcpiUtGetInterface (
609*26f3cdf0SGordon Ross     ACPI_STRING             InterfaceName);
610*26f3cdf0SGordon Ross 
611*26f3cdf0SGordon Ross ACPI_STATUS
612*26f3cdf0SGordon Ross AcpiUtOsiImplementation (
613*26f3cdf0SGordon Ross     ACPI_WALK_STATE         *WalkState);
614*26f3cdf0SGordon Ross 
615*26f3cdf0SGordon Ross 
6167c478bd9Sstevel@tonic-gate /*
6177c478bd9Sstevel@tonic-gate  * utstate - Generic state creation/cache routines
6187c478bd9Sstevel@tonic-gate  */
6197c478bd9Sstevel@tonic-gate void
6207c478bd9Sstevel@tonic-gate AcpiUtPushGenericState (
6217c478bd9Sstevel@tonic-gate     ACPI_GENERIC_STATE      **ListHead,
6227c478bd9Sstevel@tonic-gate     ACPI_GENERIC_STATE      *State);
6237c478bd9Sstevel@tonic-gate 
6247c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE *
6257c478bd9Sstevel@tonic-gate AcpiUtPopGenericState (
6267c478bd9Sstevel@tonic-gate     ACPI_GENERIC_STATE      **ListHead);
6277c478bd9Sstevel@tonic-gate 
6287c478bd9Sstevel@tonic-gate 
6297c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE *
6307c478bd9Sstevel@tonic-gate AcpiUtCreateGenericState (
6317c478bd9Sstevel@tonic-gate     void);
6327c478bd9Sstevel@tonic-gate 
6337c478bd9Sstevel@tonic-gate ACPI_THREAD_STATE *
6347c478bd9Sstevel@tonic-gate AcpiUtCreateThreadState (
6357c478bd9Sstevel@tonic-gate     void);
6367c478bd9Sstevel@tonic-gate 
6377c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE *
6387c478bd9Sstevel@tonic-gate AcpiUtCreateUpdateState (
6397c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *Object,
6407c478bd9Sstevel@tonic-gate     UINT16                  Action);
6417c478bd9Sstevel@tonic-gate 
6427c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE *
6437c478bd9Sstevel@tonic-gate AcpiUtCreatePkgState (
6447c478bd9Sstevel@tonic-gate     void                    *InternalObject,
6457c478bd9Sstevel@tonic-gate     void                    *ExternalObject,
6467c478bd9Sstevel@tonic-gate     UINT16                  Index);
6477c478bd9Sstevel@tonic-gate 
6487c478bd9Sstevel@tonic-gate ACPI_STATUS
6497c478bd9Sstevel@tonic-gate AcpiUtCreateUpdateStateAndPush (
6507c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *Object,
6517c478bd9Sstevel@tonic-gate     UINT16                  Action,
6527c478bd9Sstevel@tonic-gate     ACPI_GENERIC_STATE      **StateList);
6537c478bd9Sstevel@tonic-gate 
6547c478bd9Sstevel@tonic-gate ACPI_STATUS
6557c478bd9Sstevel@tonic-gate AcpiUtCreatePkgStateAndPush (
6567c478bd9Sstevel@tonic-gate     void                    *InternalObject,
6577c478bd9Sstevel@tonic-gate     void                    *ExternalObject,
6587c478bd9Sstevel@tonic-gate     UINT16                  Index,
6597c478bd9Sstevel@tonic-gate     ACPI_GENERIC_STATE      **StateList);
6607c478bd9Sstevel@tonic-gate 
6617c478bd9Sstevel@tonic-gate ACPI_GENERIC_STATE *
6627c478bd9Sstevel@tonic-gate AcpiUtCreateControlState (
6637c478bd9Sstevel@tonic-gate     void);
6647c478bd9Sstevel@tonic-gate 
6657c478bd9Sstevel@tonic-gate void
6667c478bd9Sstevel@tonic-gate AcpiUtDeleteGenericState (
6677c478bd9Sstevel@tonic-gate     ACPI_GENERIC_STATE      *State);
6687c478bd9Sstevel@tonic-gate 
6697c478bd9Sstevel@tonic-gate 
6707c478bd9Sstevel@tonic-gate /*
6717c478bd9Sstevel@tonic-gate  * utmath
6727c478bd9Sstevel@tonic-gate  */
6737c478bd9Sstevel@tonic-gate ACPI_STATUS
6747c478bd9Sstevel@tonic-gate AcpiUtDivide (
675*26f3cdf0SGordon Ross     UINT64                  InDividend,
676*26f3cdf0SGordon Ross     UINT64                  InDivisor,
677*26f3cdf0SGordon Ross     UINT64                  *OutQuotient,
678*26f3cdf0SGordon Ross     UINT64                  *OutRemainder);
6797c478bd9Sstevel@tonic-gate 
6807c478bd9Sstevel@tonic-gate ACPI_STATUS
6817c478bd9Sstevel@tonic-gate AcpiUtShortDivide (
682*26f3cdf0SGordon Ross     UINT64                  InDividend,
6837c478bd9Sstevel@tonic-gate     UINT32                  Divisor,
684*26f3cdf0SGordon Ross     UINT64                  *OutQuotient,
6857c478bd9Sstevel@tonic-gate     UINT32                  *OutRemainder);
6867c478bd9Sstevel@tonic-gate 
6877c478bd9Sstevel@tonic-gate /*
6887c478bd9Sstevel@tonic-gate  * utmisc
6897c478bd9Sstevel@tonic-gate  */
690db2bae30SDana Myers const char *
691db2bae30SDana Myers AcpiUtValidateException (
692db2bae30SDana Myers     ACPI_STATUS             Status);
693db2bae30SDana Myers 
69457190917SDana Myers BOOLEAN
69557190917SDana Myers AcpiUtIsPciRootBridge (
69657190917SDana Myers     char                    *Id);
69757190917SDana Myers 
69827f7c583Smyers BOOLEAN
69927f7c583Smyers AcpiUtIsAmlTable (
70027f7c583Smyers     ACPI_TABLE_HEADER       *Table);
70127f7c583Smyers 
7027c478bd9Sstevel@tonic-gate ACPI_STATUS
703450d6964Smyers AcpiUtAllocateOwnerId (
704450d6964Smyers     ACPI_OWNER_ID           *OwnerId);
705450d6964Smyers 
706186507a7Smyers void
707450d6964Smyers AcpiUtReleaseOwnerId (
708186507a7Smyers     ACPI_OWNER_ID           *OwnerId);
709450d6964Smyers 
710450d6964Smyers ACPI_STATUS
7117c478bd9Sstevel@tonic-gate AcpiUtWalkPackageTree (
7127c478bd9Sstevel@tonic-gate     ACPI_OPERAND_OBJECT     *SourceObject,
7137c478bd9Sstevel@tonic-gate     void                    *TargetObject,
7147c478bd9Sstevel@tonic-gate     ACPI_PKG_CALLBACK       WalkCallback,
7157c478bd9Sstevel@tonic-gate     void                    *Context);
7167c478bd9Sstevel@tonic-gate 
717186507a7Smyers void
7187c478bd9Sstevel@tonic-gate AcpiUtStrupr (
7197c478bd9Sstevel@tonic-gate     char                    *SrcString);
7207c478bd9Sstevel@tonic-gate 
721*26f3cdf0SGordon Ross void
722*26f3cdf0SGordon Ross AcpiUtStrlwr (
723*26f3cdf0SGordon Ross     char                    *SrcString);
724*26f3cdf0SGordon Ross 
7257c478bd9Sstevel@tonic-gate void
7267c478bd9Sstevel@tonic-gate AcpiUtPrintString (
7277c478bd9Sstevel@tonic-gate     char                    *String,
7287c478bd9Sstevel@tonic-gate     UINT8                   MaxLength);
7297c478bd9Sstevel@tonic-gate 
7307c478bd9Sstevel@tonic-gate BOOLEAN
7317c478bd9Sstevel@tonic-gate AcpiUtValidAcpiName (
7327c478bd9Sstevel@tonic-gate     UINT32                  Name);
7337c478bd9Sstevel@tonic-gate 
734db2bae30SDana Myers void
73527f7c583Smyers AcpiUtRepairName (
736db2bae30SDana Myers     char                    *Name);
73727f7c583Smyers 
7387c478bd9Sstevel@tonic-gate BOOLEAN
73927f7c583Smyers AcpiUtValidAcpiChar (
74027f7c583Smyers     char                    Character,
741db2bae30SDana Myers     UINT32                  Position);
7427c478bd9Sstevel@tonic-gate 
7437c478bd9Sstevel@tonic-gate ACPI_STATUS
7447c478bd9Sstevel@tonic-gate AcpiUtStrtoul64 (
7457c478bd9Sstevel@tonic-gate     char                    *String,
7467c478bd9Sstevel@tonic-gate     UINT32                  Base,
747*26f3cdf0SGordon Ross     UINT64                  *RetInteger);
74857190917SDana Myers 
7497c478bd9Sstevel@tonic-gate /* Values for Base above (16=Hex, 10=Decimal) */
7507c478bd9Sstevel@tonic-gate 
7517c478bd9Sstevel@tonic-gate #define ACPI_ANY_BASE        0
7527c478bd9Sstevel@tonic-gate 
75327f7c583Smyers UINT32
75427f7c583Smyers AcpiUtDwordByteSwap (
75527f7c583Smyers     UINT32                  Value);
75627f7c583Smyers 
75727f7c583Smyers void
75827f7c583Smyers AcpiUtSetIntegerWidth (
75927f7c583Smyers     UINT8                   Revision);
76027f7c583Smyers 
76127f7c583Smyers #ifdef ACPI_DEBUG_OUTPUT
76227f7c583Smyers void
76327f7c583Smyers AcpiUtDisplayInitPathname (
76427f7c583Smyers     UINT8                   Type,
76527f7c583Smyers     ACPI_NAMESPACE_NODE     *ObjHandle,
76627f7c583Smyers     char                    *Path);
76727f7c583Smyers #endif
76827f7c583Smyers 
76927f7c583Smyers 
77027f7c583Smyers /*
77127f7c583Smyers  * utresrc
77227f7c583Smyers  */
77327f7c583Smyers ACPI_STATUS
77427f7c583Smyers AcpiUtWalkAmlResources (
77527f7c583Smyers     UINT8                   *Aml,
77627f7c583Smyers     ACPI_SIZE               AmlLength,
77727f7c583Smyers     ACPI_WALK_AML_CALLBACK  UserFunction,
77827f7c583Smyers     void                    *Context);
77927f7c583Smyers 
78030082d0cSmyers ACPI_STATUS
78130082d0cSmyers AcpiUtValidateResource (
78230082d0cSmyers     void                    *Aml,
78330082d0cSmyers     UINT8                   *ReturnIndex);
78430082d0cSmyers 
78530082d0cSmyers UINT32
78630082d0cSmyers AcpiUtGetDescriptorLength (
78730082d0cSmyers     void                    *Aml);
78830082d0cSmyers 
78930082d0cSmyers UINT16
79030082d0cSmyers AcpiUtGetResourceLength (
79130082d0cSmyers     void                    *Aml);
7927c478bd9Sstevel@tonic-gate 
7937c478bd9Sstevel@tonic-gate UINT8
79430082d0cSmyers AcpiUtGetResourceHeaderLength (
79530082d0cSmyers     void                    *Aml);
79630082d0cSmyers 
79730082d0cSmyers UINT8
79830082d0cSmyers AcpiUtGetResourceType (
79930082d0cSmyers     void                    *Aml);
80030082d0cSmyers 
80130082d0cSmyers ACPI_STATUS
80230082d0cSmyers AcpiUtGetResourceEndTag (
80330082d0cSmyers     ACPI_OPERAND_OBJECT     *ObjDesc,
80430082d0cSmyers     UINT8                   **EndTag);
8057c478bd9Sstevel@tonic-gate 
8067c478bd9Sstevel@tonic-gate 
8077c478bd9Sstevel@tonic-gate /*
808450d6964Smyers  * utmutex - mutex support
8097c478bd9Sstevel@tonic-gate  */
810450d6964Smyers ACPI_STATUS
811450d6964Smyers AcpiUtMutexInitialize (
812450d6964Smyers     void);
8137c478bd9Sstevel@tonic-gate 
8147c478bd9Sstevel@tonic-gate void
815450d6964Smyers AcpiUtMutexTerminate (
816450d6964Smyers     void);
8177c478bd9Sstevel@tonic-gate 
818450d6964Smyers ACPI_STATUS
819450d6964Smyers AcpiUtAcquireMutex (
820450d6964Smyers     ACPI_MUTEX_HANDLE       MutexId);
821450d6964Smyers 
822450d6964Smyers ACPI_STATUS
823450d6964Smyers AcpiUtReleaseMutex (
824450d6964Smyers     ACPI_MUTEX_HANDLE       MutexId);
825450d6964Smyers 
826450d6964Smyers 
827450d6964Smyers /*
828450d6964Smyers  * utalloc - memory allocation and object caching
829450d6964Smyers  */
830450d6964Smyers ACPI_STATUS
831450d6964Smyers AcpiUtCreateCaches (
832450d6964Smyers     void);
833450d6964Smyers 
834450d6964Smyers ACPI_STATUS
835450d6964Smyers AcpiUtDeleteCaches (
836450d6964Smyers     void);
8377c478bd9Sstevel@tonic-gate 
8387c478bd9Sstevel@tonic-gate ACPI_STATUS
8397c478bd9Sstevel@tonic-gate AcpiUtValidateBuffer (
8407c478bd9Sstevel@tonic-gate     ACPI_BUFFER             *Buffer);
8417c478bd9Sstevel@tonic-gate 
8427c478bd9Sstevel@tonic-gate ACPI_STATUS
8437c478bd9Sstevel@tonic-gate AcpiUtInitializeBuffer (
8447c478bd9Sstevel@tonic-gate     ACPI_BUFFER             *Buffer,
8457c478bd9Sstevel@tonic-gate     ACPI_SIZE               RequiredLength);
8467c478bd9Sstevel@tonic-gate 
8477c478bd9Sstevel@tonic-gate void *
8487c478bd9Sstevel@tonic-gate AcpiUtAllocate (
8497c478bd9Sstevel@tonic-gate     ACPI_SIZE               Size,
8507c478bd9Sstevel@tonic-gate     UINT32                  Component,
851db2bae30SDana Myers     const char              *Module,
8527c478bd9Sstevel@tonic-gate     UINT32                  Line);
8537c478bd9Sstevel@tonic-gate 
8547c478bd9Sstevel@tonic-gate void *
85527f7c583Smyers AcpiUtAllocateZeroed (
8567c478bd9Sstevel@tonic-gate     ACPI_SIZE               Size,
8577c478bd9Sstevel@tonic-gate     UINT32                  Component,
858db2bae30SDana Myers     const char              *Module,
8597c478bd9Sstevel@tonic-gate     UINT32                  Line);
8607c478bd9Sstevel@tonic-gate 
8617c478bd9Sstevel@tonic-gate #ifdef ACPI_DBG_TRACK_ALLOCATIONS
8627c478bd9Sstevel@tonic-gate void *
8637c478bd9Sstevel@tonic-gate AcpiUtAllocateAndTrack (
8647c478bd9Sstevel@tonic-gate     ACPI_SIZE               Size,
8657c478bd9Sstevel@tonic-gate     UINT32                  Component,
866db2bae30SDana Myers     const char              *Module,
8677c478bd9Sstevel@tonic-gate     UINT32                  Line);
8687c478bd9Sstevel@tonic-gate 
8697c478bd9Sstevel@tonic-gate void *
87027f7c583Smyers AcpiUtAllocateZeroedAndTrack (
8717c478bd9Sstevel@tonic-gate     ACPI_SIZE               Size,
8727c478bd9Sstevel@tonic-gate     UINT32                  Component,
873db2bae30SDana Myers     const char              *Module,
8747c478bd9Sstevel@tonic-gate     UINT32                  Line);
8757c478bd9Sstevel@tonic-gate 
8767c478bd9Sstevel@tonic-gate void
8777c478bd9Sstevel@tonic-gate AcpiUtFreeAndTrack (
8787c478bd9Sstevel@tonic-gate     void                    *Address,
8797c478bd9Sstevel@tonic-gate     UINT32                  Component,
880db2bae30SDana Myers     const char              *Module,
8817c478bd9Sstevel@tonic-gate     UINT32                  Line);
8827c478bd9Sstevel@tonic-gate 
8837c478bd9Sstevel@tonic-gate void
8847c478bd9Sstevel@tonic-gate AcpiUtDumpAllocationInfo (
8857c478bd9Sstevel@tonic-gate     void);
8867c478bd9Sstevel@tonic-gate 
8877c478bd9Sstevel@tonic-gate void
8887c478bd9Sstevel@tonic-gate AcpiUtDumpAllocations (
8897c478bd9Sstevel@tonic-gate     UINT32                  Component,
890db2bae30SDana Myers     const char              *Module);
89127f7c583Smyers 
89227f7c583Smyers ACPI_STATUS
89327f7c583Smyers AcpiUtCreateList (
89427f7c583Smyers     char                    *ListName,
89527f7c583Smyers     UINT16                  ObjectSize,
89627f7c583Smyers     ACPI_MEMORY_LIST        **ReturnCache);
89727f7c583Smyers 
898*26f3cdf0SGordon Ross #endif /* ACPI_DBG_TRACK_ALLOCATIONS */
89927f7c583Smyers 
900*26f3cdf0SGordon Ross 
901*26f3cdf0SGordon Ross /*
902*26f3cdf0SGordon Ross  * utxferror - various error/warning output functions
903*26f3cdf0SGordon Ross  */
904*26f3cdf0SGordon Ross void ACPI_INTERNAL_VAR_XFACE
905*26f3cdf0SGordon Ross AcpiUtPredefinedWarning (
906*26f3cdf0SGordon Ross     const char              *ModuleName,
907*26f3cdf0SGordon Ross     UINT32                  LineNumber,
908*26f3cdf0SGordon Ross     char                    *Pathname,
909*26f3cdf0SGordon Ross     UINT8                   NodeFlags,
910*26f3cdf0SGordon Ross     const char              *Format,
911*26f3cdf0SGordon Ross     ...);
912*26f3cdf0SGordon Ross 
913*26f3cdf0SGordon Ross void ACPI_INTERNAL_VAR_XFACE
914*26f3cdf0SGordon Ross AcpiUtPredefinedInfo (
915*26f3cdf0SGordon Ross     const char              *ModuleName,
916*26f3cdf0SGordon Ross     UINT32                  LineNumber,
917*26f3cdf0SGordon Ross     char                    *Pathname,
918*26f3cdf0SGordon Ross     UINT8                   NodeFlags,
919*26f3cdf0SGordon Ross     const char              *Format,
920*26f3cdf0SGordon Ross     ...);
921*26f3cdf0SGordon Ross 
922*26f3cdf0SGordon Ross void
923*26f3cdf0SGordon Ross AcpiUtNamespaceError (
924*26f3cdf0SGordon Ross     const char              *ModuleName,
925*26f3cdf0SGordon Ross     UINT32                  LineNumber,
926*26f3cdf0SGordon Ross     const char              *InternalName,
927*26f3cdf0SGordon Ross     ACPI_STATUS             LookupStatus);
928*26f3cdf0SGordon Ross 
929*26f3cdf0SGordon Ross void
930*26f3cdf0SGordon Ross AcpiUtMethodError (
931*26f3cdf0SGordon Ross     const char              *ModuleName,
932*26f3cdf0SGordon Ross     UINT32                  LineNumber,
933*26f3cdf0SGordon Ross     const char              *Message,
934*26f3cdf0SGordon Ross     ACPI_NAMESPACE_NODE     *Node,
935*26f3cdf0SGordon Ross     const char              *Path,
936*26f3cdf0SGordon Ross     ACPI_STATUS             LookupStatus);
9377c478bd9Sstevel@tonic-gate 
9387c478bd9Sstevel@tonic-gate #endif /* _ACUTILS_H */
939