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