1 /****************************************************************************** 2 * 3 * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures 4 * 5 *****************************************************************************/ 6 7 /* 8 * Copyright (C) 2000 - 2012, 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 * utglobal - Global data structures and procedures 135 */ 136 ACPI_STATUS 137 AcpiUtInitGlobals ( 138 void); 139 140 #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 141 142 char * 143 AcpiUtGetMutexName ( 144 UINT32 MutexId); 145 146 const char * 147 AcpiUtGetNotifyName ( 148 UINT32 NotifyValue); 149 150 #endif 151 152 char * 153 AcpiUtGetTypeName ( 154 ACPI_OBJECT_TYPE Type); 155 156 char * 157 AcpiUtGetNodeName ( 158 void *Object); 159 160 char * 161 AcpiUtGetDescriptorName ( 162 void *Object); 163 164 const char * 165 AcpiUtGetReferenceName ( 166 ACPI_OPERAND_OBJECT *Object); 167 168 char * 169 AcpiUtGetObjectTypeName ( 170 ACPI_OPERAND_OBJECT *ObjDesc); 171 172 char * 173 AcpiUtGetRegionName ( 174 UINT8 SpaceId); 175 176 char * 177 AcpiUtGetEventName ( 178 UINT32 EventId); 179 180 char 181 AcpiUtHexToAsciiChar ( 182 UINT64 Integer, 183 UINT32 Position); 184 185 BOOLEAN 186 AcpiUtValidObjectType ( 187 ACPI_OBJECT_TYPE Type); 188 189 190 /* 191 * utinit - miscellaneous initialization and shutdown 192 */ 193 ACPI_STATUS 194 AcpiUtHardwareInitialize ( 195 void); 196 197 void 198 AcpiUtSubsystemShutdown ( 199 void); 200 201 202 /* 203 * utclib - Local implementations of C library functions 204 */ 205 #ifndef ACPI_USE_SYSTEM_CLIBRARY 206 207 ACPI_SIZE 208 AcpiUtStrlen ( 209 const char *String); 210 211 char * 212 AcpiUtStrcpy ( 213 char *DstString, 214 const char *SrcString); 215 216 char * 217 AcpiUtStrncpy ( 218 char *DstString, 219 const char *SrcString, 220 ACPI_SIZE Count); 221 222 int 223 AcpiUtMemcmp ( 224 const char *Buffer1, 225 const char *Buffer2, 226 ACPI_SIZE Count); 227 228 int 229 AcpiUtStrncmp ( 230 const char *String1, 231 const char *String2, 232 ACPI_SIZE Count); 233 234 int 235 AcpiUtStrcmp ( 236 const char *String1, 237 const char *String2); 238 239 char * 240 AcpiUtStrcat ( 241 char *DstString, 242 const char *SrcString); 243 244 char * 245 AcpiUtStrncat ( 246 char *DstString, 247 const char *SrcString, 248 ACPI_SIZE Count); 249 250 UINT32 251 AcpiUtStrtoul ( 252 const char *String, 253 char **Terminator, 254 UINT32 Base); 255 256 char * 257 AcpiUtStrstr ( 258 char *String1, 259 char *String2); 260 261 void * 262 AcpiUtMemcpy ( 263 void *Dest, 264 const void *Src, 265 ACPI_SIZE Count); 266 267 void * 268 AcpiUtMemset ( 269 void *Dest, 270 UINT8 Value, 271 ACPI_SIZE Count); 272 273 int 274 AcpiUtToUpper ( 275 int c); 276 277 int 278 AcpiUtToLower ( 279 int c); 280 281 extern const UINT8 _acpi_ctype[]; 282 283 #define _ACPI_XA 0x00 /* extra alphabetic - not supported */ 284 #define _ACPI_XS 0x40 /* extra space */ 285 #define _ACPI_BB 0x00 /* BEL, BS, etc. - not supported */ 286 #define _ACPI_CN 0x20 /* CR, FF, HT, NL, VT */ 287 #define _ACPI_DI 0x04 /* '0'-'9' */ 288 #define _ACPI_LO 0x02 /* 'a'-'z' */ 289 #define _ACPI_PU 0x10 /* punctuation */ 290 #define _ACPI_SP 0x08 /* space */ 291 #define _ACPI_UP 0x01 /* 'A'-'Z' */ 292 #define _ACPI_XD 0x80 /* '0'-'9', 'A'-'F', 'a'-'f' */ 293 294 #define ACPI_IS_DIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_DI)) 295 #define ACPI_IS_SPACE(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_SP)) 296 #define ACPI_IS_XDIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_XD)) 297 #define ACPI_IS_UPPER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_UP)) 298 #define ACPI_IS_LOWER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO)) 299 #define ACPI_IS_PRINT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_SP | _ACPI_PU)) 300 #define ACPI_IS_ALPHA(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP)) 301 302 #endif /* !ACPI_USE_SYSTEM_CLIBRARY */ 303 304 #define ACPI_IS_ASCII(c) ((c) < 0x80) 305 306 307 /* 308 * utcopy - Object construction and conversion interfaces 309 */ 310 ACPI_STATUS 311 AcpiUtBuildSimpleObject( 312 ACPI_OPERAND_OBJECT *Obj, 313 ACPI_OBJECT *UserObj, 314 UINT8 *DataSpace, 315 UINT32 *BufferSpaceUsed); 316 317 ACPI_STATUS 318 AcpiUtBuildPackageObject ( 319 ACPI_OPERAND_OBJECT *Obj, 320 UINT8 *Buffer, 321 UINT32 *SpaceUsed); 322 323 ACPI_STATUS 324 AcpiUtCopyIobjectToEobject ( 325 ACPI_OPERAND_OBJECT *Obj, 326 ACPI_BUFFER *RetBuffer); 327 328 ACPI_STATUS 329 AcpiUtCopyEobjectToIobject ( 330 ACPI_OBJECT *Obj, 331 ACPI_OPERAND_OBJECT **InternalObj); 332 333 ACPI_STATUS 334 AcpiUtCopyISimpleToIsimple ( 335 ACPI_OPERAND_OBJECT *SourceObj, 336 ACPI_OPERAND_OBJECT *DestObj); 337 338 ACPI_STATUS 339 AcpiUtCopyIobjectToIobject ( 340 ACPI_OPERAND_OBJECT *SourceDesc, 341 ACPI_OPERAND_OBJECT **DestDesc, 342 ACPI_WALK_STATE *WalkState); 343 344 345 /* 346 * utcreate - Object creation 347 */ 348 ACPI_STATUS 349 AcpiUtUpdateObjectReference ( 350 ACPI_OPERAND_OBJECT *Object, 351 UINT16 Action); 352 353 354 /* 355 * utdebug - Debug interfaces 356 */ 357 void 358 AcpiUtInitStackPtrTrace ( 359 void); 360 361 void 362 AcpiUtTrackStackPtr ( 363 void); 364 365 void 366 AcpiUtTrace ( 367 UINT32 LineNumber, 368 const char *FunctionName, 369 const char *ModuleName, 370 UINT32 ComponentId); 371 372 void 373 AcpiUtTracePtr ( 374 UINT32 LineNumber, 375 const char *FunctionName, 376 const char *ModuleName, 377 UINT32 ComponentId, 378 void *Pointer); 379 380 void 381 AcpiUtTraceU32 ( 382 UINT32 LineNumber, 383 const char *FunctionName, 384 const char *ModuleName, 385 UINT32 ComponentId, 386 UINT32 Integer); 387 388 void 389 AcpiUtTraceStr ( 390 UINT32 LineNumber, 391 const char *FunctionName, 392 const char *ModuleName, 393 UINT32 ComponentId, 394 char *String); 395 396 void 397 AcpiUtExit ( 398 UINT32 LineNumber, 399 const char *FunctionName, 400 const char *ModuleName, 401 UINT32 ComponentId); 402 403 void 404 AcpiUtStatusExit ( 405 UINT32 LineNumber, 406 const char *FunctionName, 407 const char *ModuleName, 408 UINT32 ComponentId, 409 ACPI_STATUS Status); 410 411 void 412 AcpiUtValueExit ( 413 UINT32 LineNumber, 414 const char *FunctionName, 415 const char *ModuleName, 416 UINT32 ComponentId, 417 UINT64 Value); 418 419 void 420 AcpiUtPtrExit ( 421 UINT32 LineNumber, 422 const char *FunctionName, 423 const char *ModuleName, 424 UINT32 ComponentId, 425 UINT8 *Ptr); 426 427 void 428 AcpiUtDebugDumpBuffer ( 429 UINT8 *Buffer, 430 UINT32 Count, 431 UINT32 Display, 432 UINT32 ComponentId); 433 434 void 435 AcpiUtDumpBuffer ( 436 UINT8 *Buffer, 437 UINT32 Count, 438 UINT32 Display, 439 UINT32 Offset); 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_PNP_DEVICE_ID **ReturnId); 516 517 ACPI_STATUS 518 AcpiUtExecute_UID ( 519 ACPI_NAMESPACE_NODE *DeviceNode, 520 ACPI_PNP_DEVICE_ID **ReturnId); 521 522 ACPI_STATUS 523 AcpiUtExecute_SUB ( 524 ACPI_NAMESPACE_NODE *DeviceNode, 525 ACPI_PNP_DEVICE_ID **ReturnId); 526 527 ACPI_STATUS 528 AcpiUtExecute_CID ( 529 ACPI_NAMESPACE_NODE *DeviceNode, 530 ACPI_PNP_DEVICE_ID_LIST **ReturnCidList); 531 532 533 /* 534 * utlock - reader/writer locks 535 */ 536 ACPI_STATUS 537 AcpiUtCreateRwLock ( 538 ACPI_RW_LOCK *Lock); 539 540 void 541 AcpiUtDeleteRwLock ( 542 ACPI_RW_LOCK *Lock); 543 544 ACPI_STATUS 545 AcpiUtAcquireReadLock ( 546 ACPI_RW_LOCK *Lock); 547 548 ACPI_STATUS 549 AcpiUtReleaseReadLock ( 550 ACPI_RW_LOCK *Lock); 551 552 ACPI_STATUS 553 AcpiUtAcquireWriteLock ( 554 ACPI_RW_LOCK *Lock); 555 556 void 557 AcpiUtReleaseWriteLock ( 558 ACPI_RW_LOCK *Lock); 559 560 561 /* 562 * utobject - internal object create/delete/cache routines 563 */ 564 ACPI_OPERAND_OBJECT * 565 AcpiUtCreateInternalObjectDbg ( 566 const char *ModuleName, 567 UINT32 LineNumber, 568 UINT32 ComponentId, 569 ACPI_OBJECT_TYPE Type); 570 571 void * 572 AcpiUtAllocateObjectDescDbg ( 573 const char *ModuleName, 574 UINT32 LineNumber, 575 UINT32 ComponentId); 576 577 #define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t) 578 #define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT) 579 580 void 581 AcpiUtDeleteObjectDesc ( 582 ACPI_OPERAND_OBJECT *Object); 583 584 BOOLEAN 585 AcpiUtValidInternalObject ( 586 void *Object); 587 588 ACPI_OPERAND_OBJECT * 589 AcpiUtCreatePackageObject ( 590 UINT32 Count); 591 592 ACPI_OPERAND_OBJECT * 593 AcpiUtCreateIntegerObject ( 594 UINT64 Value); 595 596 ACPI_OPERAND_OBJECT * 597 AcpiUtCreateBufferObject ( 598 ACPI_SIZE BufferSize); 599 600 ACPI_OPERAND_OBJECT * 601 AcpiUtCreateStringObject ( 602 ACPI_SIZE StringSize); 603 604 ACPI_STATUS 605 AcpiUtGetObjectSize( 606 ACPI_OPERAND_OBJECT *Obj, 607 ACPI_SIZE *ObjLength); 608 609 610 /* 611 * utosi - Support for the _OSI predefined control method 612 */ 613 ACPI_STATUS 614 AcpiUtInitializeInterfaces ( 615 void); 616 617 void 618 AcpiUtInterfaceTerminate ( 619 void); 620 621 ACPI_STATUS 622 AcpiUtInstallInterface ( 623 ACPI_STRING InterfaceName); 624 625 ACPI_STATUS 626 AcpiUtRemoveInterface ( 627 ACPI_STRING InterfaceName); 628 629 ACPI_INTERFACE_INFO * 630 AcpiUtGetInterface ( 631 ACPI_STRING InterfaceName); 632 633 ACPI_STATUS 634 AcpiUtOsiImplementation ( 635 ACPI_WALK_STATE *WalkState); 636 637 638 /* 639 * utstate - Generic state creation/cache routines 640 */ 641 void 642 AcpiUtPushGenericState ( 643 ACPI_GENERIC_STATE **ListHead, 644 ACPI_GENERIC_STATE *State); 645 646 ACPI_GENERIC_STATE * 647 AcpiUtPopGenericState ( 648 ACPI_GENERIC_STATE **ListHead); 649 650 651 ACPI_GENERIC_STATE * 652 AcpiUtCreateGenericState ( 653 void); 654 655 ACPI_THREAD_STATE * 656 AcpiUtCreateThreadState ( 657 void); 658 659 ACPI_GENERIC_STATE * 660 AcpiUtCreateUpdateState ( 661 ACPI_OPERAND_OBJECT *Object, 662 UINT16 Action); 663 664 ACPI_GENERIC_STATE * 665 AcpiUtCreatePkgState ( 666 void *InternalObject, 667 void *ExternalObject, 668 UINT16 Index); 669 670 ACPI_STATUS 671 AcpiUtCreateUpdateStateAndPush ( 672 ACPI_OPERAND_OBJECT *Object, 673 UINT16 Action, 674 ACPI_GENERIC_STATE **StateList); 675 676 ACPI_STATUS 677 AcpiUtCreatePkgStateAndPush ( 678 void *InternalObject, 679 void *ExternalObject, 680 UINT16 Index, 681 ACPI_GENERIC_STATE **StateList); 682 683 ACPI_GENERIC_STATE * 684 AcpiUtCreateControlState ( 685 void); 686 687 void 688 AcpiUtDeleteGenericState ( 689 ACPI_GENERIC_STATE *State); 690 691 692 /* 693 * utmath 694 */ 695 ACPI_STATUS 696 AcpiUtDivide ( 697 UINT64 InDividend, 698 UINT64 InDivisor, 699 UINT64 *OutQuotient, 700 UINT64 *OutRemainder); 701 702 ACPI_STATUS 703 AcpiUtShortDivide ( 704 UINT64 InDividend, 705 UINT32 Divisor, 706 UINT64 *OutQuotient, 707 UINT32 *OutRemainder); 708 709 /* 710 * utmisc 711 */ 712 void 713 UtConvertBackslashes ( 714 char *Pathname); 715 716 const char * 717 AcpiUtValidateException ( 718 ACPI_STATUS Status); 719 720 BOOLEAN 721 AcpiUtIsPciRootBridge ( 722 char *Id); 723 724 BOOLEAN 725 AcpiUtIsAmlTable ( 726 ACPI_TABLE_HEADER *Table); 727 728 ACPI_STATUS 729 AcpiUtAllocateOwnerId ( 730 ACPI_OWNER_ID *OwnerId); 731 732 void 733 AcpiUtReleaseOwnerId ( 734 ACPI_OWNER_ID *OwnerId); 735 736 ACPI_STATUS 737 AcpiUtWalkPackageTree ( 738 ACPI_OPERAND_OBJECT *SourceObject, 739 void *TargetObject, 740 ACPI_PKG_CALLBACK WalkCallback, 741 void *Context); 742 743 void 744 AcpiUtStrupr ( 745 char *SrcString); 746 747 void 748 AcpiUtStrlwr ( 749 char *SrcString); 750 751 int 752 AcpiUtStricmp ( 753 char *String1, 754 char *String2); 755 756 void 757 AcpiUtPrintString ( 758 char *String, 759 UINT8 MaxLength); 760 761 BOOLEAN 762 AcpiUtValidAcpiName ( 763 UINT32 Name); 764 765 void 766 AcpiUtRepairName ( 767 char *Name); 768 769 BOOLEAN 770 AcpiUtValidAcpiChar ( 771 char Character, 772 UINT32 Position); 773 774 ACPI_STATUS 775 AcpiUtStrtoul64 ( 776 char *String, 777 UINT32 Base, 778 UINT64 *RetInteger); 779 780 /* Values for Base above (16=Hex, 10=Decimal) */ 781 782 #define ACPI_ANY_BASE 0 783 784 UINT32 785 AcpiUtDwordByteSwap ( 786 UINT32 Value); 787 788 void 789 AcpiUtSetIntegerWidth ( 790 UINT8 Revision); 791 792 #ifdef ACPI_DEBUG_OUTPUT 793 void 794 AcpiUtDisplayInitPathname ( 795 UINT8 Type, 796 ACPI_NAMESPACE_NODE *ObjHandle, 797 char *Path); 798 #endif 799 800 801 /* 802 * utresrc 803 */ 804 ACPI_STATUS 805 AcpiUtWalkAmlResources ( 806 ACPI_WALK_STATE *WalkState, 807 UINT8 *Aml, 808 ACPI_SIZE AmlLength, 809 ACPI_WALK_AML_CALLBACK UserFunction, 810 void *Context); 811 812 ACPI_STATUS 813 AcpiUtValidateResource ( 814 ACPI_WALK_STATE *WalkState, 815 void *Aml, 816 UINT8 *ReturnIndex); 817 818 UINT32 819 AcpiUtGetDescriptorLength ( 820 void *Aml); 821 822 UINT16 823 AcpiUtGetResourceLength ( 824 void *Aml); 825 826 UINT8 827 AcpiUtGetResourceHeaderLength ( 828 void *Aml); 829 830 UINT8 831 AcpiUtGetResourceType ( 832 void *Aml); 833 834 ACPI_STATUS 835 AcpiUtGetResourceEndTag ( 836 ACPI_OPERAND_OBJECT *ObjDesc, 837 UINT8 **EndTag); 838 839 840 /* 841 * utmutex - mutex support 842 */ 843 ACPI_STATUS 844 AcpiUtMutexInitialize ( 845 void); 846 847 void 848 AcpiUtMutexTerminate ( 849 void); 850 851 ACPI_STATUS 852 AcpiUtAcquireMutex ( 853 ACPI_MUTEX_HANDLE MutexId); 854 855 ACPI_STATUS 856 AcpiUtReleaseMutex ( 857 ACPI_MUTEX_HANDLE MutexId); 858 859 860 /* 861 * utalloc - memory allocation and object caching 862 */ 863 ACPI_STATUS 864 AcpiUtCreateCaches ( 865 void); 866 867 ACPI_STATUS 868 AcpiUtDeleteCaches ( 869 void); 870 871 ACPI_STATUS 872 AcpiUtValidateBuffer ( 873 ACPI_BUFFER *Buffer); 874 875 ACPI_STATUS 876 AcpiUtInitializeBuffer ( 877 ACPI_BUFFER *Buffer, 878 ACPI_SIZE RequiredLength); 879 880 void * 881 AcpiUtAllocate ( 882 ACPI_SIZE Size, 883 UINT32 Component, 884 const char *Module, 885 UINT32 Line); 886 887 void * 888 AcpiUtAllocateZeroed ( 889 ACPI_SIZE Size, 890 UINT32 Component, 891 const char *Module, 892 UINT32 Line); 893 894 #ifdef ACPI_DBG_TRACK_ALLOCATIONS 895 void * 896 AcpiUtAllocateAndTrack ( 897 ACPI_SIZE Size, 898 UINT32 Component, 899 const char *Module, 900 UINT32 Line); 901 902 void * 903 AcpiUtAllocateZeroedAndTrack ( 904 ACPI_SIZE Size, 905 UINT32 Component, 906 const char *Module, 907 UINT32 Line); 908 909 void 910 AcpiUtFreeAndTrack ( 911 void *Address, 912 UINT32 Component, 913 const char *Module, 914 UINT32 Line); 915 916 void 917 AcpiUtDumpAllocationInfo ( 918 void); 919 920 void 921 AcpiUtDumpAllocations ( 922 UINT32 Component, 923 const char *Module); 924 925 ACPI_STATUS 926 AcpiUtCreateList ( 927 char *ListName, 928 UINT16 ObjectSize, 929 ACPI_MEMORY_LIST **ReturnCache); 930 931 #endif /* ACPI_DBG_TRACK_ALLOCATIONS */ 932 933 /* 934 * utaddress - address range check 935 */ 936 ACPI_STATUS 937 AcpiUtAddAddressRange ( 938 ACPI_ADR_SPACE_TYPE SpaceId, 939 ACPI_PHYSICAL_ADDRESS Address, 940 UINT32 Length, 941 ACPI_NAMESPACE_NODE *RegionNode); 942 943 void 944 AcpiUtRemoveAddressRange ( 945 ACPI_ADR_SPACE_TYPE SpaceId, 946 ACPI_NAMESPACE_NODE *RegionNode); 947 948 UINT32 949 AcpiUtCheckAddressRange ( 950 ACPI_ADR_SPACE_TYPE SpaceId, 951 ACPI_PHYSICAL_ADDRESS Address, 952 UINT32 Length, 953 BOOLEAN Warn); 954 955 void 956 AcpiUtDeleteAddressLists ( 957 void); 958 959 /* 960 * utxferror - various error/warning output functions 961 */ 962 void ACPI_INTERNAL_VAR_XFACE 963 AcpiUtPredefinedWarning ( 964 const char *ModuleName, 965 UINT32 LineNumber, 966 char *Pathname, 967 UINT8 NodeFlags, 968 const char *Format, 969 ...); 970 971 void ACPI_INTERNAL_VAR_XFACE 972 AcpiUtPredefinedInfo ( 973 const char *ModuleName, 974 UINT32 LineNumber, 975 char *Pathname, 976 UINT8 NodeFlags, 977 const char *Format, 978 ...); 979 980 void 981 AcpiUtNamespaceError ( 982 const char *ModuleName, 983 UINT32 LineNumber, 984 const char *InternalName, 985 ACPI_STATUS LookupStatus); 986 987 void 988 AcpiUtMethodError ( 989 const char *ModuleName, 990 UINT32 LineNumber, 991 const char *Message, 992 ACPI_NAMESPACE_NODE *Node, 993 const char *Path, 994 ACPI_STATUS LookupStatus); 995 996 #endif /* _ACUTILS_H */ 997