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