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