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