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