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