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