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