acutils.h revision 272444
167754Smsmith/****************************************************************************** 267754Smsmith * 377424Smsmith * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures 467754Smsmith * 567754Smsmith *****************************************************************************/ 667754Smsmith 7217365Sjkim/* 8272444Sjkim * Copyright (C) 2000 - 2014, Intel Corp. 970243Smsmith * All rights reserved. 1067754Smsmith * 11217365Sjkim * Redistribution and use in source and binary forms, with or without 12217365Sjkim * modification, are permitted provided that the following conditions 13217365Sjkim * are met: 14217365Sjkim * 1. Redistributions of source code must retain the above copyright 15217365Sjkim * notice, this list of conditions, and the following disclaimer, 16217365Sjkim * without modification. 17217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18217365Sjkim * substantially similar to the "NO WARRANTY" disclaimer below 19217365Sjkim * ("Disclaimer") and any redistribution must be conditioned upon 20217365Sjkim * including a substantially similar Disclaimer requirement for further 21217365Sjkim * binary redistribution. 22217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names 23217365Sjkim * of any contributors may be used to endorse or promote products derived 24217365Sjkim * from this software without specific prior written permission. 2567754Smsmith * 26217365Sjkim * Alternatively, this software may be distributed under the terms of the 27217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free 28217365Sjkim * Software Foundation. 2967754Smsmith * 30217365Sjkim * NO WARRANTY 31217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41217365Sjkim * POSSIBILITY OF SUCH DAMAGES. 42217365Sjkim */ 4367754Smsmith 4477424Smsmith#ifndef _ACUTILS_H 4577424Smsmith#define _ACUTILS_H 4667754Smsmith 4767754Smsmith 48167802Sjkimextern const UINT8 AcpiGbl_ResourceAmlSizes[]; 49228110Sjkimextern const UINT8 AcpiGbl_ResourceAmlSerialBusSizes[]; 50167802Sjkim 51167802Sjkim/* Strings used by the disassembler and debugger resource dump routines */ 52167802Sjkim 53272444Sjkim#if defined(ACPI_DEBUG_OUTPUT) || defined (ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER) 54167802Sjkim 55167802Sjkimextern const char *AcpiGbl_BmDecode[]; 56167802Sjkimextern const char *AcpiGbl_ConfigDecode[]; 57167802Sjkimextern const char *AcpiGbl_ConsumeDecode[]; 58167802Sjkimextern const char *AcpiGbl_DecDecode[]; 59167802Sjkimextern const char *AcpiGbl_HeDecode[]; 60167802Sjkimextern const char *AcpiGbl_IoDecode[]; 61167802Sjkimextern const char *AcpiGbl_LlDecode[]; 62167802Sjkimextern const char *AcpiGbl_MaxDecode[]; 63167802Sjkimextern const char *AcpiGbl_MemDecode[]; 64167802Sjkimextern const char *AcpiGbl_MinDecode[]; 65167802Sjkimextern const char *AcpiGbl_MtpDecode[]; 66167802Sjkimextern const char *AcpiGbl_RngDecode[]; 67167802Sjkimextern const char *AcpiGbl_RwDecode[]; 68167802Sjkimextern const char *AcpiGbl_ShrDecode[]; 69167802Sjkimextern const char *AcpiGbl_SizDecode[]; 70167802Sjkimextern const char *AcpiGbl_TrsDecode[]; 71167802Sjkimextern const char *AcpiGbl_TtpDecode[]; 72167802Sjkimextern const char *AcpiGbl_TypDecode[]; 73228110Sjkimextern const char *AcpiGbl_PpcDecode[]; 74228110Sjkimextern const char *AcpiGbl_IorDecode[]; 75228110Sjkimextern const char *AcpiGbl_DtsDecode[]; 76228110Sjkimextern const char *AcpiGbl_CtDecode[]; 77228110Sjkimextern const char *AcpiGbl_SbtDecode[]; 78228110Sjkimextern const char *AcpiGbl_AmDecode[]; 79228110Sjkimextern const char *AcpiGbl_SmDecode[]; 80228110Sjkimextern const char *AcpiGbl_WmDecode[]; 81228110Sjkimextern const char *AcpiGbl_CphDecode[]; 82228110Sjkimextern const char *AcpiGbl_CpoDecode[]; 83228110Sjkimextern const char *AcpiGbl_DpDecode[]; 84228110Sjkimextern const char *AcpiGbl_EdDecode[]; 85228110Sjkimextern const char *AcpiGbl_BpbDecode[]; 86228110Sjkimextern const char *AcpiGbl_SbDecode[]; 87228110Sjkimextern const char *AcpiGbl_FcDecode[]; 88228110Sjkimextern const char *AcpiGbl_PtDecode[]; 89167802Sjkim#endif 90167802Sjkim 91250838Sjkim/* 92250838Sjkim * For the iASL compiler case, the output is redirected to stderr so that 93250838Sjkim * any of the various ACPI errors and warnings do not appear in the output 94250838Sjkim * files, for either the compiler or disassembler portions of the tool. 95250838Sjkim */ 96250838Sjkim#ifdef ACPI_ASL_COMPILER 97250838Sjkim 98250838Sjkim#include <stdio.h> 99250838Sjkim 100250838Sjkim#define ACPI_MSG_REDIRECT_BEGIN \ 101250838Sjkim FILE *OutputFile = AcpiGbl_OutputFile; \ 102250838Sjkim AcpiOsRedirectOutput (stderr); 103250838Sjkim 104250838Sjkim#define ACPI_MSG_REDIRECT_END \ 105250838Sjkim AcpiOsRedirectOutput (OutputFile); 106250838Sjkim 107250838Sjkim#else 108250838Sjkim/* 109250838Sjkim * non-iASL case - no redirection, nothing to do 110250838Sjkim */ 111250838Sjkim#define ACPI_MSG_REDIRECT_BEGIN 112250838Sjkim#define ACPI_MSG_REDIRECT_END 113250838Sjkim#endif 114250838Sjkim 115250838Sjkim/* 116250838Sjkim * Common error message prefixes 117250838Sjkim */ 118250838Sjkim#define ACPI_MSG_ERROR "ACPI Error: " 119250838Sjkim#define ACPI_MSG_EXCEPTION "ACPI Exception: " 120250838Sjkim#define ACPI_MSG_WARNING "ACPI Warning: " 121250838Sjkim#define ACPI_MSG_INFO "ACPI: " 122250838Sjkim 123250838Sjkim#define ACPI_MSG_BIOS_ERROR "ACPI BIOS Error (bug): " 124250838Sjkim#define ACPI_MSG_BIOS_WARNING "ACPI BIOS Warning (bug): " 125250838Sjkim 126250838Sjkim/* 127250838Sjkim * Common message suffix 128250838Sjkim */ 129250838Sjkim#define ACPI_MSG_SUFFIX \ 130250838Sjkim AcpiOsPrintf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, ModuleName, LineNumber) 131250838Sjkim 132250838Sjkim 133167802Sjkim/* Types for Resource descriptor entries */ 134167802Sjkim 135167802Sjkim#define ACPI_INVALID_RESOURCE 0 136167802Sjkim#define ACPI_FIXED_LENGTH 1 137167802Sjkim#define ACPI_VARIABLE_LENGTH 2 138167802Sjkim#define ACPI_SMALL_VARIABLE_LENGTH 3 139167802Sjkim 14073561Smsmithtypedef 141167802SjkimACPI_STATUS (*ACPI_WALK_AML_CALLBACK) ( 142167802Sjkim UINT8 *Aml, 143167802Sjkim UINT32 Length, 144167802Sjkim UINT32 Offset, 145167802Sjkim UINT8 ResourceIndex, 146245582Sjkim void **Context); 147167802Sjkim 148167802Sjkimtypedef 14973561SmsmithACPI_STATUS (*ACPI_PKG_CALLBACK) ( 15073561Smsmith UINT8 ObjectType, 15173561Smsmith ACPI_OPERAND_OBJECT *SourceObject, 15273561Smsmith ACPI_GENERIC_STATE *State, 15373561Smsmith void *Context); 15473561Smsmith 15573561Smsmithtypedef struct acpi_pkg_info 15673561Smsmith{ 15773561Smsmith UINT8 *FreeSpace; 15891116Smsmith ACPI_SIZE Length; 15973561Smsmith UINT32 ObjectSpace; 16073561Smsmith UINT32 NumPackages; 161114237Snjl 16273561Smsmith} ACPI_PKG_INFO; 16373561Smsmith 164249112Sjkim/* Object reference counts */ 165249112Sjkim 16667754Smsmith#define REF_INCREMENT (UINT16) 0 16767754Smsmith#define REF_DECREMENT (UINT16) 1 16867754Smsmith 16977424Smsmith/* AcpiUtDumpBuffer */ 17067754Smsmith 17167754Smsmith#define DB_BYTE_DISPLAY 1 17267754Smsmith#define DB_WORD_DISPLAY 2 17367754Smsmith#define DB_DWORD_DISPLAY 4 17467754Smsmith#define DB_QWORD_DISPLAY 8 17567754Smsmith 17667754Smsmith/* 177151937Sjkim * utglobal - Global data structures and procedures 17867754Smsmith */ 179193267SjkimACPI_STATUS 180151937SjkimAcpiUtInitGlobals ( 18167754Smsmith void); 18267754Smsmith 183102550Siwasaki#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 18469746Smsmith 185114237Snjlchar * 18677424SmsmithAcpiUtGetMutexName ( 18767754Smsmith UINT32 MutexId); 18867754Smsmith 189193267Sjkimconst char * 190193267SjkimAcpiUtGetNotifyName ( 191272444Sjkim UINT32 NotifyValue, 192272444Sjkim ACPI_OBJECT_TYPE Type); 193100966Siwasaki#endif 194100966Siwasaki 195114237Snjlchar * 19677424SmsmithAcpiUtGetTypeName ( 19791116Smsmith ACPI_OBJECT_TYPE Type); 19867754Smsmith 199114237Snjlchar * 200123315SnjlAcpiUtGetNodeName ( 201123315Snjl void *Object); 202123315Snjl 203123315Snjlchar * 204123315SnjlAcpiUtGetDescriptorName ( 205123315Snjl void *Object); 206123315Snjl 207193267Sjkimconst char * 208193267SjkimAcpiUtGetReferenceName ( 209193267Sjkim ACPI_OPERAND_OBJECT *Object); 210193267Sjkim 211123315Snjlchar * 21299679SiwasakiAcpiUtGetObjectTypeName ( 21399679Siwasaki ACPI_OPERAND_OBJECT *ObjDesc); 21499679Siwasaki 215114237Snjlchar * 21677424SmsmithAcpiUtGetRegionName ( 21769746Smsmith UINT8 SpaceId); 21869746Smsmith 219114237Snjlchar * 22091116SmsmithAcpiUtGetEventName ( 22191116Smsmith UINT32 EventId); 22269746Smsmith 22399679Siwasakichar 22482367SmsmithAcpiUtHexToAsciiChar ( 225202771Sjkim UINT64 Integer, 22682367Smsmith UINT32 Position); 22782367Smsmith 228272444SjkimUINT8 229272444SjkimAcpiUtAsciiCharToHex ( 230272444Sjkim int HexChar); 231272444Sjkim 23267754SmsmithBOOLEAN 23377424SmsmithAcpiUtValidObjectType ( 23491116Smsmith ACPI_OBJECT_TYPE Type); 23567754Smsmith 23667754Smsmith 237151937Sjkim/* 238151937Sjkim * utinit - miscellaneous initialization and shutdown 239151937Sjkim */ 240151937SjkimACPI_STATUS 241151937SjkimAcpiUtHardwareInitialize ( 242151937Sjkim void); 24367754Smsmith 244151937Sjkimvoid 245151937SjkimAcpiUtSubsystemShutdown ( 246151937Sjkim void); 247151937Sjkim 248151937Sjkim 24967754Smsmith/* 250151937Sjkim * utclib - Local implementations of C library functions 25167754Smsmith */ 25271867Smsmith#ifndef ACPI_USE_SYSTEM_CLIBRARY 25371867Smsmith 254104470SiwasakiACPI_SIZE 25577424SmsmithAcpiUtStrlen ( 256114237Snjl const char *String); 25767754Smsmith 258114237Snjlchar * 259272444SjkimAcpiUtStrchr ( 260272444Sjkim const char *String, 261272444Sjkim int ch); 262272444Sjkim 263272444Sjkimchar * 26477424SmsmithAcpiUtStrcpy ( 265114237Snjl char *DstString, 266114237Snjl const char *SrcString); 26767754Smsmith 268114237Snjlchar * 26977424SmsmithAcpiUtStrncpy ( 270114237Snjl char *DstString, 271114237Snjl const char *SrcString, 272104470Siwasaki ACPI_SIZE Count); 27367754Smsmith 27499679Siwasakiint 275138287SmarksAcpiUtMemcmp ( 276138287Smarks const char *Buffer1, 277138287Smarks const char *Buffer2, 278138287Smarks ACPI_SIZE Count); 279138287Smarks 280138287Smarksint 28177424SmsmithAcpiUtStrncmp ( 282114237Snjl const char *String1, 283114237Snjl const char *String2, 284104470Siwasaki ACPI_SIZE Count); 28567754Smsmith 286104470Siwasakiint 28777424SmsmithAcpiUtStrcmp ( 288114237Snjl const char *String1, 289114237Snjl const char *String2); 29067754Smsmith 291114237Snjlchar * 29277424SmsmithAcpiUtStrcat ( 293114237Snjl char *DstString, 294114237Snjl const char *SrcString); 29567754Smsmith 296114237Snjlchar * 29777424SmsmithAcpiUtStrncat ( 298114237Snjl char *DstString, 299114237Snjl const char *SrcString, 300104470Siwasaki ACPI_SIZE Count); 30167754Smsmith 30267754SmsmithUINT32 30377424SmsmithAcpiUtStrtoul ( 304114237Snjl const char *String, 305114237Snjl char **Terminator, 30677424Smsmith UINT32 Base); 30767754Smsmith 308114237Snjlchar * 30977424SmsmithAcpiUtStrstr ( 310114237Snjl char *String1, 311114237Snjl char *String2); 31267754Smsmith 31367754Smsmithvoid * 31477424SmsmithAcpiUtMemcpy ( 31567754Smsmith void *Dest, 31667754Smsmith const void *Src, 317104470Siwasaki ACPI_SIZE Count); 31867754Smsmith 31967754Smsmithvoid * 32077424SmsmithAcpiUtMemset ( 32167754Smsmith void *Dest, 322193267Sjkim UINT8 Value, 323104470Siwasaki ACPI_SIZE Count); 32467754Smsmith 32599679Siwasakiint 32677424SmsmithAcpiUtToUpper ( 32799679Siwasaki int c); 32867754Smsmith 32999679Siwasakiint 33077424SmsmithAcpiUtToLower ( 33199679Siwasaki int c); 33267754Smsmith 33399679Siwasakiextern const UINT8 _acpi_ctype[]; 33499679Siwasaki 33599679Siwasaki#define _ACPI_XA 0x00 /* extra alphabetic - not supported */ 33699679Siwasaki#define _ACPI_XS 0x40 /* extra space */ 33799679Siwasaki#define _ACPI_BB 0x00 /* BEL, BS, etc. - not supported */ 33899679Siwasaki#define _ACPI_CN 0x20 /* CR, FF, HT, NL, VT */ 33999679Siwasaki#define _ACPI_DI 0x04 /* '0'-'9' */ 34099679Siwasaki#define _ACPI_LO 0x02 /* 'a'-'z' */ 34199679Siwasaki#define _ACPI_PU 0x10 /* punctuation */ 34299679Siwasaki#define _ACPI_SP 0x08 /* space */ 34399679Siwasaki#define _ACPI_UP 0x01 /* 'A'-'Z' */ 34499679Siwasaki#define _ACPI_XD 0x80 /* '0'-'9', 'A'-'F', 'a'-'f' */ 34599679Siwasaki 34699679Siwasaki#define ACPI_IS_DIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_DI)) 34799679Siwasaki#define ACPI_IS_SPACE(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_SP)) 34899679Siwasaki#define ACPI_IS_XDIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_XD)) 34999679Siwasaki#define ACPI_IS_UPPER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_UP)) 35099679Siwasaki#define ACPI_IS_LOWER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO)) 351272444Sjkim#define ACPI_IS_PRINT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_XS | _ACPI_PU)) 352100966Siwasaki#define ACPI_IS_ALPHA(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP)) 35399679Siwasaki 354193267Sjkim#endif /* !ACPI_USE_SYSTEM_CLIBRARY */ 35567754Smsmith 356193267Sjkim#define ACPI_IS_ASCII(c) ((c) < 0x80) 357151937Sjkim 358193267Sjkim 35967754Smsmith/* 360151937Sjkim * utcopy - Object construction and conversion interfaces 36167754Smsmith */ 36267754SmsmithACPI_STATUS 36377424SmsmithAcpiUtBuildSimpleObject( 36467754Smsmith ACPI_OPERAND_OBJECT *Obj, 36567754Smsmith ACPI_OBJECT *UserObj, 36667754Smsmith UINT8 *DataSpace, 36767754Smsmith UINT32 *BufferSpaceUsed); 36867754Smsmith 36967754SmsmithACPI_STATUS 37077424SmsmithAcpiUtBuildPackageObject ( 37167754Smsmith ACPI_OPERAND_OBJECT *Obj, 37267754Smsmith UINT8 *Buffer, 37367754Smsmith UINT32 *SpaceUsed); 37467754Smsmith 37567754SmsmithACPI_STATUS 37677424SmsmithAcpiUtCopyIobjectToEobject ( 37767754Smsmith ACPI_OPERAND_OBJECT *Obj, 37867754Smsmith ACPI_BUFFER *RetBuffer); 37967754Smsmith 38067754SmsmithACPI_STATUS 38177424SmsmithAcpiUtCopyEobjectToIobject ( 38267754Smsmith ACPI_OBJECT *Obj, 38384491Smsmith ACPI_OPERAND_OBJECT **InternalObj); 38467754Smsmith 38567754SmsmithACPI_STATUS 38677424SmsmithAcpiUtCopyISimpleToIsimple ( 38767754Smsmith ACPI_OPERAND_OBJECT *SourceObj, 38867754Smsmith ACPI_OPERAND_OBJECT *DestObj); 38967754Smsmith 39067754SmsmithACPI_STATUS 39191116SmsmithAcpiUtCopyIobjectToIobject ( 39291116Smsmith ACPI_OPERAND_OBJECT *SourceDesc, 39391116Smsmith ACPI_OPERAND_OBJECT **DestDesc, 39491116Smsmith ACPI_WALK_STATE *WalkState); 39591116Smsmith 39691116Smsmith 39767754Smsmith/* 398151937Sjkim * utcreate - Object creation 39967754Smsmith */ 40067754SmsmithACPI_STATUS 40177424SmsmithAcpiUtUpdateObjectReference ( 40267754Smsmith ACPI_OPERAND_OBJECT *Object, 40367754Smsmith UINT16 Action); 40467754Smsmith 40567754Smsmith 40667754Smsmith/* 407151937Sjkim * utdebug - Debug interfaces 40867754Smsmith */ 40983174Smsmithvoid 41083174SmsmithAcpiUtInitStackPtrTrace ( 41167754Smsmith void); 41267754Smsmith 41367754Smsmithvoid 41483174SmsmithAcpiUtTrackStackPtr ( 41583174Smsmith void); 41667754Smsmith 41767754Smsmithvoid 41883174SmsmithAcpiUtTrace ( 41967754Smsmith UINT32 LineNumber, 420151937Sjkim const char *FunctionName, 421193267Sjkim const char *ModuleName, 422151937Sjkim UINT32 ComponentId); 42367754Smsmith 42467754Smsmithvoid 42583174SmsmithAcpiUtTracePtr ( 42667754Smsmith UINT32 LineNumber, 427151937Sjkim const char *FunctionName, 428193267Sjkim const char *ModuleName, 429151937Sjkim UINT32 ComponentId, 43067754Smsmith void *Pointer); 43167754Smsmith 43267754Smsmithvoid 43383174SmsmithAcpiUtTraceU32 ( 43467754Smsmith UINT32 LineNumber, 435151937Sjkim const char *FunctionName, 436193267Sjkim const char *ModuleName, 437151937Sjkim UINT32 ComponentId, 43867754Smsmith UINT32 Integer); 43967754Smsmith 44067754Smsmithvoid 44183174SmsmithAcpiUtTraceStr ( 44267754Smsmith UINT32 LineNumber, 443151937Sjkim const char *FunctionName, 444193267Sjkim const char *ModuleName, 445151937Sjkim UINT32 ComponentId, 446114237Snjl char *String); 44767754Smsmith 44867754Smsmithvoid 44983174SmsmithAcpiUtExit ( 45067754Smsmith UINT32 LineNumber, 451151937Sjkim const char *FunctionName, 452193267Sjkim const char *ModuleName, 453151937Sjkim UINT32 ComponentId); 45467754Smsmith 45567754Smsmithvoid 45683174SmsmithAcpiUtStatusExit ( 45767754Smsmith UINT32 LineNumber, 458151937Sjkim const char *FunctionName, 459193267Sjkim const char *ModuleName, 460151937Sjkim UINT32 ComponentId, 46167754Smsmith ACPI_STATUS Status); 46267754Smsmith 46367754Smsmithvoid 46483174SmsmithAcpiUtValueExit ( 46567754Smsmith UINT32 LineNumber, 466151937Sjkim const char *FunctionName, 467193267Sjkim const char *ModuleName, 468151937Sjkim UINT32 ComponentId, 469202771Sjkim UINT64 Value); 47067754Smsmith 47167754Smsmithvoid 47283174SmsmithAcpiUtPtrExit ( 47367754Smsmith UINT32 LineNumber, 474151937Sjkim const char *FunctionName, 475193267Sjkim const char *ModuleName, 476151937Sjkim UINT32 ComponentId, 47767754Smsmith UINT8 *Ptr); 47867754Smsmith 47967754Smsmithvoid 480241973SjkimAcpiUtDebugDumpBuffer ( 481167802Sjkim UINT8 *Buffer, 482167802Sjkim UINT32 Count, 483167802Sjkim UINT32 Display, 484237412Sjkim UINT32 ComponentId); 48567754Smsmith 48667754Smsmithvoid 487241973SjkimAcpiUtDumpBuffer ( 488167802Sjkim UINT8 *Buffer, 489167802Sjkim UINT32 Count, 490241973Sjkim UINT32 Display, 491241973Sjkim UINT32 Offset); 492167802Sjkim 493272444Sjkim#ifdef ACPI_APPLICATION 494167802Sjkimvoid 495272444SjkimAcpiUtDumpBufferToFile ( 496272444Sjkim ACPI_FILE File, 497272444Sjkim UINT8 *Buffer, 498272444Sjkim UINT32 Count, 499272444Sjkim UINT32 Display, 500272444Sjkim UINT32 BaseOffset); 501272444Sjkim#endif 502272444Sjkim 503272444Sjkimvoid 50483174SmsmithAcpiUtReportError ( 505114237Snjl char *ModuleName, 506167802Sjkim UINT32 LineNumber); 50767754Smsmith 50867754Smsmithvoid 509167802SjkimAcpiUtReportInfo ( 510114237Snjl char *ModuleName, 511167802Sjkim UINT32 LineNumber); 51267754Smsmith 51367754Smsmithvoid 514167802SjkimAcpiUtReportWarning ( 515167802Sjkim char *ModuleName, 516167802Sjkim UINT32 LineNumber); 51767754Smsmith 51867754Smsmith/* 519151937Sjkim * utdelete - Object deletion and reference counts 52067754Smsmith */ 521151937Sjkimvoid 522151937SjkimAcpiUtAddReference ( 523151937Sjkim ACPI_OPERAND_OBJECT *Object); 52467754Smsmith 52567754Smsmithvoid 526151937SjkimAcpiUtRemoveReference ( 52767754Smsmith ACPI_OPERAND_OBJECT *Object); 52867754Smsmith 52967754Smsmithvoid 53077424SmsmithAcpiUtDeleteInternalPackageObject ( 53167754Smsmith ACPI_OPERAND_OBJECT *Object); 53267754Smsmith 53367754Smsmithvoid 53477424SmsmithAcpiUtDeleteInternalSimpleObject ( 53567754Smsmith ACPI_OPERAND_OBJECT *Object); 53667754Smsmith 53799679Siwasakivoid 53877424SmsmithAcpiUtDeleteInternalObjectList ( 53967754Smsmith ACPI_OPERAND_OBJECT **ObjList); 54067754Smsmith 54167754Smsmith 54267754Smsmith/* 543151937Sjkim * uteval - object evaluation 54467754Smsmith */ 54567754SmsmithACPI_STATUS 546114237SnjlAcpiUtEvaluateObject ( 547114237Snjl ACPI_NAMESPACE_NODE *PrefixNode, 548114237Snjl char *Path, 549114237Snjl UINT32 ExpectedReturnBtypes, 550114237Snjl ACPI_OPERAND_OBJECT **ReturnDesc); 551114237Snjl 552114237SnjlACPI_STATUS 55377424SmsmithAcpiUtEvaluateNumericObject ( 554114237Snjl char *ObjectName, 55567754Smsmith ACPI_NAMESPACE_NODE *DeviceNode, 556202771Sjkim UINT64 *Value); 55767754Smsmith 55867754SmsmithACPI_STATUS 559197104SjkimAcpiUtExecute_STA ( 56067754Smsmith ACPI_NAMESPACE_NODE *DeviceNode, 561197104Sjkim UINT32 *StatusFlags); 56267754Smsmith 56367754SmsmithACPI_STATUS 564197104SjkimAcpiUtExecutePowerMethods ( 56587031Smsmith ACPI_NAMESPACE_NODE *DeviceNode, 566197104Sjkim const char **MethodNames, 567197104Sjkim UINT8 MethodCount, 568197104Sjkim UINT8 *OutValues); 56987031Smsmith 570197104Sjkim 571197104Sjkim/* 572272444Sjkim * utfileio - file operations 573272444Sjkim */ 574272444Sjkim#ifdef ACPI_APPLICATION 575272444SjkimACPI_STATUS 576272444SjkimAcpiUtReadTableFromFile ( 577272444Sjkim char *Filename, 578272444Sjkim ACPI_TABLE_HEADER **Table); 579272444Sjkim#endif 580272444Sjkim 581272444Sjkim 582272444Sjkim/* 583197104Sjkim * utids - device ID support 584197104Sjkim */ 58587031SmsmithACPI_STATUS 586197104SjkimAcpiUtExecute_HID ( 58767754Smsmith ACPI_NAMESPACE_NODE *DeviceNode, 588241973Sjkim ACPI_PNP_DEVICE_ID **ReturnId); 58967754Smsmith 59067754SmsmithACPI_STATUS 59177424SmsmithAcpiUtExecute_UID ( 59267754Smsmith ACPI_NAMESPACE_NODE *DeviceNode, 593241973Sjkim ACPI_PNP_DEVICE_ID **ReturnId); 59467754Smsmith 595126372SnjlACPI_STATUS 596241973SjkimAcpiUtExecute_SUB ( 597241973Sjkim ACPI_NAMESPACE_NODE *DeviceNode, 598241973Sjkim ACPI_PNP_DEVICE_ID **ReturnId); 599241973Sjkim 600241973SjkimACPI_STATUS 601197104SjkimAcpiUtExecute_CID ( 602126372Snjl ACPI_NAMESPACE_NODE *DeviceNode, 603241973Sjkim ACPI_PNP_DEVICE_ID_LIST **ReturnCidList); 60467754Smsmith 605197104Sjkim 606193267Sjkim/* 607193267Sjkim * utlock - reader/writer locks 608193267Sjkim */ 609193267SjkimACPI_STATUS 610193267SjkimAcpiUtCreateRwLock ( 611193267Sjkim ACPI_RW_LOCK *Lock); 61267754Smsmith 613193267Sjkimvoid 614193267SjkimAcpiUtDeleteRwLock ( 615193267Sjkim ACPI_RW_LOCK *Lock); 616193267Sjkim 617193267SjkimACPI_STATUS 618193267SjkimAcpiUtAcquireReadLock ( 619193267Sjkim ACPI_RW_LOCK *Lock); 620193267Sjkim 621193267SjkimACPI_STATUS 622193267SjkimAcpiUtReleaseReadLock ( 623193267Sjkim ACPI_RW_LOCK *Lock); 624193267Sjkim 625193267SjkimACPI_STATUS 626193267SjkimAcpiUtAcquireWriteLock ( 627193267Sjkim ACPI_RW_LOCK *Lock); 628193267Sjkim 629193267Sjkimvoid 630193267SjkimAcpiUtReleaseWriteLock ( 631193267Sjkim ACPI_RW_LOCK *Lock); 632193267Sjkim 633193267Sjkim 63467754Smsmith/* 635151937Sjkim * utobject - internal object create/delete/cache routines 63667754Smsmith */ 63783174SmsmithACPI_OPERAND_OBJECT * 63883174SmsmithAcpiUtCreateInternalObjectDbg ( 639193267Sjkim const char *ModuleName, 64083174Smsmith UINT32 LineNumber, 64183174Smsmith UINT32 ComponentId, 64291116Smsmith ACPI_OBJECT_TYPE Type); 64383174Smsmith 64467754Smsmithvoid * 64583174SmsmithAcpiUtAllocateObjectDescDbg ( 646193267Sjkim const char *ModuleName, 64767754Smsmith UINT32 LineNumber, 64867754Smsmith UINT32 ComponentId); 64967754Smsmith 650151937Sjkim#define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t) 651151937Sjkim#define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT) 65267754Smsmith 65367754Smsmithvoid 65477424SmsmithAcpiUtDeleteObjectDesc ( 65567754Smsmith ACPI_OPERAND_OBJECT *Object); 65667754Smsmith 65767754SmsmithBOOLEAN 65877424SmsmithAcpiUtValidInternalObject ( 65967754Smsmith void *Object); 66067754Smsmith 661107325SiwasakiACPI_OPERAND_OBJECT * 662193267SjkimAcpiUtCreatePackageObject ( 663193267Sjkim UINT32 Count); 664193267Sjkim 665193267SjkimACPI_OPERAND_OBJECT * 666199337SjkimAcpiUtCreateIntegerObject ( 667199337Sjkim UINT64 Value); 668199337Sjkim 669199337SjkimACPI_OPERAND_OBJECT * 670107325SiwasakiAcpiUtCreateBufferObject ( 671107325Siwasaki ACPI_SIZE BufferSize); 67267754Smsmith 673138287SmarksACPI_OPERAND_OBJECT * 674138287SmarksAcpiUtCreateStringObject ( 675138287Smarks ACPI_SIZE StringSize); 676107325Siwasaki 67767754SmsmithACPI_STATUS 67877424SmsmithAcpiUtGetObjectSize( 67967754Smsmith ACPI_OPERAND_OBJECT *Obj, 68091116Smsmith ACPI_SIZE *ObjLength); 68167754Smsmith 68267754Smsmith 68367754Smsmith/* 684210976Sjkim * utosi - Support for the _OSI predefined control method 685210976Sjkim */ 686210976SjkimACPI_STATUS 687210976SjkimAcpiUtInitializeInterfaces ( 688210976Sjkim void); 689210976Sjkim 690249112SjkimACPI_STATUS 691210976SjkimAcpiUtInterfaceTerminate ( 692210976Sjkim void); 693210976Sjkim 694210976SjkimACPI_STATUS 695210976SjkimAcpiUtInstallInterface ( 696210976Sjkim ACPI_STRING InterfaceName); 697210976Sjkim 698210976SjkimACPI_STATUS 699210976SjkimAcpiUtRemoveInterface ( 700210976Sjkim ACPI_STRING InterfaceName); 701210976Sjkim 702253690SjkimACPI_STATUS 703253690SjkimAcpiUtUpdateInterfaces ( 704253690Sjkim UINT8 Action); 705253690Sjkim 706210976SjkimACPI_INTERFACE_INFO * 707210976SjkimAcpiUtGetInterface ( 708210976Sjkim ACPI_STRING InterfaceName); 709210976Sjkim 710210976SjkimACPI_STATUS 711210976SjkimAcpiUtOsiImplementation ( 712210976Sjkim ACPI_WALK_STATE *WalkState); 713210976Sjkim 714210976Sjkim 715210976Sjkim/* 716249112Sjkim * utpredef - support for predefined names 717249112Sjkim */ 718249112Sjkimconst ACPI_PREDEFINED_INFO * 719249112SjkimAcpiUtGetNextPredefinedMethod ( 720249112Sjkim const ACPI_PREDEFINED_INFO *ThisName); 721249112Sjkim 722249112Sjkimconst ACPI_PREDEFINED_INFO * 723249112SjkimAcpiUtMatchPredefinedMethod ( 724249112Sjkim char *Name); 725249112Sjkim 726249112Sjkimconst ACPI_PREDEFINED_INFO * 727249112SjkimAcpiUtMatchResourceName ( 728249112Sjkim char *Name); 729249112Sjkim 730249112Sjkimvoid 731249112SjkimAcpiUtDisplayPredefinedMethod ( 732249112Sjkim char *Buffer, 733249112Sjkim const ACPI_PREDEFINED_INFO *ThisName, 734249112Sjkim BOOLEAN MultiLine); 735249112Sjkim 736249112Sjkimvoid 737249112SjkimAcpiUtGetExpectedReturnTypes ( 738249112Sjkim char *Buffer, 739249112Sjkim UINT32 ExpectedBtypes); 740249112Sjkim 741249112SjkimUINT32 742249112SjkimAcpiUtGetResourceBitWidth ( 743249112Sjkim char *Buffer, 744249112Sjkim UINT16 Types); 745249112Sjkim 746249112Sjkim 747249112Sjkim/* 748151937Sjkim * utstate - Generic state creation/cache routines 74967754Smsmith */ 75067754Smsmithvoid 75177424SmsmithAcpiUtPushGenericState ( 75267754Smsmith ACPI_GENERIC_STATE **ListHead, 75367754Smsmith ACPI_GENERIC_STATE *State); 75467754Smsmith 75567754SmsmithACPI_GENERIC_STATE * 75677424SmsmithAcpiUtPopGenericState ( 75767754Smsmith ACPI_GENERIC_STATE **ListHead); 75867754Smsmith 75967754Smsmith 76067754SmsmithACPI_GENERIC_STATE * 76177424SmsmithAcpiUtCreateGenericState ( 76267754Smsmith void); 76367754Smsmith 76487031SmsmithACPI_THREAD_STATE * 76587031SmsmithAcpiUtCreateThreadState ( 76687031Smsmith void); 76787031Smsmith 76867754SmsmithACPI_GENERIC_STATE * 76977424SmsmithAcpiUtCreateUpdateState ( 77067754Smsmith ACPI_OPERAND_OBJECT *Object, 77167754Smsmith UINT16 Action); 77267754Smsmith 77373561SmsmithACPI_GENERIC_STATE * 77477424SmsmithAcpiUtCreatePkgState ( 77573561Smsmith void *InternalObject, 77673561Smsmith void *ExternalObject, 77773561Smsmith UINT16 Index); 77873561Smsmith 77967754SmsmithACPI_STATUS 78077424SmsmithAcpiUtCreateUpdateStateAndPush ( 78167754Smsmith ACPI_OPERAND_OBJECT *Object, 78267754Smsmith UINT16 Action, 78367754Smsmith ACPI_GENERIC_STATE **StateList); 78467754Smsmith 78573561SmsmithACPI_STATUS 78677424SmsmithAcpiUtCreatePkgStateAndPush ( 78773561Smsmith void *InternalObject, 78873561Smsmith void *ExternalObject, 78973561Smsmith UINT16 Index, 79073561Smsmith ACPI_GENERIC_STATE **StateList); 79173561Smsmith 79267754SmsmithACPI_GENERIC_STATE * 79377424SmsmithAcpiUtCreateControlState ( 79467754Smsmith void); 79567754Smsmith 79667754Smsmithvoid 79777424SmsmithAcpiUtDeleteGenericState ( 79867754Smsmith ACPI_GENERIC_STATE *State); 79967754Smsmith 80067754Smsmith 80167754Smsmith/* 802151937Sjkim * utmath 80367754Smsmith */ 80484491SmsmithACPI_STATUS 80584491SmsmithAcpiUtDivide ( 806202771Sjkim UINT64 InDividend, 807202771Sjkim UINT64 InDivisor, 808202771Sjkim UINT64 *OutQuotient, 809202771Sjkim UINT64 *OutRemainder); 81084491Smsmith 81184491SmsmithACPI_STATUS 81284491SmsmithAcpiUtShortDivide ( 813202771Sjkim UINT64 InDividend, 81484491Smsmith UINT32 Divisor, 815202771Sjkim UINT64 *OutQuotient, 81684491Smsmith UINT32 *OutRemainder); 81784491Smsmith 818246849Sjkim 819151937Sjkim/* 820151937Sjkim * utmisc 821151937Sjkim */ 822246849Sjkimconst ACPI_EXCEPTION_INFO * 823167802SjkimAcpiUtValidateException ( 824167802Sjkim ACPI_STATUS Status); 825167802Sjkim 826167802SjkimBOOLEAN 827197104SjkimAcpiUtIsPciRootBridge ( 828197104Sjkim char *Id); 829197104Sjkim 830197104SjkimBOOLEAN 831167802SjkimAcpiUtIsAmlTable ( 832167802Sjkim ACPI_TABLE_HEADER *Table); 833167802Sjkim 834151937SjkimACPI_STATUS 835151937SjkimAcpiUtWalkPackageTree ( 836151937Sjkim ACPI_OPERAND_OBJECT *SourceObject, 837151937Sjkim void *TargetObject, 838151937Sjkim ACPI_PKG_CALLBACK WalkCallback, 839151937Sjkim void *Context); 840151937Sjkim 841151937Sjkim 842138287Smarks/* Values for Base above (16=Hex, 10=Decimal) */ 843138287Smarks 844138287Smarks#define ACPI_ANY_BASE 0 845138287Smarks 846151937SjkimUINT32 84799679SiwasakiAcpiUtDwordByteSwap ( 84899679Siwasaki UINT32 Value); 84999679Siwasaki 85099679Siwasakivoid 85199679SiwasakiAcpiUtSetIntegerWidth ( 85299679Siwasaki UINT8 Revision); 85399679Siwasaki 854102550Siwasaki#ifdef ACPI_DEBUG_OUTPUT 85573561Smsmithvoid 85677424SmsmithAcpiUtDisplayInitPathname ( 857114237Snjl UINT8 Type, 858114237Snjl ACPI_NAMESPACE_NODE *ObjHandle, 85973561Smsmith char *Path); 86073561Smsmith#endif 86173561Smsmith 86273561Smsmith 86367754Smsmith/* 864245582Sjkim * utownerid - Support for Table/Method Owner IDs 865245582Sjkim */ 866245582SjkimACPI_STATUS 867245582SjkimAcpiUtAllocateOwnerId ( 868245582Sjkim ACPI_OWNER_ID *OwnerId); 869245582Sjkim 870245582Sjkimvoid 871245582SjkimAcpiUtReleaseOwnerId ( 872245582Sjkim ACPI_OWNER_ID *OwnerId); 873245582Sjkim 874245582Sjkim 875245582Sjkim/* 876167802Sjkim * utresrc 877167802Sjkim */ 878167802SjkimACPI_STATUS 879167802SjkimAcpiUtWalkAmlResources ( 880243347Sjkim ACPI_WALK_STATE *WalkState, 881167802Sjkim UINT8 *Aml, 882167802Sjkim ACPI_SIZE AmlLength, 883167802Sjkim ACPI_WALK_AML_CALLBACK UserFunction, 884245582Sjkim void **Context); 885167802Sjkim 886167802SjkimACPI_STATUS 887167802SjkimAcpiUtValidateResource ( 888243347Sjkim ACPI_WALK_STATE *WalkState, 889167802Sjkim void *Aml, 890167802Sjkim UINT8 *ReturnIndex); 891167802Sjkim 892167802SjkimUINT32 893167802SjkimAcpiUtGetDescriptorLength ( 894167802Sjkim void *Aml); 895167802Sjkim 896167802SjkimUINT16 897167802SjkimAcpiUtGetResourceLength ( 898167802Sjkim void *Aml); 899167802Sjkim 900167802SjkimUINT8 901167802SjkimAcpiUtGetResourceHeaderLength ( 902167802Sjkim void *Aml); 903167802Sjkim 904167802SjkimUINT8 905167802SjkimAcpiUtGetResourceType ( 906167802Sjkim void *Aml); 907167802Sjkim 908167802SjkimACPI_STATUS 909167802SjkimAcpiUtGetResourceEndTag ( 910167802Sjkim ACPI_OPERAND_OBJECT *ObjDesc, 911167802Sjkim UINT8 **EndTag); 912167802Sjkim 913167802Sjkim 914167802Sjkim/* 915245582Sjkim * utstring - String and character utilities 916245582Sjkim */ 917245582Sjkimvoid 918245582SjkimAcpiUtStrupr ( 919245582Sjkim char *SrcString); 920245582Sjkim 921245582Sjkimvoid 922245582SjkimAcpiUtStrlwr ( 923245582Sjkim char *SrcString); 924245582Sjkim 925245582Sjkimint 926245582SjkimAcpiUtStricmp ( 927245582Sjkim char *String1, 928245582Sjkim char *String2); 929245582Sjkim 930245582SjkimACPI_STATUS 931245582SjkimAcpiUtStrtoul64 ( 932245582Sjkim char *String, 933245582Sjkim UINT32 Base, 934245582Sjkim UINT64 *RetInteger); 935245582Sjkim 936245582Sjkimvoid 937245582SjkimAcpiUtPrintString ( 938245582Sjkim char *String, 939252279Sjkim UINT16 MaxLength); 940245582Sjkim 941245582Sjkimvoid 942245582SjkimUtConvertBackslashes ( 943245582Sjkim char *Pathname); 944245582Sjkim 945245582SjkimBOOLEAN 946245582SjkimAcpiUtValidAcpiName ( 947250838Sjkim char *Name); 948245582Sjkim 949245582SjkimBOOLEAN 950245582SjkimAcpiUtValidAcpiChar ( 951245582Sjkim char Character, 952245582Sjkim UINT32 Position); 953245582Sjkim 954245582Sjkimvoid 955245582SjkimAcpiUtRepairName ( 956245582Sjkim char *Name); 957245582Sjkim 958272444Sjkim#if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION) 959272444SjkimBOOLEAN 960272444SjkimAcpiUtSafeStrcpy ( 961272444Sjkim char *Dest, 962272444Sjkim ACPI_SIZE DestSize, 963272444Sjkim char *Source); 964245582Sjkim 965272444SjkimBOOLEAN 966272444SjkimAcpiUtSafeStrcat ( 967272444Sjkim char *Dest, 968272444Sjkim ACPI_SIZE DestSize, 969272444Sjkim char *Source); 970272444Sjkim 971272444Sjkim#ifndef _KERNEL 972272444SjkimBOOLEAN 973272444SjkimAcpiUtSafeStrncat ( 974272444Sjkim char *Dest, 975272444Sjkim ACPI_SIZE DestSize, 976272444Sjkim char *Source, 977272444Sjkim ACPI_SIZE MaxTransferLength); 978272444Sjkim#endif 979272444Sjkim#endif 980272444Sjkim 981272444Sjkim 982245582Sjkim/* 983151937Sjkim * utmutex - mutex support 98467754Smsmith */ 985151937SjkimACPI_STATUS 986151937SjkimAcpiUtMutexInitialize ( 987151937Sjkim void); 98867754Smsmith 98982367Smsmithvoid 990151937SjkimAcpiUtMutexTerminate ( 991151937Sjkim void); 99282367Smsmith 993151937SjkimACPI_STATUS 994151937SjkimAcpiUtAcquireMutex ( 995151937Sjkim ACPI_MUTEX_HANDLE MutexId); 99682367Smsmith 99791116SmsmithACPI_STATUS 998151937SjkimAcpiUtReleaseMutex ( 999151937Sjkim ACPI_MUTEX_HANDLE MutexId); 1000151937Sjkim 1001151937Sjkim 1002151937Sjkim/* 1003151937Sjkim * utalloc - memory allocation and object caching 1004151937Sjkim */ 1005151937SjkimACPI_STATUS 1006151937SjkimAcpiUtCreateCaches ( 1007151937Sjkim void); 1008151937Sjkim 1009151937SjkimACPI_STATUS 1010151937SjkimAcpiUtDeleteCaches ( 1011151937Sjkim void); 1012151937Sjkim 1013151937SjkimACPI_STATUS 101491116SmsmithAcpiUtValidateBuffer ( 101591116Smsmith ACPI_BUFFER *Buffer); 101682367Smsmith 101791116SmsmithACPI_STATUS 101891116SmsmithAcpiUtInitializeBuffer ( 101991116Smsmith ACPI_BUFFER *Buffer, 102091116Smsmith ACPI_SIZE RequiredLength); 102182367Smsmith 102291116Smsmith#ifdef ACPI_DBG_TRACK_ALLOCATIONS 102391116Smsmithvoid * 102491116SmsmithAcpiUtAllocateAndTrack ( 102591116Smsmith ACPI_SIZE Size, 102691116Smsmith UINT32 Component, 1027193267Sjkim const char *Module, 102891116Smsmith UINT32 Line); 102991116Smsmith 103091116Smsmithvoid * 1031167802SjkimAcpiUtAllocateZeroedAndTrack ( 103291116Smsmith ACPI_SIZE Size, 103391116Smsmith UINT32 Component, 1034193267Sjkim const char *Module, 103591116Smsmith UINT32 Line); 103691116Smsmith 103767754Smsmithvoid 103891116SmsmithAcpiUtFreeAndTrack ( 103967754Smsmith void *Address, 104067754Smsmith UINT32 Component, 1041193267Sjkim const char *Module, 104267754Smsmith UINT32 Line); 104399679Siwasaki 104467754Smsmithvoid 104577424SmsmithAcpiUtDumpAllocationInfo ( 104667754Smsmith void); 104767754Smsmith 104867754Smsmithvoid 104984491SmsmithAcpiUtDumpAllocations ( 105067754Smsmith UINT32 Component, 1051193267Sjkim const char *Module); 1052167802Sjkim 1053167802SjkimACPI_STATUS 1054167802SjkimAcpiUtCreateList ( 1055167802Sjkim char *ListName, 1056167802Sjkim UINT16 ObjectSize, 1057167802Sjkim ACPI_MEMORY_LIST **ReturnCache); 1058167802Sjkim 1059212761Sjkim#endif /* ACPI_DBG_TRACK_ALLOCATIONS */ 1060167802Sjkim 1061229989Sjkim/* 1062229989Sjkim * utaddress - address range check 1063229989Sjkim */ 1064229989SjkimACPI_STATUS 1065229989SjkimAcpiUtAddAddressRange ( 1066229989Sjkim ACPI_ADR_SPACE_TYPE SpaceId, 1067229989Sjkim ACPI_PHYSICAL_ADDRESS Address, 1068229989Sjkim UINT32 Length, 1069229989Sjkim ACPI_NAMESPACE_NODE *RegionNode); 107067754Smsmith 1071229989Sjkimvoid 1072229989SjkimAcpiUtRemoveAddressRange ( 1073229989Sjkim ACPI_ADR_SPACE_TYPE SpaceId, 1074229989Sjkim ACPI_NAMESPACE_NODE *RegionNode); 1075229989Sjkim 1076229989SjkimUINT32 1077229989SjkimAcpiUtCheckAddressRange ( 1078229989Sjkim ACPI_ADR_SPACE_TYPE SpaceId, 1079229989Sjkim ACPI_PHYSICAL_ADDRESS Address, 1080229989Sjkim UINT32 Length, 1081229989Sjkim BOOLEAN Warn); 1082229989Sjkim 1083229989Sjkimvoid 1084229989SjkimAcpiUtDeleteAddressLists ( 1085229989Sjkim void); 1086229989Sjkim 1087212761Sjkim/* 1088212761Sjkim * utxferror - various error/warning output functions 1089212761Sjkim */ 1090212761Sjkimvoid ACPI_INTERNAL_VAR_XFACE 1091212761SjkimAcpiUtPredefinedWarning ( 1092212761Sjkim const char *ModuleName, 1093212761Sjkim UINT32 LineNumber, 1094212761Sjkim char *Pathname, 1095212761Sjkim UINT8 NodeFlags, 1096212761Sjkim const char *Format, 1097212761Sjkim ...); 1098212761Sjkim 1099212761Sjkimvoid ACPI_INTERNAL_VAR_XFACE 1100212761SjkimAcpiUtPredefinedInfo ( 1101212761Sjkim const char *ModuleName, 1102212761Sjkim UINT32 LineNumber, 1103212761Sjkim char *Pathname, 1104212761Sjkim UINT8 NodeFlags, 1105212761Sjkim const char *Format, 1106212761Sjkim ...); 1107212761Sjkim 1108249663Sjkimvoid ACPI_INTERNAL_VAR_XFACE 1109249663SjkimAcpiUtPredefinedBiosError ( 1110249663Sjkim const char *ModuleName, 1111249663Sjkim UINT32 LineNumber, 1112249663Sjkim char *Pathname, 1113249663Sjkim UINT8 NodeFlags, 1114249663Sjkim const char *Format, 1115249663Sjkim ...); 1116249663Sjkim 1117212761Sjkimvoid 1118212761SjkimAcpiUtNamespaceError ( 1119212761Sjkim const char *ModuleName, 1120212761Sjkim UINT32 LineNumber, 1121212761Sjkim const char *InternalName, 1122212761Sjkim ACPI_STATUS LookupStatus); 1123212761Sjkim 1124212761Sjkimvoid 1125212761SjkimAcpiUtMethodError ( 1126212761Sjkim const char *ModuleName, 1127212761Sjkim UINT32 LineNumber, 1128212761Sjkim const char *Message, 1129212761Sjkim ACPI_NAMESPACE_NODE *Node, 1130212761Sjkim const char *Path, 1131212761Sjkim ACPI_STATUS LookupStatus); 1132212761Sjkim 1133272444Sjkim/* 1134272444Sjkim * Utility functions for ACPI names and IDs 1135272444Sjkim */ 1136272444Sjkimconst AH_PREDEFINED_NAME * 1137272444SjkimAcpiAhMatchPredefinedName ( 1138272444Sjkim char *Nameseg); 1139272444Sjkim 1140272444Sjkimconst AH_DEVICE_ID * 1141272444SjkimAcpiAhMatchHardwareId ( 1142272444Sjkim char *Hid); 1143272444Sjkim 1144272444Sjkimconst char * 1145272444SjkimAcpiAhMatchUuid ( 1146272444Sjkim UINT8 *Data); 1147272444Sjkim 1148272444Sjkim/* 1149272444Sjkim * utprint - printf/vprintf output functions 1150272444Sjkim */ 1151272444Sjkimconst char * 1152272444SjkimAcpiUtScanNumber ( 1153272444Sjkim const char *String, 1154272444Sjkim UINT64 *NumberPtr); 1155272444Sjkim 1156272444Sjkimconst char * 1157272444SjkimAcpiUtPrintNumber ( 1158272444Sjkim char *String, 1159272444Sjkim UINT64 Number); 1160272444Sjkim 1161272444Sjkimint 1162272444SjkimAcpiUtVsnprintf ( 1163272444Sjkim char *String, 1164272444Sjkim ACPI_SIZE Size, 1165272444Sjkim const char *Format, 1166272444Sjkim va_list Args); 1167272444Sjkim 1168272444Sjkimint 1169272444SjkimAcpiUtSnprintf ( 1170272444Sjkim char *String, 1171272444Sjkim ACPI_SIZE Size, 1172272444Sjkim const char *Format, 1173272444Sjkim ...); 1174272444Sjkim 1175272444Sjkim#ifdef ACPI_APPLICATION 1176272444Sjkimint 1177272444SjkimAcpiUtFileVprintf ( 1178272444Sjkim ACPI_FILE File, 1179272444Sjkim const char *Format, 1180272444Sjkim va_list Args); 1181272444Sjkim 1182272444Sjkimint 1183272444SjkimAcpiUtFilePrintf ( 1184272444Sjkim ACPI_FILE File, 1185272444Sjkim const char *Format, 1186272444Sjkim ...); 1187272444Sjkim#endif 1188272444Sjkim 1189272444Sjkim/* 1190272444Sjkim * utuuid -- UUID support functions 1191272444Sjkim */ 1192272444Sjkimvoid 1193272444SjkimAcpiUtConvertStringToUuid ( 1194272444Sjkim char *InString, 1195272444Sjkim UINT8 *UuidBuffer); 1196272444Sjkim 119777424Smsmith#endif /* _ACUTILS_H */ 1198