1 /****************************************************************************** 2 * 3 * Name: acinterp.h - Interpreter subcomponent prototypes and defines 4 * 5 *****************************************************************************/ 6 7 /* 8 * Copyright (C) 2000 - 2025, 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 MERCHANTABILITY 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 __ACINTERP_H__ 45 #define __ACINTERP_H__ 46 47 48 #define ACPI_WALK_OPERANDS (&(WalkState->Operands [WalkState->NumOperands -1])) 49 50 /* Macros for tables used for debug output */ 51 52 #define ACPI_EXD_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_OPERAND_OBJECT,f) 53 #define ACPI_EXD_NSOFFSET(f) (UINT8) ACPI_OFFSET (ACPI_NAMESPACE_NODE,f) 54 #define ACPI_EXD_TABLE_SIZE(name) (sizeof(name) / sizeof (ACPI_EXDUMP_INFO)) 55 56 /* 57 * If possible, pack the following structures to byte alignment, since we 58 * don't care about performance for debug output. Two cases where we cannot 59 * pack the structures: 60 * 61 * 1) Hardware does not support misaligned memory transfers 62 * 2) Compiler does not support pointers within packed structures 63 */ 64 #if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED)) 65 #pragma pack(1) 66 #endif 67 68 typedef const struct acpi_exdump_info 69 { 70 UINT8 Opcode; 71 UINT8 Offset; 72 const char *Name; 73 74 } ACPI_EXDUMP_INFO; 75 76 /* Values for the Opcode field above */ 77 78 #define ACPI_EXD_INIT 0 79 #define ACPI_EXD_TYPE 1 80 #define ACPI_EXD_UINT8 2 81 #define ACPI_EXD_UINT16 3 82 #define ACPI_EXD_UINT32 4 83 #define ACPI_EXD_UINT64 5 84 #define ACPI_EXD_LITERAL 6 85 #define ACPI_EXD_POINTER 7 86 #define ACPI_EXD_ADDRESS 8 87 #define ACPI_EXD_STRING 9 88 #define ACPI_EXD_BUFFER 10 89 #define ACPI_EXD_PACKAGE 11 90 #define ACPI_EXD_FIELD 12 91 #define ACPI_EXD_REFERENCE 13 92 #define ACPI_EXD_LIST 14 /* Operand object list */ 93 #define ACPI_EXD_HDLR_LIST 15 /* Address Handler list */ 94 #define ACPI_EXD_RGN_LIST 16 /* Region list */ 95 #define ACPI_EXD_NODE 17 /* Namespace Node */ 96 97 /* restore default alignment */ 98 99 #pragma pack() 100 101 102 /* 103 * exconvrt - object conversion 104 */ 105 ACPI_STATUS 106 AcpiExConvertToInteger ( 107 ACPI_OPERAND_OBJECT *ObjDesc, 108 ACPI_OPERAND_OBJECT **ResultDesc, 109 UINT32 ImplicitConversion); 110 111 ACPI_STATUS 112 AcpiExConvertToBuffer ( 113 ACPI_OPERAND_OBJECT *ObjDesc, 114 ACPI_OPERAND_OBJECT **ResultDesc); 115 116 ACPI_STATUS 117 AcpiExConvertToString ( 118 ACPI_OPERAND_OBJECT *ObjDesc, 119 ACPI_OPERAND_OBJECT **ResultDesc, 120 UINT32 Type); 121 122 /* Types for ->String conversion */ 123 124 #define ACPI_EXPLICIT_BYTE_COPY 0x00000000 125 #define ACPI_EXPLICIT_CONVERT_HEX 0x00000001 126 #define ACPI_IMPLICIT_CONVERT_HEX 0x00000002 127 #define ACPI_EXPLICIT_CONVERT_DECIMAL 0x00000003 128 129 ACPI_STATUS 130 AcpiExConvertToTargetType ( 131 ACPI_OBJECT_TYPE DestinationType, 132 ACPI_OPERAND_OBJECT *SourceDesc, 133 ACPI_OPERAND_OBJECT **ResultDesc, 134 ACPI_WALK_STATE *WalkState); 135 136 137 /* 138 * exdebug - AML debug object 139 */ 140 void 141 AcpiExDoDebugObject ( 142 ACPI_OPERAND_OBJECT *SourceDesc, 143 UINT32 Level, 144 UINT32 Index); 145 146 void 147 AcpiExStartTraceMethod ( 148 ACPI_NAMESPACE_NODE *MethodNode, 149 ACPI_OPERAND_OBJECT *ObjDesc, 150 ACPI_WALK_STATE *WalkState); 151 152 void 153 AcpiExStopTraceMethod ( 154 ACPI_NAMESPACE_NODE *MethodNode, 155 ACPI_OPERAND_OBJECT *ObjDesc, 156 ACPI_WALK_STATE *WalkState); 157 158 void 159 AcpiExStartTraceOpcode ( 160 ACPI_PARSE_OBJECT *Op, 161 ACPI_WALK_STATE *WalkState); 162 163 void 164 AcpiExStopTraceOpcode ( 165 ACPI_PARSE_OBJECT *Op, 166 ACPI_WALK_STATE *WalkState); 167 168 void 169 AcpiExTracePoint ( 170 ACPI_TRACE_EVENT_TYPE Type, 171 BOOLEAN Begin, 172 UINT8 *Aml, 173 char *Pathname); 174 175 void 176 AcpiExTraceArgs( 177 ACPI_OPERAND_OBJECT **Params, 178 UINT32 Count); 179 180 /* 181 * exfield - ACPI AML (p-code) execution - field manipulation 182 */ 183 ACPI_STATUS 184 AcpiExGetProtocolBufferLength ( 185 UINT32 ProtocolId, 186 UINT32 *ReturnLength); 187 188 ACPI_STATUS 189 AcpiExCommonBufferSetup ( 190 ACPI_OPERAND_OBJECT *ObjDesc, 191 UINT32 BufferLength, 192 UINT32 *DatumCount); 193 194 ACPI_STATUS 195 AcpiExWriteWithUpdateRule ( 196 ACPI_OPERAND_OBJECT *ObjDesc, 197 UINT64 Mask, 198 UINT64 FieldValue, 199 UINT32 FieldDatumByteOffset); 200 201 void 202 AcpiExGetBufferDatum( 203 UINT64 *Datum, 204 void *Buffer, 205 UINT32 BufferLength, 206 UINT32 ByteGranularity, 207 UINT32 BufferOffset); 208 209 void 210 AcpiExSetBufferDatum ( 211 UINT64 MergedDatum, 212 void *Buffer, 213 UINT32 BufferLength, 214 UINT32 ByteGranularity, 215 UINT32 BufferOffset); 216 217 ACPI_STATUS 218 AcpiExReadDataFromField ( 219 ACPI_WALK_STATE *WalkState, 220 ACPI_OPERAND_OBJECT *ObjDesc, 221 ACPI_OPERAND_OBJECT **RetBufferDesc); 222 223 ACPI_STATUS 224 AcpiExWriteDataToField ( 225 ACPI_OPERAND_OBJECT *SourceDesc, 226 ACPI_OPERAND_OBJECT *ObjDesc, 227 ACPI_OPERAND_OBJECT **ResultDesc); 228 229 230 /* 231 * exfldio - low level field I/O 232 */ 233 ACPI_STATUS 234 AcpiExExtractFromField ( 235 ACPI_OPERAND_OBJECT *ObjDesc, 236 void *Buffer, 237 UINT32 BufferLength); 238 239 ACPI_STATUS 240 AcpiExInsertIntoField ( 241 ACPI_OPERAND_OBJECT *ObjDesc, 242 void *Buffer, 243 UINT32 BufferLength); 244 245 ACPI_STATUS 246 AcpiExAccessRegion ( 247 ACPI_OPERAND_OBJECT *ObjDesc, 248 UINT32 FieldDatumByteOffset, 249 UINT64 *Value, 250 UINT32 ReadWrite); 251 252 253 /* 254 * exmisc - misc support routines 255 */ 256 ACPI_STATUS 257 AcpiExGetObjectReference ( 258 ACPI_OPERAND_OBJECT *ObjDesc, 259 ACPI_OPERAND_OBJECT **ReturnDesc, 260 ACPI_WALK_STATE *WalkState); 261 262 ACPI_STATUS 263 AcpiExConcatTemplate ( 264 ACPI_OPERAND_OBJECT *ObjDesc, 265 ACPI_OPERAND_OBJECT *ObjDesc2, 266 ACPI_OPERAND_OBJECT **ActualReturnDesc, 267 ACPI_WALK_STATE *WalkState); 268 269 ACPI_STATUS 270 AcpiExDoConcatenate ( 271 ACPI_OPERAND_OBJECT *ObjDesc, 272 ACPI_OPERAND_OBJECT *ObjDesc2, 273 ACPI_OPERAND_OBJECT **ActualReturnDesc, 274 ACPI_WALK_STATE *WalkState); 275 276 ACPI_STATUS 277 AcpiExDoLogicalNumericOp ( 278 UINT16 Opcode, 279 UINT64 Integer0, 280 UINT64 Integer1, 281 BOOLEAN *LogicalResult); 282 283 ACPI_STATUS 284 AcpiExDoLogicalOp ( 285 UINT16 Opcode, 286 ACPI_OPERAND_OBJECT *Operand0, 287 ACPI_OPERAND_OBJECT *Operand1, 288 BOOLEAN *LogicalResult); 289 290 UINT64 291 AcpiExDoMathOp ( 292 UINT16 Opcode, 293 UINT64 Operand0, 294 UINT64 Operand1); 295 296 ACPI_STATUS 297 AcpiExCreateMutex ( 298 ACPI_WALK_STATE *WalkState); 299 300 ACPI_STATUS 301 AcpiExCreateProcessor ( 302 ACPI_WALK_STATE *WalkState); 303 304 ACPI_STATUS 305 AcpiExCreatePowerResource ( 306 ACPI_WALK_STATE *WalkState); 307 308 ACPI_STATUS 309 AcpiExCreateRegion ( 310 UINT8 *AmlStart, 311 UINT32 AmlLength, 312 UINT8 RegionSpace, 313 ACPI_WALK_STATE *WalkState); 314 315 ACPI_STATUS 316 AcpiExCreateEvent ( 317 ACPI_WALK_STATE *WalkState); 318 319 ACPI_STATUS 320 AcpiExCreateAlias ( 321 ACPI_WALK_STATE *WalkState); 322 323 ACPI_STATUS 324 AcpiExCreateMethod ( 325 UINT8 *AmlStart, 326 UINT32 AmlLength, 327 ACPI_WALK_STATE *WalkState); 328 329 330 /* 331 * exconfig - dynamic table load/unload 332 */ 333 ACPI_STATUS 334 AcpiExLoadOp ( 335 ACPI_OPERAND_OBJECT *ObjDesc, 336 ACPI_OPERAND_OBJECT *Target, 337 ACPI_WALK_STATE *WalkState); 338 339 ACPI_STATUS 340 AcpiExLoadTableOp ( 341 ACPI_WALK_STATE *WalkState, 342 ACPI_OPERAND_OBJECT **ReturnDesc); 343 344 ACPI_STATUS 345 AcpiExUnloadTable ( 346 ACPI_OPERAND_OBJECT *DdbHandle); 347 348 349 /* 350 * exmutex - mutex support 351 */ 352 ACPI_STATUS 353 AcpiExAcquireMutex ( 354 ACPI_OPERAND_OBJECT *TimeDesc, 355 ACPI_OPERAND_OBJECT *ObjDesc, 356 ACPI_WALK_STATE *WalkState); 357 358 ACPI_STATUS 359 AcpiExAcquireMutexObject ( 360 UINT16 Timeout, 361 ACPI_OPERAND_OBJECT *ObjDesc, 362 ACPI_THREAD_ID ThreadId); 363 364 ACPI_STATUS 365 AcpiExReleaseMutex ( 366 ACPI_OPERAND_OBJECT *ObjDesc, 367 ACPI_WALK_STATE *WalkState); 368 369 ACPI_STATUS 370 AcpiExReleaseMutexObject ( 371 ACPI_OPERAND_OBJECT *ObjDesc); 372 373 void 374 AcpiExReleaseAllMutexes ( 375 ACPI_THREAD_STATE *Thread); 376 377 void 378 AcpiExUnlinkMutex ( 379 ACPI_OPERAND_OBJECT *ObjDesc); 380 381 382 /* 383 * exprep - ACPI AML execution - prep utilities 384 */ 385 ACPI_STATUS 386 AcpiExPrepCommonFieldObject ( 387 ACPI_OPERAND_OBJECT *ObjDesc, 388 UINT8 FieldFlags, 389 UINT8 FieldAttribute, 390 UINT32 FieldBitPosition, 391 UINT32 FieldBitLength); 392 393 ACPI_STATUS 394 AcpiExPrepFieldValue ( 395 ACPI_CREATE_FIELD_INFO *Info); 396 397 398 /* 399 * exserial - FieldUnit support for serial address spaces 400 */ 401 ACPI_STATUS 402 AcpiExReadSerialBus ( 403 ACPI_OPERAND_OBJECT *ObjDesc, 404 ACPI_OPERAND_OBJECT **ReturnBuffer); 405 406 ACPI_STATUS 407 AcpiExWriteSerialBus ( 408 ACPI_OPERAND_OBJECT *SourceDesc, 409 ACPI_OPERAND_OBJECT *ObjDesc, 410 ACPI_OPERAND_OBJECT **ReturnBuffer); 411 412 ACPI_STATUS 413 AcpiExReadGpio ( 414 ACPI_OPERAND_OBJECT *ObjDesc, 415 void *Buffer); 416 417 ACPI_STATUS 418 AcpiExWriteGpio ( 419 ACPI_OPERAND_OBJECT *SourceDesc, 420 ACPI_OPERAND_OBJECT *ObjDesc, 421 ACPI_OPERAND_OBJECT **ReturnBuffer); 422 423 424 /* 425 * exsystem - Interface to OS services 426 */ 427 ACPI_STATUS 428 AcpiExSystemDoNotifyOp ( 429 ACPI_OPERAND_OBJECT *Value, 430 ACPI_OPERAND_OBJECT *ObjDesc); 431 432 ACPI_STATUS 433 AcpiExSystemDoSleep( 434 UINT64 Time); 435 436 ACPI_STATUS 437 AcpiExSystemDoStall ( 438 UINT32 Time); 439 440 ACPI_STATUS 441 AcpiExSystemSignalEvent( 442 ACPI_OPERAND_OBJECT *ObjDesc); 443 444 ACPI_STATUS 445 AcpiExSystemWaitEvent( 446 ACPI_OPERAND_OBJECT *Time, 447 ACPI_OPERAND_OBJECT *ObjDesc); 448 449 ACPI_STATUS 450 AcpiExSystemResetEvent( 451 ACPI_OPERAND_OBJECT *ObjDesc); 452 453 ACPI_STATUS 454 AcpiExSystemWaitSemaphore ( 455 ACPI_SEMAPHORE Semaphore, 456 UINT16 Timeout); 457 458 ACPI_STATUS 459 AcpiExSystemWaitMutex ( 460 ACPI_MUTEX Mutex, 461 UINT16 Timeout); 462 463 /* 464 * exoparg1 - ACPI AML execution, 1 operand 465 */ 466 ACPI_STATUS 467 AcpiExOpcode_0A_0T_1R ( 468 ACPI_WALK_STATE *WalkState); 469 470 ACPI_STATUS 471 AcpiExOpcode_1A_0T_0R ( 472 ACPI_WALK_STATE *WalkState); 473 474 ACPI_STATUS 475 AcpiExOpcode_1A_0T_1R ( 476 ACPI_WALK_STATE *WalkState); 477 478 ACPI_STATUS 479 AcpiExOpcode_1A_1T_1R ( 480 ACPI_WALK_STATE *WalkState); 481 482 ACPI_STATUS 483 AcpiExOpcode_1A_1T_0R ( 484 ACPI_WALK_STATE *WalkState); 485 486 /* 487 * exoparg2 - ACPI AML execution, 2 operands 488 */ 489 ACPI_STATUS 490 AcpiExOpcode_2A_0T_0R ( 491 ACPI_WALK_STATE *WalkState); 492 493 ACPI_STATUS 494 AcpiExOpcode_2A_0T_1R ( 495 ACPI_WALK_STATE *WalkState); 496 497 ACPI_STATUS 498 AcpiExOpcode_2A_1T_1R ( 499 ACPI_WALK_STATE *WalkState); 500 501 ACPI_STATUS 502 AcpiExOpcode_2A_2T_1R ( 503 ACPI_WALK_STATE *WalkState); 504 505 506 /* 507 * exoparg3 - ACPI AML execution, 3 operands 508 */ 509 ACPI_STATUS 510 AcpiExOpcode_3A_0T_0R ( 511 ACPI_WALK_STATE *WalkState); 512 513 ACPI_STATUS 514 AcpiExOpcode_3A_1T_1R ( 515 ACPI_WALK_STATE *WalkState); 516 517 518 /* 519 * exoparg6 - ACPI AML execution, 6 operands 520 */ 521 ACPI_STATUS 522 AcpiExOpcode_6A_0T_1R ( 523 ACPI_WALK_STATE *WalkState); 524 525 526 /* 527 * exresolv - Object resolution and get value functions 528 */ 529 ACPI_STATUS 530 AcpiExResolveToValue ( 531 ACPI_OPERAND_OBJECT **StackPtr, 532 ACPI_WALK_STATE *WalkState); 533 534 ACPI_STATUS 535 AcpiExResolveMultiple ( 536 ACPI_WALK_STATE *WalkState, 537 ACPI_OPERAND_OBJECT *Operand, 538 ACPI_OBJECT_TYPE *ReturnType, 539 ACPI_OPERAND_OBJECT **ReturnDesc); 540 541 542 /* 543 * exresnte - resolve namespace node 544 */ 545 ACPI_STATUS 546 AcpiExResolveNodeToValue ( 547 ACPI_NAMESPACE_NODE **StackPtr, 548 ACPI_WALK_STATE *WalkState); 549 550 551 /* 552 * exresop - resolve operand to value 553 */ 554 ACPI_STATUS 555 AcpiExResolveOperands ( 556 UINT16 Opcode, 557 ACPI_OPERAND_OBJECT **StackPtr, 558 ACPI_WALK_STATE *WalkState); 559 560 561 /* 562 * exdump - Interpreter debug output routines 563 */ 564 void 565 AcpiExDumpOperand ( 566 ACPI_OPERAND_OBJECT *ObjDesc, 567 UINT32 Depth); 568 569 void 570 AcpiExDumpOperands ( 571 ACPI_OPERAND_OBJECT **Operands, 572 const char *OpcodeName, 573 UINT32 NumOpcodes); 574 575 void 576 AcpiExDumpObjectDescriptor ( 577 ACPI_OPERAND_OBJECT *Object, 578 UINT32 Flags); 579 580 void 581 AcpiExDumpNamespaceNode ( 582 ACPI_NAMESPACE_NODE *Node, 583 UINT32 Flags); 584 585 586 /* 587 * exnames - AML namestring support 588 */ 589 ACPI_STATUS 590 AcpiExGetNameString ( 591 ACPI_OBJECT_TYPE DataType, 592 UINT8 *InAmlAddress, 593 char **OutNameString, 594 UINT32 *OutNameLength); 595 596 597 /* 598 * exstore - Object store support 599 */ 600 ACPI_STATUS 601 AcpiExStore ( 602 ACPI_OPERAND_OBJECT *ValDesc, 603 ACPI_OPERAND_OBJECT *DestDesc, 604 ACPI_WALK_STATE *WalkState); 605 606 ACPI_STATUS 607 AcpiExStoreObjectToNode ( 608 ACPI_OPERAND_OBJECT *SourceDesc, 609 ACPI_NAMESPACE_NODE *Node, 610 ACPI_WALK_STATE *WalkState, 611 UINT8 ImplicitConversion); 612 613 614 /* 615 * exstoren - resolve/store object 616 */ 617 ACPI_STATUS 618 AcpiExResolveObject ( 619 ACPI_OPERAND_OBJECT **SourceDescPtr, 620 ACPI_OBJECT_TYPE TargetType, 621 ACPI_WALK_STATE *WalkState); 622 623 ACPI_STATUS 624 AcpiExStoreObjectToObject ( 625 ACPI_OPERAND_OBJECT *SourceDesc, 626 ACPI_OPERAND_OBJECT *DestDesc, 627 ACPI_OPERAND_OBJECT **NewDesc, 628 ACPI_WALK_STATE *WalkState); 629 630 631 /* 632 * exstorob - store object - buffer/string 633 */ 634 ACPI_STATUS 635 AcpiExStoreBufferToBuffer ( 636 ACPI_OPERAND_OBJECT *SourceDesc, 637 ACPI_OPERAND_OBJECT *TargetDesc); 638 639 ACPI_STATUS 640 AcpiExStoreStringToString ( 641 ACPI_OPERAND_OBJECT *SourceDesc, 642 ACPI_OPERAND_OBJECT *TargetDesc); 643 644 645 /* 646 * excopy - object copy 647 */ 648 ACPI_STATUS 649 AcpiExCopyIntegerToIndexField ( 650 ACPI_OPERAND_OBJECT *SourceDesc, 651 ACPI_OPERAND_OBJECT *TargetDesc); 652 653 ACPI_STATUS 654 AcpiExCopyIntegerToBankField ( 655 ACPI_OPERAND_OBJECT *SourceDesc, 656 ACPI_OPERAND_OBJECT *TargetDesc); 657 658 ACPI_STATUS 659 AcpiExCopyDataToNamedField ( 660 ACPI_OPERAND_OBJECT *SourceDesc, 661 ACPI_NAMESPACE_NODE *Node); 662 663 ACPI_STATUS 664 AcpiExCopyIntegerToBufferField ( 665 ACPI_OPERAND_OBJECT *SourceDesc, 666 ACPI_OPERAND_OBJECT *TargetDesc); 667 668 669 /* 670 * exutils - interpreter/scanner utilities 671 */ 672 void 673 AcpiExEnterInterpreter ( 674 void); 675 676 void 677 AcpiExExitInterpreter ( 678 void); 679 680 BOOLEAN 681 AcpiExTruncateFor32bitTable ( 682 ACPI_OPERAND_OBJECT *ObjDesc); 683 684 void 685 AcpiExAcquireGlobalLock ( 686 UINT32 Rule); 687 688 void 689 AcpiExReleaseGlobalLock ( 690 UINT32 Rule); 691 692 void 693 AcpiExEisaIdToString ( 694 char *Dest, 695 UINT64 CompressedId); 696 697 void 698 AcpiExIntegerToString ( 699 char *Dest, 700 UINT64 Value); 701 702 void 703 AcpiExPciClsToString ( 704 char *Dest, 705 UINT8 ClassCode[3]); 706 707 BOOLEAN 708 AcpiIsValidSpaceId ( 709 UINT8 SpaceId); 710 711 712 /* 713 * exregion - default OpRegion handlers 714 */ 715 ACPI_STATUS 716 AcpiExSystemMemorySpaceHandler ( 717 UINT32 Function, 718 ACPI_PHYSICAL_ADDRESS Address, 719 UINT32 BitWidth, 720 UINT64 *Value, 721 void *HandlerContext, 722 void *RegionContext); 723 724 ACPI_STATUS 725 AcpiExSystemIoSpaceHandler ( 726 UINT32 Function, 727 ACPI_PHYSICAL_ADDRESS Address, 728 UINT32 BitWidth, 729 UINT64 *Value, 730 void *HandlerContext, 731 void *RegionContext); 732 733 ACPI_STATUS 734 AcpiExPciConfigSpaceHandler ( 735 UINT32 Function, 736 ACPI_PHYSICAL_ADDRESS Address, 737 UINT32 BitWidth, 738 UINT64 *Value, 739 void *HandlerContext, 740 void *RegionContext); 741 742 ACPI_STATUS 743 AcpiExCmosSpaceHandler ( 744 UINT32 Function, 745 ACPI_PHYSICAL_ADDRESS Address, 746 UINT32 BitWidth, 747 UINT64 *Value, 748 void *HandlerContext, 749 void *RegionContext); 750 751 ACPI_STATUS 752 AcpiExPciBarSpaceHandler ( 753 UINT32 Function, 754 ACPI_PHYSICAL_ADDRESS Address, 755 UINT32 BitWidth, 756 UINT64 *Value, 757 void *HandlerContext, 758 void *RegionContext); 759 760 ACPI_STATUS 761 AcpiExEmbeddedControllerSpaceHandler ( 762 UINT32 Function, 763 ACPI_PHYSICAL_ADDRESS Address, 764 UINT32 BitWidth, 765 UINT64 *Value, 766 void *HandlerContext, 767 void *RegionContext); 768 769 ACPI_STATUS 770 AcpiExSmBusSpaceHandler ( 771 UINT32 Function, 772 ACPI_PHYSICAL_ADDRESS Address, 773 UINT32 BitWidth, 774 UINT64 *Value, 775 void *HandlerContext, 776 void *RegionContext); 777 778 779 ACPI_STATUS 780 AcpiExDataTableSpaceHandler ( 781 UINT32 Function, 782 ACPI_PHYSICAL_ADDRESS Address, 783 UINT32 BitWidth, 784 UINT64 *Value, 785 void *HandlerContext, 786 void *RegionContext); 787 788 #endif /* __INTERP_H__ */ 789