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