10d02842fSSascha Wildner /****************************************************************************** 20d02842fSSascha Wildner * 30d02842fSSascha Wildner * Name: acenv.h - Host and compiler configuration 40d02842fSSascha Wildner * 50d02842fSSascha Wildner *****************************************************************************/ 60d02842fSSascha Wildner 7b4315fc7SSascha Wildner /****************************************************************************** 8b4315fc7SSascha Wildner * 9b4315fc7SSascha Wildner * 1. Copyright Notice 10b4315fc7SSascha Wildner * 11*383048acSSascha Wildner * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. 120d02842fSSascha Wildner * All rights reserved. 130d02842fSSascha Wildner * 14b4315fc7SSascha Wildner * 2. License 15b4315fc7SSascha Wildner * 16b4315fc7SSascha Wildner * 2.1. This is your license from Intel Corp. under its intellectual property 17b4315fc7SSascha Wildner * rights. You may have additional license terms from the party that provided 18b4315fc7SSascha Wildner * you this software, covering your right to use that party's intellectual 19b4315fc7SSascha Wildner * property rights. 20b4315fc7SSascha Wildner * 21b4315fc7SSascha Wildner * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 22b4315fc7SSascha Wildner * copy of the source code appearing in this file ("Covered Code") an 23b4315fc7SSascha Wildner * irrevocable, perpetual, worldwide license under Intel's copyrights in the 24b4315fc7SSascha Wildner * base code distributed originally by Intel ("Original Intel Code") to copy, 25b4315fc7SSascha Wildner * make derivatives, distribute, use and display any portion of the Covered 26b4315fc7SSascha Wildner * Code in any form, with the right to sublicense such rights; and 27b4315fc7SSascha Wildner * 28b4315fc7SSascha Wildner * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 29b4315fc7SSascha Wildner * license (with the right to sublicense), under only those claims of Intel 30b4315fc7SSascha Wildner * patents that are infringed by the Original Intel Code, to make, use, sell, 31b4315fc7SSascha Wildner * offer to sell, and import the Covered Code and derivative works thereof 32b4315fc7SSascha Wildner * solely to the minimum extent necessary to exercise the above copyright 33b4315fc7SSascha Wildner * license, and in no event shall the patent license extend to any additions 34b4315fc7SSascha Wildner * to or modifications of the Original Intel Code. No other license or right 35b4315fc7SSascha Wildner * is granted directly or by implication, estoppel or otherwise; 36b4315fc7SSascha Wildner * 37b4315fc7SSascha Wildner * The above copyright and patent license is granted only if the following 38b4315fc7SSascha Wildner * conditions are met: 39b4315fc7SSascha Wildner * 40b4315fc7SSascha Wildner * 3. Conditions 41b4315fc7SSascha Wildner * 42b4315fc7SSascha Wildner * 3.1. Redistribution of Source with Rights to Further Distribute Source. 43b4315fc7SSascha Wildner * Redistribution of source code of any substantial portion of the Covered 44b4315fc7SSascha Wildner * Code or modification with rights to further distribute source must include 45b4315fc7SSascha Wildner * the above Copyright Notice, the above License, this list of Conditions, 46b4315fc7SSascha Wildner * and the following Disclaimer and Export Compliance provision. In addition, 47b4315fc7SSascha Wildner * Licensee must cause all Covered Code to which Licensee contributes to 48b4315fc7SSascha Wildner * contain a file documenting the changes Licensee made to create that Covered 49b4315fc7SSascha Wildner * Code and the date of any change. Licensee must include in that file the 50b4315fc7SSascha Wildner * documentation of any changes made by any predecessor Licensee. Licensee 51b4315fc7SSascha Wildner * must include a prominent statement that the modification is derived, 52b4315fc7SSascha Wildner * directly or indirectly, from Original Intel Code. 53b4315fc7SSascha Wildner * 54b4315fc7SSascha Wildner * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 55b4315fc7SSascha Wildner * Redistribution of source code of any substantial portion of the Covered 56b4315fc7SSascha Wildner * Code or modification without rights to further distribute source must 57b4315fc7SSascha Wildner * include the following Disclaimer and Export Compliance provision in the 58b4315fc7SSascha Wildner * documentation and/or other materials provided with distribution. In 59b4315fc7SSascha Wildner * addition, Licensee may not authorize further sublicense of source of any 60b4315fc7SSascha Wildner * portion of the Covered Code, and must include terms to the effect that the 61b4315fc7SSascha Wildner * license from Licensee to its licensee is limited to the intellectual 62b4315fc7SSascha Wildner * property embodied in the software Licensee provides to its licensee, and 63b4315fc7SSascha Wildner * not to intellectual property embodied in modifications its licensee may 64b4315fc7SSascha Wildner * make. 65b4315fc7SSascha Wildner * 66b4315fc7SSascha Wildner * 3.3. Redistribution of Executable. Redistribution in executable form of any 67b4315fc7SSascha Wildner * substantial portion of the Covered Code or modification must reproduce the 68b4315fc7SSascha Wildner * above Copyright Notice, and the following Disclaimer and Export Compliance 69b4315fc7SSascha Wildner * provision in the documentation and/or other materials provided with the 70b4315fc7SSascha Wildner * distribution. 71b4315fc7SSascha Wildner * 72b4315fc7SSascha Wildner * 3.4. Intel retains all right, title, and interest in and to the Original 73b4315fc7SSascha Wildner * Intel Code. 74b4315fc7SSascha Wildner * 75b4315fc7SSascha Wildner * 3.5. Neither the name Intel nor any other trademark owned or controlled by 76b4315fc7SSascha Wildner * Intel shall be used in advertising or otherwise to promote the sale, use or 77b4315fc7SSascha Wildner * other dealings in products derived from or relating to the Covered Code 78b4315fc7SSascha Wildner * without prior written authorization from Intel. 79b4315fc7SSascha Wildner * 80b4315fc7SSascha Wildner * 4. Disclaimer and Export Compliance 81b4315fc7SSascha Wildner * 82b4315fc7SSascha Wildner * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 83b4315fc7SSascha Wildner * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 84b4315fc7SSascha Wildner * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 85b4315fc7SSascha Wildner * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 86b4315fc7SSascha Wildner * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 87b4315fc7SSascha Wildner * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 88b4315fc7SSascha Wildner * PARTICULAR PURPOSE. 89b4315fc7SSascha Wildner * 90b4315fc7SSascha Wildner * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 91b4315fc7SSascha Wildner * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 92b4315fc7SSascha Wildner * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 93b4315fc7SSascha Wildner * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 94b4315fc7SSascha Wildner * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 95b4315fc7SSascha Wildner * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 96b4315fc7SSascha Wildner * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 97b4315fc7SSascha Wildner * LIMITED REMEDY. 98b4315fc7SSascha Wildner * 99b4315fc7SSascha Wildner * 4.3. Licensee shall not export, either directly or indirectly, any of this 100b4315fc7SSascha Wildner * software or system incorporating such software without first obtaining any 101b4315fc7SSascha Wildner * required license or other approval from the U. S. Department of Commerce or 102b4315fc7SSascha Wildner * any other agency or department of the United States Government. In the 103b4315fc7SSascha Wildner * event Licensee exports any such software from the United States or 104b4315fc7SSascha Wildner * re-exports any such software from a foreign destination, Licensee shall 105b4315fc7SSascha Wildner * ensure that the distribution and export/re-export of the software is in 106b4315fc7SSascha Wildner * compliance with all laws, regulations, orders, or other restrictions of the 107b4315fc7SSascha Wildner * U.S. Export Administration Regulations. Licensee agrees that neither it nor 108b4315fc7SSascha Wildner * any of its subsidiaries will export/re-export any technical data, process, 109b4315fc7SSascha Wildner * software, or service, directly or indirectly, to any country for which the 110b4315fc7SSascha Wildner * United States government or any agency thereof requires an export license, 111b4315fc7SSascha Wildner * other governmental approval, or letter of assurance, without first obtaining 112b4315fc7SSascha Wildner * such license, approval or letter. 113b4315fc7SSascha Wildner * 114b4315fc7SSascha Wildner ***************************************************************************** 115b4315fc7SSascha Wildner * 116b4315fc7SSascha Wildner * Alternatively, you may choose to be licensed under the terms of the 117b4315fc7SSascha Wildner * following license: 118b4315fc7SSascha Wildner * 1190d02842fSSascha Wildner * Redistribution and use in source and binary forms, with or without 1200d02842fSSascha Wildner * modification, are permitted provided that the following conditions 1210d02842fSSascha Wildner * are met: 1220d02842fSSascha Wildner * 1. Redistributions of source code must retain the above copyright 1230d02842fSSascha Wildner * notice, this list of conditions, and the following disclaimer, 1240d02842fSSascha Wildner * without modification. 1250d02842fSSascha Wildner * 2. Redistributions in binary form must reproduce at minimum a disclaimer 1260d02842fSSascha Wildner * substantially similar to the "NO WARRANTY" disclaimer below 1270d02842fSSascha Wildner * ("Disclaimer") and any redistribution must be conditioned upon 1280d02842fSSascha Wildner * including a substantially similar Disclaimer requirement for further 1290d02842fSSascha Wildner * binary redistribution. 1300d02842fSSascha Wildner * 3. Neither the names of the above-listed copyright holders nor the names 1310d02842fSSascha Wildner * of any contributors may be used to endorse or promote products derived 1320d02842fSSascha Wildner * from this software without specific prior written permission. 1330d02842fSSascha Wildner * 134b4315fc7SSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 135b4315fc7SSascha Wildner * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 136b4315fc7SSascha Wildner * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 137b4315fc7SSascha Wildner * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 138b4315fc7SSascha Wildner * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 139b4315fc7SSascha Wildner * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 140b4315fc7SSascha Wildner * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 141b4315fc7SSascha Wildner * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 142b4315fc7SSascha Wildner * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 143b4315fc7SSascha Wildner * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 144b4315fc7SSascha Wildner * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 145b4315fc7SSascha Wildner * 146b4315fc7SSascha Wildner * Alternatively, you may choose to be licensed under the terms of the 1470d02842fSSascha Wildner * GNU General Public License ("GPL") version 2 as published by the Free 1480d02842fSSascha Wildner * Software Foundation. 1490d02842fSSascha Wildner * 150b4315fc7SSascha Wildner *****************************************************************************/ 1510d02842fSSascha Wildner 1520d02842fSSascha Wildner #ifndef __ACENV_H__ 1530d02842fSSascha Wildner #define __ACENV_H__ 1540d02842fSSascha Wildner 1550d02842fSSascha Wildner /* 1560d02842fSSascha Wildner * Environment configuration. The purpose of this file is to interface ACPICA 1570d02842fSSascha Wildner * to the local environment. This includes compiler-specific, OS-specific, 1580d02842fSSascha Wildner * and machine-specific configuration. 1590d02842fSSascha Wildner */ 1600d02842fSSascha Wildner 1610d02842fSSascha Wildner /* Types for ACPI_MUTEX_TYPE */ 1620d02842fSSascha Wildner 1630d02842fSSascha Wildner #define ACPI_BINARY_SEMAPHORE 0 1640d02842fSSascha Wildner #define ACPI_OSL_MUTEX 1 1650d02842fSSascha Wildner 1660d02842fSSascha Wildner /* Types for DEBUGGER_THREADING */ 1670d02842fSSascha Wildner 1680d02842fSSascha Wildner #define DEBUGGER_SINGLE_THREADED 0 1690d02842fSSascha Wildner #define DEBUGGER_MULTI_THREADED 1 1700d02842fSSascha Wildner 1710d02842fSSascha Wildner 1720d02842fSSascha Wildner /****************************************************************************** 1730d02842fSSascha Wildner * 1740d02842fSSascha Wildner * Configuration for ACPI tools and utilities 1750d02842fSSascha Wildner * 1760d02842fSSascha Wildner *****************************************************************************/ 1770d02842fSSascha Wildner 1782ffe9f16SSascha Wildner /* Common application configuration. All single threaded except for AcpiExec. */ 1792ffe9f16SSascha Wildner 1802ffe9f16SSascha Wildner #if (defined ACPI_ASL_COMPILER) || \ 1812ffe9f16SSascha Wildner (defined ACPI_BIN_APP) || \ 1822ffe9f16SSascha Wildner (defined ACPI_DUMP_APP) || \ 1832ffe9f16SSascha Wildner (defined ACPI_HELP_APP) || \ 1842ffe9f16SSascha Wildner (defined ACPI_NAMES_APP) || \ 1852ffe9f16SSascha Wildner (defined ACPI_SRC_APP) || \ 1862ffe9f16SSascha Wildner (defined ACPI_XTRACT_APP) || \ 18738b5d46cSSascha Wildner (defined ACPI_EXAMPLE_APP) || \ 18838b5d46cSSascha Wildner (defined ACPI_EFI_HELLO) 1892ffe9f16SSascha Wildner #define ACPI_APPLICATION 1902ffe9f16SSascha Wildner #define ACPI_SINGLE_THREADED 191277350a0SSascha Wildner #define USE_NATIVE_ALLOCATE_ZEROED 1922ffe9f16SSascha Wildner #endif 1932ffe9f16SSascha Wildner 1940d02842fSSascha Wildner /* iASL configuration */ 1950d02842fSSascha Wildner 1960d02842fSSascha Wildner #ifdef ACPI_ASL_COMPILER 1970d02842fSSascha Wildner #define ACPI_DEBUG_OUTPUT 1980d02842fSSascha Wildner #define ACPI_CONSTANT_EVAL_ONLY 1990d02842fSSascha Wildner #define ACPI_LARGE_NAMESPACE_NODE 2000d02842fSSascha Wildner #define ACPI_DATA_TABLE_DISASSEMBLY 2015943f66cSSascha Wildner #define ACPI_32BIT_PHYSICAL_ADDRESS 2023cc0afc6SSascha Wildner #define ACPI_DISASSEMBLER 1 2030d02842fSSascha Wildner #endif 2040d02842fSSascha Wildner 2050d02842fSSascha Wildner /* AcpiExec configuration. Multithreaded with full AML debugger */ 2060d02842fSSascha Wildner 2070d02842fSSascha Wildner #ifdef ACPI_EXEC_APP 2080d02842fSSascha Wildner #define ACPI_APPLICATION 2090d02842fSSascha Wildner #define ACPI_FULL_DEBUG 2100d02842fSSascha Wildner #define ACPI_MUTEX_DEBUG 2110d02842fSSascha Wildner #define ACPI_DBG_TRACK_ALLOCATIONS 2120d02842fSSascha Wildner #endif 2130d02842fSSascha Wildner 2145f39c7e7SSascha Wildner /* AcpiHelp configuration. Error messages disabled. */ 2155f39c7e7SSascha Wildner 2160d02842fSSascha Wildner #ifdef ACPI_HELP_APP 2170d02842fSSascha Wildner #define ACPI_NO_ERROR_MESSAGES 2180d02842fSSascha Wildner #endif 2190d02842fSSascha Wildner 2205f39c7e7SSascha Wildner /* AcpiNames configuration. Debug output enabled. */ 2215f39c7e7SSascha Wildner 2225f39c7e7SSascha Wildner #ifdef ACPI_NAMES_APP 2235f39c7e7SSascha Wildner #define ACPI_DEBUG_OUTPUT 2245f39c7e7SSascha Wildner #endif 2255f39c7e7SSascha Wildner 2265f39c7e7SSascha Wildner /* AcpiExec/AcpiNames/Example configuration. Native RSDP used. */ 2275f39c7e7SSascha Wildner 2285f39c7e7SSascha Wildner #if (defined ACPI_EXEC_APP) || \ 2295f39c7e7SSascha Wildner (defined ACPI_EXAMPLE_APP) || \ 2305f39c7e7SSascha Wildner (defined ACPI_NAMES_APP) 2315f39c7e7SSascha Wildner #define ACPI_USE_NATIVE_RSDP_POINTER 2325f39c7e7SSascha Wildner #endif 2335f39c7e7SSascha Wildner 2343cc0afc6SSascha Wildner /* AcpiDump configuration. Native mapping used if provided by the host */ 2355f39c7e7SSascha Wildner 2365f39c7e7SSascha Wildner #ifdef ACPI_DUMP_APP 2375f39c7e7SSascha Wildner #define ACPI_USE_NATIVE_MEMORY_MAPPING 2385f39c7e7SSascha Wildner #endif 2395f39c7e7SSascha Wildner 2405f39c7e7SSascha Wildner /* AcpiNames/Example configuration. Hardware disabled */ 2415f39c7e7SSascha Wildner 2425f39c7e7SSascha Wildner #if (defined ACPI_EXAMPLE_APP) || \ 2435f39c7e7SSascha Wildner (defined ACPI_NAMES_APP) 2445f39c7e7SSascha Wildner #define ACPI_REDUCED_HARDWARE 1 2455f39c7e7SSascha Wildner #endif 2465f39c7e7SSascha Wildner 2472ffe9f16SSascha Wildner /* Linkable ACPICA library. Two versions, one with full debug. */ 2480d02842fSSascha Wildner 2490d02842fSSascha Wildner #ifdef ACPI_LIBRARY 2500d02842fSSascha Wildner #define ACPI_USE_LOCAL_CACHE 2512ffe9f16SSascha Wildner #define ACPI_DEBUGGER 1 2522ffe9f16SSascha Wildner #define ACPI_DISASSEMBLER 1 2532ffe9f16SSascha Wildner 2542ffe9f16SSascha Wildner #ifdef _DEBUG 2552ffe9f16SSascha Wildner #define ACPI_DEBUG_OUTPUT 2562ffe9f16SSascha Wildner #endif 2570d02842fSSascha Wildner #endif 2580d02842fSSascha Wildner 2590d02842fSSascha Wildner /* Common for all ACPICA applications */ 2600d02842fSSascha Wildner 2610d02842fSSascha Wildner #ifdef ACPI_APPLICATION 2620d02842fSSascha Wildner #define ACPI_USE_LOCAL_CACHE 2630d02842fSSascha Wildner #endif 2640d02842fSSascha Wildner 2653cc0afc6SSascha Wildner /* Common debug/disassembler support */ 2660d02842fSSascha Wildner 2670d02842fSSascha Wildner #ifdef ACPI_FULL_DEBUG 2680d02842fSSascha Wildner #define ACPI_DEBUG_OUTPUT 2693cc0afc6SSascha Wildner #define ACPI_DEBUGGER 1 2703cc0afc6SSascha Wildner #define ACPI_DISASSEMBLER 1 2710d02842fSSascha Wildner #endif 2720d02842fSSascha Wildner 273e5412f1eSSascha Wildner /* 274e5412f1eSSascha Wildner * acpisrc CR\LF support 275e5412f1eSSascha Wildner * Unix file line endings do not include the carriage return. 276e5412f1eSSascha Wildner * If the acpisrc utility is being built using a microsoft compiler, it means 277e5412f1eSSascha Wildner * that it will be running on a windows machine which means that the output is 278e5412f1eSSascha Wildner * expected to have CR/LF newlines. If the acpisrc utility is built with 279e5412f1eSSascha Wildner * anything else, it will likely run on a system with LF newlines. This flag 280e5412f1eSSascha Wildner * tells the acpisrc utility that newlines will be in the LF format. 281e5412f1eSSascha Wildner */ 282e5412f1eSSascha Wildner #if defined(ACPI_SRC_APP) && !defined(_MSC_VER) 283e5412f1eSSascha Wildner #define ACPI_SRC_OS_LF_ONLY 1 284e5412f1eSSascha Wildner #else 285e5412f1eSSascha Wildner #define ACPI_SRC_OS_LF_ONLY 0 286e5412f1eSSascha Wildner #endif 287e5412f1eSSascha Wildner 2880d02842fSSascha Wildner /*! [Begin] no source code translation */ 2890d02842fSSascha Wildner 2900d02842fSSascha Wildner /****************************************************************************** 2910d02842fSSascha Wildner * 2920d02842fSSascha Wildner * Host configuration files. The compiler configuration files are included 293277350a0SSascha Wildner * first. 2940d02842fSSascha Wildner * 2950d02842fSSascha Wildner *****************************************************************************/ 2960d02842fSSascha Wildner 297277350a0SSascha Wildner #if defined(__GNUC__) && !defined(__INTEL_COMPILER) 298277350a0SSascha Wildner #include "acgcc.h" 299277350a0SSascha Wildner 300277350a0SSascha Wildner #elif defined(_MSC_VER) 301277350a0SSascha Wildner #include "acmsvc.h" 302277350a0SSascha Wildner 303277350a0SSascha Wildner #elif defined(__INTEL_COMPILER) 304277350a0SSascha Wildner #include "acintel.h" 305277350a0SSascha Wildner 306277350a0SSascha Wildner #endif 307277350a0SSascha Wildner 3080d02842fSSascha Wildner #if defined(_LINUX) || defined(__linux__) 3090d02842fSSascha Wildner #include "aclinux.h" 3100d02842fSSascha Wildner 3110d02842fSSascha Wildner #elif defined(_APPLE) || defined(__APPLE__) 3120d02842fSSascha Wildner #include "acmacosx.h" 3130d02842fSSascha Wildner 3147eacbf00SSascha Wildner #elif defined(__DragonFly__) 31592b36660SSascha Wildner #include "acdragonfly.h" 3167eacbf00SSascha Wildner 3170d02842fSSascha Wildner #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) 3180d02842fSSascha Wildner #include "acfreebsd.h" 3190d02842fSSascha Wildner 3200d02842fSSascha Wildner #elif defined(__NetBSD__) 3210d02842fSSascha Wildner #include "acnetbsd.h" 3220d02842fSSascha Wildner 3230d02842fSSascha Wildner #elif defined(__sun) 3240d02842fSSascha Wildner #include "acsolaris.h" 3250d02842fSSascha Wildner 3260d02842fSSascha Wildner #elif defined(MODESTO) 3270d02842fSSascha Wildner #include "acmodesto.h" 3280d02842fSSascha Wildner 3290d02842fSSascha Wildner #elif defined(NETWARE) 3300d02842fSSascha Wildner #include "acnetware.h" 3310d02842fSSascha Wildner 3320d02842fSSascha Wildner #elif defined(_CYGWIN) 3330d02842fSSascha Wildner #include "accygwin.h" 3340d02842fSSascha Wildner 3350d02842fSSascha Wildner #elif defined(WIN32) 3360d02842fSSascha Wildner #include "acwin.h" 3370d02842fSSascha Wildner 3380d02842fSSascha Wildner #elif defined(WIN64) 3390d02842fSSascha Wildner #include "acwin64.h" 3400d02842fSSascha Wildner 3410d02842fSSascha Wildner #elif defined(_WRS_LIB_BUILD) 3420d02842fSSascha Wildner #include "acvxworks.h" 3430d02842fSSascha Wildner 3440d02842fSSascha Wildner #elif defined(__OS2__) 3450d02842fSSascha Wildner #include "acos2.h" 3460d02842fSSascha Wildner 3470d02842fSSascha Wildner #elif defined(__HAIKU__) 3480d02842fSSascha Wildner #include "achaiku.h" 3490d02842fSSascha Wildner 3502ffe9f16SSascha Wildner #elif defined(__QNX__) 3512ffe9f16SSascha Wildner #include "acqnx.h" 3522ffe9f16SSascha Wildner 353277350a0SSascha Wildner /* 354277350a0SSascha Wildner * EFI applications can be built with -nostdlib, in this case, it must be 355277350a0SSascha Wildner * included after including all other host environmental definitions, in 356277350a0SSascha Wildner * order to override the definitions. 357277350a0SSascha Wildner */ 358277350a0SSascha Wildner #elif defined(_AED_EFI) || defined(_GNU_EFI) || defined(_EDK2_EFI) 359277350a0SSascha Wildner #include "acefi.h" 360277350a0SSascha Wildner 3610d02842fSSascha Wildner #else 3620d02842fSSascha Wildner 3630d02842fSSascha Wildner /* Unknown environment */ 3640d02842fSSascha Wildner 3650d02842fSSascha Wildner #error Unknown target environment 3660d02842fSSascha Wildner #endif 3670d02842fSSascha Wildner 3680d02842fSSascha Wildner /*! [End] no source code translation !*/ 3690d02842fSSascha Wildner 3700d02842fSSascha Wildner 3710d02842fSSascha Wildner /****************************************************************************** 3720d02842fSSascha Wildner * 3730d02842fSSascha Wildner * Setup defaults for the required symbols that were not defined in one of 3740d02842fSSascha Wildner * the host/compiler files above. 3750d02842fSSascha Wildner * 3760d02842fSSascha Wildner *****************************************************************************/ 3770d02842fSSascha Wildner 3780d02842fSSascha Wildner /* 64-bit data types */ 3790d02842fSSascha Wildner 3800d02842fSSascha Wildner #ifndef COMPILER_DEPENDENT_INT64 3810d02842fSSascha Wildner #define COMPILER_DEPENDENT_INT64 long long 3820d02842fSSascha Wildner #endif 3830d02842fSSascha Wildner 3840d02842fSSascha Wildner #ifndef COMPILER_DEPENDENT_UINT64 3850d02842fSSascha Wildner #define COMPILER_DEPENDENT_UINT64 unsigned long long 3860d02842fSSascha Wildner #endif 3870d02842fSSascha Wildner 3880d02842fSSascha Wildner /* Type of mutex supported by host. Default is binary semaphores. */ 3890d02842fSSascha Wildner 3900d02842fSSascha Wildner #ifndef ACPI_MUTEX_TYPE 3910d02842fSSascha Wildner #define ACPI_MUTEX_TYPE ACPI_BINARY_SEMAPHORE 3920d02842fSSascha Wildner #endif 3930d02842fSSascha Wildner 3940d02842fSSascha Wildner /* Global Lock acquire/release */ 3950d02842fSSascha Wildner 3960d02842fSSascha Wildner #ifndef ACPI_ACQUIRE_GLOBAL_LOCK 3970d02842fSSascha Wildner #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acquired) Acquired = 1 3980d02842fSSascha Wildner #endif 3990d02842fSSascha Wildner 4000d02842fSSascha Wildner #ifndef ACPI_RELEASE_GLOBAL_LOCK 4010d02842fSSascha Wildner #define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Pending) Pending = 0 4020d02842fSSascha Wildner #endif 4030d02842fSSascha Wildner 4040d02842fSSascha Wildner /* Flush CPU cache - used when going to sleep. Wbinvd or similar. */ 4050d02842fSSascha Wildner 4060d02842fSSascha Wildner #ifndef ACPI_FLUSH_CPU_CACHE 4070d02842fSSascha Wildner #define ACPI_FLUSH_CPU_CACHE() 4080d02842fSSascha Wildner #endif 4090d02842fSSascha Wildner 4100d02842fSSascha Wildner /* "inline" keywords - configurable since inline is not standardized */ 4110d02842fSSascha Wildner 4120d02842fSSascha Wildner #ifndef ACPI_INLINE 4130d02842fSSascha Wildner #define ACPI_INLINE 4140d02842fSSascha Wildner #endif 4150d02842fSSascha Wildner 4161093ca81SSascha Wildner /* Use ordered initialization if compiler doesn't support designated. */ 4171093ca81SSascha Wildner #ifndef ACPI_STRUCT_INIT 4181093ca81SSascha Wildner #define ACPI_STRUCT_INIT(field, value) value 4191093ca81SSascha Wildner #endif 4201093ca81SSascha Wildner 4210d02842fSSascha Wildner /* 4220d02842fSSascha Wildner * Configurable calling conventions: 4230d02842fSSascha Wildner * 4240d02842fSSascha Wildner * ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads) 4250d02842fSSascha Wildner * ACPI_EXTERNAL_XFACE - External ACPI interfaces 4260d02842fSSascha Wildner * ACPI_INTERNAL_XFACE - Internal ACPI interfaces 4270d02842fSSascha Wildner * ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces 4280d02842fSSascha Wildner */ 4290d02842fSSascha Wildner #ifndef ACPI_SYSTEM_XFACE 4300d02842fSSascha Wildner #define ACPI_SYSTEM_XFACE 4310d02842fSSascha Wildner #endif 4320d02842fSSascha Wildner 4330d02842fSSascha Wildner #ifndef ACPI_EXTERNAL_XFACE 4340d02842fSSascha Wildner #define ACPI_EXTERNAL_XFACE 4350d02842fSSascha Wildner #endif 4360d02842fSSascha Wildner 4370d02842fSSascha Wildner #ifndef ACPI_INTERNAL_XFACE 4380d02842fSSascha Wildner #define ACPI_INTERNAL_XFACE 4390d02842fSSascha Wildner #endif 4400d02842fSSascha Wildner 4410d02842fSSascha Wildner #ifndef ACPI_INTERNAL_VAR_XFACE 4420d02842fSSascha Wildner #define ACPI_INTERNAL_VAR_XFACE 4430d02842fSSascha Wildner #endif 4440d02842fSSascha Wildner 445c6400d37SSascha Wildner 4460d02842fSSascha Wildner /* 4470d02842fSSascha Wildner * Debugger threading model 4480d02842fSSascha Wildner * Use single threaded if the entire subsystem is contained in an application 4490d02842fSSascha Wildner * Use multiple threaded when the subsystem is running in the kernel. 4500d02842fSSascha Wildner * 4510d02842fSSascha Wildner * By default the model is single threaded if ACPI_APPLICATION is set, 4520d02842fSSascha Wildner * multi-threaded if ACPI_APPLICATION is not set. 4530d02842fSSascha Wildner */ 4540d02842fSSascha Wildner #ifndef DEBUGGER_THREADING 455c6400d37SSascha Wildner #if !defined (ACPI_APPLICATION) || defined (ACPI_EXEC_APP) 456c6400d37SSascha Wildner #define DEBUGGER_THREADING DEBUGGER_MULTI_THREADED 4570d02842fSSascha Wildner 4580d02842fSSascha Wildner #else 459c6400d37SSascha Wildner #define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED 4600d02842fSSascha Wildner #endif 4610d02842fSSascha Wildner #endif /* !DEBUGGER_THREADING */ 4620d02842fSSascha Wildner 4630d02842fSSascha Wildner 4640d02842fSSascha Wildner /****************************************************************************** 4650d02842fSSascha Wildner * 4660d02842fSSascha Wildner * C library configuration 4670d02842fSSascha Wildner * 4680d02842fSSascha Wildner *****************************************************************************/ 4690d02842fSSascha Wildner 4700d02842fSSascha Wildner /* 4710d02842fSSascha Wildner * ACPI_USE_SYSTEM_CLIBRARY - Define this if linking to an actual C library. 4720d02842fSSascha Wildner * Otherwise, local versions of string/memory functions will be used. 4730d02842fSSascha Wildner * ACPI_USE_STANDARD_HEADERS - Define this if linking to a C library and 474277350a0SSascha Wildner * the standard header files may be used. Defining this implies that 475277350a0SSascha Wildner * ACPI_USE_SYSTEM_CLIBRARY has been defined. 4760d02842fSSascha Wildner * 4773cc0afc6SSascha Wildner * The ACPICA subsystem only uses low level C library functions that do not 4783cc0afc6SSascha Wildner * call operating system services and may therefore be inlined in the code. 4790d02842fSSascha Wildner * 4800d02842fSSascha Wildner * It may be necessary to tailor these include files to the target 4810d02842fSSascha Wildner * generation environment. 4820d02842fSSascha Wildner */ 4830d02842fSSascha Wildner 4840d02842fSSascha Wildner /* Use the standard C library headers. We want to keep these to a minimum. */ 4850d02842fSSascha Wildner 4860d02842fSSascha Wildner #ifdef ACPI_USE_STANDARD_HEADERS 4870d02842fSSascha Wildner 4880d02842fSSascha Wildner /* Use the standard headers from the standard locations */ 4890d02842fSSascha Wildner 4900d02842fSSascha Wildner #include <stdlib.h> 4910d02842fSSascha Wildner #include <string.h> 4920d02842fSSascha Wildner #include <ctype.h> 49338b5d46cSSascha Wildner #if defined (ACPI_APPLICATION) || defined(ACPI_LIBRARY) 494277350a0SSascha Wildner #include <stdio.h> 495277350a0SSascha Wildner #include <fcntl.h> 496277350a0SSascha Wildner #include <errno.h> 497277350a0SSascha Wildner #include <time.h> 498277350a0SSascha Wildner #include <signal.h> 499277350a0SSascha Wildner #endif 5000d02842fSSascha Wildner 5010d02842fSSascha Wildner #endif /* ACPI_USE_STANDARD_HEADERS */ 5020d02842fSSascha Wildner 5030d02842fSSascha Wildner #ifdef ACPI_APPLICATION 5040d02842fSSascha Wildner #define ACPI_FILE FILE * 5055f39c7e7SSascha Wildner #define ACPI_FILE_OUT stdout 5065f39c7e7SSascha Wildner #define ACPI_FILE_ERR stderr 5070d02842fSSascha Wildner #else 5080d02842fSSascha Wildner #define ACPI_FILE void * 5095f39c7e7SSascha Wildner #define ACPI_FILE_OUT NULL 5105f39c7e7SSascha Wildner #define ACPI_FILE_ERR NULL 5110d02842fSSascha Wildner #endif /* ACPI_APPLICATION */ 512277350a0SSascha Wildner 513277350a0SSascha Wildner #ifndef ACPI_INIT_FUNCTION 514277350a0SSascha Wildner #define ACPI_INIT_FUNCTION 515277350a0SSascha Wildner #endif 5160d02842fSSascha Wildner 5170d02842fSSascha Wildner #endif /* __ACENV_H__ */ 518