1 /******************************************************************************
3 * Name: acpixf.h - External interfaces to the ACPI subsystem
5 *****************************************************************************/
7 /******************************************************************************
11 * Some or all of this work - Copyright (c) 1999 - 2015, Intel Corp.
12 * All rights reserved.
16 * 2.1. This is your license from Intel Corp. under its intellectual property
17 * rights. You may have additional license terms from the party that provided
18 * you this software, covering your right to use that party's intellectual
21 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22 * copy of the source code appearing in this file ("Covered Code") an
23 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24 * base code distributed originally by Intel ("Original Intel Code") to copy,
25 * make derivatives, distribute, use and display any portion of the Covered
26 * Code in any form, with the right to sublicense such rights; and
28 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29 * license (with the right to sublicense), under only those claims of Intel
30 * patents that are infringed by the Original Intel Code, to make, use, sell,
31 * offer to sell, and import the Covered Code and derivative works thereof
32 * solely to the minimum extent necessary to exercise the above copyright
33 * license, and in no event shall the patent license extend to any additions
34 * to or modifications of the Original Intel Code. No other license or right
35 * is granted directly or by implication, estoppel or otherwise;
37 * The above copyright and patent license is granted only if the following
42 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43 * Redistribution of source code of any substantial portion of the Covered
44 * Code or modification with rights to further distribute source must include
45 * the above Copyright Notice, the above License, this list of Conditions,
46 * and the following Disclaimer and Export Compliance provision. In addition,
47 * Licensee must cause all Covered Code to which Licensee contributes to
48 * contain a file documenting the changes Licensee made to create that Covered
49 * Code and the date of any change. Licensee must include in that file the
50 * documentation of any changes made by any predecessor Licensee. Licensee
51 * must include a prominent statement that the modification is derived,
52 * directly or indirectly, from Original Intel Code.
54 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55 * Redistribution of source code of any substantial portion of the Covered
56 * Code or modification without rights to further distribute source must
57 * include the following Disclaimer and Export Compliance provision in the
58 * documentation and/or other materials provided with distribution. In
59 * addition, Licensee may not authorize further sublicense of source of any
60 * portion of the Covered Code, and must include terms to the effect that the
61 * license from Licensee to its licensee is limited to the intellectual
62 * property embodied in the software Licensee provides to its licensee, and
63 * not to intellectual property embodied in modifications its licensee may
66 * 3.3. Redistribution of Executable. Redistribution in executable form of any
67 * substantial portion of the Covered Code or modification must reproduce the
68 * above Copyright Notice, and the following Disclaimer and Export Compliance
69 * provision in the documentation and/or other materials provided with the
72 * 3.4. Intel retains all right, title, and interest in and to the Original
75 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76 * Intel shall be used in advertising or otherwise to promote the sale, use or
77 * other dealings in products derived from or relating to the Covered Code
78 * without prior written authorization from Intel.
80 * 4. Disclaimer and Export Compliance
82 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83 * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
85 * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
86 * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
87 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
90 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
96 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
99 * 4.3. Licensee shall not export, either directly or indirectly, any of this
100 * software or system incorporating such software without first obtaining any
101 * required license or other approval from the U. S. Department of Commerce or
102 * any other agency or department of the United States Government. In the
103 * event Licensee exports any such software from the United States or
104 * re-exports any such software from a foreign destination, Licensee shall
105 * ensure that the distribution and export/re-export of the software is in
106 * compliance with all laws, regulations, orders, or other restrictions of the
107 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108 * any of its subsidiaries will export/re-export any technical data, process,
109 * software, or service, directly or indirectly, to any country for which the
110 * United States government or any agency thereof requires an export license,
111 * other governmental approval, or letter of assurance, without first obtaining
112 * such license, approval or letter.
114 *****************************************************************************/
116 #ifndef __ACXFACE_H__
117 #define __ACXFACE_H__
119 /* Current ACPICA subsystem version in YYYYMMDD format */
121 #define ACPI_CA_VERSION 0x20150410
123 #include "acconfig.h"
126 #include "acbuffer.h"
129 /*****************************************************************************
131 * Macros used for ACPICA globals and configuration
133 ****************************************************************************/
136 * Ensure that global variables are defined and initialized only once.
138 * The use of these macros allows for a single list of globals (here)
139 * in order to simplify maintenance of the code.
141 #ifdef DEFINE_ACPI_GLOBALS
142 #define ACPI_GLOBAL(type,name) \
146 #define ACPI_INIT_GLOBAL(type,name,value) \
151 #define ACPI_GLOBAL(type,name) \
155 #ifndef ACPI_INIT_GLOBAL
156 #define ACPI_INIT_GLOBAL(type,name,value) \
162 * These macros configure the various ACPICA interfaces. They are
163 * useful for generating stub inline functions for features that are
164 * configured out of the current kernel or ACPICA application.
166 #ifndef ACPI_EXTERNAL_RETURN_STATUS
167 #define ACPI_EXTERNAL_RETURN_STATUS(Prototype) \
171 #ifndef ACPI_EXTERNAL_RETURN_OK
172 #define ACPI_EXTERNAL_RETURN_OK(Prototype) \
176 #ifndef ACPI_EXTERNAL_RETURN_VOID
177 #define ACPI_EXTERNAL_RETURN_VOID(Prototype) \
181 #ifndef ACPI_EXTERNAL_RETURN_UINT32
182 #define ACPI_EXTERNAL_RETURN_UINT32(Prototype) \
186 #ifndef ACPI_EXTERNAL_RETURN_PTR
187 #define ACPI_EXTERNAL_RETURN_PTR(Prototype) \
192 /*****************************************************************************
194 * Public globals and runtime configuration options
196 ****************************************************************************/
199 * Enable "slack mode" of the AML interpreter? Default is FALSE, and the
200 * interpreter strictly follows the ACPI specification. Setting to TRUE
201 * allows the interpreter to ignore certain errors and/or bad AML constructs.
203 * Currently, these features are enabled by this flag:
205 * 1) Allow "implicit return" of last value in a control method
206 * 2) Allow access beyond the end of an operation region
207 * 3) Allow access to uninitialized locals/args (auto-init to integer 0)
208 * 4) Allow ANY object type to be a source operand for the Store() operator
209 * 5) Allow unresolved references (invalid target name) in package objects
210 * 6) Enable warning messages for behavior that is not ACPI spec compliant
212 ACPI_INIT_GLOBAL (UINT8
, AcpiGbl_EnableInterpreterSlack
, FALSE
);
215 * Automatically serialize all methods that create named objects? Default
216 * is TRUE, meaning that all NonSerialized methods are scanned once at
217 * table load time to determine those that create named objects. Methods
218 * that create named objects are marked Serialized in order to prevent
219 * possible run-time problems if they are entered by more than one thread.
221 ACPI_INIT_GLOBAL (UINT8
, AcpiGbl_AutoSerializeMethods
, TRUE
);
224 * Create the predefined _OSI method in the namespace? Default is TRUE
225 * because ACPICA is fully compatible with other ACPI implementations.
226 * Changing this will revert ACPICA (and machine ASL) to pre-OSI behavior.
228 ACPI_INIT_GLOBAL (UINT8
, AcpiGbl_CreateOsiMethod
, TRUE
);
231 * Optionally use default values for the ACPI register widths. Set this to
232 * TRUE to use the defaults, if an FADT contains incorrect widths/lengths.
234 ACPI_INIT_GLOBAL (UINT8
, AcpiGbl_UseDefaultRegisterWidths
, TRUE
);
237 * Whether or not to verify the table checksum before installation. Set
238 * this to TRUE to verify the table checksum before install it to the table
239 * manager. Note that enabling this option causes errors to happen in some
240 * OSPMs during early initialization stages. Default behavior is to do such
243 ACPI_INIT_GLOBAL (UINT8
, AcpiGbl_VerifyTableChecksum
, TRUE
);
246 * Optionally enable output from the AML Debug Object.
248 ACPI_INIT_GLOBAL (UINT8
, AcpiGbl_EnableAmlDebugObject
, FALSE
);
251 * Optionally copy the entire DSDT to local memory (instead of simply
252 * mapping it.) There are some BIOSs that corrupt or replace the original
253 * DSDT, creating the need for this option. Default is FALSE, do not copy
256 ACPI_INIT_GLOBAL (UINT8
, AcpiGbl_CopyDsdtLocally
, FALSE
);
259 * Optionally ignore an XSDT if present and use the RSDT instead.
260 * Although the ACPI specification requires that an XSDT be used instead
261 * of the RSDT, the XSDT has been found to be corrupt or ill-formed on
262 * some machines. Default behavior is to use the XSDT if present.
264 ACPI_INIT_GLOBAL (UINT8
, AcpiGbl_DoNotUseXsdt
, FALSE
);
267 * Optionally use 32-bit FADT addresses if and when there is a conflict
268 * (address mismatch) between the 32-bit and 64-bit versions of the
269 * address. Although ACPICA adheres to the ACPI specification which
270 * requires the use of the corresponding 64-bit address if it is non-zero,
271 * some machines have been found to have a corrupted non-zero 64-bit
272 * address. Default is FALSE, do not favor the 32-bit addresses.
274 ACPI_INIT_GLOBAL (UINT8
, AcpiGbl_Use32BitFadtAddresses
, FALSE
);
277 * Optionally truncate I/O addresses to 16 bits. Provides compatibility
278 * with other ACPI implementations. NOTE: During ACPICA initialization,
279 * this value is set to TRUE if any Windows OSI strings have been
280 * requested by the BIOS.
282 ACPI_INIT_GLOBAL (UINT8
, AcpiGbl_TruncateIoAddresses
, FALSE
);
285 * Disable runtime checking and repair of values returned by control methods.
286 * Use only if the repair is causing a problem on a particular machine.
288 ACPI_INIT_GLOBAL (UINT8
, AcpiGbl_DisableAutoRepair
, FALSE
);
291 * Optionally do not install any SSDTs from the RSDT/XSDT during initialization.
292 * This can be useful for debugging ACPI problems on some machines.
294 ACPI_INIT_GLOBAL (UINT8
, AcpiGbl_DisableSsdtTableInstall
, FALSE
);
297 * We keep track of the latest version of Windows that has been requested by
298 * the BIOS. ACPI 5.0.
300 ACPI_INIT_GLOBAL (UINT8
, AcpiGbl_OsiData
, 0);
303 * ACPI 5.0 introduces the concept of a "reduced hardware platform", meaning
304 * that the ACPI hardware is no longer required. A flag in the FADT indicates
305 * a reduced HW machine, and that flag is duplicated here for convenience.
307 ACPI_INIT_GLOBAL (BOOLEAN
, AcpiGbl_ReducedHardware
, FALSE
);
310 * This mechanism is used to trace a specified AML method. The method is
311 * traced each time it is executed.
313 ACPI_INIT_GLOBAL (UINT32
, AcpiGbl_TraceFlags
, 0);
314 ACPI_INIT_GLOBAL (ACPI_NAME
, AcpiGbl_TraceMethodName
, 0);
317 * Runtime configuration of debug output control masks. We want the debug
318 * switches statically initialized so they are already set when the debugger
321 #ifdef ACPI_DEBUG_OUTPUT
322 ACPI_INIT_GLOBAL (UINT32
, AcpiDbgLevel
, ACPI_DEBUG_DEFAULT
);
324 ACPI_INIT_GLOBAL (UINT32
, AcpiDbgLevel
, ACPI_NORMAL_DEFAULT
);
326 ACPI_INIT_GLOBAL (UINT32
, AcpiDbgLayer
, ACPI_COMPONENT_DEFAULT
);
329 * Other miscellaneous globals
331 ACPI_GLOBAL (ACPI_TABLE_FADT
, AcpiGbl_FADT
);
332 ACPI_GLOBAL (UINT32
, AcpiCurrentGpeCount
);
333 ACPI_GLOBAL (BOOLEAN
, AcpiGbl_SystemAwakeAndRunning
);
336 /*****************************************************************************
338 * ACPICA public interface configuration.
340 * Interfaces that are configured out of the ACPICA build are replaced
341 * by inlined stubs by default.
343 ****************************************************************************/
346 * Hardware-reduced prototypes (default: Not hardware reduced).
348 * All ACPICA hardware-related interfaces that use these macros will be
349 * configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag
352 * Note: This static build option for reduced hardware is intended to
353 * reduce ACPICA code size if desired or necessary. However, even if this
354 * option is not specified, the runtime behavior of ACPICA is dependent
355 * on the actual FADT reduced hardware flag (HW_REDUCED_ACPI). If set,
356 * the flag will enable similar behavior -- ACPICA will not attempt
357 * to access any ACPI-relate hardware (SCI, GPEs, Fixed Events, etc.)
359 #if (!ACPI_REDUCED_HARDWARE)
360 #define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
361 ACPI_EXTERNAL_RETURN_STATUS(Prototype)
363 #define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
364 ACPI_EXTERNAL_RETURN_OK(Prototype)
366 #define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
367 ACPI_EXTERNAL_RETURN_VOID(Prototype)
370 #define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
371 static ACPI_INLINE Prototype {return(AE_NOT_CONFIGURED);}
373 #define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
374 static ACPI_INLINE Prototype {return(AE_OK);}
376 #define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
377 static ACPI_INLINE Prototype {return;}
379 #endif /* !ACPI_REDUCED_HARDWARE */
383 * Error message prototypes (default: error messages enabled).
385 * All interfaces related to error and warning messages
386 * will be configured out of the ACPICA build if the
387 * ACPI_NO_ERROR_MESSAGE flag is defined.
389 #ifndef ACPI_NO_ERROR_MESSAGES
390 #define ACPI_MSG_DEPENDENT_RETURN_VOID(Prototype) \
394 #define ACPI_MSG_DEPENDENT_RETURN_VOID(Prototype) \
395 static ACPI_INLINE Prototype {return;}
397 #endif /* ACPI_NO_ERROR_MESSAGES */
401 * Debugging output prototypes (default: no debug output).
403 * All interfaces related to debug output messages
404 * will be configured out of the ACPICA build unless the
405 * ACPI_DEBUG_OUTPUT flag is defined.
407 #ifdef ACPI_DEBUG_OUTPUT
408 #define ACPI_DBG_DEPENDENT_RETURN_VOID(Prototype) \
412 #define ACPI_DBG_DEPENDENT_RETURN_VOID(Prototype) \
413 static ACPI_INLINE Prototype {return;}
415 #endif /* ACPI_DEBUG_OUTPUT */
419 * Application prototypes
421 * All interfaces used by application will be configured
422 * out of the ACPICA build unless the ACPI_APPLICATION
425 #ifdef ACPI_APPLICATION
426 #define ACPI_APP_DEPENDENT_RETURN_VOID(Prototype) \
430 #define ACPI_APP_DEPENDENT_RETURN_VOID(Prototype) \
431 static ACPI_INLINE Prototype {return;}
433 #endif /* ACPI_APPLICATION */
436 /*****************************************************************************
438 * ACPICA public interface prototypes
440 ****************************************************************************/
445 ACPI_EXTERNAL_RETURN_STATUS (
447 AcpiInitializeTables (
448 ACPI_TABLE_DESC
*InitialStorage
,
449 UINT32 InitialTableCount
,
450 BOOLEAN AllowResize
))
452 ACPI_EXTERNAL_RETURN_STATUS (
454 AcpiInitializeSubsystem (
457 ACPI_EXTERNAL_RETURN_STATUS (
459 AcpiEnableSubsystem (
462 ACPI_EXTERNAL_RETURN_STATUS (
464 AcpiInitializeObjects (
467 ACPI_EXTERNAL_RETURN_STATUS (
474 * Miscellaneous global interfaces
476 ACPI_HW_DEPENDENT_RETURN_STATUS (
481 ACPI_HW_DEPENDENT_RETURN_STATUS (
486 ACPI_EXTERNAL_RETURN_STATUS (
488 AcpiSubsystemStatus (
491 ACPI_EXTERNAL_RETURN_STATUS (
494 ACPI_BUFFER
*RetBuffer
))
496 ACPI_EXTERNAL_RETURN_STATUS (
499 ACPI_STATISTICS
*Stats
))
501 ACPI_EXTERNAL_RETURN_PTR (
503 AcpiFormatException (
504 ACPI_STATUS Exception
))
506 ACPI_EXTERNAL_RETURN_STATUS (
508 AcpiPurgeCachedObjects (
511 ACPI_EXTERNAL_RETURN_STATUS (
513 AcpiInstallInterface (
514 ACPI_STRING InterfaceName
))
516 ACPI_EXTERNAL_RETURN_STATUS (
518 AcpiRemoveInterface (
519 ACPI_STRING InterfaceName
))
521 ACPI_EXTERNAL_RETURN_STATUS (
523 AcpiUpdateInterfaces (
526 ACPI_EXTERNAL_RETURN_UINT32 (
528 AcpiCheckAddressRange (
529 ACPI_ADR_SPACE_TYPE SpaceId
,
530 ACPI_PHYSICAL_ADDRESS Address
,
534 ACPI_EXTERNAL_RETURN_STATUS (
536 AcpiDecodePldBuffer (
539 ACPI_PLD_INFO
**ReturnBuffer
))
543 * ACPI table load/unload interfaces
545 ACPI_EXTERNAL_RETURN_STATUS (
548 ACPI_PHYSICAL_ADDRESS Address
,
551 ACPI_EXTERNAL_RETURN_STATUS (
554 ACPI_TABLE_HEADER
*Table
))
556 ACPI_EXTERNAL_RETURN_STATUS (
558 AcpiUnloadParentTable (
561 ACPI_EXTERNAL_RETURN_STATUS (
568 * ACPI table manipulation interfaces
570 ACPI_EXTERNAL_RETURN_STATUS (
572 AcpiReallocateRootTable (
575 ACPI_EXTERNAL_RETURN_STATUS (
577 AcpiFindRootPointer (
578 ACPI_PHYSICAL_ADDRESS
*RsdpAddress
))
580 ACPI_EXTERNAL_RETURN_STATUS (
583 ACPI_STRING Signature
,
585 ACPI_TABLE_HEADER
*OutTableHeader
))
587 ACPI_EXTERNAL_RETURN_STATUS (
590 ACPI_STRING Signature
,
592 ACPI_TABLE_HEADER
**OutTable
))
594 ACPI_EXTERNAL_RETURN_STATUS (
596 AcpiGetTableByIndex (
598 ACPI_TABLE_HEADER
**OutTable
))
600 ACPI_EXTERNAL_RETURN_STATUS (
602 AcpiInstallTableHandler (
603 ACPI_TABLE_HANDLER Handler
,
606 ACPI_EXTERNAL_RETURN_STATUS (
608 AcpiRemoveTableHandler (
609 ACPI_TABLE_HANDLER Handler
))
613 * Namespace and name interfaces
615 ACPI_EXTERNAL_RETURN_STATUS (
618 ACPI_OBJECT_TYPE Type
,
619 ACPI_HANDLE StartObject
,
621 ACPI_WALK_CALLBACK DescendingCallback
,
622 ACPI_WALK_CALLBACK AscendingCallback
,
626 ACPI_EXTERNAL_RETURN_STATUS (
630 ACPI_WALK_CALLBACK UserFunction
,
634 ACPI_EXTERNAL_RETURN_STATUS (
639 ACPI_BUFFER
*RetPathPtr
))
641 ACPI_EXTERNAL_RETURN_STATUS (
645 ACPI_STRING Pathname
,
646 ACPI_HANDLE
*RetHandle
))
648 ACPI_EXTERNAL_RETURN_STATUS (
652 ACPI_OBJECT_HANDLER Handler
,
655 ACPI_EXTERNAL_RETURN_STATUS (
659 ACPI_OBJECT_HANDLER Handler
))
661 ACPI_EXTERNAL_RETURN_STATUS (
665 ACPI_OBJECT_HANDLER Handler
,
668 ACPI_EXTERNAL_RETURN_STATUS (
678 * Object manipulation and enumeration
680 ACPI_EXTERNAL_RETURN_STATUS (
684 ACPI_STRING Pathname
,
685 ACPI_OBJECT_LIST
*ParameterObjects
,
686 ACPI_BUFFER
*ReturnObjectBuffer
))
688 ACPI_EXTERNAL_RETURN_STATUS (
690 AcpiEvaluateObjectTyped (
692 ACPI_STRING Pathname
,
693 ACPI_OBJECT_LIST
*ExternalParams
,
694 ACPI_BUFFER
*ReturnBuffer
,
695 ACPI_OBJECT_TYPE ReturnType
))
697 ACPI_EXTERNAL_RETURN_STATUS (
701 ACPI_DEVICE_INFO
**ReturnBuffer
))
703 ACPI_EXTERNAL_RETURN_STATUS (
708 ACPI_EXTERNAL_RETURN_STATUS (
711 ACPI_OBJECT_TYPE Type
,
714 ACPI_HANDLE
*OutHandle
))
716 ACPI_EXTERNAL_RETURN_STATUS (
720 ACPI_OBJECT_TYPE
*OutType
))
722 ACPI_EXTERNAL_RETURN_STATUS (
726 ACPI_HANDLE
*OutHandle
))
732 ACPI_EXTERNAL_RETURN_STATUS (
734 AcpiInstallInitializationHandler (
735 ACPI_INIT_HANDLER Handler
,
738 ACPI_HW_DEPENDENT_RETURN_STATUS (
740 AcpiInstallSciHandler (
741 ACPI_SCI_HANDLER Address
,
744 ACPI_HW_DEPENDENT_RETURN_STATUS (
746 AcpiRemoveSciHandler (
747 ACPI_SCI_HANDLER Address
))
749 ACPI_HW_DEPENDENT_RETURN_STATUS (
751 AcpiInstallGlobalEventHandler (
752 ACPI_GBL_EVENT_HANDLER Handler
,
755 ACPI_HW_DEPENDENT_RETURN_STATUS (
757 AcpiInstallFixedEventHandler (
759 ACPI_EVENT_HANDLER Handler
,
762 ACPI_HW_DEPENDENT_RETURN_STATUS (
764 AcpiRemoveFixedEventHandler (
766 ACPI_EVENT_HANDLER Handler
))
768 ACPI_HW_DEPENDENT_RETURN_STATUS (
770 AcpiInstallGpeHandler (
771 ACPI_HANDLE GpeDevice
,
774 ACPI_GPE_HANDLER Address
,
777 ACPI_HW_DEPENDENT_RETURN_STATUS (
779 AcpiInstallGpeRawHandler (
780 ACPI_HANDLE GpeDevice
,
783 ACPI_GPE_HANDLER Address
,
786 ACPI_HW_DEPENDENT_RETURN_STATUS (
788 AcpiRemoveGpeHandler (
789 ACPI_HANDLE GpeDevice
,
791 ACPI_GPE_HANDLER Address
))
793 ACPI_EXTERNAL_RETURN_STATUS (
795 AcpiInstallNotifyHandler (
798 ACPI_NOTIFY_HANDLER Handler
,
801 ACPI_EXTERNAL_RETURN_STATUS (
803 AcpiRemoveNotifyHandler (
806 ACPI_NOTIFY_HANDLER Handler
))
808 ACPI_EXTERNAL_RETURN_STATUS (
810 AcpiInstallAddressSpaceHandler (
812 ACPI_ADR_SPACE_TYPE SpaceId
,
813 ACPI_ADR_SPACE_HANDLER Handler
,
814 ACPI_ADR_SPACE_SETUP Setup
,
817 ACPI_EXTERNAL_RETURN_STATUS (
819 AcpiRemoveAddressSpaceHandler (
821 ACPI_ADR_SPACE_TYPE SpaceId
,
822 ACPI_ADR_SPACE_HANDLER Handler
))
824 ACPI_EXTERNAL_RETURN_STATUS (
826 AcpiInstallExceptionHandler (
827 ACPI_EXCEPTION_HANDLER Handler
))
829 ACPI_EXTERNAL_RETURN_STATUS (
831 AcpiInstallInterfaceHandler (
832 ACPI_INTERFACE_HANDLER Handler
))
836 * Global Lock interfaces
838 ACPI_HW_DEPENDENT_RETURN_STATUS (
840 AcpiAcquireGlobalLock (
844 ACPI_HW_DEPENDENT_RETURN_STATUS (
846 AcpiReleaseGlobalLock (
851 * Interfaces to AML mutex objects
853 ACPI_EXTERNAL_RETURN_STATUS (
857 ACPI_STRING Pathname
,
860 ACPI_EXTERNAL_RETURN_STATUS (
864 ACPI_STRING Pathname
))
868 * Fixed Event interfaces
870 ACPI_HW_DEPENDENT_RETURN_STATUS (
876 ACPI_HW_DEPENDENT_RETURN_STATUS (
882 ACPI_HW_DEPENDENT_RETURN_STATUS (
887 ACPI_HW_DEPENDENT_RETURN_STATUS (
891 ACPI_EVENT_STATUS
*EventStatus
))
895 * General Purpose Event (GPE) Interfaces
897 ACPI_HW_DEPENDENT_RETURN_STATUS (
902 ACPI_HW_DEPENDENT_RETURN_STATUS (
905 ACPI_HANDLE GpeDevice
,
908 ACPI_HW_DEPENDENT_RETURN_STATUS (
911 ACPI_HANDLE GpeDevice
,
914 ACPI_HW_DEPENDENT_RETURN_STATUS (
917 ACPI_HANDLE GpeDevice
,
920 ACPI_HW_DEPENDENT_RETURN_STATUS (
923 ACPI_HANDLE GpeDevice
,
927 ACPI_HW_DEPENDENT_RETURN_STATUS (
930 ACPI_HANDLE GpeDevice
,
933 ACPI_HW_DEPENDENT_RETURN_STATUS (
936 ACPI_HANDLE GpeDevice
,
939 ACPI_HW_DEPENDENT_RETURN_STATUS (
941 AcpiSetupGpeForWake (
942 ACPI_HANDLE ParentDevice
,
943 ACPI_HANDLE GpeDevice
,
946 ACPI_HW_DEPENDENT_RETURN_STATUS (
949 ACPI_HANDLE GpeDevice
,
953 ACPI_HW_DEPENDENT_RETURN_STATUS (
956 ACPI_HANDLE GpeDevice
,
958 ACPI_EVENT_STATUS
*EventStatus
))
960 ACPI_HW_DEPENDENT_RETURN_STATUS (
965 ACPI_HW_DEPENDENT_RETURN_STATUS (
967 AcpiEnableAllRuntimeGpes (
970 ACPI_HW_DEPENDENT_RETURN_STATUS (
972 AcpiEnableAllWakeupGpes (
975 ACPI_HW_DEPENDENT_RETURN_STATUS (
979 ACPI_HANDLE
*GpeDevice
))
981 ACPI_HW_DEPENDENT_RETURN_STATUS (
983 AcpiInstallGpeBlock (
984 ACPI_HANDLE GpeDevice
,
985 ACPI_GENERIC_ADDRESS
*GpeBlockAddress
,
986 UINT32 RegisterCount
,
987 UINT32 InterruptNumber
))
989 ACPI_HW_DEPENDENT_RETURN_STATUS (
992 ACPI_HANDLE GpeDevice
))
996 * Resource interfaces
999 ACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK
) (
1000 ACPI_RESOURCE
*Resource
,
1003 ACPI_EXTERNAL_RETURN_STATUS (
1005 AcpiGetVendorResource (
1008 ACPI_VENDOR_UUID
*Uuid
,
1009 ACPI_BUFFER
*RetBuffer
))
1011 ACPI_EXTERNAL_RETURN_STATUS (
1013 AcpiGetCurrentResources (
1015 ACPI_BUFFER
*RetBuffer
))
1017 ACPI_EXTERNAL_RETURN_STATUS (
1019 AcpiGetPossibleResources (
1021 ACPI_BUFFER
*RetBuffer
))
1023 ACPI_EXTERNAL_RETURN_STATUS (
1025 AcpiGetEventResources (
1026 ACPI_HANDLE DeviceHandle
,
1027 ACPI_BUFFER
*RetBuffer
))
1029 ACPI_EXTERNAL_RETURN_STATUS (
1031 AcpiWalkResourceBuffer (
1032 ACPI_BUFFER
*Buffer
,
1033 ACPI_WALK_RESOURCE_CALLBACK UserFunction
,
1036 ACPI_EXTERNAL_RETURN_STATUS (
1041 ACPI_WALK_RESOURCE_CALLBACK UserFunction
,
1044 ACPI_EXTERNAL_RETURN_STATUS (
1046 AcpiSetCurrentResources (
1048 ACPI_BUFFER
*InBuffer
))
1050 ACPI_EXTERNAL_RETURN_STATUS (
1052 AcpiGetIrqRoutingTable (
1054 ACPI_BUFFER
*RetBuffer
))
1056 ACPI_EXTERNAL_RETURN_STATUS (
1058 AcpiResourceToAddress64 (
1059 ACPI_RESOURCE
*Resource
,
1060 ACPI_RESOURCE_ADDRESS64
*Out
))
1062 ACPI_EXTERNAL_RETURN_STATUS (
1064 AcpiBufferToResource (
1066 UINT16 AmlBufferLength
,
1067 ACPI_RESOURCE
**ResourcePtr
))
1071 * Hardware (ACPI device) interfaces
1073 ACPI_EXTERNAL_RETURN_STATUS (
1078 ACPI_EXTERNAL_RETURN_STATUS (
1082 ACPI_GENERIC_ADDRESS
*Reg
))
1084 ACPI_EXTERNAL_RETURN_STATUS (
1088 ACPI_GENERIC_ADDRESS
*Reg
))
1090 ACPI_HW_DEPENDENT_RETURN_STATUS (
1092 AcpiReadBitRegister (
1094 UINT32
*ReturnValue
))
1096 ACPI_HW_DEPENDENT_RETURN_STATUS (
1098 AcpiWriteBitRegister (
1104 * Sleep/Wake interfaces
1106 ACPI_EXTERNAL_RETURN_STATUS (
1108 AcpiGetSleepTypeData (
1113 ACPI_EXTERNAL_RETURN_STATUS (
1115 AcpiEnterSleepStatePrep (
1118 ACPI_EXTERNAL_RETURN_STATUS (
1120 AcpiEnterSleepState (
1123 ACPI_HW_DEPENDENT_RETURN_STATUS (
1125 AcpiEnterSleepStateS4bios (
1128 ACPI_EXTERNAL_RETURN_STATUS (
1130 AcpiLeaveSleepStatePrep (
1133 ACPI_EXTERNAL_RETURN_STATUS (
1135 AcpiLeaveSleepState (
1138 ACPI_HW_DEPENDENT_RETURN_STATUS (
1140 AcpiSetFirmwareWakingVector (
1141 UINT32 PhysicalAddress
))
1143 #if ACPI_MACHINE_WIDTH == 64
1144 ACPI_HW_DEPENDENT_RETURN_STATUS (
1146 AcpiSetFirmwareWakingVector64 (
1147 UINT64 PhysicalAddress
))
1152 * ACPI Timer interfaces
1154 ACPI_HW_DEPENDENT_RETURN_STATUS (
1156 AcpiGetTimerResolution (
1157 UINT32
*Resolution
))
1159 ACPI_HW_DEPENDENT_RETURN_STATUS (
1164 ACPI_HW_DEPENDENT_RETURN_STATUS (
1166 AcpiGetTimerDuration (
1169 UINT32
*TimeElapsed
))
1173 * Error/Warning output
1175 ACPI_MSG_DEPENDENT_RETURN_VOID (
1177 void ACPI_INTERNAL_VAR_XFACE
1179 const char *ModuleName
,
1184 ACPI_MSG_DEPENDENT_RETURN_VOID (
1186 void ACPI_INTERNAL_VAR_XFACE
1188 const char *ModuleName
,
1194 ACPI_MSG_DEPENDENT_RETURN_VOID (
1196 void ACPI_INTERNAL_VAR_XFACE
1198 const char *ModuleName
,
1203 ACPI_MSG_DEPENDENT_RETURN_VOID (
1205 void ACPI_INTERNAL_VAR_XFACE
1207 const char *ModuleName
,
1212 ACPI_MSG_DEPENDENT_RETURN_VOID (
1214 void ACPI_INTERNAL_VAR_XFACE
1216 const char *ModuleName
,
1221 ACPI_MSG_DEPENDENT_RETURN_VOID (
1223 void ACPI_INTERNAL_VAR_XFACE
1225 const char *ModuleName
,
1234 ACPI_DBG_DEPENDENT_RETURN_VOID (
1236 void ACPI_INTERNAL_VAR_XFACE
1238 UINT32 RequestedDebugLevel
,
1240 const char *FunctionName
,
1241 const char *ModuleName
,
1246 ACPI_DBG_DEPENDENT_RETURN_VOID (
1248 void ACPI_INTERNAL_VAR_XFACE
1250 UINT32 RequestedDebugLevel
,
1252 const char *FunctionName
,
1253 const char *ModuleName
,
1258 ACPI_APP_DEPENDENT_RETURN_VOID (
1260 void ACPI_INTERNAL_VAR_XFACE
1265 #endif /* __ACXFACE_H__ */