acutils.h revision 217365
1/****************************************************************************** 2 * 3 * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures 4 * 5 *****************************************************************************/ 6 7/* 8 * Copyright (C) 2000 - 2011, Intel Corp. 9 * All rights reserved. 10 * 11 * Redistribution and use in source and binary forms, with or without 12 * modification, are permitted provided that the following conditions 13 * are met: 14 * 1. Redistributions of source code must retain the above copyright 15 * notice, this list of conditions, and the following disclaimer, 16 * without modification. 17 * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18 * substantially similar to the "NO WARRANTY" disclaimer below 19 * ("Disclaimer") and any redistribution must be conditioned upon 20 * including a substantially similar Disclaimer requirement for further 21 * binary redistribution. 22 * 3. Neither the names of the above-listed copyright holders nor the names 23 * of any contributors may be used to endorse or promote products derived 24 * from this software without specific prior written permission. 25 * 26 * Alternatively, this software may be distributed under the terms of the 27 * GNU General Public License ("GPL") version 2 as published by the Free 28 * Software Foundation. 29 * 30 * NO WARRANTY 31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41 * POSSIBILITY OF SUCH DAMAGES. 42 */ 43 44#ifndef _ACUTILS_H 45#define _ACUTILS_H 46 47 48extern const UINT8 AcpiGbl_ResourceAmlSizes[]; 49 50/* Strings used by the disassembler and debugger resource dump routines */ 51 52#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER) 53 54extern const char *AcpiGbl_BmDecode[]; 55extern const char *AcpiGbl_ConfigDecode[]; 56extern const char *AcpiGbl_ConsumeDecode[]; 57extern const char *AcpiGbl_DecDecode[]; 58extern const char *AcpiGbl_HeDecode[]; 59extern const char *AcpiGbl_IoDecode[]; 60extern const char *AcpiGbl_LlDecode[]; 61extern const char *AcpiGbl_MaxDecode[]; 62extern const char *AcpiGbl_MemDecode[]; 63extern const char *AcpiGbl_MinDecode[]; 64extern const char *AcpiGbl_MtpDecode[]; 65extern const char *AcpiGbl_RngDecode[]; 66extern const char *AcpiGbl_RwDecode[]; 67extern const char *AcpiGbl_ShrDecode[]; 68extern const char *AcpiGbl_SizDecode[]; 69extern const char *AcpiGbl_TrsDecode[]; 70extern const char *AcpiGbl_TtpDecode[]; 71extern const char *AcpiGbl_TypDecode[]; 72#endif 73 74/* Types for Resource descriptor entries */ 75 76#define ACPI_INVALID_RESOURCE 0 77#define ACPI_FIXED_LENGTH 1 78#define ACPI_VARIABLE_LENGTH 2 79#define ACPI_SMALL_VARIABLE_LENGTH 3 80 81typedef 82ACPI_STATUS (*ACPI_WALK_AML_CALLBACK) ( 83 UINT8 *Aml, 84 UINT32 Length, 85 UINT32 Offset, 86 UINT8 ResourceIndex, 87 void *Context); 88 89typedef 90ACPI_STATUS (*ACPI_PKG_CALLBACK) ( 91 UINT8 ObjectType, 92 ACPI_OPERAND_OBJECT *SourceObject, 93 ACPI_GENERIC_STATE *State, 94 void *Context); 95 96typedef struct acpi_pkg_info 97{ 98 UINT8 *FreeSpace; 99 ACPI_SIZE Length; 100 UINT32 ObjectSpace; 101 UINT32 NumPackages; 102 103} ACPI_PKG_INFO; 104 105#define REF_INCREMENT (UINT16) 0 106#define REF_DECREMENT (UINT16) 1 107#define REF_FORCE_DELETE (UINT16) 2 108 109/* AcpiUtDumpBuffer */ 110 111#define DB_BYTE_DISPLAY 1 112#define DB_WORD_DISPLAY 2 113#define DB_DWORD_DISPLAY 4 114#define DB_QWORD_DISPLAY 8 115 116 117/* 118 * utglobal - Global data structures and procedures 119 */ 120ACPI_STATUS 121AcpiUtInitGlobals ( 122 void); 123 124#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 125 126char * 127AcpiUtGetMutexName ( 128 UINT32 MutexId); 129 130const char * 131AcpiUtGetNotifyName ( 132 UINT32 NotifyValue); 133 134#endif 135 136char * 137AcpiUtGetTypeName ( 138 ACPI_OBJECT_TYPE Type); 139 140char * 141AcpiUtGetNodeName ( 142 void *Object); 143 144char * 145AcpiUtGetDescriptorName ( 146 void *Object); 147 148const char * 149AcpiUtGetReferenceName ( 150 ACPI_OPERAND_OBJECT *Object); 151 152char * 153AcpiUtGetObjectTypeName ( 154 ACPI_OPERAND_OBJECT *ObjDesc); 155 156char * 157AcpiUtGetRegionName ( 158 UINT8 SpaceId); 159 160char * 161AcpiUtGetEventName ( 162 UINT32 EventId); 163 164char 165AcpiUtHexToAsciiChar ( 166 UINT64 Integer, 167 UINT32 Position); 168 169BOOLEAN 170AcpiUtValidObjectType ( 171 ACPI_OBJECT_TYPE Type); 172 173 174/* 175 * utinit - miscellaneous initialization and shutdown 176 */ 177ACPI_STATUS 178AcpiUtHardwareInitialize ( 179 void); 180 181void 182AcpiUtSubsystemShutdown ( 183 void); 184 185 186/* 187 * utclib - Local implementations of C library functions 188 */ 189#ifndef ACPI_USE_SYSTEM_CLIBRARY 190 191ACPI_SIZE 192AcpiUtStrlen ( 193 const char *String); 194 195char * 196AcpiUtStrcpy ( 197 char *DstString, 198 const char *SrcString); 199 200char * 201AcpiUtStrncpy ( 202 char *DstString, 203 const char *SrcString, 204 ACPI_SIZE Count); 205 206int 207AcpiUtMemcmp ( 208 const char *Buffer1, 209 const char *Buffer2, 210 ACPI_SIZE Count); 211 212int 213AcpiUtStrncmp ( 214 const char *String1, 215 const char *String2, 216 ACPI_SIZE Count); 217 218int 219AcpiUtStrcmp ( 220 const char *String1, 221 const char *String2); 222 223char * 224AcpiUtStrcat ( 225 char *DstString, 226 const char *SrcString); 227 228char * 229AcpiUtStrncat ( 230 char *DstString, 231 const char *SrcString, 232 ACPI_SIZE Count); 233 234UINT32 235AcpiUtStrtoul ( 236 const char *String, 237 char **Terminator, 238 UINT32 Base); 239 240char * 241AcpiUtStrstr ( 242 char *String1, 243 char *String2); 244 245void * 246AcpiUtMemcpy ( 247 void *Dest, 248 const void *Src, 249 ACPI_SIZE Count); 250 251void * 252AcpiUtMemset ( 253 void *Dest, 254 UINT8 Value, 255 ACPI_SIZE Count); 256 257int 258AcpiUtToUpper ( 259 int c); 260 261int 262AcpiUtToLower ( 263 int c); 264 265extern const UINT8 _acpi_ctype[]; 266 267#define _ACPI_XA 0x00 /* extra alphabetic - not supported */ 268#define _ACPI_XS 0x40 /* extra space */ 269#define _ACPI_BB 0x00 /* BEL, BS, etc. - not supported */ 270#define _ACPI_CN 0x20 /* CR, FF, HT, NL, VT */ 271#define _ACPI_DI 0x04 /* '0'-'9' */ 272#define _ACPI_LO 0x02 /* 'a'-'z' */ 273#define _ACPI_PU 0x10 /* punctuation */ 274#define _ACPI_SP 0x08 /* space */ 275#define _ACPI_UP 0x01 /* 'A'-'Z' */ 276#define _ACPI_XD 0x80 /* '0'-'9', 'A'-'F', 'a'-'f' */ 277 278#define ACPI_IS_DIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_DI)) 279#define ACPI_IS_SPACE(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_SP)) 280#define ACPI_IS_XDIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_XD)) 281#define ACPI_IS_UPPER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_UP)) 282#define ACPI_IS_LOWER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO)) 283#define ACPI_IS_PRINT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_SP | _ACPI_PU)) 284#define ACPI_IS_ALPHA(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP)) 285 286#endif /* !ACPI_USE_SYSTEM_CLIBRARY */ 287 288#define ACPI_IS_ASCII(c) ((c) < 0x80) 289 290 291/* 292 * utcopy - Object construction and conversion interfaces 293 */ 294ACPI_STATUS 295AcpiUtBuildSimpleObject( 296 ACPI_OPERAND_OBJECT *Obj, 297 ACPI_OBJECT *UserObj, 298 UINT8 *DataSpace, 299 UINT32 *BufferSpaceUsed); 300 301ACPI_STATUS 302AcpiUtBuildPackageObject ( 303 ACPI_OPERAND_OBJECT *Obj, 304 UINT8 *Buffer, 305 UINT32 *SpaceUsed); 306 307ACPI_STATUS 308AcpiUtCopyIobjectToEobject ( 309 ACPI_OPERAND_OBJECT *Obj, 310 ACPI_BUFFER *RetBuffer); 311 312ACPI_STATUS 313AcpiUtCopyEobjectToIobject ( 314 ACPI_OBJECT *Obj, 315 ACPI_OPERAND_OBJECT **InternalObj); 316 317ACPI_STATUS 318AcpiUtCopyISimpleToIsimple ( 319 ACPI_OPERAND_OBJECT *SourceObj, 320 ACPI_OPERAND_OBJECT *DestObj); 321 322ACPI_STATUS 323AcpiUtCopyIobjectToIobject ( 324 ACPI_OPERAND_OBJECT *SourceDesc, 325 ACPI_OPERAND_OBJECT **DestDesc, 326 ACPI_WALK_STATE *WalkState); 327 328 329/* 330 * utcreate - Object creation 331 */ 332ACPI_STATUS 333AcpiUtUpdateObjectReference ( 334 ACPI_OPERAND_OBJECT *Object, 335 UINT16 Action); 336 337 338/* 339 * utdebug - Debug interfaces 340 */ 341void 342AcpiUtInitStackPtrTrace ( 343 void); 344 345void 346AcpiUtTrackStackPtr ( 347 void); 348 349void 350AcpiUtTrace ( 351 UINT32 LineNumber, 352 const char *FunctionName, 353 const char *ModuleName, 354 UINT32 ComponentId); 355 356void 357AcpiUtTracePtr ( 358 UINT32 LineNumber, 359 const char *FunctionName, 360 const char *ModuleName, 361 UINT32 ComponentId, 362 void *Pointer); 363 364void 365AcpiUtTraceU32 ( 366 UINT32 LineNumber, 367 const char *FunctionName, 368 const char *ModuleName, 369 UINT32 ComponentId, 370 UINT32 Integer); 371 372void 373AcpiUtTraceStr ( 374 UINT32 LineNumber, 375 const char *FunctionName, 376 const char *ModuleName, 377 UINT32 ComponentId, 378 char *String); 379 380void 381AcpiUtExit ( 382 UINT32 LineNumber, 383 const char *FunctionName, 384 const char *ModuleName, 385 UINT32 ComponentId); 386 387void 388AcpiUtStatusExit ( 389 UINT32 LineNumber, 390 const char *FunctionName, 391 const char *ModuleName, 392 UINT32 ComponentId, 393 ACPI_STATUS Status); 394 395void 396AcpiUtValueExit ( 397 UINT32 LineNumber, 398 const char *FunctionName, 399 const char *ModuleName, 400 UINT32 ComponentId, 401 UINT64 Value); 402 403void 404AcpiUtPtrExit ( 405 UINT32 LineNumber, 406 const char *FunctionName, 407 const char *ModuleName, 408 UINT32 ComponentId, 409 UINT8 *Ptr); 410 411void 412AcpiUtDumpBuffer ( 413 UINT8 *Buffer, 414 UINT32 Count, 415 UINT32 Display, 416 UINT32 componentId); 417 418void 419AcpiUtDumpBuffer2 ( 420 UINT8 *Buffer, 421 UINT32 Count, 422 UINT32 Display); 423 424void 425AcpiUtReportError ( 426 char *ModuleName, 427 UINT32 LineNumber); 428 429void 430AcpiUtReportInfo ( 431 char *ModuleName, 432 UINT32 LineNumber); 433 434void 435AcpiUtReportWarning ( 436 char *ModuleName, 437 UINT32 LineNumber); 438 439/* 440 * utdelete - Object deletion and reference counts 441 */ 442void 443AcpiUtAddReference ( 444 ACPI_OPERAND_OBJECT *Object); 445 446void 447AcpiUtRemoveReference ( 448 ACPI_OPERAND_OBJECT *Object); 449 450void 451AcpiUtDeleteInternalPackageObject ( 452 ACPI_OPERAND_OBJECT *Object); 453 454void 455AcpiUtDeleteInternalSimpleObject ( 456 ACPI_OPERAND_OBJECT *Object); 457 458void 459AcpiUtDeleteInternalObjectList ( 460 ACPI_OPERAND_OBJECT **ObjList); 461 462 463/* 464 * uteval - object evaluation 465 */ 466ACPI_STATUS 467AcpiUtEvaluateObject ( 468 ACPI_NAMESPACE_NODE *PrefixNode, 469 char *Path, 470 UINT32 ExpectedReturnBtypes, 471 ACPI_OPERAND_OBJECT **ReturnDesc); 472 473ACPI_STATUS 474AcpiUtEvaluateNumericObject ( 475 char *ObjectName, 476 ACPI_NAMESPACE_NODE *DeviceNode, 477 UINT64 *Value); 478 479ACPI_STATUS 480AcpiUtExecute_STA ( 481 ACPI_NAMESPACE_NODE *DeviceNode, 482 UINT32 *StatusFlags); 483 484ACPI_STATUS 485AcpiUtExecutePowerMethods ( 486 ACPI_NAMESPACE_NODE *DeviceNode, 487 const char **MethodNames, 488 UINT8 MethodCount, 489 UINT8 *OutValues); 490 491 492/* 493 * utids - device ID support 494 */ 495ACPI_STATUS 496AcpiUtExecute_HID ( 497 ACPI_NAMESPACE_NODE *DeviceNode, 498 ACPI_DEVICE_ID **ReturnId); 499 500ACPI_STATUS 501AcpiUtExecute_UID ( 502 ACPI_NAMESPACE_NODE *DeviceNode, 503 ACPI_DEVICE_ID **ReturnId); 504 505ACPI_STATUS 506AcpiUtExecute_CID ( 507 ACPI_NAMESPACE_NODE *DeviceNode, 508 ACPI_DEVICE_ID_LIST **ReturnCidList); 509 510 511/* 512 * utlock - reader/writer locks 513 */ 514ACPI_STATUS 515AcpiUtCreateRwLock ( 516 ACPI_RW_LOCK *Lock); 517 518void 519AcpiUtDeleteRwLock ( 520 ACPI_RW_LOCK *Lock); 521 522ACPI_STATUS 523AcpiUtAcquireReadLock ( 524 ACPI_RW_LOCK *Lock); 525 526ACPI_STATUS 527AcpiUtReleaseReadLock ( 528 ACPI_RW_LOCK *Lock); 529 530ACPI_STATUS 531AcpiUtAcquireWriteLock ( 532 ACPI_RW_LOCK *Lock); 533 534void 535AcpiUtReleaseWriteLock ( 536 ACPI_RW_LOCK *Lock); 537 538 539/* 540 * utobject - internal object create/delete/cache routines 541 */ 542ACPI_OPERAND_OBJECT * 543AcpiUtCreateInternalObjectDbg ( 544 const char *ModuleName, 545 UINT32 LineNumber, 546 UINT32 ComponentId, 547 ACPI_OBJECT_TYPE Type); 548 549void * 550AcpiUtAllocateObjectDescDbg ( 551 const char *ModuleName, 552 UINT32 LineNumber, 553 UINT32 ComponentId); 554 555#define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t) 556#define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT) 557 558void 559AcpiUtDeleteObjectDesc ( 560 ACPI_OPERAND_OBJECT *Object); 561 562BOOLEAN 563AcpiUtValidInternalObject ( 564 void *Object); 565 566ACPI_OPERAND_OBJECT * 567AcpiUtCreatePackageObject ( 568 UINT32 Count); 569 570ACPI_OPERAND_OBJECT * 571AcpiUtCreateIntegerObject ( 572 UINT64 Value); 573 574ACPI_OPERAND_OBJECT * 575AcpiUtCreateBufferObject ( 576 ACPI_SIZE BufferSize); 577 578ACPI_OPERAND_OBJECT * 579AcpiUtCreateStringObject ( 580 ACPI_SIZE StringSize); 581 582ACPI_STATUS 583AcpiUtGetObjectSize( 584 ACPI_OPERAND_OBJECT *Obj, 585 ACPI_SIZE *ObjLength); 586 587 588/* 589 * utosi - Support for the _OSI predefined control method 590 */ 591ACPI_STATUS 592AcpiUtInitializeInterfaces ( 593 void); 594 595void 596AcpiUtInterfaceTerminate ( 597 void); 598 599ACPI_STATUS 600AcpiUtInstallInterface ( 601 ACPI_STRING InterfaceName); 602 603ACPI_STATUS 604AcpiUtRemoveInterface ( 605 ACPI_STRING InterfaceName); 606 607ACPI_INTERFACE_INFO * 608AcpiUtGetInterface ( 609 ACPI_STRING InterfaceName); 610 611ACPI_STATUS 612AcpiUtOsiImplementation ( 613 ACPI_WALK_STATE *WalkState); 614 615 616/* 617 * utstate - Generic state creation/cache routines 618 */ 619void 620AcpiUtPushGenericState ( 621 ACPI_GENERIC_STATE **ListHead, 622 ACPI_GENERIC_STATE *State); 623 624ACPI_GENERIC_STATE * 625AcpiUtPopGenericState ( 626 ACPI_GENERIC_STATE **ListHead); 627 628 629ACPI_GENERIC_STATE * 630AcpiUtCreateGenericState ( 631 void); 632 633ACPI_THREAD_STATE * 634AcpiUtCreateThreadState ( 635 void); 636 637ACPI_GENERIC_STATE * 638AcpiUtCreateUpdateState ( 639 ACPI_OPERAND_OBJECT *Object, 640 UINT16 Action); 641 642ACPI_GENERIC_STATE * 643AcpiUtCreatePkgState ( 644 void *InternalObject, 645 void *ExternalObject, 646 UINT16 Index); 647 648ACPI_STATUS 649AcpiUtCreateUpdateStateAndPush ( 650 ACPI_OPERAND_OBJECT *Object, 651 UINT16 Action, 652 ACPI_GENERIC_STATE **StateList); 653 654ACPI_STATUS 655AcpiUtCreatePkgStateAndPush ( 656 void *InternalObject, 657 void *ExternalObject, 658 UINT16 Index, 659 ACPI_GENERIC_STATE **StateList); 660 661ACPI_GENERIC_STATE * 662AcpiUtCreateControlState ( 663 void); 664 665void 666AcpiUtDeleteGenericState ( 667 ACPI_GENERIC_STATE *State); 668 669 670/* 671 * utmath 672 */ 673ACPI_STATUS 674AcpiUtDivide ( 675 UINT64 InDividend, 676 UINT64 InDivisor, 677 UINT64 *OutQuotient, 678 UINT64 *OutRemainder); 679 680ACPI_STATUS 681AcpiUtShortDivide ( 682 UINT64 InDividend, 683 UINT32 Divisor, 684 UINT64 *OutQuotient, 685 UINT32 *OutRemainder); 686 687/* 688 * utmisc 689 */ 690const char * 691AcpiUtValidateException ( 692 ACPI_STATUS Status); 693 694BOOLEAN 695AcpiUtIsPciRootBridge ( 696 char *Id); 697 698BOOLEAN 699AcpiUtIsAmlTable ( 700 ACPI_TABLE_HEADER *Table); 701 702ACPI_STATUS 703AcpiUtAllocateOwnerId ( 704 ACPI_OWNER_ID *OwnerId); 705 706void 707AcpiUtReleaseOwnerId ( 708 ACPI_OWNER_ID *OwnerId); 709 710ACPI_STATUS 711AcpiUtWalkPackageTree ( 712 ACPI_OPERAND_OBJECT *SourceObject, 713 void *TargetObject, 714 ACPI_PKG_CALLBACK WalkCallback, 715 void *Context); 716 717void 718AcpiUtStrupr ( 719 char *SrcString); 720 721void 722AcpiUtStrlwr ( 723 char *SrcString); 724 725void 726AcpiUtPrintString ( 727 char *String, 728 UINT8 MaxLength); 729 730BOOLEAN 731AcpiUtValidAcpiName ( 732 UINT32 Name); 733 734void 735AcpiUtRepairName ( 736 char *Name); 737 738BOOLEAN 739AcpiUtValidAcpiChar ( 740 char Character, 741 UINT32 Position); 742 743ACPI_STATUS 744AcpiUtStrtoul64 ( 745 char *String, 746 UINT32 Base, 747 UINT64 *RetInteger); 748 749/* Values for Base above (16=Hex, 10=Decimal) */ 750 751#define ACPI_ANY_BASE 0 752 753UINT32 754AcpiUtDwordByteSwap ( 755 UINT32 Value); 756 757void 758AcpiUtSetIntegerWidth ( 759 UINT8 Revision); 760 761#ifdef ACPI_DEBUG_OUTPUT 762void 763AcpiUtDisplayInitPathname ( 764 UINT8 Type, 765 ACPI_NAMESPACE_NODE *ObjHandle, 766 char *Path); 767#endif 768 769 770/* 771 * utresrc 772 */ 773ACPI_STATUS 774AcpiUtWalkAmlResources ( 775 UINT8 *Aml, 776 ACPI_SIZE AmlLength, 777 ACPI_WALK_AML_CALLBACK UserFunction, 778 void *Context); 779 780ACPI_STATUS 781AcpiUtValidateResource ( 782 void *Aml, 783 UINT8 *ReturnIndex); 784 785UINT32 786AcpiUtGetDescriptorLength ( 787 void *Aml); 788 789UINT16 790AcpiUtGetResourceLength ( 791 void *Aml); 792 793UINT8 794AcpiUtGetResourceHeaderLength ( 795 void *Aml); 796 797UINT8 798AcpiUtGetResourceType ( 799 void *Aml); 800 801ACPI_STATUS 802AcpiUtGetResourceEndTag ( 803 ACPI_OPERAND_OBJECT *ObjDesc, 804 UINT8 **EndTag); 805 806 807/* 808 * utmutex - mutex support 809 */ 810ACPI_STATUS 811AcpiUtMutexInitialize ( 812 void); 813 814void 815AcpiUtMutexTerminate ( 816 void); 817 818ACPI_STATUS 819AcpiUtAcquireMutex ( 820 ACPI_MUTEX_HANDLE MutexId); 821 822ACPI_STATUS 823AcpiUtReleaseMutex ( 824 ACPI_MUTEX_HANDLE MutexId); 825 826 827/* 828 * utalloc - memory allocation and object caching 829 */ 830ACPI_STATUS 831AcpiUtCreateCaches ( 832 void); 833 834ACPI_STATUS 835AcpiUtDeleteCaches ( 836 void); 837 838ACPI_STATUS 839AcpiUtValidateBuffer ( 840 ACPI_BUFFER *Buffer); 841 842ACPI_STATUS 843AcpiUtInitializeBuffer ( 844 ACPI_BUFFER *Buffer, 845 ACPI_SIZE RequiredLength); 846 847void * 848AcpiUtAllocate ( 849 ACPI_SIZE Size, 850 UINT32 Component, 851 const char *Module, 852 UINT32 Line); 853 854void * 855AcpiUtAllocateZeroed ( 856 ACPI_SIZE Size, 857 UINT32 Component, 858 const char *Module, 859 UINT32 Line); 860 861#ifdef ACPI_DBG_TRACK_ALLOCATIONS 862void * 863AcpiUtAllocateAndTrack ( 864 ACPI_SIZE Size, 865 UINT32 Component, 866 const char *Module, 867 UINT32 Line); 868 869void * 870AcpiUtAllocateZeroedAndTrack ( 871 ACPI_SIZE Size, 872 UINT32 Component, 873 const char *Module, 874 UINT32 Line); 875 876void 877AcpiUtFreeAndTrack ( 878 void *Address, 879 UINT32 Component, 880 const char *Module, 881 UINT32 Line); 882 883void 884AcpiUtDumpAllocationInfo ( 885 void); 886 887void 888AcpiUtDumpAllocations ( 889 UINT32 Component, 890 const char *Module); 891 892ACPI_STATUS 893AcpiUtCreateList ( 894 char *ListName, 895 UINT16 ObjectSize, 896 ACPI_MEMORY_LIST **ReturnCache); 897 898#endif /* ACPI_DBG_TRACK_ALLOCATIONS */ 899 900 901/* 902 * utxferror - various error/warning output functions 903 */ 904void ACPI_INTERNAL_VAR_XFACE 905AcpiUtPredefinedWarning ( 906 const char *ModuleName, 907 UINT32 LineNumber, 908 char *Pathname, 909 UINT8 NodeFlags, 910 const char *Format, 911 ...); 912 913void ACPI_INTERNAL_VAR_XFACE 914AcpiUtPredefinedInfo ( 915 const char *ModuleName, 916 UINT32 LineNumber, 917 char *Pathname, 918 UINT8 NodeFlags, 919 const char *Format, 920 ...); 921 922void 923AcpiUtNamespaceError ( 924 const char *ModuleName, 925 UINT32 LineNumber, 926 const char *InternalName, 927 ACPI_STATUS LookupStatus); 928 929void 930AcpiUtMethodError ( 931 const char *ModuleName, 932 UINT32 LineNumber, 933 const char *Message, 934 ACPI_NAMESPACE_NODE *Node, 935 const char *Path, 936 ACPI_STATUS LookupStatus); 937 938#endif /* _ACUTILS_H */ 939