Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:42

0001 /******************************************************************************
0002  *
0003  * Name: acpixf.h - External interfaces to the ACPI subsystem
0004  *
0005  *****************************************************************************/
0006 
0007 /******************************************************************************
0008  *
0009  * 1. Copyright Notice
0010  *
0011  * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
0012  * All rights reserved.
0013  *
0014  * 2. License
0015  *
0016  * 2.1. This is your license from Intel Corp. under its intellectual property
0017  * rights. You may have additional license terms from the party that provided
0018  * you this software, covering your right to use that party's intellectual
0019  * property rights.
0020  *
0021  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
0022  * copy of the source code appearing in this file ("Covered Code") an
0023  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
0024  * base code distributed originally by Intel ("Original Intel Code") to copy,
0025  * make derivatives, distribute, use and display any portion of the Covered
0026  * Code in any form, with the right to sublicense such rights; and
0027  *
0028  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
0029  * license (with the right to sublicense), under only those claims of Intel
0030  * patents that are infringed by the Original Intel Code, to make, use, sell,
0031  * offer to sell, and import the Covered Code and derivative works thereof
0032  * solely to the minimum extent necessary to exercise the above copyright
0033  * license, and in no event shall the patent license extend to any additions
0034  * to or modifications of the Original Intel Code. No other license or right
0035  * is granted directly or by implication, estoppel or otherwise;
0036  *
0037  * The above copyright and patent license is granted only if the following
0038  * conditions are met:
0039  *
0040  * 3. Conditions
0041  *
0042  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
0043  * Redistribution of source code of any substantial portion of the Covered
0044  * Code or modification with rights to further distribute source must include
0045  * the above Copyright Notice, the above License, this list of Conditions,
0046  * and the following Disclaimer and Export Compliance provision. In addition,
0047  * Licensee must cause all Covered Code to which Licensee contributes to
0048  * contain a file documenting the changes Licensee made to create that Covered
0049  * Code and the date of any change. Licensee must include in that file the
0050  * documentation of any changes made by any predecessor Licensee. Licensee
0051  * must include a prominent statement that the modification is derived,
0052  * directly or indirectly, from Original Intel Code.
0053  *
0054  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
0055  * Redistribution of source code of any substantial portion of the Covered
0056  * Code or modification without rights to further distribute source must
0057  * include the following Disclaimer and Export Compliance provision in the
0058  * documentation and/or other materials provided with distribution. In
0059  * addition, Licensee may not authorize further sublicense of source of any
0060  * portion of the Covered Code, and must include terms to the effect that the
0061  * license from Licensee to its licensee is limited to the intellectual
0062  * property embodied in the software Licensee provides to its licensee, and
0063  * not to intellectual property embodied in modifications its licensee may
0064  * make.
0065  *
0066  * 3.3. Redistribution of Executable. Redistribution in executable form of any
0067  * substantial portion of the Covered Code or modification must reproduce the
0068  * above Copyright Notice, and the following Disclaimer and Export Compliance
0069  * provision in the documentation and/or other materials provided with the
0070  * distribution.
0071  *
0072  * 3.4. Intel retains all right, title, and interest in and to the Original
0073  * Intel Code.
0074  *
0075  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
0076  * Intel shall be used in advertising or otherwise to promote the sale, use or
0077  * other dealings in products derived from or relating to the Covered Code
0078  * without prior written authorization from Intel.
0079  *
0080  * 4. Disclaimer and Export Compliance
0081  *
0082  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
0083  * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
0084  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
0085  * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
0086  * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
0087  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
0088  * PARTICULAR PURPOSE.
0089  *
0090  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
0091  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
0092  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
0093  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
0094  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
0095  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
0096  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
0097  * LIMITED REMEDY.
0098  *
0099  * 4.3. Licensee shall not export, either directly or indirectly, any of this
0100  * software or system incorporating such software without first obtaining any
0101  * required license or other approval from the U. S. Department of Commerce or
0102  * any other agency or department of the United States Government. In the
0103  * event Licensee exports any such software from the United States or
0104  * re-exports any such software from a foreign destination, Licensee shall
0105  * ensure that the distribution and export/re-export of the software is in
0106  * compliance with all laws, regulations, orders, or other restrictions of the
0107  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
0108  * any of its subsidiaries will export/re-export any technical data, process,
0109  * software, or service, directly or indirectly, to any country for which the
0110  * United States government or any agency thereof requires an export license,
0111  * other governmental approval, or letter of assurance, without first obtaining
0112  * such license, approval or letter.
0113  *
0114  *****************************************************************************
0115  *
0116  * Alternatively, you may choose to be licensed under the terms of the
0117  * following license:
0118  *
0119  * Redistribution and use in source and binary forms, with or without
0120  * modification, are permitted provided that the following conditions
0121  * are met:
0122  * 1. Redistributions of source code must retain the above copyright
0123  *    notice, this list of conditions, and the following disclaimer,
0124  *    without modification.
0125  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
0126  *    substantially similar to the "NO WARRANTY" disclaimer below
0127  *    ("Disclaimer") and any redistribution must be conditioned upon
0128  *    including a substantially similar Disclaimer requirement for further
0129  *    binary redistribution.
0130  * 3. Neither the names of the above-listed copyright holders nor the names
0131  *    of any contributors may be used to endorse or promote products derived
0132  *    from this software without specific prior written permission.
0133  *
0134  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
0135  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
0136  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
0137  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
0138  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
0139  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
0140  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
0141  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
0142  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
0143  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
0144  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
0145  *
0146  * Alternatively, you may choose to be licensed under the terms of the
0147  * GNU General Public License ("GPL") version 2 as published by the Free
0148  * Software Foundation.
0149  *
0150  *****************************************************************************/
0151 
0152 #ifndef __ACXFACE_H__
0153 #define __ACXFACE_H__
0154 
0155 /* Current ACPICA subsystem version in YYYYMMDD format */
0156 
0157 #define ACPI_CA_VERSION                 0x20240322
0158 
0159 #include "acconfig.h"
0160 #include "actypes.h"
0161 #include "actbl.h"
0162 #include "acbuffer.h"
0163 
0164 
0165 /*****************************************************************************
0166  *
0167  * Macros used for ACPICA globals and configuration
0168  *
0169  ****************************************************************************/
0170 
0171 /*
0172  * Ensure that global variables are defined and initialized only once.
0173  *
0174  * The use of these macros allows for a single list of globals (here)
0175  * in order to simplify maintenance of the code.
0176  */
0177 #ifdef DEFINE_ACPI_GLOBALS
0178 #define ACPI_GLOBAL(type,name) \
0179     extern type name; \
0180     type name
0181 
0182 #define ACPI_INIT_GLOBAL(type,name,value) \
0183     type name=value
0184 
0185 #else
0186 #ifndef ACPI_GLOBAL
0187 #define ACPI_GLOBAL(type,name) \
0188     extern type name
0189 #endif
0190 
0191 #ifndef ACPI_INIT_GLOBAL
0192 #define ACPI_INIT_GLOBAL(type,name,value) \
0193     extern type name
0194 #endif
0195 #endif
0196 
0197 /*
0198  * These macros configure the various ACPICA interfaces. They are
0199  * useful for generating stub inline functions for features that are
0200  * configured out of the current kernel or ACPICA application.
0201  */
0202 #ifndef ACPI_EXTERNAL_RETURN_STATUS
0203 #define ACPI_EXTERNAL_RETURN_STATUS(Prototype) \
0204     Prototype;
0205 #endif
0206 
0207 #ifndef ACPI_EXTERNAL_RETURN_OK
0208 #define ACPI_EXTERNAL_RETURN_OK(Prototype) \
0209     Prototype;
0210 #endif
0211 
0212 #ifndef ACPI_EXTERNAL_RETURN_VOID
0213 #define ACPI_EXTERNAL_RETURN_VOID(Prototype) \
0214     Prototype;
0215 #endif
0216 
0217 #ifndef ACPI_EXTERNAL_RETURN_UINT32
0218 #define ACPI_EXTERNAL_RETURN_UINT32(Prototype) \
0219     Prototype;
0220 #endif
0221 
0222 #ifndef ACPI_EXTERNAL_RETURN_PTR
0223 #define ACPI_EXTERNAL_RETURN_PTR(Prototype) \
0224     Prototype;
0225 #endif
0226 
0227 
0228 /*****************************************************************************
0229  *
0230  * Public globals and runtime configuration options
0231  *
0232  ****************************************************************************/
0233 
0234 /*
0235  * Enable "slack mode" of the AML interpreter?  Default is FALSE, and the
0236  * interpreter strictly follows the ACPI specification. Setting to TRUE
0237  * allows the interpreter to ignore certain errors and/or bad AML constructs.
0238  *
0239  * Currently, these features are enabled by this flag:
0240  *
0241  * 1) Allow "implicit return" of last value in a control method
0242  * 2) Allow access beyond the end of an operation region
0243  * 3) Allow access to uninitialized locals/args (auto-init to integer 0)
0244  * 4) Allow ANY object type to be a source operand for the Store() operator
0245  * 5) Allow unresolved references (invalid target name) in package objects
0246  * 6) Enable warning messages for behavior that is not ACPI spec compliant
0247  */
0248 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_EnableInterpreterSlack, FALSE);
0249 
0250 /*
0251  * Automatically serialize all methods that create named objects? Default
0252  * is TRUE, meaning that all NonSerialized methods are scanned once at
0253  * table load time to determine those that create named objects. Methods
0254  * that create named objects are marked Serialized in order to prevent
0255  * possible run-time problems if they are entered by more than one thread.
0256  */
0257 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_AutoSerializeMethods, TRUE);
0258 
0259 /*
0260  * Create the predefined _OSI method in the namespace? Default is TRUE
0261  * because ACPICA is fully compatible with other ACPI implementations.
0262  * Changing this will revert ACPICA (and machine ASL) to pre-OSI behavior.
0263  */
0264 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_CreateOsiMethod, TRUE);
0265 
0266 /*
0267  * Optionally use default values for the ACPI register widths. Set this to
0268  * TRUE to use the defaults, if an FADT contains incorrect widths/lengths.
0269  */
0270 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_UseDefaultRegisterWidths, TRUE);
0271 
0272 /*
0273  * Whether or not to validate (map) an entire table to verify
0274  * checksum/duplication in early stage before install. Set this to TRUE to
0275  * allow early table validation before install it to the table manager.
0276  * Note that enabling this option causes errors to happen in some OSPMs
0277  * during early initialization stages. Default behavior is to allow such
0278  * validation.
0279  */
0280 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_EnableTableValidation, TRUE);
0281 
0282 /*
0283  * Optionally enable output from the AML Debug Object.
0284  */
0285 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_EnableAmlDebugObject, FALSE);
0286 
0287 /*
0288  * Optionally copy the entire DSDT to local memory (instead of simply
0289  * mapping it.) There are some BIOSs that corrupt or replace the original
0290  * DSDT, creating the need for this option. Default is FALSE, do not copy
0291  * the DSDT.
0292  */
0293 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_CopyDsdtLocally, FALSE);
0294 
0295 /*
0296  * Optionally ignore an XSDT if present and use the RSDT instead.
0297  * Although the ACPI specification requires that an XSDT be used instead
0298  * of the RSDT, the XSDT has been found to be corrupt or ill-formed on
0299  * some machines. Default behavior is to use the XSDT if present.
0300  */
0301 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_DoNotUseXsdt, FALSE);
0302 
0303 /*
0304  * Optionally use 32-bit FADT addresses if and when there is a conflict
0305  * (address mismatch) between the 32-bit and 64-bit versions of the
0306  * address. Although ACPICA adheres to the ACPI specification which
0307  * requires the use of the corresponding 64-bit address if it is non-zero,
0308  * some machines have been found to have a corrupted non-zero 64-bit
0309  * address. Default is FALSE, do not favor the 32-bit addresses.
0310  */
0311 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_Use32BitFadtAddresses, FALSE);
0312 
0313 /*
0314  * Optionally use 32-bit FACS table addresses.
0315  * It is reported that some platforms fail to resume from system suspending
0316  * if 64-bit FACS table address is selected:
0317  * https://bugzilla.kernel.org/show_bug.cgi?id=74021
0318  * Default is TRUE, favor the 32-bit addresses.
0319  */
0320 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_Use32BitFacsAddresses, TRUE);
0321 
0322 /*
0323  * Optionally truncate I/O addresses to 16 bits. Provides compatibility
0324  * with other ACPI implementations. NOTE: During ACPICA initialization,
0325  * this value is set to TRUE if any Windows OSI strings have been
0326  * requested by the BIOS.
0327  */
0328 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_TruncateIoAddresses, FALSE);
0329 
0330 /*
0331  * Disable runtime checking and repair of values returned by control methods.
0332  * Use only if the repair is causing a problem on a particular machine.
0333  */
0334 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_DisableAutoRepair, FALSE);
0335 
0336 /*
0337  * Optionally do not install any SSDTs from the RSDT/XSDT during initialization.
0338  * This can be useful for debugging ACPI problems on some machines.
0339  */
0340 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_DisableSsdtTableInstall, FALSE);
0341 
0342 /*
0343  * Optionally enable runtime namespace override.
0344  */
0345 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_RuntimeNamespaceOverride, TRUE);
0346 
0347 /*
0348  * We keep track of the latest version of Windows that has been requested by
0349  * the BIOS. ACPI 5.0.
0350  */
0351 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_OsiData, 0);
0352 
0353 /*
0354  * ACPI 5.0 introduces the concept of a "reduced hardware platform", meaning
0355  * that the ACPI hardware is no longer required. A flag in the FADT indicates
0356  * a reduced HW machine, and that flag is duplicated here for convenience.
0357  */
0358 ACPI_INIT_GLOBAL (BOOLEAN,          AcpiGbl_ReducedHardware, FALSE);
0359 
0360 /*
0361  * Maximum timeout for While() loop iterations before forced method abort.
0362  * This mechanism is intended to prevent infinite loops during interpreter
0363  * execution within a host kernel.
0364  */
0365 ACPI_INIT_GLOBAL (UINT32,           AcpiGbl_MaxLoopIterations, ACPI_MAX_LOOP_TIMEOUT);
0366 
0367 /*
0368  * Optionally ignore AE_NOT_FOUND errors from named reference package elements
0369  * during DSDT/SSDT table loading. This reduces error "noise" in platforms
0370  * whose firmware is carrying around a bunch of unused package objects that
0371  * refer to non-existent named objects. However, If the AML actually tries to
0372  * use such a package, the unresolved element(s) will be replaced with NULL
0373  * elements.
0374  */
0375 ACPI_INIT_GLOBAL (BOOLEAN,          AcpiGbl_IgnorePackageResolutionErrors, FALSE);
0376 
0377 /*
0378  * This mechanism is used to trace a specified AML method. The method is
0379  * traced each time it is executed.
0380  */
0381 ACPI_INIT_GLOBAL (UINT32,           AcpiGbl_TraceFlags, 0);
0382 ACPI_INIT_GLOBAL (const char *,     AcpiGbl_TraceMethodName, NULL);
0383 ACPI_INIT_GLOBAL (UINT32,           AcpiGbl_TraceDbgLevel, ACPI_TRACE_LEVEL_DEFAULT);
0384 ACPI_INIT_GLOBAL (UINT32,           AcpiGbl_TraceDbgLayer, ACPI_TRACE_LAYER_DEFAULT);
0385 
0386 /*
0387  * Runtime configuration of debug output control masks. We want the debug
0388  * switches statically initialized so they are already set when the debugger
0389  * is entered.
0390  */
0391 #ifdef ACPI_DEBUG_OUTPUT
0392 ACPI_INIT_GLOBAL (UINT32,           AcpiDbgLevel, ACPI_DEBUG_DEFAULT);
0393 #else
0394 ACPI_INIT_GLOBAL (UINT32,           AcpiDbgLevel, ACPI_NORMAL_DEFAULT);
0395 #endif
0396 ACPI_INIT_GLOBAL (UINT32,           AcpiDbgLayer, ACPI_COMPONENT_DEFAULT);
0397 
0398 /* Optionally enable timer output with Debug Object output */
0399 
0400 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_DisplayDebugTimer, FALSE);
0401 
0402 /*
0403  * Debugger command handshake globals. Host OSes need to access these
0404  * variables to implement their own command handshake mechanism.
0405  */
0406 #ifdef ACPI_DEBUGGER
0407 ACPI_INIT_GLOBAL (BOOLEAN,          AcpiGbl_MethodExecuting, FALSE);
0408 ACPI_GLOBAL (char,                  AcpiGbl_DbLineBuf[ACPI_DB_LINE_BUFFER_SIZE]);
0409 #endif
0410 
0411 /*
0412  * Other miscellaneous globals
0413  */
0414 ACPI_GLOBAL (ACPI_TABLE_FADT,       AcpiGbl_FADT);
0415 ACPI_GLOBAL (UINT32,                AcpiCurrentGpeCount);
0416 ACPI_GLOBAL (BOOLEAN,               AcpiGbl_SystemAwakeAndRunning);
0417 
0418 
0419 /*****************************************************************************
0420  *
0421  * ACPICA public interface configuration.
0422  *
0423  * Interfaces that are configured out of the ACPICA build are replaced
0424  * by inlined stubs by default.
0425  *
0426  ****************************************************************************/
0427 
0428 /*
0429  * Hardware-reduced prototypes (default: Not hardware reduced).
0430  *
0431  * All ACPICA hardware-related interfaces that use these macros will be
0432  * configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag
0433  * is set to TRUE.
0434  *
0435  * Note: This static build option for reduced hardware is intended to
0436  * reduce ACPICA code size if desired or necessary. However, even if this
0437  * option is not specified, the runtime behavior of ACPICA is dependent
0438  * on the actual FADT reduced hardware flag (HW_REDUCED_ACPI). If set,
0439  * the flag will enable similar behavior -- ACPICA will not attempt
0440  * to access any ACPI-relate hardware (SCI, GPEs, Fixed Events, etc.)
0441  */
0442 #if (!ACPI_REDUCED_HARDWARE)
0443 #define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
0444     ACPI_EXTERNAL_RETURN_STATUS(Prototype)
0445 
0446 #define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
0447     ACPI_EXTERNAL_RETURN_OK(Prototype)
0448 
0449 #define ACPI_HW_DEPENDENT_RETURN_UINT32(prototype) \
0450     ACPI_EXTERNAL_RETURN_UINT32(prototype)
0451 
0452 #define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
0453     ACPI_EXTERNAL_RETURN_VOID(Prototype)
0454 
0455 #else
0456 #define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
0457     static ACPI_INLINE Prototype {return(AE_NOT_CONFIGURED);}
0458 
0459 #define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
0460     static ACPI_INLINE Prototype {return(AE_OK);}
0461 
0462 #define ACPI_HW_DEPENDENT_RETURN_UINT32(prototype) \
0463     static ACPI_INLINE prototype {return(0);}
0464 
0465 #define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
0466     static ACPI_INLINE Prototype {return;}
0467 
0468 #endif /* !ACPI_REDUCED_HARDWARE */
0469 
0470 
0471 /*
0472  * Error message prototypes (default: error messages enabled).
0473  *
0474  * All interfaces related to error and warning messages
0475  * will be configured out of the ACPICA build if the
0476  * ACPI_NO_ERROR_MESSAGE flag is defined.
0477  */
0478 #ifndef ACPI_NO_ERROR_MESSAGES
0479 #define ACPI_MSG_DEPENDENT_RETURN_VOID(Prototype) \
0480     Prototype;
0481 
0482 #else
0483 #define ACPI_MSG_DEPENDENT_RETURN_VOID(Prototype) \
0484     static ACPI_INLINE Prototype {return;}
0485 
0486 #endif /* ACPI_NO_ERROR_MESSAGES */
0487 
0488 
0489 /*
0490  * Debugging output prototypes (default: no debug output).
0491  *
0492  * All interfaces related to debug output messages
0493  * will be configured out of the ACPICA build unless the
0494  * ACPI_DEBUG_OUTPUT flag is defined.
0495  */
0496 #ifdef ACPI_DEBUG_OUTPUT
0497 #define ACPI_DBG_DEPENDENT_RETURN_VOID(Prototype) \
0498     Prototype;
0499 
0500 #else
0501 #define ACPI_DBG_DEPENDENT_RETURN_VOID(Prototype) \
0502     static ACPI_INLINE Prototype {return;}
0503 
0504 #endif /* ACPI_DEBUG_OUTPUT */
0505 
0506 
0507 /*
0508  * Application prototypes
0509  *
0510  * All interfaces used by application will be configured
0511  * out of the ACPICA build unless the ACPI_APPLICATION
0512  * flag is defined.
0513  */
0514 #ifdef ACPI_APPLICATION
0515 #define ACPI_APP_DEPENDENT_RETURN_VOID(Prototype) \
0516     Prototype;
0517 
0518 #else
0519 #define ACPI_APP_DEPENDENT_RETURN_VOID(Prototype) \
0520     static ACPI_INLINE Prototype {return;}
0521 
0522 #endif /* ACPI_APPLICATION */
0523 
0524 
0525 /*
0526  * Debugger prototypes
0527  *
0528  * All interfaces used by debugger will be configured
0529  * out of the ACPICA build unless the ACPI_DEBUGGER
0530  * flag is defined.
0531  */
0532 #ifdef ACPI_DEBUGGER
0533 #define ACPI_DBR_DEPENDENT_RETURN_OK(Prototype) \
0534     ACPI_EXTERNAL_RETURN_OK(Prototype)
0535 
0536 #define ACPI_DBR_DEPENDENT_RETURN_VOID(Prototype) \
0537     ACPI_EXTERNAL_RETURN_VOID(Prototype)
0538 
0539 #else
0540 #define ACPI_DBR_DEPENDENT_RETURN_OK(Prototype) \
0541     static ACPI_INLINE Prototype {return(AE_OK);}
0542 
0543 #define ACPI_DBR_DEPENDENT_RETURN_VOID(Prototype) \
0544     static ACPI_INLINE Prototype {return;}
0545 
0546 #endif /* ACPI_DEBUGGER */
0547 
0548 
0549 /*****************************************************************************
0550  *
0551  * ACPICA public interface prototypes
0552  *
0553  ****************************************************************************/
0554 
0555 /*
0556  * Initialization
0557  */
0558 ACPI_EXTERNAL_RETURN_STATUS (
0559 ACPI_STATUS ACPI_INIT_FUNCTION
0560 AcpiInitializeTables (
0561     ACPI_TABLE_DESC         *InitialStorage,
0562     UINT32                  InitialTableCount,
0563     BOOLEAN                 AllowResize))
0564 
0565 ACPI_EXTERNAL_RETURN_STATUS (
0566 ACPI_STATUS ACPI_INIT_FUNCTION
0567 AcpiInitializeSubsystem (
0568     void))
0569 
0570 ACPI_EXTERNAL_RETURN_STATUS (
0571 ACPI_STATUS ACPI_INIT_FUNCTION
0572 AcpiEnableSubsystem (
0573     UINT32                  Flags))
0574 
0575 ACPI_EXTERNAL_RETURN_STATUS (
0576 ACPI_STATUS ACPI_INIT_FUNCTION
0577 AcpiInitializeObjects (
0578     UINT32                  Flags))
0579 
0580 ACPI_EXTERNAL_RETURN_STATUS (
0581 ACPI_STATUS ACPI_INIT_FUNCTION
0582 AcpiTerminate (
0583     void))
0584 
0585 
0586 /*
0587  * Miscellaneous global interfaces
0588  */
0589 ACPI_HW_DEPENDENT_RETURN_STATUS (
0590 ACPI_STATUS
0591 AcpiEnable (
0592     void))
0593 
0594 ACPI_HW_DEPENDENT_RETURN_STATUS (
0595 ACPI_STATUS
0596 AcpiDisable (
0597     void))
0598 
0599 ACPI_EXTERNAL_RETURN_STATUS (
0600 ACPI_STATUS
0601 AcpiSubsystemStatus (
0602     void))
0603 
0604 ACPI_EXTERNAL_RETURN_STATUS (
0605 ACPI_STATUS
0606 AcpiGetSystemInfo (
0607     ACPI_BUFFER             *RetBuffer))
0608 
0609 ACPI_EXTERNAL_RETURN_STATUS (
0610 ACPI_STATUS
0611 AcpiGetStatistics (
0612     ACPI_STATISTICS         *Stats))
0613 
0614 ACPI_EXTERNAL_RETURN_PTR (
0615 const char *
0616 AcpiFormatException (
0617     ACPI_STATUS             Exception))
0618 
0619 ACPI_EXTERNAL_RETURN_STATUS (
0620 ACPI_STATUS
0621 AcpiPurgeCachedObjects (
0622     void))
0623 
0624 ACPI_EXTERNAL_RETURN_STATUS (
0625 ACPI_STATUS
0626 AcpiInstallInterface (
0627     ACPI_STRING             InterfaceName))
0628 
0629 ACPI_EXTERNAL_RETURN_STATUS (
0630 ACPI_STATUS
0631 AcpiRemoveInterface (
0632     ACPI_STRING             InterfaceName))
0633 
0634 ACPI_EXTERNAL_RETURN_STATUS (
0635 ACPI_STATUS
0636 AcpiUpdateInterfaces (
0637     UINT8                   Action))
0638 
0639 ACPI_EXTERNAL_RETURN_UINT32 (
0640 UINT32
0641 AcpiCheckAddressRange (
0642     ACPI_ADR_SPACE_TYPE     SpaceId,
0643     ACPI_PHYSICAL_ADDRESS   Address,
0644     ACPI_SIZE               Length,
0645     BOOLEAN                 Warn))
0646 
0647 ACPI_EXTERNAL_RETURN_STATUS (
0648 ACPI_STATUS
0649 AcpiDecodePldBuffer (
0650     UINT8                   *InBuffer,
0651     ACPI_SIZE               Length,
0652     ACPI_PLD_INFO           **ReturnBuffer))
0653 
0654 
0655 /*
0656  * ACPI table load/unload interfaces
0657  */
0658 ACPI_EXTERNAL_RETURN_STATUS (
0659 ACPI_STATUS ACPI_INIT_FUNCTION
0660 AcpiInstallTable (
0661     ACPI_TABLE_HEADER       *Table))
0662 
0663 ACPI_EXTERNAL_RETURN_STATUS (
0664 ACPI_STATUS ACPI_INIT_FUNCTION
0665 AcpiInstallPhysicalTable (
0666     ACPI_PHYSICAL_ADDRESS   Address))
0667 
0668 ACPI_EXTERNAL_RETURN_STATUS (
0669 ACPI_STATUS
0670 AcpiLoadTable (
0671     ACPI_TABLE_HEADER       *Table,
0672     UINT32                  *TableIdx))
0673 
0674 ACPI_EXTERNAL_RETURN_STATUS (
0675 ACPI_STATUS
0676 AcpiUnloadTable (
0677     UINT32                  TableIndex))
0678 
0679 ACPI_EXTERNAL_RETURN_STATUS (
0680 ACPI_STATUS
0681 AcpiUnloadParentTable (
0682     ACPI_HANDLE             Object))
0683 
0684 ACPI_EXTERNAL_RETURN_STATUS (
0685 ACPI_STATUS ACPI_INIT_FUNCTION
0686 AcpiLoadTables (
0687     void))
0688 
0689 
0690 /*
0691  * ACPI table manipulation interfaces
0692  */
0693 ACPI_EXTERNAL_RETURN_STATUS (
0694 ACPI_STATUS ACPI_INIT_FUNCTION
0695 AcpiReallocateRootTable (
0696     void))
0697 
0698 ACPI_EXTERNAL_RETURN_STATUS (
0699 ACPI_STATUS ACPI_INIT_FUNCTION
0700 AcpiFindRootPointer (
0701     ACPI_PHYSICAL_ADDRESS   *RsdpAddress))
0702 
0703 ACPI_EXTERNAL_RETURN_STATUS (
0704 ACPI_STATUS
0705 AcpiGetTableHeader (
0706     ACPI_STRING             Signature,
0707     UINT32                  Instance,
0708     ACPI_TABLE_HEADER       *OutTableHeader))
0709 
0710 ACPI_EXTERNAL_RETURN_STATUS (
0711 ACPI_STATUS
0712 AcpiGetTable (
0713     ACPI_STRING             Signature,
0714     UINT32                  Instance,
0715     ACPI_TABLE_HEADER       **OutTable))
0716 
0717 ACPI_EXTERNAL_RETURN_VOID (
0718 void
0719 AcpiPutTable (
0720     ACPI_TABLE_HEADER       *Table))
0721 
0722 ACPI_EXTERNAL_RETURN_STATUS (
0723 ACPI_STATUS
0724 AcpiGetTableByIndex (
0725     UINT32                  TableIndex,
0726     ACPI_TABLE_HEADER       **OutTable))
0727 
0728 ACPI_EXTERNAL_RETURN_STATUS (
0729 ACPI_STATUS
0730 AcpiInstallTableHandler (
0731     ACPI_TABLE_HANDLER      Handler,
0732     void                    *Context))
0733 
0734 ACPI_EXTERNAL_RETURN_STATUS (
0735 ACPI_STATUS
0736 AcpiRemoveTableHandler (
0737     ACPI_TABLE_HANDLER      Handler))
0738 
0739 
0740 /*
0741  * Namespace and name interfaces
0742  */
0743 ACPI_EXTERNAL_RETURN_STATUS (
0744 ACPI_STATUS
0745 AcpiWalkNamespace (
0746     ACPI_OBJECT_TYPE        Type,
0747     ACPI_HANDLE             StartObject,
0748     UINT32                  MaxDepth,
0749     ACPI_WALK_CALLBACK      DescendingCallback,
0750     ACPI_WALK_CALLBACK      AscendingCallback,
0751     void                    *Context,
0752     void                    **ReturnValue))
0753 
0754 ACPI_EXTERNAL_RETURN_STATUS (
0755 ACPI_STATUS
0756 AcpiGetDevices (
0757     char                    *HID,
0758     ACPI_WALK_CALLBACK      UserFunction,
0759     void                    *Context,
0760     void                    **ReturnValue))
0761 
0762 ACPI_EXTERNAL_RETURN_STATUS (
0763 ACPI_STATUS
0764 AcpiGetName (
0765     ACPI_HANDLE             Object,
0766     UINT32                  NameType,
0767     ACPI_BUFFER             *RetPathPtr))
0768 
0769 ACPI_EXTERNAL_RETURN_STATUS (
0770 ACPI_STATUS
0771 AcpiGetHandle (
0772     ACPI_HANDLE             Parent,
0773     const char              *Pathname,
0774     ACPI_HANDLE             *RetHandle))
0775 
0776 ACPI_EXTERNAL_RETURN_STATUS (
0777 ACPI_STATUS
0778 AcpiAttachData (
0779     ACPI_HANDLE             Object,
0780     ACPI_OBJECT_HANDLER     Handler,
0781     void                    *Data))
0782 
0783 ACPI_EXTERNAL_RETURN_STATUS (
0784 ACPI_STATUS
0785 AcpiDetachData (
0786     ACPI_HANDLE             Object,
0787     ACPI_OBJECT_HANDLER     Handler))
0788 
0789 ACPI_EXTERNAL_RETURN_STATUS (
0790 ACPI_STATUS
0791 AcpiGetData (
0792     ACPI_HANDLE             Object,
0793     ACPI_OBJECT_HANDLER     Handler,
0794     void                    **Data))
0795 
0796 ACPI_EXTERNAL_RETURN_STATUS (
0797 ACPI_STATUS
0798 AcpiDebugTrace (
0799     const char              *Name,
0800     UINT32                  DebugLevel,
0801     UINT32                  DebugLayer,
0802     UINT32                  Flags))
0803 
0804 
0805 /*
0806  * Object manipulation and enumeration
0807  */
0808 ACPI_EXTERNAL_RETURN_STATUS (
0809 ACPI_STATUS
0810 AcpiEvaluateObject (
0811     ACPI_HANDLE             Object,
0812     ACPI_STRING             Pathname,
0813     ACPI_OBJECT_LIST        *ParameterObjects,
0814     ACPI_BUFFER             *ReturnObjectBuffer))
0815 
0816 ACPI_EXTERNAL_RETURN_STATUS (
0817 ACPI_STATUS
0818 AcpiEvaluateObjectTyped (
0819     ACPI_HANDLE             Object,
0820     ACPI_STRING             Pathname,
0821     ACPI_OBJECT_LIST        *ExternalParams,
0822     ACPI_BUFFER             *ReturnBuffer,
0823     ACPI_OBJECT_TYPE        ReturnType))
0824 
0825 ACPI_EXTERNAL_RETURN_STATUS (
0826 ACPI_STATUS
0827 AcpiGetObjectInfo (
0828     ACPI_HANDLE             Object,
0829     ACPI_DEVICE_INFO        **ReturnBuffer))
0830 
0831 ACPI_EXTERNAL_RETURN_STATUS (
0832 ACPI_STATUS
0833 AcpiInstallMethod (
0834     UINT8                   *Buffer))
0835 
0836 ACPI_EXTERNAL_RETURN_STATUS (
0837 ACPI_STATUS
0838 AcpiGetNextObject (
0839     ACPI_OBJECT_TYPE        Type,
0840     ACPI_HANDLE             Parent,
0841     ACPI_HANDLE             Child,
0842     ACPI_HANDLE             *OutHandle))
0843 
0844 ACPI_EXTERNAL_RETURN_STATUS (
0845 ACPI_STATUS
0846 AcpiGetType (
0847     ACPI_HANDLE             Object,
0848     ACPI_OBJECT_TYPE        *OutType))
0849 
0850 ACPI_EXTERNAL_RETURN_STATUS (
0851 ACPI_STATUS
0852 AcpiGetParent (
0853     ACPI_HANDLE             Object,
0854     ACPI_HANDLE             *OutHandle))
0855 
0856 
0857 /*
0858  * Handler interfaces
0859  */
0860 ACPI_EXTERNAL_RETURN_STATUS (
0861 ACPI_STATUS
0862 AcpiInstallInitializationHandler (
0863     ACPI_INIT_HANDLER       Handler,
0864     UINT32                  Function))
0865 
0866 ACPI_HW_DEPENDENT_RETURN_STATUS (
0867 ACPI_STATUS
0868 AcpiInstallSciHandler (
0869     ACPI_SCI_HANDLER        Address,
0870     void                    *Context))
0871 
0872 ACPI_HW_DEPENDENT_RETURN_STATUS (
0873 ACPI_STATUS
0874 AcpiRemoveSciHandler (
0875     ACPI_SCI_HANDLER        Address))
0876 
0877 ACPI_HW_DEPENDENT_RETURN_STATUS (
0878 ACPI_STATUS
0879 AcpiInstallGlobalEventHandler (
0880     ACPI_GBL_EVENT_HANDLER  Handler,
0881     void                    *Context))
0882 
0883 ACPI_HW_DEPENDENT_RETURN_STATUS (
0884 ACPI_STATUS
0885 AcpiInstallFixedEventHandler (
0886     UINT32                  AcpiEvent,
0887     ACPI_EVENT_HANDLER      Handler,
0888     void                    *Context))
0889 
0890 ACPI_HW_DEPENDENT_RETURN_STATUS (
0891 ACPI_STATUS
0892 AcpiRemoveFixedEventHandler (
0893     UINT32                  AcpiEvent,
0894     ACPI_EVENT_HANDLER      Handler))
0895 
0896 ACPI_HW_DEPENDENT_RETURN_STATUS (
0897 ACPI_STATUS
0898 AcpiInstallGpeHandler (
0899     ACPI_HANDLE             GpeDevice,
0900     UINT32                  GpeNumber,
0901     UINT32                  Type,
0902     ACPI_GPE_HANDLER        Address,
0903     void                    *Context))
0904 
0905 ACPI_HW_DEPENDENT_RETURN_STATUS (
0906 ACPI_STATUS
0907 AcpiInstallGpeRawHandler (
0908     ACPI_HANDLE             GpeDevice,
0909     UINT32                  GpeNumber,
0910     UINT32                  Type,
0911     ACPI_GPE_HANDLER        Address,
0912     void                    *Context))
0913 
0914 ACPI_HW_DEPENDENT_RETURN_STATUS (
0915 ACPI_STATUS
0916 AcpiRemoveGpeHandler (
0917     ACPI_HANDLE             GpeDevice,
0918     UINT32                  GpeNumber,
0919     ACPI_GPE_HANDLER        Address))
0920 
0921 ACPI_EXTERNAL_RETURN_STATUS (
0922 ACPI_STATUS
0923 AcpiInstallNotifyHandler (
0924     ACPI_HANDLE             Device,
0925     UINT32                  HandlerType,
0926     ACPI_NOTIFY_HANDLER     Handler,
0927     void                    *Context))
0928 
0929 ACPI_EXTERNAL_RETURN_STATUS (
0930 ACPI_STATUS
0931 AcpiRemoveNotifyHandler (
0932     ACPI_HANDLE             Device,
0933     UINT32                  HandlerType,
0934     ACPI_NOTIFY_HANDLER     Handler))
0935 
0936 ACPI_EXTERNAL_RETURN_STATUS (
0937 ACPI_STATUS
0938 AcpiInstallAddressSpaceHandler (
0939     ACPI_HANDLE             Device,
0940     ACPI_ADR_SPACE_TYPE     SpaceId,
0941     ACPI_ADR_SPACE_HANDLER  Handler,
0942     ACPI_ADR_SPACE_SETUP    Setup,
0943     void                    *Context))
0944 
0945 ACPI_EXTERNAL_RETURN_STATUS (
0946 ACPI_STATUS
0947 AcpiInstallAddressSpaceHandlerNo_Reg(
0948     ACPI_HANDLE             Device,
0949     ACPI_ADR_SPACE_TYPE     SpaceId,
0950     ACPI_ADR_SPACE_HANDLER  Handler,
0951     ACPI_ADR_SPACE_SETUP    Setup,
0952     void                    *Context))
0953 
0954 ACPI_EXTERNAL_RETURN_STATUS (
0955 ACPI_STATUS
0956 AcpiExecuteRegMethods (
0957     ACPI_HANDLE             Device,
0958     ACPI_ADR_SPACE_TYPE     SpaceId))
0959 
0960 ACPI_EXTERNAL_RETURN_STATUS (
0961 ACPI_STATUS
0962 AcpiRemoveAddressSpaceHandler (
0963     ACPI_HANDLE             Device,
0964     ACPI_ADR_SPACE_TYPE     SpaceId,
0965     ACPI_ADR_SPACE_HANDLER  Handler))
0966 
0967 ACPI_EXTERNAL_RETURN_STATUS (
0968 ACPI_STATUS
0969 AcpiInstallExceptionHandler (
0970     ACPI_EXCEPTION_HANDLER  Handler))
0971 
0972 ACPI_EXTERNAL_RETURN_STATUS (
0973 ACPI_STATUS
0974 AcpiInstallInterfaceHandler (
0975     ACPI_INTERFACE_HANDLER  Handler))
0976 
0977 
0978 /*
0979  * Global Lock interfaces
0980  */
0981 ACPI_HW_DEPENDENT_RETURN_STATUS (
0982 ACPI_STATUS
0983 AcpiAcquireGlobalLock (
0984     UINT16                  Timeout,
0985     UINT32                  *Handle))
0986 
0987 ACPI_HW_DEPENDENT_RETURN_STATUS (
0988 ACPI_STATUS
0989 AcpiReleaseGlobalLock (
0990     UINT32                  Handle))
0991 
0992 
0993 /*
0994  * Interfaces to AML mutex objects
0995  */
0996 ACPI_EXTERNAL_RETURN_STATUS (
0997 ACPI_STATUS
0998 AcpiAcquireMutex (
0999     ACPI_HANDLE             Handle,
1000     ACPI_STRING             Pathname,
1001     UINT16                  Timeout))
1002 
1003 ACPI_EXTERNAL_RETURN_STATUS (
1004 ACPI_STATUS
1005 AcpiReleaseMutex (
1006     ACPI_HANDLE             Handle,
1007     ACPI_STRING             Pathname))
1008 
1009 
1010 /*
1011  * Fixed Event interfaces
1012  */
1013 ACPI_HW_DEPENDENT_RETURN_STATUS (
1014 ACPI_STATUS
1015 AcpiEnableEvent (
1016     UINT32                  Event,
1017     UINT32                  Flags))
1018 
1019 ACPI_HW_DEPENDENT_RETURN_STATUS (
1020 ACPI_STATUS
1021 AcpiDisableEvent (
1022     UINT32                  Event,
1023     UINT32                  Flags))
1024 
1025 ACPI_HW_DEPENDENT_RETURN_STATUS (
1026 ACPI_STATUS
1027 AcpiClearEvent (
1028     UINT32                  Event))
1029 
1030 ACPI_HW_DEPENDENT_RETURN_STATUS (
1031 ACPI_STATUS
1032 AcpiGetEventStatus (
1033     UINT32                  Event,
1034     ACPI_EVENT_STATUS       *EventStatus))
1035 
1036 
1037 /*
1038  * General Purpose Event (GPE) Interfaces
1039  */
1040 ACPI_HW_DEPENDENT_RETURN_STATUS (
1041 ACPI_STATUS
1042 AcpiUpdateAllGpes (
1043     void))
1044 
1045 ACPI_HW_DEPENDENT_RETURN_STATUS (
1046 ACPI_STATUS
1047 AcpiEnableGpe (
1048     ACPI_HANDLE             GpeDevice,
1049     UINT32                  GpeNumber))
1050 
1051 ACPI_HW_DEPENDENT_RETURN_STATUS (
1052 ACPI_STATUS
1053 AcpiDisableGpe (
1054     ACPI_HANDLE             GpeDevice,
1055     UINT32                  GpeNumber))
1056 
1057 ACPI_HW_DEPENDENT_RETURN_STATUS (
1058 ACPI_STATUS
1059 AcpiClearGpe (
1060     ACPI_HANDLE             GpeDevice,
1061     UINT32                  GpeNumber))
1062 
1063 ACPI_HW_DEPENDENT_RETURN_STATUS (
1064 ACPI_STATUS
1065 AcpiSetGpe (
1066     ACPI_HANDLE             GpeDevice,
1067     UINT32                  GpeNumber,
1068     UINT8                   Action))
1069 
1070 ACPI_HW_DEPENDENT_RETURN_STATUS (
1071 ACPI_STATUS
1072 AcpiFinishGpe (
1073     ACPI_HANDLE             GpeDevice,
1074     UINT32                  GpeNumber))
1075 
1076 ACPI_HW_DEPENDENT_RETURN_STATUS (
1077 ACPI_STATUS
1078 AcpiMaskGpe (
1079     ACPI_HANDLE             GpeDevice,
1080     UINT32                  GpeNumber,
1081     BOOLEAN                 IsMasked))
1082 
1083 ACPI_HW_DEPENDENT_RETURN_STATUS (
1084 ACPI_STATUS
1085 AcpiMarkGpeForWake (
1086     ACPI_HANDLE             GpeDevice,
1087     UINT32                  GpeNumber))
1088 
1089 ACPI_HW_DEPENDENT_RETURN_STATUS (
1090 ACPI_STATUS
1091 AcpiSetupGpeForWake (
1092     ACPI_HANDLE             ParentDevice,
1093     ACPI_HANDLE             GpeDevice,
1094     UINT32                  GpeNumber))
1095 
1096 ACPI_HW_DEPENDENT_RETURN_STATUS (
1097 ACPI_STATUS
1098 AcpiSetGpeWakeMask (
1099     ACPI_HANDLE             GpeDevice,
1100     UINT32                  GpeNumber,
1101     UINT8                   Action))
1102 
1103 ACPI_HW_DEPENDENT_RETURN_STATUS (
1104 ACPI_STATUS
1105 AcpiGetGpeStatus (
1106     ACPI_HANDLE             GpeDevice,
1107     UINT32                  GpeNumber,
1108     ACPI_EVENT_STATUS       *EventStatus))
1109 
1110 ACPI_HW_DEPENDENT_RETURN_UINT32 (
1111 UINT32
1112 AcpiDispatchGpe (
1113     ACPI_HANDLE             GpeDevice,
1114     UINT32                  GpeNumber))
1115 
1116 ACPI_HW_DEPENDENT_RETURN_STATUS (
1117 ACPI_STATUS
1118 AcpiDisableAllGpes (
1119     void))
1120 
1121 ACPI_HW_DEPENDENT_RETURN_STATUS (
1122 ACPI_STATUS
1123 AcpiEnableAllRuntimeGpes (
1124     void))
1125 
1126 ACPI_HW_DEPENDENT_RETURN_STATUS (
1127 ACPI_STATUS
1128 AcpiEnableAllWakeupGpes (
1129     void))
1130 
1131 ACPI_HW_DEPENDENT_RETURN_UINT32 (
1132     UINT32                  AcpiAnyGpeStatusSet (
1133     void))
1134 
1135 ACPI_HW_DEPENDENT_RETURN_STATUS (
1136 ACPI_STATUS
1137 AcpiGetGpeDevice (
1138     UINT32                  GpeIndex,
1139     ACPI_HANDLE             *GpeDevice))
1140 
1141 ACPI_HW_DEPENDENT_RETURN_STATUS (
1142 ACPI_STATUS
1143 AcpiInstallGpeBlock (
1144     ACPI_HANDLE             GpeDevice,
1145     ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
1146     UINT32                  RegisterCount,
1147     UINT32                  InterruptNumber))
1148 
1149 ACPI_HW_DEPENDENT_RETURN_STATUS (
1150 ACPI_STATUS
1151 AcpiRemoveGpeBlock (
1152     ACPI_HANDLE             GpeDevice))
1153 
1154 
1155 /*
1156  * Resource interfaces
1157  */
1158 typedef
1159 ACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) (
1160     ACPI_RESOURCE           *Resource,
1161     void                    *Context);
1162 
1163 ACPI_EXTERNAL_RETURN_STATUS (
1164 ACPI_STATUS
1165 AcpiGetVendorResource (
1166     ACPI_HANDLE             Device,
1167     char                    *Name,
1168     ACPI_VENDOR_UUID        *Uuid,
1169     ACPI_BUFFER             *RetBuffer))
1170 
1171 ACPI_EXTERNAL_RETURN_STATUS (
1172 ACPI_STATUS
1173 AcpiGetCurrentResources (
1174     ACPI_HANDLE             Device,
1175     ACPI_BUFFER             *RetBuffer))
1176 
1177 ACPI_EXTERNAL_RETURN_STATUS (
1178 ACPI_STATUS
1179 AcpiGetPossibleResources (
1180     ACPI_HANDLE             Device,
1181     ACPI_BUFFER             *RetBuffer))
1182 
1183 ACPI_EXTERNAL_RETURN_STATUS (
1184 ACPI_STATUS
1185 AcpiGetEventResources (
1186     ACPI_HANDLE             DeviceHandle,
1187     ACPI_BUFFER             *RetBuffer))
1188 
1189 ACPI_EXTERNAL_RETURN_STATUS (
1190 ACPI_STATUS
1191 AcpiWalkResourceBuffer (
1192     ACPI_BUFFER                 *Buffer,
1193     ACPI_WALK_RESOURCE_CALLBACK UserFunction,
1194     void                        *Context))
1195 
1196 ACPI_EXTERNAL_RETURN_STATUS (
1197 ACPI_STATUS
1198 AcpiWalkResources (
1199     ACPI_HANDLE                 Device,
1200     char                        *Name,
1201     ACPI_WALK_RESOURCE_CALLBACK UserFunction,
1202     void                        *Context))
1203 
1204 ACPI_EXTERNAL_RETURN_STATUS (
1205 ACPI_STATUS
1206 AcpiSetCurrentResources (
1207     ACPI_HANDLE             Device,
1208     ACPI_BUFFER             *InBuffer))
1209 
1210 ACPI_EXTERNAL_RETURN_STATUS (
1211 ACPI_STATUS
1212 AcpiGetIrqRoutingTable (
1213     ACPI_HANDLE             Device,
1214     ACPI_BUFFER             *RetBuffer))
1215 
1216 ACPI_EXTERNAL_RETURN_STATUS (
1217 ACPI_STATUS
1218 AcpiResourceToAddress64 (
1219     ACPI_RESOURCE           *Resource,
1220     ACPI_RESOURCE_ADDRESS64 *Out))
1221 
1222 ACPI_EXTERNAL_RETURN_STATUS (
1223 ACPI_STATUS
1224 AcpiBufferToResource (
1225     UINT8                   *AmlBuffer,
1226     UINT16                  AmlBufferLength,
1227     ACPI_RESOURCE           **ResourcePtr))
1228 
1229 
1230 /*
1231  * Hardware (ACPI device) interfaces
1232  */
1233 ACPI_EXTERNAL_RETURN_STATUS (
1234 ACPI_STATUS
1235 AcpiReset (
1236     void))
1237 
1238 ACPI_EXTERNAL_RETURN_STATUS (
1239 ACPI_STATUS
1240 AcpiRead (
1241     UINT64                  *Value,
1242     ACPI_GENERIC_ADDRESS    *Reg))
1243 
1244 ACPI_EXTERNAL_RETURN_STATUS (
1245 ACPI_STATUS
1246 AcpiWrite (
1247     UINT64                  Value,
1248     ACPI_GENERIC_ADDRESS    *Reg))
1249 
1250 ACPI_HW_DEPENDENT_RETURN_STATUS (
1251 ACPI_STATUS
1252 AcpiReadBitRegister (
1253     UINT32                  RegisterId,
1254     UINT32                  *ReturnValue))
1255 
1256 ACPI_HW_DEPENDENT_RETURN_STATUS (
1257 ACPI_STATUS
1258 AcpiWriteBitRegister (
1259     UINT32                  RegisterId,
1260     UINT32                  Value))
1261 
1262 
1263 /*
1264  * Sleep/Wake interfaces
1265  */
1266 ACPI_EXTERNAL_RETURN_STATUS (
1267 ACPI_STATUS
1268 AcpiGetSleepTypeData (
1269     UINT8                   SleepState,
1270     UINT8                   *Slp_TypA,
1271     UINT8                   *Slp_TypB))
1272 
1273 ACPI_EXTERNAL_RETURN_STATUS (
1274 ACPI_STATUS
1275 AcpiEnterSleepStatePrep (
1276     UINT8                   SleepState))
1277 
1278 ACPI_EXTERNAL_RETURN_STATUS (
1279 ACPI_STATUS
1280 AcpiEnterSleepState (
1281     UINT8                   SleepState))
1282 
1283 ACPI_HW_DEPENDENT_RETURN_STATUS (
1284 ACPI_STATUS
1285 AcpiEnterSleepStateS4bios (
1286     void))
1287 
1288 ACPI_EXTERNAL_RETURN_STATUS (
1289 ACPI_STATUS
1290 AcpiLeaveSleepStatePrep (
1291     UINT8                   SleepState))
1292 
1293 ACPI_EXTERNAL_RETURN_STATUS (
1294 ACPI_STATUS
1295 AcpiLeaveSleepState (
1296     UINT8                   SleepState))
1297 
1298 ACPI_HW_DEPENDENT_RETURN_STATUS (
1299 ACPI_STATUS
1300 AcpiSetFirmwareWakingVector (
1301     ACPI_PHYSICAL_ADDRESS   PhysicalAddress,
1302     ACPI_PHYSICAL_ADDRESS   PhysicalAddress64))
1303 
1304 
1305 /*
1306  * ACPI Timer interfaces
1307  */
1308 ACPI_HW_DEPENDENT_RETURN_STATUS (
1309 ACPI_STATUS
1310 AcpiGetTimerResolution (
1311     UINT32                  *Resolution))
1312 
1313 ACPI_HW_DEPENDENT_RETURN_STATUS (
1314 ACPI_STATUS
1315 AcpiGetTimer (
1316     UINT32                  *Ticks))
1317 
1318 ACPI_HW_DEPENDENT_RETURN_STATUS (
1319 ACPI_STATUS
1320 AcpiGetTimerDuration (
1321     UINT32                  StartTicks,
1322     UINT32                  EndTicks,
1323     UINT32                  *TimeElapsed))
1324 
1325 
1326 /*
1327  * Error/Warning output
1328  */
1329 ACPI_MSG_DEPENDENT_RETURN_VOID (
1330 ACPI_PRINTF_LIKE(3)
1331 void ACPI_INTERNAL_VAR_XFACE
1332 AcpiError (
1333     const char              *ModuleName,
1334     UINT32                  LineNumber,
1335     const char              *Format,
1336     ...))
1337 
1338 ACPI_MSG_DEPENDENT_RETURN_VOID (
1339 ACPI_PRINTF_LIKE(4)
1340 void  ACPI_INTERNAL_VAR_XFACE
1341 AcpiException (
1342     const char              *ModuleName,
1343     UINT32                  LineNumber,
1344     ACPI_STATUS             Status,
1345     const char              *Format,
1346     ...))
1347 
1348 ACPI_MSG_DEPENDENT_RETURN_VOID (
1349 ACPI_PRINTF_LIKE(3)
1350 void ACPI_INTERNAL_VAR_XFACE
1351 AcpiWarning (
1352     const char              *ModuleName,
1353     UINT32                  LineNumber,
1354     const char              *Format,
1355     ...))
1356 
1357 ACPI_MSG_DEPENDENT_RETURN_VOID (
1358 ACPI_PRINTF_LIKE(1)
1359 void ACPI_INTERNAL_VAR_XFACE
1360 AcpiInfo (
1361     const char              *Format,
1362     ...))
1363 
1364 ACPI_MSG_DEPENDENT_RETURN_VOID (
1365 ACPI_PRINTF_LIKE(3)
1366 void ACPI_INTERNAL_VAR_XFACE
1367 AcpiBiosError (
1368     const char              *ModuleName,
1369     UINT32                  LineNumber,
1370     const char              *Format,
1371     ...))
1372 
1373 ACPI_MSG_DEPENDENT_RETURN_VOID (
1374 ACPI_PRINTF_LIKE(4)
1375 void  ACPI_INTERNAL_VAR_XFACE
1376 AcpiBiosException (
1377     const char              *ModuleName,
1378     UINT32                  LineNumber,
1379     ACPI_STATUS             Status,
1380     const char              *Format,
1381     ...))
1382 
1383 ACPI_MSG_DEPENDENT_RETURN_VOID (
1384 ACPI_PRINTF_LIKE(3)
1385 void ACPI_INTERNAL_VAR_XFACE
1386 AcpiBiosWarning (
1387     const char              *ModuleName,
1388     UINT32                  LineNumber,
1389     const char              *Format,
1390     ...))
1391 
1392 
1393 /*
1394  * Debug output
1395  */
1396 ACPI_DBG_DEPENDENT_RETURN_VOID (
1397 ACPI_PRINTF_LIKE(6)
1398 void ACPI_INTERNAL_VAR_XFACE
1399 AcpiDebugPrint (
1400     UINT32                  RequestedDebugLevel,
1401     UINT32                  LineNumber,
1402     const char              *FunctionName,
1403     const char              *ModuleName,
1404     UINT32                  ComponentId,
1405     const char              *Format,
1406     ...))
1407 
1408 ACPI_DBG_DEPENDENT_RETURN_VOID (
1409 ACPI_PRINTF_LIKE(6)
1410 void ACPI_INTERNAL_VAR_XFACE
1411 AcpiDebugPrintRaw (
1412     UINT32                  RequestedDebugLevel,
1413     UINT32                  LineNumber,
1414     const char              *FunctionName,
1415     const char              *ModuleName,
1416     UINT32                  ComponentId,
1417     const char              *Format,
1418     ...))
1419 
1420 ACPI_DBG_DEPENDENT_RETURN_VOID (
1421 void
1422 AcpiTracePoint (
1423     ACPI_TRACE_EVENT_TYPE   Type,
1424     BOOLEAN                 Begin,
1425     UINT8                   *Aml,
1426     char                    *Pathname))
1427 
1428 ACPI_STATUS
1429 AcpiInitializeDebugger (
1430     void);
1431 
1432 void
1433 AcpiTerminateDebugger (
1434     void);
1435 
1436 void
1437 AcpiRunDebugger (
1438     char                    *BatchBuffer);
1439 
1440 void
1441 AcpiSetDebuggerThreadId (
1442     ACPI_THREAD_ID          ThreadId);
1443 
1444 #endif /* __ACXFACE_H__ */