1 /****************************************************************************** 2 * 3 * Name: acinterp.h - Interpreter subcomponent prototypes and defines 4 * 5 *****************************************************************************/ 6 7 /****************************************************************************** 8 * 9 * 1. Copyright Notice 10 * 11 * Some or all of this work - Copyright (c) 1999 - 2016, Intel Corp. 12 * All rights reserved. 13 * 14 * 2. License 15 * 16 * 2.1. This is your license from Intel Corp. under its intellectual property 17 * rights. You may have additional license terms from the party that provided 18 * you this software, covering your right to use that party's intellectual 19 * property rights. 20 * 21 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 22 * copy of the source code appearing in this file ("Covered Code") an 23 * irrevocable, perpetual, worldwide license under Intel's copyrights in the 24 * base code distributed originally by Intel ("Original Intel Code") to copy, 25 * make derivatives, distribute, use and display any portion of the Covered 26 * Code in any form, with the right to sublicense such rights; and 27 * 28 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 29 * license (with the right to sublicense), under only those claims of Intel 30 * patents that are infringed by the Original Intel Code, to make, use, sell, 31 * offer to sell, and import the Covered Code and derivative works thereof 32 * solely to the minimum extent necessary to exercise the above copyright 33 * license, and in no event shall the patent license extend to any additions 34 * to or modifications of the Original Intel Code. No other license or right 35 * is granted directly or by implication, estoppel or otherwise; 36 * 37 * The above copyright and patent license is granted only if the following 38 * conditions are met: 39 * 40 * 3. Conditions 41 * 42 * 3.1. Redistribution of Source with Rights to Further Distribute Source. 43 * Redistribution of source code of any substantial portion of the Covered 44 * Code or modification with rights to further distribute source must include 45 * the above Copyright Notice, the above License, this list of Conditions, 46 * and the following Disclaimer and Export Compliance provision. In addition, 47 * Licensee must cause all Covered Code to which Licensee contributes to 48 * contain a file documenting the changes Licensee made to create that Covered 49 * Code and the date of any change. Licensee must include in that file the 50 * documentation of any changes made by any predecessor Licensee. Licensee 51 * must include a prominent statement that the modification is derived, 52 * directly or indirectly, from Original Intel Code. 53 * 54 * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 55 * Redistribution of source code of any substantial portion of the Covered 56 * Code or modification without rights to further distribute source must 57 * include the following Disclaimer and Export Compliance provision in the 58 * documentation and/or other materials provided with distribution. In 59 * addition, Licensee may not authorize further sublicense of source of any 60 * portion of the Covered Code, and must include terms to the effect that the 61 * license from Licensee to its licensee is limited to the intellectual 62 * property embodied in the software Licensee provides to its licensee, and 63 * not to intellectual property embodied in modifications its licensee may 64 * make. 65 * 66 * 3.3. Redistribution of Executable. Redistribution in executable form of any 67 * substantial portion of the Covered Code or modification must reproduce the 68 * above Copyright Notice, and the following Disclaimer and Export Compliance 69 * provision in the documentation and/or other materials provided with the 70 * distribution. 71 * 72 * 3.4. Intel retains all right, title, and interest in and to the Original 73 * Intel Code. 74 * 75 * 3.5. Neither the name Intel nor any other trademark owned or controlled by 76 * Intel shall be used in advertising or otherwise to promote the sale, use or 77 * other dealings in products derived from or relating to the Covered Code 78 * without prior written authorization from Intel. 79 * 80 * 4. Disclaimer and Export Compliance 81 * 82 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 83 * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 84 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 85 * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 86 * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 87 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 88 * PARTICULAR PURPOSE. 89 * 90 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 91 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 92 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 93 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 94 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 95 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 96 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 97 * LIMITED REMEDY. 98 * 99 * 4.3. Licensee shall not export, either directly or indirectly, any of this 100 * software or system incorporating such software without first obtaining any 101 * required license or other approval from the U. S. Department of Commerce or 102 * any other agency or department of the United States Government. In the 103 * event Licensee exports any such software from the United States or 104 * re-exports any such software from a foreign destination, Licensee shall 105 * ensure that the distribution and export/re-export of the software is in 106 * compliance with all laws, regulations, orders, or other restrictions of the 107 * U.S. Export Administration Regulations. Licensee agrees that neither it nor 108 * any of its subsidiaries will export/re-export any technical data, process, 109 * software, or service, directly or indirectly, to any country for which the 110 * United States government or any agency thereof requires an export license, 111 * other governmental approval, or letter of assurance, without first obtaining 112 * such license, approval or letter. 113 * 114 *****************************************************************************/ 115 116 #ifndef __ACINTERP_H__ 117 #define __ACINTERP_H__ 118 119 120 #define ACPI_WALK_OPERANDS (&(WalkState->Operands [WalkState->NumOperands -1])) 121 122 /* Macros for tables used for debug output */ 123 124 #define ACPI_EXD_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_OPERAND_OBJECT,f) 125 #define ACPI_EXD_NSOFFSET(f) (UINT8) ACPI_OFFSET (ACPI_NAMESPACE_NODE,f) 126 #define ACPI_EXD_TABLE_SIZE(name) (sizeof(name) / sizeof (ACPI_EXDUMP_INFO)) 127 128 /* 129 * If possible, pack the following structures to byte alignment, since we 130 * don't care about performance for debug output. Two cases where we cannot 131 * pack the structures: 132 * 133 * 1) Hardware does not support misaligned memory transfers 134 * 2) Compiler does not support pointers within packed structures 135 */ 136 #if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED)) 137 #pragma pack(1) 138 #endif 139 140 typedef const struct acpi_exdump_info 141 { 142 UINT8 Opcode; 143 UINT8 Offset; 144 const char *Name; 145 146 } ACPI_EXDUMP_INFO; 147 148 /* Values for the Opcode field above */ 149 150 #define ACPI_EXD_INIT 0 151 #define ACPI_EXD_TYPE 1 152 #define ACPI_EXD_UINT8 2 153 #define ACPI_EXD_UINT16 3 154 #define ACPI_EXD_UINT32 4 155 #define ACPI_EXD_UINT64 5 156 #define ACPI_EXD_LITERAL 6 157 #define ACPI_EXD_POINTER 7 158 #define ACPI_EXD_ADDRESS 8 159 #define ACPI_EXD_STRING 9 160 #define ACPI_EXD_BUFFER 10 161 #define ACPI_EXD_PACKAGE 11 162 #define ACPI_EXD_FIELD 12 163 #define ACPI_EXD_REFERENCE 13 164 #define ACPI_EXD_LIST 14 /* Operand object list */ 165 #define ACPI_EXD_HDLR_LIST 15 /* Address Handler list */ 166 #define ACPI_EXD_RGN_LIST 16 /* Region list */ 167 #define ACPI_EXD_NODE 17 /* Namespace Node */ 168 169 /* restore default alignment */ 170 171 #pragma pack() 172 173 174 /* 175 * exconvrt - object conversion 176 */ 177 ACPI_STATUS 178 AcpiExConvertToInteger ( 179 ACPI_OPERAND_OBJECT *ObjDesc, 180 ACPI_OPERAND_OBJECT **ResultDesc, 181 UINT32 Flags); 182 183 ACPI_STATUS 184 AcpiExConvertToBuffer ( 185 ACPI_OPERAND_OBJECT *ObjDesc, 186 ACPI_OPERAND_OBJECT **ResultDesc); 187 188 ACPI_STATUS 189 AcpiExConvertToString ( 190 ACPI_OPERAND_OBJECT *ObjDesc, 191 ACPI_OPERAND_OBJECT **ResultDesc, 192 UINT32 Type); 193 194 /* Types for ->String conversion */ 195 196 #define ACPI_EXPLICIT_BYTE_COPY 0x00000000 197 #define ACPI_EXPLICIT_CONVERT_HEX 0x00000001 198 #define ACPI_IMPLICIT_CONVERT_HEX 0x00000002 199 #define ACPI_EXPLICIT_CONVERT_DECIMAL 0x00000003 200 201 ACPI_STATUS 202 AcpiExConvertToTargetType ( 203 ACPI_OBJECT_TYPE DestinationType, 204 ACPI_OPERAND_OBJECT *SourceDesc, 205 ACPI_OPERAND_OBJECT **ResultDesc, 206 ACPI_WALK_STATE *WalkState); 207 208 209 /* 210 * exdebug - AML debug object 211 */ 212 void 213 AcpiExDoDebugObject ( 214 ACPI_OPERAND_OBJECT *SourceDesc, 215 UINT32 Level, 216 UINT32 Index); 217 218 void 219 AcpiExStartTraceMethod ( 220 ACPI_NAMESPACE_NODE *MethodNode, 221 ACPI_OPERAND_OBJECT *ObjDesc, 222 ACPI_WALK_STATE *WalkState); 223 224 void 225 AcpiExStopTraceMethod ( 226 ACPI_NAMESPACE_NODE *MethodNode, 227 ACPI_OPERAND_OBJECT *ObjDesc, 228 ACPI_WALK_STATE *WalkState); 229 230 void 231 AcpiExStartTraceOpcode ( 232 ACPI_PARSE_OBJECT *Op, 233 ACPI_WALK_STATE *WalkState); 234 235 void 236 AcpiExStopTraceOpcode ( 237 ACPI_PARSE_OBJECT *Op, 238 ACPI_WALK_STATE *WalkState); 239 240 void 241 AcpiExTracePoint ( 242 ACPI_TRACE_EVENT_TYPE Type, 243 BOOLEAN Begin, 244 UINT8 *Aml, 245 char *Pathname); 246 247 248 /* 249 * exfield - ACPI AML (p-code) execution - field manipulation 250 */ 251 ACPI_STATUS 252 AcpiExCommonBufferSetup ( 253 ACPI_OPERAND_OBJECT *ObjDesc, 254 UINT32 BufferLength, 255 UINT32 *DatumCount); 256 257 ACPI_STATUS 258 AcpiExWriteWithUpdateRule ( 259 ACPI_OPERAND_OBJECT *ObjDesc, 260 UINT64 Mask, 261 UINT64 FieldValue, 262 UINT32 FieldDatumByteOffset); 263 264 void 265 AcpiExGetBufferDatum( 266 UINT64 *Datum, 267 void *Buffer, 268 UINT32 BufferLength, 269 UINT32 ByteGranularity, 270 UINT32 BufferOffset); 271 272 void 273 AcpiExSetBufferDatum ( 274 UINT64 MergedDatum, 275 void *Buffer, 276 UINT32 BufferLength, 277 UINT32 ByteGranularity, 278 UINT32 BufferOffset); 279 280 ACPI_STATUS 281 AcpiExReadDataFromField ( 282 ACPI_WALK_STATE *WalkState, 283 ACPI_OPERAND_OBJECT *ObjDesc, 284 ACPI_OPERAND_OBJECT **RetBufferDesc); 285 286 ACPI_STATUS 287 AcpiExWriteDataToField ( 288 ACPI_OPERAND_OBJECT *SourceDesc, 289 ACPI_OPERAND_OBJECT *ObjDesc, 290 ACPI_OPERAND_OBJECT **ResultDesc); 291 292 293 /* 294 * exfldio - low level field I/O 295 */ 296 ACPI_STATUS 297 AcpiExExtractFromField ( 298 ACPI_OPERAND_OBJECT *ObjDesc, 299 void *Buffer, 300 UINT32 BufferLength); 301 302 ACPI_STATUS 303 AcpiExInsertIntoField ( 304 ACPI_OPERAND_OBJECT *ObjDesc, 305 void *Buffer, 306 UINT32 BufferLength); 307 308 ACPI_STATUS 309 AcpiExAccessRegion ( 310 ACPI_OPERAND_OBJECT *ObjDesc, 311 UINT32 FieldDatumByteOffset, 312 UINT64 *Value, 313 UINT32 ReadWrite); 314 315 316 /* 317 * exmisc - misc support routines 318 */ 319 ACPI_STATUS 320 AcpiExGetObjectReference ( 321 ACPI_OPERAND_OBJECT *ObjDesc, 322 ACPI_OPERAND_OBJECT **ReturnDesc, 323 ACPI_WALK_STATE *WalkState); 324 325 ACPI_STATUS 326 AcpiExConcatTemplate ( 327 ACPI_OPERAND_OBJECT *ObjDesc, 328 ACPI_OPERAND_OBJECT *ObjDesc2, 329 ACPI_OPERAND_OBJECT **ActualReturnDesc, 330 ACPI_WALK_STATE *WalkState); 331 332 ACPI_STATUS 333 AcpiExDoConcatenate ( 334 ACPI_OPERAND_OBJECT *ObjDesc, 335 ACPI_OPERAND_OBJECT *ObjDesc2, 336 ACPI_OPERAND_OBJECT **ActualReturnDesc, 337 ACPI_WALK_STATE *WalkState); 338 339 ACPI_STATUS 340 AcpiExDoLogicalNumericOp ( 341 UINT16 Opcode, 342 UINT64 Integer0, 343 UINT64 Integer1, 344 BOOLEAN *LogicalResult); 345 346 ACPI_STATUS 347 AcpiExDoLogicalOp ( 348 UINT16 Opcode, 349 ACPI_OPERAND_OBJECT *Operand0, 350 ACPI_OPERAND_OBJECT *Operand1, 351 BOOLEAN *LogicalResult); 352 353 UINT64 354 AcpiExDoMathOp ( 355 UINT16 Opcode, 356 UINT64 Operand0, 357 UINT64 Operand1); 358 359 ACPI_STATUS 360 AcpiExCreateMutex ( 361 ACPI_WALK_STATE *WalkState); 362 363 ACPI_STATUS 364 AcpiExCreateProcessor ( 365 ACPI_WALK_STATE *WalkState); 366 367 ACPI_STATUS 368 AcpiExCreatePowerResource ( 369 ACPI_WALK_STATE *WalkState); 370 371 ACPI_STATUS 372 AcpiExCreateRegion ( 373 UINT8 *AmlStart, 374 UINT32 AmlLength, 375 UINT8 RegionSpace, 376 ACPI_WALK_STATE *WalkState); 377 378 ACPI_STATUS 379 AcpiExCreateEvent ( 380 ACPI_WALK_STATE *WalkState); 381 382 ACPI_STATUS 383 AcpiExCreateAlias ( 384 ACPI_WALK_STATE *WalkState); 385 386 ACPI_STATUS 387 AcpiExCreateMethod ( 388 UINT8 *AmlStart, 389 UINT32 AmlLength, 390 ACPI_WALK_STATE *WalkState); 391 392 393 /* 394 * exconfig - dynamic table load/unload 395 */ 396 ACPI_STATUS 397 AcpiExLoadOp ( 398 ACPI_OPERAND_OBJECT *ObjDesc, 399 ACPI_OPERAND_OBJECT *Target, 400 ACPI_WALK_STATE *WalkState); 401 402 ACPI_STATUS 403 AcpiExLoadTableOp ( 404 ACPI_WALK_STATE *WalkState, 405 ACPI_OPERAND_OBJECT **ReturnDesc); 406 407 ACPI_STATUS 408 AcpiExUnloadTable ( 409 ACPI_OPERAND_OBJECT *DdbHandle); 410 411 412 /* 413 * exmutex - mutex support 414 */ 415 ACPI_STATUS 416 AcpiExAcquireMutex ( 417 ACPI_OPERAND_OBJECT *TimeDesc, 418 ACPI_OPERAND_OBJECT *ObjDesc, 419 ACPI_WALK_STATE *WalkState); 420 421 ACPI_STATUS 422 AcpiExAcquireMutexObject ( 423 UINT16 Timeout, 424 ACPI_OPERAND_OBJECT *ObjDesc, 425 ACPI_THREAD_ID ThreadId); 426 427 ACPI_STATUS 428 AcpiExReleaseMutex ( 429 ACPI_OPERAND_OBJECT *ObjDesc, 430 ACPI_WALK_STATE *WalkState); 431 432 ACPI_STATUS 433 AcpiExReleaseMutexObject ( 434 ACPI_OPERAND_OBJECT *ObjDesc); 435 436 void 437 AcpiExReleaseAllMutexes ( 438 ACPI_THREAD_STATE *Thread); 439 440 void 441 AcpiExUnlinkMutex ( 442 ACPI_OPERAND_OBJECT *ObjDesc); 443 444 445 /* 446 * exprep - ACPI AML execution - prep utilities 447 */ 448 ACPI_STATUS 449 AcpiExPrepCommonFieldObject ( 450 ACPI_OPERAND_OBJECT *ObjDesc, 451 UINT8 FieldFlags, 452 UINT8 FieldAttribute, 453 UINT32 FieldBitPosition, 454 UINT32 FieldBitLength); 455 456 ACPI_STATUS 457 AcpiExPrepFieldValue ( 458 ACPI_CREATE_FIELD_INFO *Info); 459 460 461 /* 462 * exsystem - Interface to OS services 463 */ 464 ACPI_STATUS 465 AcpiExSystemDoNotifyOp ( 466 ACPI_OPERAND_OBJECT *Value, 467 ACPI_OPERAND_OBJECT *ObjDesc); 468 469 ACPI_STATUS 470 AcpiExSystemDoSleep( 471 UINT64 Time); 472 473 ACPI_STATUS 474 AcpiExSystemDoStall ( 475 UINT32 Time); 476 477 ACPI_STATUS 478 AcpiExSystemSignalEvent( 479 ACPI_OPERAND_OBJECT *ObjDesc); 480 481 ACPI_STATUS 482 AcpiExSystemWaitEvent( 483 ACPI_OPERAND_OBJECT *Time, 484 ACPI_OPERAND_OBJECT *ObjDesc); 485 486 ACPI_STATUS 487 AcpiExSystemResetEvent( 488 ACPI_OPERAND_OBJECT *ObjDesc); 489 490 ACPI_STATUS 491 AcpiExSystemWaitSemaphore ( 492 ACPI_SEMAPHORE Semaphore, 493 UINT16 Timeout); 494 495 ACPI_STATUS 496 AcpiExSystemWaitMutex ( 497 ACPI_MUTEX Mutex, 498 UINT16 Timeout); 499 500 /* 501 * exoparg1 - ACPI AML execution, 1 operand 502 */ 503 ACPI_STATUS 504 AcpiExOpcode_0A_0T_1R ( 505 ACPI_WALK_STATE *WalkState); 506 507 ACPI_STATUS 508 AcpiExOpcode_1A_0T_0R ( 509 ACPI_WALK_STATE *WalkState); 510 511 ACPI_STATUS 512 AcpiExOpcode_1A_0T_1R ( 513 ACPI_WALK_STATE *WalkState); 514 515 ACPI_STATUS 516 AcpiExOpcode_1A_1T_1R ( 517 ACPI_WALK_STATE *WalkState); 518 519 ACPI_STATUS 520 AcpiExOpcode_1A_1T_0R ( 521 ACPI_WALK_STATE *WalkState); 522 523 /* 524 * exoparg2 - ACPI AML execution, 2 operands 525 */ 526 ACPI_STATUS 527 AcpiExOpcode_2A_0T_0R ( 528 ACPI_WALK_STATE *WalkState); 529 530 ACPI_STATUS 531 AcpiExOpcode_2A_0T_1R ( 532 ACPI_WALK_STATE *WalkState); 533 534 ACPI_STATUS 535 AcpiExOpcode_2A_1T_1R ( 536 ACPI_WALK_STATE *WalkState); 537 538 ACPI_STATUS 539 AcpiExOpcode_2A_2T_1R ( 540 ACPI_WALK_STATE *WalkState); 541 542 543 /* 544 * exoparg3 - ACPI AML execution, 3 operands 545 */ 546 ACPI_STATUS 547 AcpiExOpcode_3A_0T_0R ( 548 ACPI_WALK_STATE *WalkState); 549 550 ACPI_STATUS 551 AcpiExOpcode_3A_1T_1R ( 552 ACPI_WALK_STATE *WalkState); 553 554 555 /* 556 * exoparg6 - ACPI AML execution, 6 operands 557 */ 558 ACPI_STATUS 559 AcpiExOpcode_6A_0T_1R ( 560 ACPI_WALK_STATE *WalkState); 561 562 563 /* 564 * exresolv - Object resolution and get value functions 565 */ 566 ACPI_STATUS 567 AcpiExResolveToValue ( 568 ACPI_OPERAND_OBJECT **StackPtr, 569 ACPI_WALK_STATE *WalkState); 570 571 ACPI_STATUS 572 AcpiExResolveMultiple ( 573 ACPI_WALK_STATE *WalkState, 574 ACPI_OPERAND_OBJECT *Operand, 575 ACPI_OBJECT_TYPE *ReturnType, 576 ACPI_OPERAND_OBJECT **ReturnDesc); 577 578 579 /* 580 * exresnte - resolve namespace node 581 */ 582 ACPI_STATUS 583 AcpiExResolveNodeToValue ( 584 ACPI_NAMESPACE_NODE **StackPtr, 585 ACPI_WALK_STATE *WalkState); 586 587 588 /* 589 * exresop - resolve operand to value 590 */ 591 ACPI_STATUS 592 AcpiExResolveOperands ( 593 UINT16 Opcode, 594 ACPI_OPERAND_OBJECT **StackPtr, 595 ACPI_WALK_STATE *WalkState); 596 597 598 /* 599 * exdump - Interpreter debug output routines 600 */ 601 void 602 AcpiExDumpOperand ( 603 ACPI_OPERAND_OBJECT *ObjDesc, 604 UINT32 Depth); 605 606 void 607 AcpiExDumpOperands ( 608 ACPI_OPERAND_OBJECT **Operands, 609 const char *OpcodeName, 610 UINT32 NumOpcodes); 611 612 void 613 AcpiExDumpObjectDescriptor ( 614 ACPI_OPERAND_OBJECT *Object, 615 UINT32 Flags); 616 617 void 618 AcpiExDumpNamespaceNode ( 619 ACPI_NAMESPACE_NODE *Node, 620 UINT32 Flags); 621 622 623 /* 624 * exnames - AML namestring support 625 */ 626 ACPI_STATUS 627 AcpiExGetNameString ( 628 ACPI_OBJECT_TYPE DataType, 629 UINT8 *InAmlAddress, 630 char **OutNameString, 631 UINT32 *OutNameLength); 632 633 634 /* 635 * exstore - Object store support 636 */ 637 ACPI_STATUS 638 AcpiExStore ( 639 ACPI_OPERAND_OBJECT *ValDesc, 640 ACPI_OPERAND_OBJECT *DestDesc, 641 ACPI_WALK_STATE *WalkState); 642 643 ACPI_STATUS 644 AcpiExStoreObjectToNode ( 645 ACPI_OPERAND_OBJECT *SourceDesc, 646 ACPI_NAMESPACE_NODE *Node, 647 ACPI_WALK_STATE *WalkState, 648 UINT8 ImplicitConversion); 649 650 #define ACPI_IMPLICIT_CONVERSION TRUE 651 #define ACPI_NO_IMPLICIT_CONVERSION FALSE 652 653 654 /* 655 * exstoren - resolve/store object 656 */ 657 ACPI_STATUS 658 AcpiExResolveObject ( 659 ACPI_OPERAND_OBJECT **SourceDescPtr, 660 ACPI_OBJECT_TYPE TargetType, 661 ACPI_WALK_STATE *WalkState); 662 663 ACPI_STATUS 664 AcpiExStoreObjectToObject ( 665 ACPI_OPERAND_OBJECT *SourceDesc, 666 ACPI_OPERAND_OBJECT *DestDesc, 667 ACPI_OPERAND_OBJECT **NewDesc, 668 ACPI_WALK_STATE *WalkState); 669 670 671 /* 672 * exstorob - store object - buffer/string 673 */ 674 ACPI_STATUS 675 AcpiExStoreBufferToBuffer ( 676 ACPI_OPERAND_OBJECT *SourceDesc, 677 ACPI_OPERAND_OBJECT *TargetDesc); 678 679 ACPI_STATUS 680 AcpiExStoreStringToString ( 681 ACPI_OPERAND_OBJECT *SourceDesc, 682 ACPI_OPERAND_OBJECT *TargetDesc); 683 684 685 /* 686 * excopy - object copy 687 */ 688 ACPI_STATUS 689 AcpiExCopyIntegerToIndexField ( 690 ACPI_OPERAND_OBJECT *SourceDesc, 691 ACPI_OPERAND_OBJECT *TargetDesc); 692 693 ACPI_STATUS 694 AcpiExCopyIntegerToBankField ( 695 ACPI_OPERAND_OBJECT *SourceDesc, 696 ACPI_OPERAND_OBJECT *TargetDesc); 697 698 ACPI_STATUS 699 AcpiExCopyDataToNamedField ( 700 ACPI_OPERAND_OBJECT *SourceDesc, 701 ACPI_NAMESPACE_NODE *Node); 702 703 ACPI_STATUS 704 AcpiExCopyIntegerToBufferField ( 705 ACPI_OPERAND_OBJECT *SourceDesc, 706 ACPI_OPERAND_OBJECT *TargetDesc); 707 708 709 /* 710 * exutils - interpreter/scanner utilities 711 */ 712 void 713 AcpiExEnterInterpreter ( 714 void); 715 716 void 717 AcpiExExitInterpreter ( 718 void); 719 720 BOOLEAN 721 AcpiExTruncateFor32bitTable ( 722 ACPI_OPERAND_OBJECT *ObjDesc); 723 724 void 725 AcpiExAcquireGlobalLock ( 726 UINT32 Rule); 727 728 void 729 AcpiExReleaseGlobalLock ( 730 UINT32 Rule); 731 732 void 733 AcpiExEisaIdToString ( 734 char *Dest, 735 UINT64 CompressedId); 736 737 void 738 AcpiExIntegerToString ( 739 char *Dest, 740 UINT64 Value); 741 742 void 743 AcpiExPciClsToString ( 744 char *Dest, 745 UINT8 ClassCode[3]); 746 747 BOOLEAN 748 AcpiIsValidSpaceId ( 749 UINT8 SpaceId); 750 751 752 /* 753 * exregion - default OpRegion handlers 754 */ 755 ACPI_STATUS 756 AcpiExSystemMemorySpaceHandler ( 757 UINT32 Function, 758 ACPI_PHYSICAL_ADDRESS Address, 759 UINT32 BitWidth, 760 UINT64 *Value, 761 void *HandlerContext, 762 void *RegionContext); 763 764 ACPI_STATUS 765 AcpiExSystemIoSpaceHandler ( 766 UINT32 Function, 767 ACPI_PHYSICAL_ADDRESS Address, 768 UINT32 BitWidth, 769 UINT64 *Value, 770 void *HandlerContext, 771 void *RegionContext); 772 773 ACPI_STATUS 774 AcpiExPciConfigSpaceHandler ( 775 UINT32 Function, 776 ACPI_PHYSICAL_ADDRESS Address, 777 UINT32 BitWidth, 778 UINT64 *Value, 779 void *HandlerContext, 780 void *RegionContext); 781 782 ACPI_STATUS 783 AcpiExCmosSpaceHandler ( 784 UINT32 Function, 785 ACPI_PHYSICAL_ADDRESS Address, 786 UINT32 BitWidth, 787 UINT64 *Value, 788 void *HandlerContext, 789 void *RegionContext); 790 791 ACPI_STATUS 792 AcpiExPciBarSpaceHandler ( 793 UINT32 Function, 794 ACPI_PHYSICAL_ADDRESS Address, 795 UINT32 BitWidth, 796 UINT64 *Value, 797 void *HandlerContext, 798 void *RegionContext); 799 800 ACPI_STATUS 801 AcpiExEmbeddedControllerSpaceHandler ( 802 UINT32 Function, 803 ACPI_PHYSICAL_ADDRESS Address, 804 UINT32 BitWidth, 805 UINT64 *Value, 806 void *HandlerContext, 807 void *RegionContext); 808 809 ACPI_STATUS 810 AcpiExSmBusSpaceHandler ( 811 UINT32 Function, 812 ACPI_PHYSICAL_ADDRESS Address, 813 UINT32 BitWidth, 814 UINT64 *Value, 815 void *HandlerContext, 816 void *RegionContext); 817 818 819 ACPI_STATUS 820 AcpiExDataTableSpaceHandler ( 821 UINT32 Function, 822 ACPI_PHYSICAL_ADDRESS Address, 823 UINT32 BitWidth, 824 UINT64 *Value, 825 void *HandlerContext, 826 void *RegionContext); 827 828 #endif /* __INTERP_H__ */ 829