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 */ 140ACPI_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 */ 149ACPI_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 */ 156ACPI_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 */ 162ACPI_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 */ 171ACPI_INIT_GLOBAL (UINT8, AcpiGbl_VerifyTableChecksum, TRUE); 172 173/* 174 * Optionally enable output from the AML Debug Object. 175 */ 176ACPI_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 */ 184ACPI_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 */ 192ACPI_INIT_GLOBAL (UINT8, AcpiGbl_DoNotUseXsdt, FALSE); 193 194/* 195 * Optionally support group module level code. 196 */ 197ACPI_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 */ 207ACPI_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 */ 216ACPI_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 */ 224ACPI_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 */ 230ACPI_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 */ 236ACPI_INIT_GLOBAL (UINT8, AcpiGbl_DisableSsdtTableInstall, FALSE); 237 238/* 239 * Optionally enable runtime namespace override. 240 */ 241ACPI_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 */ 247ACPI_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 */ 254ACPI_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 */ 260ACPI_INIT_GLOBAL (UINT32, AcpiGbl_TraceFlags, 0); 261ACPI_INIT_GLOBAL (const char *, AcpiGbl_TraceMethodName, NULL); 262ACPI_INIT_GLOBAL (UINT32, AcpiGbl_TraceDbgLevel, ACPI_TRACE_LEVEL_DEFAULT); 263ACPI_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 271ACPI_INIT_GLOBAL (UINT32, AcpiDbgLevel, ACPI_DEBUG_DEFAULT); 272#else 273ACPI_INIT_GLOBAL (UINT32, AcpiDbgLevel, ACPI_NORMAL_DEFAULT); 274#endif 275ACPI_INIT_GLOBAL (UINT32, AcpiDbgLayer, ACPI_COMPONENT_DEFAULT); 276 277/* Optionally enable timer output with Debug Object output */ 278 279ACPI_INIT_GLOBAL (UINT8, AcpiGbl_DisplayDebugTimer, FALSE); 280 281/* 282 * Other miscellaneous globals 283 */ 284ACPI_GLOBAL (ACPI_TABLE_FADT, AcpiGbl_FADT); 285ACPI_GLOBAL (UINT32, AcpiCurrentGpeCount); 286ACPI_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 */ 422ACPI_EXTERNAL_RETURN_STATUS ( 423ACPI_STATUS 424AcpiInitializeTables ( 425 ACPI_TABLE_DESC *InitialStorage, 426 UINT32 InitialTableCount, 427 BOOLEAN AllowResize)) 428 429ACPI_EXTERNAL_RETURN_STATUS ( 430ACPI_STATUS 431AcpiInitializeSubsystem ( 432 void)) 433 434ACPI_EXTERNAL_RETURN_STATUS ( 435ACPI_STATUS 436AcpiEnableSubsystem ( 437 UINT32 Flags)) 438 439ACPI_EXTERNAL_RETURN_STATUS ( 440ACPI_STATUS 441AcpiInitializeObjects ( 442 UINT32 Flags)) 443 444ACPI_EXTERNAL_RETURN_STATUS ( 445ACPI_STATUS 446AcpiTerminate ( 447 void)) 448 449 450/* 451 * Miscellaneous global interfaces 452 */ 453ACPI_HW_DEPENDENT_RETURN_STATUS ( 454ACPI_STATUS 455AcpiEnable ( 456 void)) 457 458ACPI_HW_DEPENDENT_RETURN_STATUS ( 459ACPI_STATUS 460AcpiDisable ( 461 void)) 462 463ACPI_EXTERNAL_RETURN_STATUS ( 464ACPI_STATUS 465AcpiSubsystemStatus ( 466 void)) 467 468ACPI_EXTERNAL_RETURN_STATUS ( 469ACPI_STATUS 470AcpiGetSystemInfo ( 471 ACPI_BUFFER *RetBuffer)) 472 473ACPI_EXTERNAL_RETURN_STATUS ( 474ACPI_STATUS 475AcpiGetStatistics ( 476 ACPI_STATISTICS *Stats)) 477 478ACPI_EXTERNAL_RETURN_PTR ( 479const char * 480AcpiFormatException ( 481 ACPI_STATUS Exception)) 482 483ACPI_EXTERNAL_RETURN_STATUS ( 484ACPI_STATUS 485AcpiPurgeCachedObjects ( 486 void)) 487 488ACPI_EXTERNAL_RETURN_STATUS ( 489ACPI_STATUS 490AcpiInstallInterface ( 491 ACPI_STRING InterfaceName)) 492 493ACPI_EXTERNAL_RETURN_STATUS ( 494ACPI_STATUS 495AcpiRemoveInterface ( 496 ACPI_STRING InterfaceName)) 497 498ACPI_EXTERNAL_RETURN_STATUS ( 499ACPI_STATUS 500AcpiUpdateInterfaces ( 501 UINT8 Action)) 502 503ACPI_EXTERNAL_RETURN_UINT32 ( 504UINT32 505AcpiCheckAddressRange ( 506 ACPI_ADR_SPACE_TYPE SpaceId, 507 ACPI_PHYSICAL_ADDRESS Address, 508 ACPI_SIZE Length, 509 BOOLEAN Warn)) 510 511ACPI_EXTERNAL_RETURN_STATUS ( 512ACPI_STATUS 513AcpiDecodePldBuffer ( 514 UINT8 *InBuffer, 515 ACPI_SIZE Length, 516 ACPI_PLD_INFO **ReturnBuffer)) 517 518 519/* 520 * ACPI table load/unload interfaces 521 */ 522ACPI_EXTERNAL_RETURN_STATUS ( 523ACPI_STATUS 524AcpiInstallTable ( 525 ACPI_PHYSICAL_ADDRESS Address, 526 BOOLEAN Physical)) 527 528ACPI_EXTERNAL_RETURN_STATUS ( 529ACPI_STATUS 530AcpiLoadTable ( 531 ACPI_TABLE_HEADER *Table)) 532 533ACPI_EXTERNAL_RETURN_STATUS ( 534ACPI_STATUS 535AcpiUnloadParentTable ( 536 ACPI_HANDLE Object)) 537 538ACPI_EXTERNAL_RETURN_STATUS ( 539ACPI_STATUS 540AcpiLoadTables ( 541 void)) 542 543 544/* 545 * ACPI table manipulation interfaces 546 */ 547ACPI_EXTERNAL_RETURN_STATUS ( 548ACPI_STATUS 549AcpiReallocateRootTable ( 550 void)) 551 552ACPI_EXTERNAL_RETURN_STATUS ( 553ACPI_STATUS 554AcpiFindRootPointer ( 555 ACPI_PHYSICAL_ADDRESS *RsdpAddress)) 556 557ACPI_EXTERNAL_RETURN_STATUS ( 558ACPI_STATUS 559AcpiGetTableHeader ( 560 ACPI_STRING Signature, 561 UINT32 Instance, 562 ACPI_TABLE_HEADER *OutTableHeader)) 563 564ACPI_EXTERNAL_RETURN_STATUS ( 565ACPI_STATUS 566AcpiGetTable ( 567 ACPI_STRING Signature, 568 UINT32 Instance, 569 ACPI_TABLE_HEADER **OutTable)) 570 571ACPI_EXTERNAL_RETURN_STATUS ( 572ACPI_STATUS 573AcpiGetTableByIndex ( 574 UINT32 TableIndex, 575 ACPI_TABLE_HEADER **OutTable)) 576 577ACPI_EXTERNAL_RETURN_STATUS ( 578ACPI_STATUS 579AcpiInstallTableHandler ( 580 ACPI_TABLE_HANDLER Handler, 581 void *Context)) 582 583ACPI_EXTERNAL_RETURN_STATUS ( 584ACPI_STATUS 585AcpiRemoveTableHandler ( 586 ACPI_TABLE_HANDLER Handler)) 587 588 589/* 590 * Namespace and name interfaces 591 */ 592ACPI_EXTERNAL_RETURN_STATUS ( 593ACPI_STATUS 594AcpiWalkNamespace ( 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 603ACPI_EXTERNAL_RETURN_STATUS ( 604ACPI_STATUS 605AcpiGetDevices ( 606 char *HID, 607 ACPI_WALK_CALLBACK UserFunction, 608 void *Context, 609 void **ReturnValue)) 610 611ACPI_EXTERNAL_RETURN_STATUS ( 612ACPI_STATUS 613AcpiGetName ( 614 ACPI_HANDLE Object, 615 UINT32 NameType, 616 ACPI_BUFFER *RetPathPtr)) 617 618ACPI_EXTERNAL_RETURN_STATUS ( 619ACPI_STATUS 620AcpiGetHandle ( 621 ACPI_HANDLE Parent, 622 ACPI_STRING Pathname, 623 ACPI_HANDLE *RetHandle)) 624 625ACPI_EXTERNAL_RETURN_STATUS ( 626ACPI_STATUS 627AcpiAttachData ( 628 ACPI_HANDLE Object, 629 ACPI_OBJECT_HANDLER Handler, 630 void *Data)) 631 632ACPI_EXTERNAL_RETURN_STATUS ( 633ACPI_STATUS 634AcpiDetachData ( 635 ACPI_HANDLE Object, 636 ACPI_OBJECT_HANDLER Handler)) 637 638ACPI_EXTERNAL_RETURN_STATUS ( 639ACPI_STATUS 640AcpiGetData ( 641 ACPI_HANDLE Object, 642 ACPI_OBJECT_HANDLER Handler, 643 void **Data)) 644 645ACPI_EXTERNAL_RETURN_STATUS ( 646ACPI_STATUS 647AcpiDebugTrace ( 648 const char *Name, 649 UINT32 DebugLevel, 650 UINT32 DebugLayer, 651 UINT32 Flags)) 652 653 654/* 655 * Object manipulation and enumeration 656 */ 657ACPI_EXTERNAL_RETURN_STATUS ( 658ACPI_STATUS 659AcpiEvaluateObject ( 660 ACPI_HANDLE Object, 661 ACPI_STRING Pathname, 662 ACPI_OBJECT_LIST *ParameterObjects, 663 ACPI_BUFFER *ReturnObjectBuffer)) 664 665ACPI_EXTERNAL_RETURN_STATUS ( 666ACPI_STATUS 667AcpiEvaluateObjectTyped ( 668 ACPI_HANDLE Object, 669 ACPI_STRING Pathname, 670 ACPI_OBJECT_LIST *ExternalParams, 671 ACPI_BUFFER *ReturnBuffer, 672 ACPI_OBJECT_TYPE ReturnType)) 673 674ACPI_EXTERNAL_RETURN_STATUS ( 675ACPI_STATUS 676AcpiGetObjectInfo ( 677 ACPI_HANDLE Object, 678 ACPI_DEVICE_INFO **ReturnBuffer)) 679 680ACPI_EXTERNAL_RETURN_STATUS ( 681ACPI_STATUS 682AcpiInstallMethod ( 683 UINT8 *Buffer)) 684 685ACPI_EXTERNAL_RETURN_STATUS ( 686ACPI_STATUS 687AcpiGetNextObject ( 688 ACPI_OBJECT_TYPE Type, 689 ACPI_HANDLE Parent, 690 ACPI_HANDLE Child, 691 ACPI_HANDLE *OutHandle)) 692 693ACPI_EXTERNAL_RETURN_STATUS ( 694ACPI_STATUS 695AcpiGetType ( 696 ACPI_HANDLE Object, 697 ACPI_OBJECT_TYPE *OutType)) 698 699ACPI_EXTERNAL_RETURN_STATUS ( 700ACPI_STATUS 701AcpiGetParent ( 702 ACPI_HANDLE Object, 703 ACPI_HANDLE *OutHandle)) 704 705 706/* 707 * Handler interfaces 708 */ 709ACPI_EXTERNAL_RETURN_STATUS ( 710ACPI_STATUS 711AcpiInstallInitializationHandler ( 712 ACPI_INIT_HANDLER Handler, 713 UINT32 Function)) 714 715ACPI_HW_DEPENDENT_RETURN_STATUS ( 716ACPI_STATUS 717AcpiInstallSciHandler ( 718 ACPI_SCI_HANDLER Address, 719 void *Context)) 720 721ACPI_HW_DEPENDENT_RETURN_STATUS ( 722ACPI_STATUS 723AcpiRemoveSciHandler ( 724 ACPI_SCI_HANDLER Address)) 725 726ACPI_HW_DEPENDENT_RETURN_STATUS ( 727ACPI_STATUS 728AcpiInstallGlobalEventHandler ( 729 ACPI_GBL_EVENT_HANDLER Handler, 730 void *Context)) 731 732ACPI_HW_DEPENDENT_RETURN_STATUS ( 733ACPI_STATUS 734AcpiInstallFixedEventHandler ( 735 UINT32 AcpiEvent, 736 ACPI_EVENT_HANDLER Handler, 737 void *Context)) 738 739ACPI_HW_DEPENDENT_RETURN_STATUS ( 740ACPI_STATUS 741AcpiRemoveFixedEventHandler ( 742 UINT32 AcpiEvent, 743 ACPI_EVENT_HANDLER Handler)) 744 745ACPI_HW_DEPENDENT_RETURN_STATUS ( 746ACPI_STATUS 747AcpiInstallGpeHandler ( 748 ACPI_HANDLE GpeDevice, 749 UINT32 GpeNumber, 750 UINT32 Type, 751 ACPI_GPE_HANDLER Address, 752 void *Context)) 753 754ACPI_HW_DEPENDENT_RETURN_STATUS ( 755ACPI_STATUS 756AcpiInstallGpeRawHandler ( 757 ACPI_HANDLE GpeDevice, 758 UINT32 GpeNumber, 759 UINT32 Type, 760 ACPI_GPE_HANDLER Address, 761 void *Context)) 762 763ACPI_HW_DEPENDENT_RETURN_STATUS ( 764ACPI_STATUS 765AcpiRemoveGpeHandler ( 766 ACPI_HANDLE GpeDevice, 767 UINT32 GpeNumber, 768 ACPI_GPE_HANDLER Address)) 769 770ACPI_EXTERNAL_RETURN_STATUS ( 771ACPI_STATUS 772AcpiInstallNotifyHandler ( 773 ACPI_HANDLE Device, 774 UINT32 HandlerType, 775 ACPI_NOTIFY_HANDLER Handler, 776 void *Context)) 777 778ACPI_EXTERNAL_RETURN_STATUS ( 779ACPI_STATUS 780AcpiRemoveNotifyHandler ( 781 ACPI_HANDLE Device, 782 UINT32 HandlerType, 783 ACPI_NOTIFY_HANDLER Handler)) 784 785ACPI_EXTERNAL_RETURN_STATUS ( 786ACPI_STATUS 787AcpiInstallAddressSpaceHandler ( 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 794ACPI_EXTERNAL_RETURN_STATUS ( 795ACPI_STATUS 796AcpiRemoveAddressSpaceHandler ( 797 ACPI_HANDLE Device, 798 ACPI_ADR_SPACE_TYPE SpaceId, 799 ACPI_ADR_SPACE_HANDLER Handler)) 800 801ACPI_EXTERNAL_RETURN_STATUS ( 802ACPI_STATUS 803AcpiInstallExceptionHandler ( 804 ACPI_EXCEPTION_HANDLER Handler)) 805 806ACPI_EXTERNAL_RETURN_STATUS ( 807ACPI_STATUS 808AcpiInstallInterfaceHandler ( 809 ACPI_INTERFACE_HANDLER Handler)) 810 811 812/* 813 * Global Lock interfaces 814 */ 815ACPI_HW_DEPENDENT_RETURN_STATUS ( 816ACPI_STATUS 817AcpiAcquireGlobalLock ( 818 UINT16 Timeout, 819 UINT32 *Handle)) 820 821ACPI_HW_DEPENDENT_RETURN_STATUS ( 822ACPI_STATUS 823AcpiReleaseGlobalLock ( 824 UINT32 Handle)) 825 826 827/* 828 * Interfaces to AML mutex objects 829 */ 830ACPI_EXTERNAL_RETURN_STATUS ( 831ACPI_STATUS 832AcpiAcquireMutex ( 833 ACPI_HANDLE Handle, 834 ACPI_STRING Pathname, 835 UINT16 Timeout)) 836 837ACPI_EXTERNAL_RETURN_STATUS ( 838ACPI_STATUS 839AcpiReleaseMutex ( 840 ACPI_HANDLE Handle, 841 ACPI_STRING Pathname)) 842 843 844/* 845 * Fixed Event interfaces 846 */ 847ACPI_HW_DEPENDENT_RETURN_STATUS ( 848ACPI_STATUS 849AcpiEnableEvent ( 850 UINT32 Event, 851 UINT32 Flags)) 852 853ACPI_HW_DEPENDENT_RETURN_STATUS ( 854ACPI_STATUS 855AcpiDisableEvent ( 856 UINT32 Event, 857 UINT32 Flags)) 858 859ACPI_HW_DEPENDENT_RETURN_STATUS ( 860ACPI_STATUS 861AcpiClearEvent ( 862 UINT32 Event)) 863 864ACPI_HW_DEPENDENT_RETURN_STATUS ( 865ACPI_STATUS 866AcpiGetEventStatus ( 867 UINT32 Event, 868 ACPI_EVENT_STATUS *EventStatus)) 869 870 871/* 872 * General Purpose Event (GPE) Interfaces 873 */ 874ACPI_HW_DEPENDENT_RETURN_STATUS ( 875ACPI_STATUS 876AcpiUpdateAllGpes ( 877 void)) 878 879ACPI_HW_DEPENDENT_RETURN_STATUS ( 880ACPI_STATUS 881AcpiEnableGpe ( 882 ACPI_HANDLE GpeDevice, 883 UINT32 GpeNumber)) 884 885ACPI_HW_DEPENDENT_RETURN_STATUS ( 886ACPI_STATUS 887AcpiDisableGpe ( 888 ACPI_HANDLE GpeDevice, 889 UINT32 GpeNumber)) 890 891ACPI_HW_DEPENDENT_RETURN_STATUS ( 892ACPI_STATUS 893AcpiClearGpe ( 894 ACPI_HANDLE GpeDevice, 895 UINT32 GpeNumber)) 896 897ACPI_HW_DEPENDENT_RETURN_STATUS ( 898ACPI_STATUS 899AcpiSetGpe ( 900 ACPI_HANDLE GpeDevice, 901 UINT32 GpeNumber, 902 UINT8 Action)) 903 904ACPI_HW_DEPENDENT_RETURN_STATUS ( 905ACPI_STATUS 906AcpiFinishGpe ( 907 ACPI_HANDLE GpeDevice, 908 UINT32 GpeNumber)) 909 910ACPI_HW_DEPENDENT_RETURN_STATUS ( 911ACPI_STATUS 912AcpiMarkGpeForWake ( 913 ACPI_HANDLE GpeDevice, 914 UINT32 GpeNumber)) 915 916ACPI_HW_DEPENDENT_RETURN_STATUS ( 917ACPI_STATUS 918AcpiSetupGpeForWake ( 919 ACPI_HANDLE ParentDevice, 920 ACPI_HANDLE GpeDevice, 921 UINT32 GpeNumber)) 922 923ACPI_HW_DEPENDENT_RETURN_STATUS ( 924ACPI_STATUS 925AcpiSetGpeWakeMask ( 926 ACPI_HANDLE GpeDevice, 927 UINT32 GpeNumber, 928 UINT8 Action)) 929 930ACPI_HW_DEPENDENT_RETURN_STATUS ( 931ACPI_STATUS 932AcpiGetGpeStatus ( 933 ACPI_HANDLE GpeDevice, 934 UINT32 GpeNumber, 935 ACPI_EVENT_STATUS *EventStatus)) 936 937ACPI_HW_DEPENDENT_RETURN_STATUS ( 938ACPI_STATUS 939AcpiDisableAllGpes ( 940 void)) 941 942ACPI_HW_DEPENDENT_RETURN_STATUS ( 943ACPI_STATUS 944AcpiEnableAllRuntimeGpes ( 945 void)) 946 947ACPI_HW_DEPENDENT_RETURN_STATUS ( 948ACPI_STATUS 949AcpiEnableAllWakeupGpes ( 950 void)) 951 952ACPI_HW_DEPENDENT_RETURN_STATUS ( 953ACPI_STATUS 954AcpiGetGpeDevice ( 955 UINT32 GpeIndex, 956 ACPI_HANDLE *GpeDevice)) 957 958ACPI_HW_DEPENDENT_RETURN_STATUS ( 959ACPI_STATUS 960AcpiInstallGpeBlock ( 961 ACPI_HANDLE GpeDevice, 962 ACPI_GENERIC_ADDRESS *GpeBlockAddress, 963 UINT32 RegisterCount, 964 UINT32 InterruptNumber)) 965 966ACPI_HW_DEPENDENT_RETURN_STATUS ( 967ACPI_STATUS 968AcpiRemoveGpeBlock ( 969 ACPI_HANDLE GpeDevice)) 970 971 972/* 973 * Resource interfaces 974 */ 975typedef 976ACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) ( 977 ACPI_RESOURCE *Resource, 978 void *Context); 979 980ACPI_EXTERNAL_RETURN_STATUS ( 981ACPI_STATUS 982AcpiGetVendorResource ( 983 ACPI_HANDLE Device, 984 char *Name, 985 ACPI_VENDOR_UUID *Uuid, 986 ACPI_BUFFER *RetBuffer)) 987 988ACPI_EXTERNAL_RETURN_STATUS ( 989ACPI_STATUS 990AcpiGetCurrentResources ( 991 ACPI_HANDLE Device, 992 ACPI_BUFFER *RetBuffer)) 993 994ACPI_EXTERNAL_RETURN_STATUS ( 995ACPI_STATUS 996AcpiGetPossibleResources ( 997 ACPI_HANDLE Device, 998 ACPI_BUFFER *RetBuffer)) 999 1000ACPI_EXTERNAL_RETURN_STATUS ( 1001ACPI_STATUS 1002AcpiGetEventResources ( 1003 ACPI_HANDLE DeviceHandle, 1004 ACPI_BUFFER *RetBuffer)) 1005 1006ACPI_EXTERNAL_RETURN_STATUS ( 1007ACPI_STATUS 1008AcpiWalkResourceBuffer ( 1009 ACPI_BUFFER *Buffer, 1010 ACPI_WALK_RESOURCE_CALLBACK UserFunction, 1011 void *Context)) 1012 1013ACPI_EXTERNAL_RETURN_STATUS ( 1014ACPI_STATUS 1015AcpiWalkResources ( 1016 ACPI_HANDLE Device, 1017 char *Name, 1018 ACPI_WALK_RESOURCE_CALLBACK UserFunction, 1019 void *Context)) 1020 1021ACPI_EXTERNAL_RETURN_STATUS ( 1022ACPI_STATUS 1023AcpiSetCurrentResources ( 1024 ACPI_HANDLE Device, 1025 ACPI_BUFFER *InBuffer)) 1026 1027ACPI_EXTERNAL_RETURN_STATUS ( 1028ACPI_STATUS 1029AcpiGetIrqRoutingTable ( 1030 ACPI_HANDLE Device, 1031 ACPI_BUFFER *RetBuffer)) 1032 1033ACPI_EXTERNAL_RETURN_STATUS ( 1034ACPI_STATUS 1035AcpiResourceToAddress64 ( 1036 ACPI_RESOURCE *Resource, 1037 ACPI_RESOURCE_ADDRESS64 *Out)) 1038 1039ACPI_EXTERNAL_RETURN_STATUS ( 1040ACPI_STATUS 1041AcpiBufferToResource ( 1042 UINT8 *AmlBuffer, 1043 UINT16 AmlBufferLength, 1044 ACPI_RESOURCE **ResourcePtr)) 1045 1046 1047/* 1048 * Hardware (ACPI device) interfaces 1049 */ 1050ACPI_EXTERNAL_RETURN_STATUS ( 1051ACPI_STATUS 1052AcpiReset ( 1053 void)) 1054 1055ACPI_EXTERNAL_RETURN_STATUS ( 1056ACPI_STATUS 1057AcpiRead ( 1058 UINT64 *Value, 1059 ACPI_GENERIC_ADDRESS *Reg)) 1060 1061ACPI_EXTERNAL_RETURN_STATUS ( 1062ACPI_STATUS 1063AcpiWrite ( 1064 UINT64 Value, 1065 ACPI_GENERIC_ADDRESS *Reg)) 1066 1067ACPI_HW_DEPENDENT_RETURN_STATUS ( 1068ACPI_STATUS 1069AcpiReadBitRegister ( 1070 UINT32 RegisterId, 1071 UINT32 *ReturnValue)) 1072 1073ACPI_HW_DEPENDENT_RETURN_STATUS ( 1074ACPI_STATUS 1075AcpiWriteBitRegister ( 1076 UINT32 RegisterId, 1077 UINT32 Value)) 1078 1079 1080/* 1081 * Sleep/Wake interfaces 1082 */ 1083ACPI_EXTERNAL_RETURN_STATUS ( 1084ACPI_STATUS 1085AcpiGetSleepTypeData ( 1086 UINT8 SleepState, 1087 UINT8 *Slp_TypA, 1088 UINT8 *Slp_TypB)) 1089 1090ACPI_EXTERNAL_RETURN_STATUS ( 1091ACPI_STATUS 1092AcpiEnterSleepStatePrep ( 1093 UINT8 SleepState)) 1094 1095ACPI_EXTERNAL_RETURN_STATUS ( 1096ACPI_STATUS 1097AcpiEnterSleepState ( 1098 UINT8 SleepState)) 1099 1100ACPI_HW_DEPENDENT_RETURN_STATUS ( 1101ACPI_STATUS 1102AcpiEnterSleepStateS4bios ( 1103 void)) 1104 1105ACPI_EXTERNAL_RETURN_STATUS ( 1106ACPI_STATUS 1107AcpiLeaveSleepStatePrep ( 1108 UINT8 SleepState)) 1109 1110ACPI_EXTERNAL_RETURN_STATUS ( 1111ACPI_STATUS 1112AcpiLeaveSleepState ( 1113 UINT8 SleepState)) 1114 1115ACPI_HW_DEPENDENT_RETURN_STATUS ( 1116ACPI_STATUS 1117AcpiSetFirmwareWakingVector ( 1118 ACPI_PHYSICAL_ADDRESS PhysicalAddress, 1119 ACPI_PHYSICAL_ADDRESS PhysicalAddress64)) 1120 1121 1122/* 1123 * ACPI Timer interfaces 1124 */ 1125ACPI_HW_DEPENDENT_RETURN_STATUS ( 1126ACPI_STATUS 1127AcpiGetTimerResolution ( 1128 UINT32 *Resolution)) 1129 1130ACPI_HW_DEPENDENT_RETURN_STATUS ( 1131ACPI_STATUS 1132AcpiGetTimer ( 1133 UINT32 *Ticks)) 1134 1135ACPI_HW_DEPENDENT_RETURN_STATUS ( 1136ACPI_STATUS 1137AcpiGetTimerDuration ( 1138 UINT32 StartTicks, 1139 UINT32 EndTicks, 1140 UINT32 *TimeElapsed)) 1141 1142 1143/* 1144 * Error/Warning output 1145 */ 1146ACPI_MSG_DEPENDENT_RETURN_VOID ( 1147ACPI_PRINTF_LIKE(3) 1148void ACPI_INTERNAL_VAR_XFACE 1149AcpiError ( 1150 const char *ModuleName, 1151 UINT32 LineNumber, 1152 const char *Format, 1153 ...)) 1154 1155ACPI_MSG_DEPENDENT_RETURN_VOID ( 1156ACPI_PRINTF_LIKE(4) 1157void ACPI_INTERNAL_VAR_XFACE 1158AcpiException ( 1159 const char *ModuleName, 1160 UINT32 LineNumber, 1161 ACPI_STATUS Status, 1162 const char *Format, 1163 ...)) 1164 1165ACPI_MSG_DEPENDENT_RETURN_VOID ( 1166ACPI_PRINTF_LIKE(3) 1167void ACPI_INTERNAL_VAR_XFACE 1168AcpiWarning ( 1169 const char *ModuleName, 1170 UINT32 LineNumber, 1171 const char *Format, 1172 ...)) 1173 1174ACPI_MSG_DEPENDENT_RETURN_VOID ( 1175ACPI_PRINTF_LIKE(1) 1176void ACPI_INTERNAL_VAR_XFACE 1177AcpiInfo ( 1178 const char *Format, 1179 ...)) 1180 1181ACPI_MSG_DEPENDENT_RETURN_VOID ( 1182ACPI_PRINTF_LIKE(3) 1183void ACPI_INTERNAL_VAR_XFACE 1184AcpiBiosError ( 1185 const char *ModuleName, 1186 UINT32 LineNumber, 1187 const char *Format, 1188 ...)) 1189 1190ACPI_MSG_DEPENDENT_RETURN_VOID ( 1191ACPI_PRINTF_LIKE(3) 1192void ACPI_INTERNAL_VAR_XFACE 1193AcpiBiosWarning ( 1194 const char *ModuleName, 1195 UINT32 LineNumber, 1196 const char *Format, 1197 ...)) 1198 1199 1200/* 1201 * Debug output 1202 */ 1203ACPI_DBG_DEPENDENT_RETURN_VOID ( 1204ACPI_PRINTF_LIKE(6) 1205void ACPI_INTERNAL_VAR_XFACE 1206AcpiDebugPrint ( 1207 UINT32 RequestedDebugLevel, 1208 UINT32 LineNumber, 1209 const char *FunctionName, 1210 const char *ModuleName, 1211 UINT32 ComponentId, 1212 const char *Format, 1213 ...)) 1214 1215ACPI_DBG_DEPENDENT_RETURN_VOID ( 1216ACPI_PRINTF_LIKE(6) 1217void ACPI_INTERNAL_VAR_XFACE 1218AcpiDebugPrintRaw ( 1219 UINT32 RequestedDebugLevel, 1220 UINT32 LineNumber, 1221 const char *FunctionName, 1222 const char *ModuleName, 1223 UINT32 ComponentId, 1224 const char *Format, 1225 ...)) 1226 1227ACPI_DBG_DEPENDENT_RETURN_VOID ( 1228void 1229AcpiTracePoint ( 1230 ACPI_TRACE_EVENT_TYPE Type, 1231 BOOLEAN Begin, 1232 UINT8 *Aml, 1233 char *Pathname)) 1234 1235ACPI_APP_DEPENDENT_RETURN_VOID ( 1236ACPI_PRINTF_LIKE(1) 1237void ACPI_INTERNAL_VAR_XFACE 1238AcpiLogError ( 1239 const char *Format, 1240 ...)) 1241 1242ACPI_STATUS 1243AcpiInitializeDebugger ( 1244 void); 1245 1246void 1247AcpiTerminateDebugger ( 1248 void); 1249 1250void 1251AcpiSetDebuggerThreadId ( 1252 ACPI_THREAD_ID ThreadId); 1253 1254#endif /* __ACXFACE_H__ */ 1255