acconfig.h revision 316303
137Srgrimes/****************************************************************************** 237Srgrimes * 337Srgrimes * Name: acconfig.h - Global configuration constants 4705Swollman * 5705Swollman *****************************************************************************/ 6705Swollman 77685Sache/****************************************************************************** 87685Sache * 939139Sobrien * 1. Copyright Notice 1046414Sghelmer * 1139139Sobrien * Some or all of this work - Copyright (c) 1999 - 2017, Intel Corp. 1239139Sobrien * All rights reserved. 1339139Sobrien * 1439139Sobrien * 2. License 1539139Sobrien * 167685Sache * 2.1. This is your license from Intel Corp. under its intellectual property 177685Sache * rights. You may have additional license terms from the party that provided 1837Srgrimes * you this software, covering your right to use that party's intellectual 1948384Sjkh * property rights. 20705Swollman * 21705Swollman * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 227685Sache * copy of the source code appearing in this file ("Covered Code") an 237685Sache * irrevocable, perpetual, worldwide license under Intel's copyrights in the 2422009Sphk * base code distributed originally by Intel ("Original Intel Code") to copy, 257685Sache * make derivatives, distribute, use and display any portion of the Covered 267685Sache * Code in any form, with the right to sublicense such rights; and 2722009Sphk * 287685Sache * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 297685Sache * license (with the right to sublicense), under only those claims of Intel 307685Sache * patents that are infringed by the Original Intel Code, to make, use, sell, 317685Sache * offer to sell, and import the Covered Code and derivative works thereof 3222009Sphk * solely to the minimum extent necessary to exercise the above copyright 337685Sache * license, and in no event shall the patent license extend to any additions 347685Sache * to or modifications of the Original Intel Code. No other license or right 3522009Sphk * is granted directly or by implication, estoppel or otherwise; 367685Sache * 377685Sache * The above copyright and patent license is granted only if the following 387685Sache * conditions are met: 397685Sache * 407685Sache * 3. Conditions 417685Sache * 427685Sache * 3.1. Redistribution of Source with Rights to Further Distribute Source. 437685Sache * Redistribution of source code of any substantial portion of the Covered 447685Sache * Code or modification with rights to further distribute source must include 457685Sache * the above Copyright Notice, the above License, this list of Conditions, 467685Sache * and the following Disclaimer and Export Compliance provision. In addition, 477685Sache * Licensee must cause all Covered Code to which Licensee contributes to 487685Sache * contain a file documenting the changes Licensee made to create that Covered 497685Sache * Code and the date of any change. Licensee must include in that file the 507685Sache * documentation of any changes made by any predecessor Licensee. Licensee 517685Sache * must include a prominent statement that the modification is derived, 527685Sache * directly or indirectly, from Original Intel Code. 537685Sache * 5412493Speter * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 5512493Speter * Redistribution of source code of any substantial portion of the Covered 567685Sache * Code or modification without rights to further distribute source must 577685Sache * include the following Disclaimer and Export Compliance provision in the 587685Sache * documentation and/or other materials provided with distribution. In 597685Sache * addition, Licensee may not authorize further sublicense of source of any 607685Sache * portion of the Covered Code, and must include terms to the effect that the 617685Sache * license from Licensee to its licensee is limited to the intellectual 627685Sache * property embodied in the software Licensee provides to its licensee, and 637685Sache * not to intellectual property embodied in modifications its licensee may 647685Sache * make. 657685Sache * 667685Sache * 3.3. Redistribution of Executable. Redistribution in executable form of any 677685Sache * substantial portion of the Covered Code or modification must reproduce the 687685Sache * above Copyright Notice, and the following Disclaimer and Export Compliance 697685Sache * provision in the documentation and/or other materials provided with the 707685Sache * distribution. 717685Sache * 727685Sache * 3.4. Intel retains all right, title, and interest in and to the Original 737685Sache * Intel Code. 747685Sache * 757685Sache * 3.5. Neither the name Intel nor any other trademark owned or controlled by 767685Sache * Intel shall be used in advertising or otherwise to promote the sale, use or 777685Sache * other dealings in products derived from or relating to the Covered Code 787685Sache * without prior written authorization from Intel. 797685Sache * 807685Sache * 4. Disclaimer and Export Compliance 817685Sache * 827685Sache * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 837685Sache * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 847685Sache * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 857685Sache * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 867685Sache * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 877685Sache * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 887685Sache * PARTICULAR PURPOSE. 897685Sache * 907685Sache * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 917685Sache * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 927685Sache * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 937685Sache * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 9439139Sobrien * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 9539139Sobrien * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 967685Sache * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 977685Sache * LIMITED REMEDY. 987685Sache * 997685Sache * 4.3. Licensee shall not export, either directly or indirectly, any of this 1007685Sache * software or system incorporating such software without first obtaining any 1017685Sache * required license or other approval from the U. S. Department of Commerce or 1027685Sache * any other agency or department of the United States Government. In the 1037685Sache * event Licensee exports any such software from the United States or 1047685Sache * re-exports any such software from a foreign destination, Licensee shall 1057685Sache * ensure that the distribution and export/re-export of the software is in 1067685Sache * compliance with all laws, regulations, orders, or other restrictions of the 1077685Sache * U.S. Export Administration Regulations. Licensee agrees that neither it nor 1087685Sache * any of its subsidiaries will export/re-export any technical data, process, 1097685Sache * software, or service, directly or indirectly, to any country for which the 1107685Sache * United States government or any agency thereof requires an export license, 1117685Sache * other governmental approval, or letter of assurance, without first obtaining 1127685Sache * such license, approval or letter. 1137685Sache * 1147685Sache ***************************************************************************** 1157685Sache * 1167685Sache * Alternatively, you may choose to be licensed under the terms of the 1177685Sache * following license: 1187685Sache * 1197685Sache * Redistribution and use in source and binary forms, with or without 1207685Sache * modification, are permitted provided that the following conditions 1217685Sache * are met: 1227685Sache * 1. Redistributions of source code must retain the above copyright 1237685Sache * notice, this list of conditions, and the following disclaimer, 1247685Sache * without modification. 1257685Sache * 2. Redistributions in binary form must reproduce at minimum a disclaimer 1267685Sache * substantially similar to the "NO WARRANTY" disclaimer below 1277685Sache * ("Disclaimer") and any redistribution must be conditioned upon 1287685Sache * including a substantially similar Disclaimer requirement for further 1297685Sache * binary redistribution. 1307685Sache * 3. Neither the names of the above-listed copyright holders nor the names 13113583Spst * of any contributors may be used to endorse or promote products derived 13213583Spst * from this software without specific prior written permission. 13313583Spst * 13413583Spst * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1357685Sache * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1367685Sache * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1377685Sache * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1387685Sache * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1397685Sache * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1407685Sache * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1417685Sache * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1427685Sache * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1437685Sache * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1447685Sache * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1457685Sache * 1467685Sache * Alternatively, you may choose to be licensed under the terms of the 1477685Sache * GNU General Public License ("GPL") version 2 as published by the Free 1487685Sache * Software Foundation. 1497685Sache * 1507685Sache *****************************************************************************/ 1517685Sache 1527685Sache#ifndef _ACCONFIG_H 1537685Sache#define _ACCONFIG_H 1547685Sache 1557685Sache 1567685Sache/****************************************************************************** 1577685Sache * 1587685Sache * Configuration options 1597685Sache * 1607685Sache *****************************************************************************/ 1617685Sache 1627685Sache/* 1637685Sache * ACPI_DEBUG_OUTPUT - This switch enables all the debug facilities of the 1647685Sache * ACPI subsystem. This includes the DEBUG_PRINT output 1657685Sache * statements. When disabled, all DEBUG_PRINT 1667685Sache * statements are compiled out. 1677685Sache * 1687685Sache * ACPI_APPLICATION - Use this switch if the subsystem is going to be run 1697685Sache * at the application level. 1707685Sache * 1717685Sache */ 1727685Sache 1737685Sache/* 1747685Sache * OS name, used for the _OS object. The _OS object is essentially obsolete, 1757685Sache * but there is a large base of ASL/AML code in existing machines that check 1767685Sache * for the string below. The use of this string usually guarantees that 1777685Sache * the ASL will execute down the most tested code path. Also, there is some 1787685Sache * code that will not execute the _OSI method unless _OS matches the string 17939139Sobrien * below. Therefore, change this string at your own risk. 18039139Sobrien */ 1817685Sache#define ACPI_OS_NAME "Microsoft Windows NT" 1827685Sache 1837685Sache/* Maximum objects in the various object caches */ 1847685Sache 1857685Sache#define ACPI_MAX_STATE_CACHE_DEPTH 96 /* State objects */ 1867685Sache#define ACPI_MAX_PARSE_CACHE_DEPTH 96 /* Parse tree objects */ 1877685Sache#define ACPI_MAX_EXTPARSE_CACHE_DEPTH 96 /* Parse tree objects */ 1887685Sache#define ACPI_MAX_OBJECT_CACHE_DEPTH 96 /* Interpreter operand objects */ 1897685Sache#define ACPI_MAX_NAMESPACE_CACHE_DEPTH 96 /* Namespace objects */ 1907685Sache#define ACPI_MAX_COMMENT_CACHE_DEPTH 96 /* Comments for the -ca option */ 1917685Sache 1927685Sache/* 1937685Sache * Should the subsystem abort the loading of an ACPI table if the 1947685Sache * table checksum is incorrect? 1957685Sache */ 1967685Sache#ifndef ACPI_CHECKSUM_ABORT 1977685Sache#define ACPI_CHECKSUM_ABORT FALSE 1987685Sache#endif 1997685Sache 2007685Sache/* 2017685Sache * Generate a version of ACPICA that only supports "reduced hardware" 2027685Sache * platforms (as defined in ACPI 5.0). Set to TRUE to generate a specialized 2037685Sache * version of ACPICA that ONLY supports the ACPI 5.0 "reduced hardware" 2047685Sache * model. In other words, no ACPI hardware is supported. 2057685Sache * 2067685Sache * If TRUE, this means no support for the following: 2077685Sache * PM Event and Control registers 2087685Sache * SCI interrupt (and handler) 2097685Sache * Fixed Events 2107685Sache * General Purpose Events (GPEs) 2117685Sache * Global Lock 21239139Sobrien * ACPI PM timer 21339139Sobrien * FACS table (Waking vectors and Global Lock) 21428118Seivind */ 2157685Sache#ifndef ACPI_REDUCED_HARDWARE 2167685Sache#define ACPI_REDUCED_HARDWARE FALSE 2177685Sache#endif 2187685Sache 2197685Sache 2207685Sache/****************************************************************************** 2217685Sache * 2227685Sache * Subsystem Constants 2237685Sache * 2247685Sache *****************************************************************************/ 2257685Sache 2267685Sache/* Version of ACPI supported */ 2277685Sache 2287685Sache#define ACPI_CA_SUPPORT_LEVEL 5 2297685Sache 2307685Sache/* Maximum count for a semaphore object */ 2317685Sache 2327685Sache#define ACPI_MAX_SEMAPHORE_COUNT 256 2337685Sache 2347685Sache/* Maximum object reference count (detects object deletion issues) */ 2357685Sache 2367685Sache#define ACPI_MAX_REFERENCE_COUNT 0x800 2377685Sache 2387685Sache/* Default page size for use in mapping memory for operation regions */ 2397685Sache 2407685Sache#define ACPI_DEFAULT_PAGE_SIZE 4096 /* Must be power of 2 */ 2417685Sache 2427685Sache/* OwnerId tracking. 8 entries allows for 255 OwnerIds */ 2437685Sache 2447685Sache#define ACPI_NUM_OWNERID_MASKS 8 2457685Sache 2467685Sache/* Size of the root table array is increased by this increment */ 2477685Sache 2487685Sache#define ACPI_ROOT_TABLE_SIZE_INCREMENT 4 2497685Sache 2507685Sache/* Maximum sleep allowed via Sleep() operator */ 2517685Sache 2527685Sache#define ACPI_MAX_SLEEP 2000 /* 2000 millisec == two seconds */ 2537685Sache 2547685Sache/* Address Range lists are per-SpaceId (Memory and I/O only) */ 2557685Sache 2567685Sache#define ACPI_ADDRESS_RANGE_MAX 2 2577685Sache 2587685Sache/* Maximum number of While() loops before abort */ 2597685Sache 2607685Sache#define ACPI_MAX_LOOP_COUNT 0x000FFFFF 2617685Sache 2627685Sache 2637685Sache/****************************************************************************** 2647685Sache * 2657685Sache * ACPI Specification constants (Do not change unless the specification changes) 2667685Sache * 2677685Sache *****************************************************************************/ 2687685Sache 2697685Sache/* Method info (in WALK_STATE), containing local variables and argumetns */ 2707685Sache 2717685Sache#define ACPI_METHOD_NUM_LOCALS 8 27239139Sobrien#define ACPI_METHOD_MAX_LOCAL 7 27339139Sobrien 2747685Sache#define ACPI_METHOD_NUM_ARGS 7 2757685Sache#define ACPI_METHOD_MAX_ARG 6 2767685Sache 2777685Sache/* 2787685Sache * Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG 2797685Sache */ 2807685Sache#define ACPI_OBJ_NUM_OPERANDS 8 2817685Sache#define ACPI_OBJ_MAX_OPERAND 7 2827685Sache 2837685Sache/* Number of elements in the Result Stack frame, can be an arbitrary value */ 2847685Sache 2857685Sache#define ACPI_RESULTS_FRAME_OBJ_NUM 8 2867685Sache 2877685Sache/* 28821468Spst * Maximal number of elements the Result Stack can contain, 28921468Spst * it may be an arbitray value not exceeding the types of 2907685Sache * ResultSize and ResultCount (now UINT8). 2917685Sache */ 29239139Sobrien#define ACPI_RESULTS_OBJ_NUM_MAX 255 29339139Sobrien 29439139Sobrien/* Constants used in searching for the RSDP in low memory */ 29539139Sobrien 2967685Sache#define ACPI_EBDA_PTR_LOCATION 0x0000040E /* Physical Address */ 2977685Sache#define ACPI_EBDA_PTR_LENGTH 2 2987685Sache#define ACPI_EBDA_WINDOW_SIZE 1024 2997685Sache#define ACPI_HI_RSDP_WINDOW_BASE 0x000E0000 /* Physical Address */ 3007685Sache#define ACPI_HI_RSDP_WINDOW_SIZE 0x00020000 3017685Sache#define ACPI_RSDP_SCAN_STEP 16 30239139Sobrien 30339139Sobrien/* Operation regions */ 3047685Sache 3057685Sache#define ACPI_USER_REGION_BEGIN 0x80 3067685Sache 3077685Sache/* Maximum SpaceIds for Operation Regions */ 3087685Sache 3097685Sache#define ACPI_MAX_ADDRESS_SPACE 255 3107685Sache#define ACPI_NUM_DEFAULT_SPACES 4 3117685Sache 3127685Sache/* Array sizes. Used for range checking also */ 3137685Sache 3147685Sache#define ACPI_MAX_MATCH_OPCODE 5 3157685Sache 3167685Sache/* RSDP checksums */ 3177685Sache 3187685Sache#define ACPI_RSDP_CHECKSUM_LENGTH 20 3197685Sache#define ACPI_RSDP_XCHECKSUM_LENGTH 36 3207685Sache 3217685Sache/* SMBus, GSBus and IPMI bidirectional buffer size */ 3227685Sache 3237685Sache#define ACPI_SMBUS_BUFFER_SIZE 34 3247685Sache#define ACPI_GSBUS_BUFFER_SIZE 34 3257685Sache#define ACPI_IPMI_BUFFER_SIZE 66 3267685Sache 3277685Sache/* _SxD and _SxW control methods */ 3287685Sache 3297685Sache#define ACPI_NUM_SxD_METHODS 4 3307685Sache#define ACPI_NUM_SxW_METHODS 5 3317685Sache 3327685Sache 3337685Sache/****************************************************************************** 3347685Sache * 3357685Sache * Miscellaneous constants 3367685Sache * 3377685Sache *****************************************************************************/ 3387685Sache 3397685Sache/* UUID constants */ 3407685Sache 3417685Sache#define UUID_BUFFER_LENGTH 16 /* Length of UUID in memory */ 3427685Sache#define UUID_STRING_LENGTH 36 /* Total length of a UUID string */ 3437685Sache 3447685Sache/* Positions for required hyphens (dashes) in UUID strings */ 3457685Sache 3467685Sache#define UUID_HYPHEN1_OFFSET 8 3477685Sache#define UUID_HYPHEN2_OFFSET 13 3487685Sache#define UUID_HYPHEN3_OFFSET 18 3497685Sache#define UUID_HYPHEN4_OFFSET 23 3507685Sache 3517685Sache 3527685Sache/****************************************************************************** 3537685Sache * 3547685Sache * ACPI AML Debugger 3557685Sache * 3567685Sache *****************************************************************************/ 3577685Sache 3587685Sache#define ACPI_DEBUGGER_MAX_ARGS ACPI_METHOD_NUM_ARGS + 4 /* Max command line arguments */ 3597685Sache#define ACPI_DB_LINE_BUFFER_SIZE 512 3607685Sache 3617685Sache#define ACPI_DEBUGGER_COMMAND_PROMPT '-' 36239139Sobrien#define ACPI_DEBUGGER_EXECUTE_PROMPT '%' 3637685Sache 3647685Sache 3657685Sache#endif /* _ACCONFIG_H */ 3667685Sache