1 /****************************************************************************** 2 * 3 * Name: acinterp.h - Interpreter subcomponent prototypes and defines 4 * 5 *****************************************************************************/ 6 7 /* 8 * Copyright (C) 2000 - 2014, 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 __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 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 Flags); 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 147 /* 148 * exfield - ACPI AML (p-code) execution - field manipulation 149 */ 150 ACPI_STATUS 151 AcpiExCommonBufferSetup ( 152 ACPI_OPERAND_OBJECT *ObjDesc, 153 UINT32 BufferLength, 154 UINT32 *DatumCount); 155 156 ACPI_STATUS 157 AcpiExWriteWithUpdateRule ( 158 ACPI_OPERAND_OBJECT *ObjDesc, 159 UINT64 Mask, 160 UINT64 FieldValue, 161 UINT32 FieldDatumByteOffset); 162 163 void 164 AcpiExGetBufferDatum( 165 UINT64 *Datum, 166 void *Buffer, 167 UINT32 BufferLength, 168 UINT32 ByteGranularity, 169 UINT32 BufferOffset); 170 171 void 172 AcpiExSetBufferDatum ( 173 UINT64 MergedDatum, 174 void *Buffer, 175 UINT32 BufferLength, 176 UINT32 ByteGranularity, 177 UINT32 BufferOffset); 178 179 ACPI_STATUS 180 AcpiExReadDataFromField ( 181 ACPI_WALK_STATE *WalkState, 182 ACPI_OPERAND_OBJECT *ObjDesc, 183 ACPI_OPERAND_OBJECT **RetBufferDesc); 184 185 ACPI_STATUS 186 AcpiExWriteDataToField ( 187 ACPI_OPERAND_OBJECT *SourceDesc, 188 ACPI_OPERAND_OBJECT *ObjDesc, 189 ACPI_OPERAND_OBJECT **ResultDesc); 190 191 192 /* 193 * exfldio - low level field I/O 194 */ 195 ACPI_STATUS 196 AcpiExExtractFromField ( 197 ACPI_OPERAND_OBJECT *ObjDesc, 198 void *Buffer, 199 UINT32 BufferLength); 200 201 ACPI_STATUS 202 AcpiExInsertIntoField ( 203 ACPI_OPERAND_OBJECT *ObjDesc, 204 void *Buffer, 205 UINT32 BufferLength); 206 207 ACPI_STATUS 208 AcpiExAccessRegion ( 209 ACPI_OPERAND_OBJECT *ObjDesc, 210 UINT32 FieldDatumByteOffset, 211 UINT64 *Value, 212 UINT32 ReadWrite); 213 214 215 /* 216 * exmisc - misc support routines 217 */ 218 ACPI_STATUS 219 AcpiExGetObjectReference ( 220 ACPI_OPERAND_OBJECT *ObjDesc, 221 ACPI_OPERAND_OBJECT **ReturnDesc, 222 ACPI_WALK_STATE *WalkState); 223 224 ACPI_STATUS 225 AcpiExConcatTemplate ( 226 ACPI_OPERAND_OBJECT *ObjDesc, 227 ACPI_OPERAND_OBJECT *ObjDesc2, 228 ACPI_OPERAND_OBJECT **ActualReturnDesc, 229 ACPI_WALK_STATE *WalkState); 230 231 ACPI_STATUS 232 AcpiExDoConcatenate ( 233 ACPI_OPERAND_OBJECT *ObjDesc, 234 ACPI_OPERAND_OBJECT *ObjDesc2, 235 ACPI_OPERAND_OBJECT **ActualReturnDesc, 236 ACPI_WALK_STATE *WalkState); 237 238 ACPI_STATUS 239 AcpiExDoLogicalNumericOp ( 240 UINT16 Opcode, 241 UINT64 Integer0, 242 UINT64 Integer1, 243 BOOLEAN *LogicalResult); 244 245 ACPI_STATUS 246 AcpiExDoLogicalOp ( 247 UINT16 Opcode, 248 ACPI_OPERAND_OBJECT *Operand0, 249 ACPI_OPERAND_OBJECT *Operand1, 250 BOOLEAN *LogicalResult); 251 252 UINT64 253 AcpiExDoMathOp ( 254 UINT16 Opcode, 255 UINT64 Operand0, 256 UINT64 Operand1); 257 258 ACPI_STATUS 259 AcpiExCreateMutex ( 260 ACPI_WALK_STATE *WalkState); 261 262 ACPI_STATUS 263 AcpiExCreateProcessor ( 264 ACPI_WALK_STATE *WalkState); 265 266 ACPI_STATUS 267 AcpiExCreatePowerResource ( 268 ACPI_WALK_STATE *WalkState); 269 270 ACPI_STATUS 271 AcpiExCreateRegion ( 272 UINT8 *AmlStart, 273 UINT32 AmlLength, 274 UINT8 RegionSpace, 275 ACPI_WALK_STATE *WalkState); 276 277 ACPI_STATUS 278 AcpiExCreateEvent ( 279 ACPI_WALK_STATE *WalkState); 280 281 ACPI_STATUS 282 AcpiExCreateAlias ( 283 ACPI_WALK_STATE *WalkState); 284 285 ACPI_STATUS 286 AcpiExCreateMethod ( 287 UINT8 *AmlStart, 288 UINT32 AmlLength, 289 ACPI_WALK_STATE *WalkState); 290 291 292 /* 293 * exconfig - dynamic table load/unload 294 */ 295 ACPI_STATUS 296 AcpiExLoadOp ( 297 ACPI_OPERAND_OBJECT *ObjDesc, 298 ACPI_OPERAND_OBJECT *Target, 299 ACPI_WALK_STATE *WalkState); 300 301 ACPI_STATUS 302 AcpiExLoadTableOp ( 303 ACPI_WALK_STATE *WalkState, 304 ACPI_OPERAND_OBJECT **ReturnDesc); 305 306 ACPI_STATUS 307 AcpiExUnloadTable ( 308 ACPI_OPERAND_OBJECT *DdbHandle); 309 310 311 /* 312 * exmutex - mutex support 313 */ 314 ACPI_STATUS 315 AcpiExAcquireMutex ( 316 ACPI_OPERAND_OBJECT *TimeDesc, 317 ACPI_OPERAND_OBJECT *ObjDesc, 318 ACPI_WALK_STATE *WalkState); 319 320 ACPI_STATUS 321 AcpiExAcquireMutexObject ( 322 UINT16 Timeout, 323 ACPI_OPERAND_OBJECT *ObjDesc, 324 ACPI_THREAD_ID ThreadId); 325 326 ACPI_STATUS 327 AcpiExReleaseMutex ( 328 ACPI_OPERAND_OBJECT *ObjDesc, 329 ACPI_WALK_STATE *WalkState); 330 331 ACPI_STATUS 332 AcpiExReleaseMutexObject ( 333 ACPI_OPERAND_OBJECT *ObjDesc); 334 335 void 336 AcpiExReleaseAllMutexes ( 337 ACPI_THREAD_STATE *Thread); 338 339 void 340 AcpiExUnlinkMutex ( 341 ACPI_OPERAND_OBJECT *ObjDesc); 342 343 344 /* 345 * exprep - ACPI AML execution - prep utilities 346 */ 347 ACPI_STATUS 348 AcpiExPrepCommonFieldObject ( 349 ACPI_OPERAND_OBJECT *ObjDesc, 350 UINT8 FieldFlags, 351 UINT8 FieldAttribute, 352 UINT32 FieldBitPosition, 353 UINT32 FieldBitLength); 354 355 ACPI_STATUS 356 AcpiExPrepFieldValue ( 357 ACPI_CREATE_FIELD_INFO *Info); 358 359 360 /* 361 * exsystem - Interface to OS services 362 */ 363 ACPI_STATUS 364 AcpiExSystemDoNotifyOp ( 365 ACPI_OPERAND_OBJECT *Value, 366 ACPI_OPERAND_OBJECT *ObjDesc); 367 368 ACPI_STATUS 369 AcpiExSystemDoSleep( 370 UINT64 Time); 371 372 ACPI_STATUS 373 AcpiExSystemDoStall ( 374 UINT32 Time); 375 376 ACPI_STATUS 377 AcpiExSystemSignalEvent( 378 ACPI_OPERAND_OBJECT *ObjDesc); 379 380 ACPI_STATUS 381 AcpiExSystemWaitEvent( 382 ACPI_OPERAND_OBJECT *Time, 383 ACPI_OPERAND_OBJECT *ObjDesc); 384 385 ACPI_STATUS 386 AcpiExSystemResetEvent( 387 ACPI_OPERAND_OBJECT *ObjDesc); 388 389 ACPI_STATUS 390 AcpiExSystemWaitSemaphore ( 391 ACPI_SEMAPHORE Semaphore, 392 UINT16 Timeout); 393 394 ACPI_STATUS 395 AcpiExSystemWaitMutex ( 396 ACPI_MUTEX Mutex, 397 UINT16 Timeout); 398 399 /* 400 * exoparg1 - ACPI AML execution, 1 operand 401 */ 402 ACPI_STATUS 403 AcpiExOpcode_0A_0T_1R ( 404 ACPI_WALK_STATE *WalkState); 405 406 ACPI_STATUS 407 AcpiExOpcode_1A_0T_0R ( 408 ACPI_WALK_STATE *WalkState); 409 410 ACPI_STATUS 411 AcpiExOpcode_1A_0T_1R ( 412 ACPI_WALK_STATE *WalkState); 413 414 ACPI_STATUS 415 AcpiExOpcode_1A_1T_1R ( 416 ACPI_WALK_STATE *WalkState); 417 418 ACPI_STATUS 419 AcpiExOpcode_1A_1T_0R ( 420 ACPI_WALK_STATE *WalkState); 421 422 /* 423 * exoparg2 - ACPI AML execution, 2 operands 424 */ 425 ACPI_STATUS 426 AcpiExOpcode_2A_0T_0R ( 427 ACPI_WALK_STATE *WalkState); 428 429 ACPI_STATUS 430 AcpiExOpcode_2A_0T_1R ( 431 ACPI_WALK_STATE *WalkState); 432 433 ACPI_STATUS 434 AcpiExOpcode_2A_1T_1R ( 435 ACPI_WALK_STATE *WalkState); 436 437 ACPI_STATUS 438 AcpiExOpcode_2A_2T_1R ( 439 ACPI_WALK_STATE *WalkState); 440 441 442 /* 443 * exoparg3 - ACPI AML execution, 3 operands 444 */ 445 ACPI_STATUS 446 AcpiExOpcode_3A_0T_0R ( 447 ACPI_WALK_STATE *WalkState); 448 449 ACPI_STATUS 450 AcpiExOpcode_3A_1T_1R ( 451 ACPI_WALK_STATE *WalkState); 452 453 454 /* 455 * exoparg6 - ACPI AML execution, 6 operands 456 */ 457 ACPI_STATUS 458 AcpiExOpcode_6A_0T_1R ( 459 ACPI_WALK_STATE *WalkState); 460 461 462 /* 463 * exresolv - Object resolution and get value functions 464 */ 465 ACPI_STATUS 466 AcpiExResolveToValue ( 467 ACPI_OPERAND_OBJECT **StackPtr, 468 ACPI_WALK_STATE *WalkState); 469 470 ACPI_STATUS 471 AcpiExResolveMultiple ( 472 ACPI_WALK_STATE *WalkState, 473 ACPI_OPERAND_OBJECT *Operand, 474 ACPI_OBJECT_TYPE *ReturnType, 475 ACPI_OPERAND_OBJECT **ReturnDesc); 476 477 478 /* 479 * exresnte - resolve namespace node 480 */ 481 ACPI_STATUS 482 AcpiExResolveNodeToValue ( 483 ACPI_NAMESPACE_NODE **StackPtr, 484 ACPI_WALK_STATE *WalkState); 485 486 487 /* 488 * exresop - resolve operand to value 489 */ 490 ACPI_STATUS 491 AcpiExResolveOperands ( 492 UINT16 Opcode, 493 ACPI_OPERAND_OBJECT **StackPtr, 494 ACPI_WALK_STATE *WalkState); 495 496 497 /* 498 * exdump - Interpreter debug output routines 499 */ 500 void 501 AcpiExDumpOperand ( 502 ACPI_OPERAND_OBJECT *ObjDesc, 503 UINT32 Depth); 504 505 void 506 AcpiExDumpOperands ( 507 ACPI_OPERAND_OBJECT **Operands, 508 const char *OpcodeName, 509 UINT32 NumOpcodes); 510 511 void 512 AcpiExDumpObjectDescriptor ( 513 ACPI_OPERAND_OBJECT *Object, 514 UINT32 Flags); 515 516 void 517 AcpiExDumpNamespaceNode ( 518 ACPI_NAMESPACE_NODE *Node, 519 UINT32 Flags); 520 521 522 /* 523 * exnames - AML namestring support 524 */ 525 ACPI_STATUS 526 AcpiExGetNameString ( 527 ACPI_OBJECT_TYPE DataType, 528 UINT8 *InAmlAddress, 529 char **OutNameString, 530 UINT32 *OutNameLength); 531 532 533 /* 534 * exstore - Object store support 535 */ 536 ACPI_STATUS 537 AcpiExStore ( 538 ACPI_OPERAND_OBJECT *ValDesc, 539 ACPI_OPERAND_OBJECT *DestDesc, 540 ACPI_WALK_STATE *WalkState); 541 542 ACPI_STATUS 543 AcpiExStoreObjectToNode ( 544 ACPI_OPERAND_OBJECT *SourceDesc, 545 ACPI_NAMESPACE_NODE *Node, 546 ACPI_WALK_STATE *WalkState, 547 UINT8 ImplicitConversion); 548 549 #define ACPI_IMPLICIT_CONVERSION TRUE 550 #define ACPI_NO_IMPLICIT_CONVERSION FALSE 551 552 553 /* 554 * exstoren - resolve/store object 555 */ 556 ACPI_STATUS 557 AcpiExResolveObject ( 558 ACPI_OPERAND_OBJECT **SourceDescPtr, 559 ACPI_OBJECT_TYPE TargetType, 560 ACPI_WALK_STATE *WalkState); 561 562 ACPI_STATUS 563 AcpiExStoreObjectToObject ( 564 ACPI_OPERAND_OBJECT *SourceDesc, 565 ACPI_OPERAND_OBJECT *DestDesc, 566 ACPI_OPERAND_OBJECT **NewDesc, 567 ACPI_WALK_STATE *WalkState); 568 569 570 /* 571 * exstorob - store object - buffer/string 572 */ 573 ACPI_STATUS 574 AcpiExStoreBufferToBuffer ( 575 ACPI_OPERAND_OBJECT *SourceDesc, 576 ACPI_OPERAND_OBJECT *TargetDesc); 577 578 ACPI_STATUS 579 AcpiExStoreStringToString ( 580 ACPI_OPERAND_OBJECT *SourceDesc, 581 ACPI_OPERAND_OBJECT *TargetDesc); 582 583 584 /* 585 * excopy - object copy 586 */ 587 ACPI_STATUS 588 AcpiExCopyIntegerToIndexField ( 589 ACPI_OPERAND_OBJECT *SourceDesc, 590 ACPI_OPERAND_OBJECT *TargetDesc); 591 592 ACPI_STATUS 593 AcpiExCopyIntegerToBankField ( 594 ACPI_OPERAND_OBJECT *SourceDesc, 595 ACPI_OPERAND_OBJECT *TargetDesc); 596 597 ACPI_STATUS 598 AcpiExCopyDataToNamedField ( 599 ACPI_OPERAND_OBJECT *SourceDesc, 600 ACPI_NAMESPACE_NODE *Node); 601 602 ACPI_STATUS 603 AcpiExCopyIntegerToBufferField ( 604 ACPI_OPERAND_OBJECT *SourceDesc, 605 ACPI_OPERAND_OBJECT *TargetDesc); 606 607 608 /* 609 * exutils - interpreter/scanner utilities 610 */ 611 void 612 AcpiExEnterInterpreter ( 613 void); 614 615 void 616 AcpiExExitInterpreter ( 617 void); 618 619 BOOLEAN 620 AcpiExTruncateFor32bitTable ( 621 ACPI_OPERAND_OBJECT *ObjDesc); 622 623 void 624 AcpiExAcquireGlobalLock ( 625 UINT32 Rule); 626 627 void 628 AcpiExReleaseGlobalLock ( 629 UINT32 Rule); 630 631 void 632 AcpiExEisaIdToString ( 633 char *Dest, 634 UINT64 CompressedId); 635 636 void 637 AcpiExIntegerToString ( 638 char *Dest, 639 UINT64 Value); 640 641 BOOLEAN 642 AcpiIsValidSpaceId ( 643 UINT8 SpaceId); 644 645 646 /* 647 * exregion - default OpRegion handlers 648 */ 649 ACPI_STATUS 650 AcpiExSystemMemorySpaceHandler ( 651 UINT32 Function, 652 ACPI_PHYSICAL_ADDRESS Address, 653 UINT32 BitWidth, 654 UINT64 *Value, 655 void *HandlerContext, 656 void *RegionContext); 657 658 ACPI_STATUS 659 AcpiExSystemIoSpaceHandler ( 660 UINT32 Function, 661 ACPI_PHYSICAL_ADDRESS Address, 662 UINT32 BitWidth, 663 UINT64 *Value, 664 void *HandlerContext, 665 void *RegionContext); 666 667 ACPI_STATUS 668 AcpiExPciConfigSpaceHandler ( 669 UINT32 Function, 670 ACPI_PHYSICAL_ADDRESS Address, 671 UINT32 BitWidth, 672 UINT64 *Value, 673 void *HandlerContext, 674 void *RegionContext); 675 676 ACPI_STATUS 677 AcpiExCmosSpaceHandler ( 678 UINT32 Function, 679 ACPI_PHYSICAL_ADDRESS Address, 680 UINT32 BitWidth, 681 UINT64 *Value, 682 void *HandlerContext, 683 void *RegionContext); 684 685 ACPI_STATUS 686 AcpiExPciBarSpaceHandler ( 687 UINT32 Function, 688 ACPI_PHYSICAL_ADDRESS Address, 689 UINT32 BitWidth, 690 UINT64 *Value, 691 void *HandlerContext, 692 void *RegionContext); 693 694 ACPI_STATUS 695 AcpiExEmbeddedControllerSpaceHandler ( 696 UINT32 Function, 697 ACPI_PHYSICAL_ADDRESS Address, 698 UINT32 BitWidth, 699 UINT64 *Value, 700 void *HandlerContext, 701 void *RegionContext); 702 703 ACPI_STATUS 704 AcpiExSmBusSpaceHandler ( 705 UINT32 Function, 706 ACPI_PHYSICAL_ADDRESS Address, 707 UINT32 BitWidth, 708 UINT64 *Value, 709 void *HandlerContext, 710 void *RegionContext); 711 712 713 ACPI_STATUS 714 AcpiExDataTableSpaceHandler ( 715 UINT32 Function, 716 ACPI_PHYSICAL_ADDRESS Address, 717 UINT32 BitWidth, 718 UINT64 *Value, 719 void *HandlerContext, 720 void *RegionContext); 721 722 #endif /* __INTERP_H__ */ 723