1 /****************************************************************************** 2 * 3 * Name: acpixf.h - External interfaces to the ACPI subsystem 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 __ACXFACE_H__ 45 #define __ACXFACE_H__ 46 47 /* Current ACPICA subsystem version in YYYYMMDD format */ 48 49 #define ACPI_CA_VERSION 0x20140424 50 51 #include "acconfig.h" 52 #include "actypes.h" 53 #include "actbl.h" 54 #include "acbuffer.h" 55 56 57 /***************************************************************************** 58 * 59 * Macros used for ACPICA globals and configuration 60 * 61 ****************************************************************************/ 62 63 /* 64 * Ensure that global variables are defined and initialized only once. 65 * 66 * The use of these macros allows for a single list of globals (here) 67 * in order to simplify maintenance of the code. 68 */ 69 #ifdef DEFINE_ACPI_GLOBALS 70 #define ACPI_GLOBAL(type,name) \ 71 extern type name; \ 72 type name 73 74 #define ACPI_INIT_GLOBAL(type,name,value) \ 75 type name=value 76 77 #else 78 #ifndef ACPI_GLOBAL 79 #define ACPI_GLOBAL(type,name) \ 80 extern type name 81 #endif 82 83 #ifndef ACPI_INIT_GLOBAL 84 #define ACPI_INIT_GLOBAL(type,name,value) \ 85 extern type name 86 #endif 87 #endif 88 89 /* 90 * These macros configure the various ACPICA interfaces. They are 91 * useful for generating stub inline functions for features that are 92 * configured out of the current kernel or ACPICA application. 93 */ 94 #ifndef ACPI_EXTERNAL_RETURN_STATUS 95 #define ACPI_EXTERNAL_RETURN_STATUS(Prototype) \ 96 Prototype; 97 #endif 98 99 #ifndef ACPI_EXTERNAL_RETURN_OK 100 #define ACPI_EXTERNAL_RETURN_OK(Prototype) \ 101 Prototype; 102 #endif 103 104 #ifndef ACPI_EXTERNAL_RETURN_VOID 105 #define ACPI_EXTERNAL_RETURN_VOID(Prototype) \ 106 Prototype; 107 #endif 108 109 #ifndef ACPI_EXTERNAL_RETURN_UINT32 110 #define ACPI_EXTERNAL_RETURN_UINT32(Prototype) \ 111 Prototype; 112 #endif 113 114 #ifndef ACPI_EXTERNAL_RETURN_PTR 115 #define ACPI_EXTERNAL_RETURN_PTR(Prototype) \ 116 Prototype; 117 #endif 118 119 120 /***************************************************************************** 121 * 122 * Public globals and runtime configuration options 123 * 124 ****************************************************************************/ 125 126 /* 127 * Enable "slack mode" of the AML interpreter? Default is FALSE, and the 128 * interpreter strictly follows the ACPI specification. Setting to TRUE 129 * allows the interpreter to ignore certain errors and/or bad AML constructs. 130 * 131 * Currently, these features are enabled by this flag: 132 * 133 * 1) Allow "implicit return" of last value in a control method 134 * 2) Allow access beyond the end of an operation region 135 * 3) Allow access to uninitialized locals/args (auto-init to integer 0) 136 * 4) Allow ANY object type to be a source operand for the Store() operator 137 * 5) Allow unresolved references (invalid target name) in package objects 138 * 6) Enable warning messages for behavior that is not ACPI spec compliant 139 */ 140 ACPI_INIT_GLOBAL (UINT8, AcpiGbl_EnableInterpreterSlack, FALSE); 141 142 /* 143 * Automatically serialize all methods that create named objects? Default 144 * is TRUE, meaning that all NonSerialized methods are scanned once at 145 * table load time to determine those that create named objects. Methods 146 * that create named objects are marked Serialized in order to prevent 147 * possible run-time problems if they are entered by more than one thread. 148 */ 149 ACPI_INIT_GLOBAL (UINT8, AcpiGbl_AutoSerializeMethods, TRUE); 150 151 /* 152 * Create the predefined _OSI method in the namespace? Default is TRUE 153 * because ACPICA is fully compatible with other ACPI implementations. 154 * Changing this will revert ACPICA (and machine ASL) to pre-OSI behavior. 155 */ 156 ACPI_INIT_GLOBAL (UINT8, AcpiGbl_CreateOsiMethod, TRUE); 157 158 /* 159 * Optionally use default values for the ACPI register widths. Set this to 160 * TRUE to use the defaults, if an FADT contains incorrect widths/lengths. 161 */ 162 ACPI_INIT_GLOBAL (UINT8, AcpiGbl_UseDefaultRegisterWidths, TRUE); 163 164 /* 165 * Optionally enable output from the AML Debug Object. 166 */ 167 ACPI_INIT_GLOBAL (UINT8, AcpiGbl_EnableAmlDebugObject, FALSE); 168 169 /* 170 * Optionally copy the entire DSDT to local memory (instead of simply 171 * mapping it.) There are some BIOSs that corrupt or replace the original 172 * DSDT, creating the need for this option. Default is FALSE, do not copy 173 * the DSDT. 174 */ 175 ACPI_INIT_GLOBAL (UINT8, AcpiGbl_CopyDsdtLocally, FALSE); 176 177 /* 178 * Optionally ignore an XSDT if present and use the RSDT instead. 179 * Although the ACPI specification requires that an XSDT be used instead 180 * of the RSDT, the XSDT has been found to be corrupt or ill-formed on 181 * some machines. Default behavior is to use the XSDT if present. 182 */ 183 ACPI_INIT_GLOBAL (UINT8, AcpiGbl_DoNotUseXsdt, FALSE); 184 185 /* 186 * Optionally use 32-bit FADT addresses if and when there is a conflict 187 * (address mismatch) between the 32-bit and 64-bit versions of the 188 * address. Although ACPICA adheres to the ACPI specification which 189 * requires the use of the corresponding 64-bit address if it is non-zero, 190 * some machines have been found to have a corrupted non-zero 64-bit 191 * address. Default is FALSE, do not favor the 32-bit addresses. 192 */ 193 ACPI_INIT_GLOBAL (UINT8, AcpiGbl_Use32BitFadtAddresses, FALSE); 194 195 /* 196 * Optionally truncate I/O addresses to 16 bits. Provides compatibility 197 * with other ACPI implementations. NOTE: During ACPICA initialization, 198 * this value is set to TRUE if any Windows OSI strings have been 199 * requested by the BIOS. 200 */ 201 ACPI_INIT_GLOBAL (UINT8, AcpiGbl_TruncateIoAddresses, FALSE); 202 203 /* 204 * Disable runtime checking and repair of values returned by control methods. 205 * Use only if the repair is causing a problem on a particular machine. 206 */ 207 ACPI_INIT_GLOBAL (UINT8, AcpiGbl_DisableAutoRepair, FALSE); 208 209 /* 210 * Optionally do not install any SSDTs from the RSDT/XSDT during initialization. 211 * This can be useful for debugging ACPI problems on some machines. 212 */ 213 ACPI_INIT_GLOBAL (UINT8, AcpiGbl_DisableSsdtTableInstall, FALSE); 214 215 /* 216 * We keep track of the latest version of Windows that has been requested by 217 * the BIOS. ACPI 5.0. 218 */ 219 ACPI_INIT_GLOBAL (UINT8, AcpiGbl_OsiData, 0); 220 221 /* 222 * ACPI 5.0 introduces the concept of a "reduced hardware platform", meaning 223 * that the ACPI hardware is no longer required. A flag in the FADT indicates 224 * a reduced HW machine, and that flag is duplicated here for convenience. 225 */ 226 ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_ReducedHardware, FALSE); 227 228 /* 229 * This mechanism is used to trace a specified AML method. The method is 230 * traced each time it is executed. 231 */ 232 ACPI_INIT_GLOBAL (UINT32, AcpiGbl_TraceFlags, 0); 233 ACPI_INIT_GLOBAL (ACPI_NAME, AcpiGbl_TraceMethodName, 0); 234 235 /* 236 * Runtime configuration of debug output control masks. We want the debug 237 * switches statically initialized so they are already set when the debugger 238 * is entered. 239 */ 240 #ifdef ACPI_DEBUG_OUTPUT 241 ACPI_INIT_GLOBAL (UINT32, AcpiDbgLevel, ACPI_DEBUG_DEFAULT); 242 #else 243 ACPI_INIT_GLOBAL (UINT32, AcpiDbgLevel, ACPI_NORMAL_DEFAULT); 244 #endif 245 ACPI_INIT_GLOBAL (UINT32, AcpiDbgLayer, ACPI_COMPONENT_DEFAULT); 246 247 /* 248 * Other miscellaneous globals 249 */ 250 ACPI_GLOBAL (ACPI_TABLE_FADT, AcpiGbl_FADT); 251 ACPI_GLOBAL (UINT32, AcpiCurrentGpeCount); 252 ACPI_GLOBAL (BOOLEAN, AcpiGbl_SystemAwakeAndRunning); 253 254 255 /***************************************************************************** 256 * 257 * ACPICA public interface configuration. 258 * 259 * Interfaces that are configured out of the ACPICA build are replaced 260 * by inlined stubs by default. 261 * 262 ****************************************************************************/ 263 264 /* 265 * Hardware-reduced prototypes (default: Not hardware reduced). 266 * 267 * All ACPICA hardware-related interfaces that use these macros will be 268 * configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag 269 * is set to TRUE. 270 * 271 * Note: This static build option for reduced hardware is intended to 272 * reduce ACPICA code size if desired or necessary. However, even if this 273 * option is not specified, the runtime behavior of ACPICA is dependent 274 * on the actual FADT reduced hardware flag (HW_REDUCED_ACPI). If set, 275 * the flag will enable similar behavior -- ACPICA will not attempt 276 * to access any ACPI-relate hardware (SCI, GPEs, Fixed Events, etc.) 277 */ 278 #if (!ACPI_REDUCED_HARDWARE) 279 #define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \ 280 ACPI_EXTERNAL_RETURN_STATUS(Prototype) 281 282 #define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \ 283 ACPI_EXTERNAL_RETURN_OK(Prototype) 284 285 #define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \ 286 ACPI_EXTERNAL_RETURN_VOID(Prototype) 287 288 #else 289 #define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \ 290 static ACPI_INLINE Prototype {return(AE_NOT_CONFIGURED);} 291 292 #define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \ 293 static ACPI_INLINE Prototype {return(AE_OK);} 294 295 #define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \ 296 static ACPI_INLINE Prototype {return;} 297 298 #endif /* !ACPI_REDUCED_HARDWARE */ 299 300 301 /* 302 * Error message prototypes (default: error messages enabled). 303 * 304 * All interfaces related to error and warning messages 305 * will be configured out of the ACPICA build if the 306 * ACPI_NO_ERROR_MESSAGE flag is defined. 307 */ 308 #ifndef ACPI_NO_ERROR_MESSAGES 309 #define ACPI_MSG_DEPENDENT_RETURN_VOID(Prototype) \ 310 Prototype; 311 312 #else 313 #define ACPI_MSG_DEPENDENT_RETURN_VOID(Prototype) \ 314 static ACPI_INLINE Prototype {return;} 315 316 #endif /* ACPI_NO_ERROR_MESSAGES */ 317 318 319 /* 320 * Debugging output prototypes (default: no debug output). 321 * 322 * All interfaces related to debug output messages 323 * will be configured out of the ACPICA build unless the 324 * ACPI_DEBUG_OUTPUT flag is defined. 325 */ 326 #ifdef ACPI_DEBUG_OUTPUT 327 #define ACPI_DBG_DEPENDENT_RETURN_VOID(Prototype) \ 328 Prototype; 329 330 #else 331 #define ACPI_DBG_DEPENDENT_RETURN_VOID(Prototype) \ 332 static ACPI_INLINE Prototype {return;} 333 334 #endif /* ACPI_DEBUG_OUTPUT */ 335 336 337 /***************************************************************************** 338 * 339 * ACPICA public interface prototypes 340 * 341 ****************************************************************************/ 342 343 /* 344 * Initialization 345 */ 346 ACPI_EXTERNAL_RETURN_STATUS ( 347 ACPI_STATUS 348 AcpiInitializeTables ( 349 ACPI_TABLE_DESC *InitialStorage, 350 UINT32 InitialTableCount, 351 BOOLEAN AllowResize)) 352 353 ACPI_EXTERNAL_RETURN_STATUS ( 354 ACPI_STATUS 355 AcpiInitializeSubsystem ( 356 void)) 357 358 ACPI_EXTERNAL_RETURN_STATUS ( 359 ACPI_STATUS 360 AcpiEnableSubsystem ( 361 UINT32 Flags)) 362 363 ACPI_EXTERNAL_RETURN_STATUS ( 364 ACPI_STATUS 365 AcpiInitializeObjects ( 366 UINT32 Flags)) 367 368 ACPI_EXTERNAL_RETURN_STATUS ( 369 ACPI_STATUS 370 AcpiTerminate ( 371 void)) 372 373 374 /* 375 * Miscellaneous global interfaces 376 */ 377 ACPI_HW_DEPENDENT_RETURN_STATUS ( 378 ACPI_STATUS 379 AcpiEnable ( 380 void)) 381 382 ACPI_HW_DEPENDENT_RETURN_STATUS ( 383 ACPI_STATUS 384 AcpiDisable ( 385 void)) 386 387 ACPI_EXTERNAL_RETURN_STATUS ( 388 ACPI_STATUS 389 AcpiSubsystemStatus ( 390 void)) 391 392 ACPI_EXTERNAL_RETURN_STATUS ( 393 ACPI_STATUS 394 AcpiGetSystemInfo ( 395 ACPI_BUFFER *RetBuffer)) 396 397 ACPI_EXTERNAL_RETURN_STATUS ( 398 ACPI_STATUS 399 AcpiGetStatistics ( 400 ACPI_STATISTICS *Stats)) 401 402 ACPI_EXTERNAL_RETURN_PTR ( 403 const char * 404 AcpiFormatException ( 405 ACPI_STATUS Exception)) 406 407 ACPI_EXTERNAL_RETURN_STATUS ( 408 ACPI_STATUS 409 AcpiPurgeCachedObjects ( 410 void)) 411 412 ACPI_EXTERNAL_RETURN_STATUS ( 413 ACPI_STATUS 414 AcpiInstallInterface ( 415 ACPI_STRING InterfaceName)) 416 417 ACPI_EXTERNAL_RETURN_STATUS ( 418 ACPI_STATUS 419 AcpiRemoveInterface ( 420 ACPI_STRING InterfaceName)) 421 422 ACPI_EXTERNAL_RETURN_STATUS ( 423 ACPI_STATUS 424 AcpiUpdateInterfaces ( 425 UINT8 Action)) 426 427 ACPI_EXTERNAL_RETURN_UINT32 ( 428 UINT32 429 AcpiCheckAddressRange ( 430 ACPI_ADR_SPACE_TYPE SpaceId, 431 ACPI_PHYSICAL_ADDRESS Address, 432 ACPI_SIZE Length, 433 BOOLEAN Warn)) 434 435 ACPI_EXTERNAL_RETURN_STATUS ( 436 ACPI_STATUS 437 AcpiDecodePldBuffer ( 438 UINT8 *InBuffer, 439 ACPI_SIZE Length, 440 ACPI_PLD_INFO **ReturnBuffer)) 441 442 443 /* 444 * ACPI table load/unload interfaces 445 */ 446 ACPI_EXTERNAL_RETURN_STATUS ( 447 ACPI_STATUS 448 AcpiInstallTable ( 449 ACPI_PHYSICAL_ADDRESS Address, 450 BOOLEAN Physical)) 451 452 ACPI_EXTERNAL_RETURN_STATUS ( 453 ACPI_STATUS 454 AcpiLoadTable ( 455 ACPI_TABLE_HEADER *Table)) 456 457 ACPI_EXTERNAL_RETURN_STATUS ( 458 ACPI_STATUS 459 AcpiUnloadParentTable ( 460 ACPI_HANDLE Object)) 461 462 ACPI_EXTERNAL_RETURN_STATUS ( 463 ACPI_STATUS 464 AcpiLoadTables ( 465 void)) 466 467 468 /* 469 * ACPI table manipulation interfaces 470 */ 471 ACPI_EXTERNAL_RETURN_STATUS ( 472 ACPI_STATUS 473 AcpiReallocateRootTable ( 474 void)) 475 476 ACPI_EXTERNAL_RETURN_STATUS ( 477 ACPI_STATUS 478 AcpiFindRootPointer ( 479 ACPI_SIZE *RsdpAddress)) 480 481 ACPI_EXTERNAL_RETURN_STATUS ( 482 ACPI_STATUS 483 AcpiGetTableHeader ( 484 ACPI_STRING Signature, 485 UINT32 Instance, 486 ACPI_TABLE_HEADER *OutTableHeader)) 487 488 ACPI_EXTERNAL_RETURN_STATUS ( 489 ACPI_STATUS 490 AcpiGetTable ( 491 ACPI_STRING Signature, 492 UINT32 Instance, 493 ACPI_TABLE_HEADER **OutTable)) 494 495 ACPI_EXTERNAL_RETURN_STATUS ( 496 ACPI_STATUS 497 AcpiGetTableByIndex ( 498 UINT32 TableIndex, 499 ACPI_TABLE_HEADER **OutTable)) 500 501 ACPI_EXTERNAL_RETURN_STATUS ( 502 ACPI_STATUS 503 AcpiInstallTableHandler ( 504 ACPI_TABLE_HANDLER Handler, 505 void *Context)) 506 507 ACPI_EXTERNAL_RETURN_STATUS ( 508 ACPI_STATUS 509 AcpiRemoveTableHandler ( 510 ACPI_TABLE_HANDLER Handler)) 511 512 513 /* 514 * Namespace and name interfaces 515 */ 516 ACPI_EXTERNAL_RETURN_STATUS ( 517 ACPI_STATUS 518 AcpiWalkNamespace ( 519 ACPI_OBJECT_TYPE Type, 520 ACPI_HANDLE StartObject, 521 UINT32 MaxDepth, 522 ACPI_WALK_CALLBACK DescendingCallback, 523 ACPI_WALK_CALLBACK AscendingCallback, 524 void *Context, 525 void **ReturnValue)) 526 527 ACPI_EXTERNAL_RETURN_STATUS ( 528 ACPI_STATUS 529 AcpiGetDevices ( 530 char *HID, 531 ACPI_WALK_CALLBACK UserFunction, 532 void *Context, 533 void **ReturnValue)) 534 535 ACPI_EXTERNAL_RETURN_STATUS ( 536 ACPI_STATUS 537 AcpiGetName ( 538 ACPI_HANDLE Object, 539 UINT32 NameType, 540 ACPI_BUFFER *RetPathPtr)) 541 542 ACPI_EXTERNAL_RETURN_STATUS ( 543 ACPI_STATUS 544 AcpiGetHandle ( 545 ACPI_HANDLE Parent, 546 ACPI_STRING Pathname, 547 ACPI_HANDLE *RetHandle)) 548 549 ACPI_EXTERNAL_RETURN_STATUS ( 550 ACPI_STATUS 551 AcpiAttachData ( 552 ACPI_HANDLE Object, 553 ACPI_OBJECT_HANDLER Handler, 554 void *Data)) 555 556 ACPI_EXTERNAL_RETURN_STATUS ( 557 ACPI_STATUS 558 AcpiDetachData ( 559 ACPI_HANDLE Object, 560 ACPI_OBJECT_HANDLER Handler)) 561 562 ACPI_EXTERNAL_RETURN_STATUS ( 563 ACPI_STATUS 564 AcpiGetData ( 565 ACPI_HANDLE Object, 566 ACPI_OBJECT_HANDLER Handler, 567 void **Data)) 568 569 ACPI_EXTERNAL_RETURN_STATUS ( 570 ACPI_STATUS 571 AcpiDebugTrace ( 572 char *Name, 573 UINT32 DebugLevel, 574 UINT32 DebugLayer, 575 UINT32 Flags)) 576 577 578 /* 579 * Object manipulation and enumeration 580 */ 581 ACPI_EXTERNAL_RETURN_STATUS ( 582 ACPI_STATUS 583 AcpiEvaluateObject ( 584 ACPI_HANDLE Object, 585 ACPI_STRING Pathname, 586 ACPI_OBJECT_LIST *ParameterObjects, 587 ACPI_BUFFER *ReturnObjectBuffer)) 588 589 ACPI_EXTERNAL_RETURN_STATUS ( 590 ACPI_STATUS 591 AcpiEvaluateObjectTyped ( 592 ACPI_HANDLE Object, 593 ACPI_STRING Pathname, 594 ACPI_OBJECT_LIST *ExternalParams, 595 ACPI_BUFFER *ReturnBuffer, 596 ACPI_OBJECT_TYPE ReturnType)) 597 598 ACPI_EXTERNAL_RETURN_STATUS ( 599 ACPI_STATUS 600 AcpiGetObjectInfo ( 601 ACPI_HANDLE Object, 602 ACPI_DEVICE_INFO **ReturnBuffer)) 603 604 ACPI_EXTERNAL_RETURN_STATUS ( 605 ACPI_STATUS 606 AcpiInstallMethod ( 607 UINT8 *Buffer)) 608 609 ACPI_EXTERNAL_RETURN_STATUS ( 610 ACPI_STATUS 611 AcpiGetNextObject ( 612 ACPI_OBJECT_TYPE Type, 613 ACPI_HANDLE Parent, 614 ACPI_HANDLE Child, 615 ACPI_HANDLE *OutHandle)) 616 617 ACPI_EXTERNAL_RETURN_STATUS ( 618 ACPI_STATUS 619 AcpiGetType ( 620 ACPI_HANDLE Object, 621 ACPI_OBJECT_TYPE *OutType)) 622 623 ACPI_EXTERNAL_RETURN_STATUS ( 624 ACPI_STATUS 625 AcpiGetParent ( 626 ACPI_HANDLE Object, 627 ACPI_HANDLE *OutHandle)) 628 629 630 /* 631 * Handler interfaces 632 */ 633 ACPI_EXTERNAL_RETURN_STATUS ( 634 ACPI_STATUS 635 AcpiInstallInitializationHandler ( 636 ACPI_INIT_HANDLER Handler, 637 UINT32 Function)) 638 639 ACPI_HW_DEPENDENT_RETURN_STATUS ( 640 ACPI_STATUS 641 AcpiInstallSciHandler ( 642 ACPI_SCI_HANDLER Address, 643 void *Context)) 644 645 ACPI_HW_DEPENDENT_RETURN_STATUS ( 646 ACPI_STATUS 647 AcpiRemoveSciHandler ( 648 ACPI_SCI_HANDLER Address)) 649 650 ACPI_HW_DEPENDENT_RETURN_STATUS ( 651 ACPI_STATUS 652 AcpiInstallGlobalEventHandler ( 653 ACPI_GBL_EVENT_HANDLER Handler, 654 void *Context)) 655 656 ACPI_HW_DEPENDENT_RETURN_STATUS ( 657 ACPI_STATUS 658 AcpiInstallFixedEventHandler ( 659 UINT32 AcpiEvent, 660 ACPI_EVENT_HANDLER Handler, 661 void *Context)) 662 663 ACPI_HW_DEPENDENT_RETURN_STATUS ( 664 ACPI_STATUS 665 AcpiRemoveFixedEventHandler ( 666 UINT32 AcpiEvent, 667 ACPI_EVENT_HANDLER Handler)) 668 669 ACPI_HW_DEPENDENT_RETURN_STATUS ( 670 ACPI_STATUS 671 AcpiInstallGpeHandler ( 672 ACPI_HANDLE GpeDevice, 673 UINT32 GpeNumber, 674 UINT32 Type, 675 ACPI_GPE_HANDLER Address, 676 void *Context)) 677 678 ACPI_HW_DEPENDENT_RETURN_STATUS ( 679 ACPI_STATUS 680 AcpiRemoveGpeHandler ( 681 ACPI_HANDLE GpeDevice, 682 UINT32 GpeNumber, 683 ACPI_GPE_HANDLER Address)) 684 685 ACPI_EXTERNAL_RETURN_STATUS ( 686 ACPI_STATUS 687 AcpiInstallNotifyHandler ( 688 ACPI_HANDLE Device, 689 UINT32 HandlerType, 690 ACPI_NOTIFY_HANDLER Handler, 691 void *Context)) 692 693 ACPI_EXTERNAL_RETURN_STATUS ( 694 ACPI_STATUS 695 AcpiRemoveNotifyHandler ( 696 ACPI_HANDLE Device, 697 UINT32 HandlerType, 698 ACPI_NOTIFY_HANDLER Handler)) 699 700 ACPI_EXTERNAL_RETURN_STATUS ( 701 ACPI_STATUS 702 AcpiInstallAddressSpaceHandler ( 703 ACPI_HANDLE Device, 704 ACPI_ADR_SPACE_TYPE SpaceId, 705 ACPI_ADR_SPACE_HANDLER Handler, 706 ACPI_ADR_SPACE_SETUP Setup, 707 void *Context)) 708 709 ACPI_EXTERNAL_RETURN_STATUS ( 710 ACPI_STATUS 711 AcpiRemoveAddressSpaceHandler ( 712 ACPI_HANDLE Device, 713 ACPI_ADR_SPACE_TYPE SpaceId, 714 ACPI_ADR_SPACE_HANDLER Handler)) 715 716 ACPI_EXTERNAL_RETURN_STATUS ( 717 ACPI_STATUS 718 AcpiInstallExceptionHandler ( 719 ACPI_EXCEPTION_HANDLER Handler)) 720 721 ACPI_EXTERNAL_RETURN_STATUS ( 722 ACPI_STATUS 723 AcpiInstallInterfaceHandler ( 724 ACPI_INTERFACE_HANDLER Handler)) 725 726 727 /* 728 * Global Lock interfaces 729 */ 730 ACPI_HW_DEPENDENT_RETURN_STATUS ( 731 ACPI_STATUS 732 AcpiAcquireGlobalLock ( 733 UINT16 Timeout, 734 UINT32 *Handle)) 735 736 ACPI_HW_DEPENDENT_RETURN_STATUS ( 737 ACPI_STATUS 738 AcpiReleaseGlobalLock ( 739 UINT32 Handle)) 740 741 742 /* 743 * Interfaces to AML mutex objects 744 */ 745 ACPI_EXTERNAL_RETURN_STATUS ( 746 ACPI_STATUS 747 AcpiAcquireMutex ( 748 ACPI_HANDLE Handle, 749 ACPI_STRING Pathname, 750 UINT16 Timeout)) 751 752 ACPI_EXTERNAL_RETURN_STATUS ( 753 ACPI_STATUS 754 AcpiReleaseMutex ( 755 ACPI_HANDLE Handle, 756 ACPI_STRING Pathname)) 757 758 759 /* 760 * Fixed Event interfaces 761 */ 762 ACPI_HW_DEPENDENT_RETURN_STATUS ( 763 ACPI_STATUS 764 AcpiEnableEvent ( 765 UINT32 Event, 766 UINT32 Flags)) 767 768 ACPI_HW_DEPENDENT_RETURN_STATUS ( 769 ACPI_STATUS 770 AcpiDisableEvent ( 771 UINT32 Event, 772 UINT32 Flags)) 773 774 ACPI_HW_DEPENDENT_RETURN_STATUS ( 775 ACPI_STATUS 776 AcpiClearEvent ( 777 UINT32 Event)) 778 779 ACPI_HW_DEPENDENT_RETURN_STATUS ( 780 ACPI_STATUS 781 AcpiGetEventStatus ( 782 UINT32 Event, 783 ACPI_EVENT_STATUS *EventStatus)) 784 785 786 /* 787 * General Purpose Event (GPE) Interfaces 788 */ 789 ACPI_HW_DEPENDENT_RETURN_STATUS ( 790 ACPI_STATUS 791 AcpiUpdateAllGpes ( 792 void)) 793 794 ACPI_HW_DEPENDENT_RETURN_STATUS ( 795 ACPI_STATUS 796 AcpiEnableGpe ( 797 ACPI_HANDLE GpeDevice, 798 UINT32 GpeNumber)) 799 800 ACPI_HW_DEPENDENT_RETURN_STATUS ( 801 ACPI_STATUS 802 AcpiDisableGpe ( 803 ACPI_HANDLE GpeDevice, 804 UINT32 GpeNumber)) 805 806 ACPI_HW_DEPENDENT_RETURN_STATUS ( 807 ACPI_STATUS 808 AcpiClearGpe ( 809 ACPI_HANDLE GpeDevice, 810 UINT32 GpeNumber)) 811 812 ACPI_HW_DEPENDENT_RETURN_STATUS ( 813 ACPI_STATUS 814 AcpiSetGpe ( 815 ACPI_HANDLE GpeDevice, 816 UINT32 GpeNumber, 817 UINT8 Action)) 818 819 ACPI_HW_DEPENDENT_RETURN_STATUS ( 820 ACPI_STATUS 821 AcpiFinishGpe ( 822 ACPI_HANDLE GpeDevice, 823 UINT32 GpeNumber)) 824 825 ACPI_HW_DEPENDENT_RETURN_STATUS ( 826 ACPI_STATUS 827 AcpiSetupGpeForWake ( 828 ACPI_HANDLE ParentDevice, 829 ACPI_HANDLE GpeDevice, 830 UINT32 GpeNumber)) 831 832 ACPI_HW_DEPENDENT_RETURN_STATUS ( 833 ACPI_STATUS 834 AcpiSetGpeWakeMask ( 835 ACPI_HANDLE GpeDevice, 836 UINT32 GpeNumber, 837 UINT8 Action)) 838 839 ACPI_HW_DEPENDENT_RETURN_STATUS ( 840 ACPI_STATUS 841 AcpiGetGpeStatus ( 842 ACPI_HANDLE GpeDevice, 843 UINT32 GpeNumber, 844 ACPI_EVENT_STATUS *EventStatus)) 845 846 ACPI_HW_DEPENDENT_RETURN_STATUS ( 847 ACPI_STATUS 848 AcpiDisableAllGpes ( 849 void)) 850 851 ACPI_HW_DEPENDENT_RETURN_STATUS ( 852 ACPI_STATUS 853 AcpiEnableAllRuntimeGpes ( 854 void)) 855 856 ACPI_HW_DEPENDENT_RETURN_STATUS ( 857 ACPI_STATUS 858 AcpiGetGpeDevice ( 859 UINT32 GpeIndex, 860 ACPI_HANDLE *GpeDevice)) 861 862 ACPI_HW_DEPENDENT_RETURN_STATUS ( 863 ACPI_STATUS 864 AcpiInstallGpeBlock ( 865 ACPI_HANDLE GpeDevice, 866 ACPI_GENERIC_ADDRESS *GpeBlockAddress, 867 UINT32 RegisterCount, 868 UINT32 InterruptNumber)) 869 870 ACPI_HW_DEPENDENT_RETURN_STATUS ( 871 ACPI_STATUS 872 AcpiRemoveGpeBlock ( 873 ACPI_HANDLE GpeDevice)) 874 875 876 /* 877 * Resource interfaces 878 */ 879 typedef 880 ACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) ( 881 ACPI_RESOURCE *Resource, 882 void *Context); 883 884 ACPI_EXTERNAL_RETURN_STATUS ( 885 ACPI_STATUS 886 AcpiGetVendorResource ( 887 ACPI_HANDLE Device, 888 char *Name, 889 ACPI_VENDOR_UUID *Uuid, 890 ACPI_BUFFER *RetBuffer)) 891 892 ACPI_EXTERNAL_RETURN_STATUS ( 893 ACPI_STATUS 894 AcpiGetCurrentResources ( 895 ACPI_HANDLE Device, 896 ACPI_BUFFER *RetBuffer)) 897 898 ACPI_EXTERNAL_RETURN_STATUS ( 899 ACPI_STATUS 900 AcpiGetPossibleResources ( 901 ACPI_HANDLE Device, 902 ACPI_BUFFER *RetBuffer)) 903 904 ACPI_EXTERNAL_RETURN_STATUS ( 905 ACPI_STATUS 906 AcpiGetEventResources ( 907 ACPI_HANDLE DeviceHandle, 908 ACPI_BUFFER *RetBuffer)) 909 910 ACPI_EXTERNAL_RETURN_STATUS ( 911 ACPI_STATUS 912 AcpiWalkResourceBuffer ( 913 ACPI_BUFFER *Buffer, 914 ACPI_WALK_RESOURCE_CALLBACK UserFunction, 915 void *Context)) 916 917 ACPI_EXTERNAL_RETURN_STATUS ( 918 ACPI_STATUS 919 AcpiWalkResources ( 920 ACPI_HANDLE Device, 921 char *Name, 922 ACPI_WALK_RESOURCE_CALLBACK UserFunction, 923 void *Context)) 924 925 ACPI_EXTERNAL_RETURN_STATUS ( 926 ACPI_STATUS 927 AcpiSetCurrentResources ( 928 ACPI_HANDLE Device, 929 ACPI_BUFFER *InBuffer)) 930 931 ACPI_EXTERNAL_RETURN_STATUS ( 932 ACPI_STATUS 933 AcpiGetIrqRoutingTable ( 934 ACPI_HANDLE Device, 935 ACPI_BUFFER *RetBuffer)) 936 937 ACPI_EXTERNAL_RETURN_STATUS ( 938 ACPI_STATUS 939 AcpiResourceToAddress64 ( 940 ACPI_RESOURCE *Resource, 941 ACPI_RESOURCE_ADDRESS64 *Out)) 942 943 ACPI_EXTERNAL_RETURN_STATUS ( 944 ACPI_STATUS 945 AcpiBufferToResource ( 946 UINT8 *AmlBuffer, 947 UINT16 AmlBufferLength, 948 ACPI_RESOURCE **ResourcePtr)) 949 950 951 /* 952 * Hardware (ACPI device) interfaces 953 */ 954 ACPI_EXTERNAL_RETURN_STATUS ( 955 ACPI_STATUS 956 AcpiReset ( 957 void)) 958 959 ACPI_EXTERNAL_RETURN_STATUS ( 960 ACPI_STATUS 961 AcpiRead ( 962 UINT64 *Value, 963 ACPI_GENERIC_ADDRESS *Reg)) 964 965 ACPI_EXTERNAL_RETURN_STATUS ( 966 ACPI_STATUS 967 AcpiWrite ( 968 UINT64 Value, 969 ACPI_GENERIC_ADDRESS *Reg)) 970 971 ACPI_HW_DEPENDENT_RETURN_STATUS ( 972 ACPI_STATUS 973 AcpiReadBitRegister ( 974 UINT32 RegisterId, 975 UINT32 *ReturnValue)) 976 977 ACPI_HW_DEPENDENT_RETURN_STATUS ( 978 ACPI_STATUS 979 AcpiWriteBitRegister ( 980 UINT32 RegisterId, 981 UINT32 Value)) 982 983 984 /* 985 * Sleep/Wake interfaces 986 */ 987 ACPI_EXTERNAL_RETURN_STATUS ( 988 ACPI_STATUS 989 AcpiGetSleepTypeData ( 990 UINT8 SleepState, 991 UINT8 *Slp_TypA, 992 UINT8 *Slp_TypB)) 993 994 ACPI_EXTERNAL_RETURN_STATUS ( 995 ACPI_STATUS 996 AcpiEnterSleepStatePrep ( 997 UINT8 SleepState)) 998 999 ACPI_EXTERNAL_RETURN_STATUS ( 1000 ACPI_STATUS 1001 AcpiEnterSleepState ( 1002 UINT8 SleepState)) 1003 1004 ACPI_HW_DEPENDENT_RETURN_STATUS ( 1005 ACPI_STATUS 1006 AcpiEnterSleepStateS4bios ( 1007 void)) 1008 1009 ACPI_EXTERNAL_RETURN_STATUS ( 1010 ACPI_STATUS 1011 AcpiLeaveSleepStatePrep ( 1012 UINT8 SleepState)) 1013 1014 ACPI_EXTERNAL_RETURN_STATUS ( 1015 ACPI_STATUS 1016 AcpiLeaveSleepState ( 1017 UINT8 SleepState)) 1018 1019 ACPI_HW_DEPENDENT_RETURN_STATUS ( 1020 ACPI_STATUS 1021 AcpiSetFirmwareWakingVector ( 1022 UINT32 PhysicalAddress)) 1023 1024 #if ACPI_MACHINE_WIDTH == 64 1025 ACPI_HW_DEPENDENT_RETURN_STATUS ( 1026 ACPI_STATUS 1027 AcpiSetFirmwareWakingVector64 ( 1028 UINT64 PhysicalAddress)) 1029 #endif 1030 1031 1032 /* 1033 * ACPI Timer interfaces 1034 */ 1035 ACPI_HW_DEPENDENT_RETURN_STATUS ( 1036 ACPI_STATUS 1037 AcpiGetTimerResolution ( 1038 UINT32 *Resolution)) 1039 1040 ACPI_HW_DEPENDENT_RETURN_STATUS ( 1041 ACPI_STATUS 1042 AcpiGetTimer ( 1043 UINT32 *Ticks)) 1044 1045 ACPI_HW_DEPENDENT_RETURN_STATUS ( 1046 ACPI_STATUS 1047 AcpiGetTimerDuration ( 1048 UINT32 StartTicks, 1049 UINT32 EndTicks, 1050 UINT32 *TimeElapsed)) 1051 1052 1053 /* 1054 * Error/Warning output 1055 */ 1056 ACPI_MSG_DEPENDENT_RETURN_VOID ( 1057 ACPI_PRINTF_LIKE(3) 1058 void ACPI_INTERNAL_VAR_XFACE 1059 AcpiError ( 1060 const char *ModuleName, 1061 UINT32 LineNumber, 1062 const char *Format, 1063 ...)) 1064 1065 ACPI_MSG_DEPENDENT_RETURN_VOID ( 1066 ACPI_PRINTF_LIKE(4) 1067 void ACPI_INTERNAL_VAR_XFACE 1068 AcpiException ( 1069 const char *ModuleName, 1070 UINT32 LineNumber, 1071 ACPI_STATUS Status, 1072 const char *Format, 1073 ...)) 1074 1075 ACPI_MSG_DEPENDENT_RETURN_VOID ( 1076 ACPI_PRINTF_LIKE(3) 1077 void ACPI_INTERNAL_VAR_XFACE 1078 AcpiWarning ( 1079 const char *ModuleName, 1080 UINT32 LineNumber, 1081 const char *Format, 1082 ...)) 1083 1084 ACPI_MSG_DEPENDENT_RETURN_VOID ( 1085 ACPI_PRINTF_LIKE(3) 1086 void ACPI_INTERNAL_VAR_XFACE 1087 AcpiInfo ( 1088 const char *ModuleName, 1089 UINT32 LineNumber, 1090 const char *Format, 1091 ...)) 1092 1093 ACPI_MSG_DEPENDENT_RETURN_VOID ( 1094 ACPI_PRINTF_LIKE(3) 1095 void ACPI_INTERNAL_VAR_XFACE 1096 AcpiBiosError ( 1097 const char *ModuleName, 1098 UINT32 LineNumber, 1099 const char *Format, 1100 ...)) 1101 1102 ACPI_MSG_DEPENDENT_RETURN_VOID ( 1103 ACPI_PRINTF_LIKE(3) 1104 void ACPI_INTERNAL_VAR_XFACE 1105 AcpiBiosWarning ( 1106 const char *ModuleName, 1107 UINT32 LineNumber, 1108 const char *Format, 1109 ...)) 1110 1111 1112 /* 1113 * Debug output 1114 */ 1115 ACPI_DBG_DEPENDENT_RETURN_VOID ( 1116 ACPI_PRINTF_LIKE(6) 1117 void ACPI_INTERNAL_VAR_XFACE 1118 AcpiDebugPrint ( 1119 UINT32 RequestedDebugLevel, 1120 UINT32 LineNumber, 1121 const char *FunctionName, 1122 const char *ModuleName, 1123 UINT32 ComponentId, 1124 const char *Format, 1125 ...)) 1126 1127 ACPI_DBG_DEPENDENT_RETURN_VOID ( 1128 ACPI_PRINTF_LIKE(6) 1129 void ACPI_INTERNAL_VAR_XFACE 1130 AcpiDebugPrintRaw ( 1131 UINT32 RequestedDebugLevel, 1132 UINT32 LineNumber, 1133 const char *FunctionName, 1134 const char *ModuleName, 1135 UINT32 ComponentId, 1136 const char *Format, 1137 ...)) 1138 1139 #endif /* __ACXFACE_H__ */ 1140