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