linux/include/acpi/acconfig.h
<<
>>
Prefs
   1/******************************************************************************
   2 *
   3 * Name: acconfig.h - Global configuration constants
   4 *
   5 *****************************************************************************/
   6
   7/*
   8 * Copyright (C) 2000 - 2015, Intel Corp.
   9 * All rights reserved.
  10 *
  11 * Redistribution and use in source and binary forms, with or without
  12 * modification, are permitted provided that the following conditions
  13 * are met:
  14 * 1. Redistributions of source code must retain the above copyright
  15 *    notice, this list of conditions, and the following disclaimer,
  16 *    without modification.
  17 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
  18 *    substantially similar to the "NO WARRANTY" disclaimer below
  19 *    ("Disclaimer") and any redistribution must be conditioned upon
  20 *    including a substantially similar Disclaimer requirement for further
  21 *    binary redistribution.
  22 * 3. Neither the names of the above-listed copyright holders nor the names
  23 *    of any contributors may be used to endorse or promote products derived
  24 *    from this software without specific prior written permission.
  25 *
  26 * Alternatively, this software may be distributed under the terms of the
  27 * GNU General Public License ("GPL") version 2 as published by the Free
  28 * Software Foundation.
  29 *
  30 * NO WARRANTY
  31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  32 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  33 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
  34 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  35 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  36 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  37 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  39 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  40 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  41 * POSSIBILITY OF SUCH DAMAGES.
  42 */
  43
  44#ifndef _ACCONFIG_H
  45#define _ACCONFIG_H
  46
  47/******************************************************************************
  48 *
  49 * Configuration options
  50 *
  51 *****************************************************************************/
  52
  53/*
  54 * ACPI_DEBUG_OUTPUT    - This switch enables all the debug facilities of the
  55 *                        ACPI subsystem.  This includes the DEBUG_PRINT output
  56 *                        statements.  When disabled, all DEBUG_PRINT
  57 *                        statements are compiled out.
  58 *
  59 * ACPI_APPLICATION     - Use this switch if the subsystem is going to be run
  60 *                        at the application level.
  61 *
  62 */
  63
  64/*
  65 * OS name, used for the _OS object.  The _OS object is essentially obsolete,
  66 * but there is a large base of ASL/AML code in existing machines that check
  67 * for the string below.  The use of this string usually guarantees that
  68 * the ASL will execute down the most tested code path.  Also, there is some
  69 * code that will not execute the _OSI method unless _OS matches the string
  70 * below.  Therefore, change this string at your own risk.
  71 */
  72#define ACPI_OS_NAME                    "Microsoft Windows NT"
  73
  74/* Maximum objects in the various object caches */
  75
  76#define ACPI_MAX_STATE_CACHE_DEPTH      96      /* State objects */
  77#define ACPI_MAX_PARSE_CACHE_DEPTH      96      /* Parse tree objects */
  78#define ACPI_MAX_EXTPARSE_CACHE_DEPTH   96      /* Parse tree objects */
  79#define ACPI_MAX_OBJECT_CACHE_DEPTH     96      /* Interpreter operand objects */
  80#define ACPI_MAX_NAMESPACE_CACHE_DEPTH  96      /* Namespace objects */
  81
  82/*
  83 * Should the subsystem abort the loading of an ACPI table if the
  84 * table checksum is incorrect?
  85 */
  86#ifndef ACPI_CHECKSUM_ABORT
  87#define ACPI_CHECKSUM_ABORT             FALSE
  88#endif
  89
  90/*
  91 * Generate a version of ACPICA that only supports "reduced hardware"
  92 * platforms (as defined in ACPI 5.0). Set to TRUE to generate a specialized
  93 * version of ACPICA that ONLY supports the ACPI 5.0 "reduced hardware"
  94 * model. In other words, no ACPI hardware is supported.
  95 *
  96 * If TRUE, this means no support for the following:
  97 *      PM Event and Control registers
  98 *      SCI interrupt (and handler)
  99 *      Fixed Events
 100 *      General Purpose Events (GPEs)
 101 *      Global Lock
 102 *      ACPI PM timer
 103 *      FACS table (Waking vectors and Global Lock)
 104 */
 105#ifndef ACPI_REDUCED_HARDWARE
 106#define ACPI_REDUCED_HARDWARE           FALSE
 107#endif
 108
 109/******************************************************************************
 110 *
 111 * Subsystem Constants
 112 *
 113 *****************************************************************************/
 114
 115/* Version of ACPI supported */
 116
 117#define ACPI_CA_SUPPORT_LEVEL           5
 118
 119/* Maximum count for a semaphore object */
 120
 121#define ACPI_MAX_SEMAPHORE_COUNT        256
 122
 123/* Maximum object reference count (detects object deletion issues) */
 124
 125#define ACPI_MAX_REFERENCE_COUNT        0x1000
 126
 127/* Default page size for use in mapping memory for operation regions */
 128
 129#define ACPI_DEFAULT_PAGE_SIZE          4096    /* Must be power of 2 */
 130
 131/* owner_id tracking. 8 entries allows for 255 owner_ids */
 132
 133#define ACPI_NUM_OWNERID_MASKS          8
 134
 135/* Size of the root table array is increased by this increment */
 136
 137#define ACPI_ROOT_TABLE_SIZE_INCREMENT  4
 138
 139/* Maximum number of While() loop iterations before forced abort */
 140
 141#define ACPI_MAX_LOOP_ITERATIONS        0xFFFF
 142
 143/* Maximum sleep allowed via Sleep() operator */
 144
 145#define ACPI_MAX_SLEEP                  2000    /* 2000 millisec == two seconds */
 146
 147/* Address Range lists are per-space_id (Memory and I/O only) */
 148
 149#define ACPI_ADDRESS_RANGE_MAX          2
 150
 151/******************************************************************************
 152 *
 153 * ACPI Specification constants (Do not change unless the specification changes)
 154 *
 155 *****************************************************************************/
 156
 157/* Method info (in WALK_STATE), containing local variables and argumetns */
 158
 159#define ACPI_METHOD_NUM_LOCALS          8
 160#define ACPI_METHOD_MAX_LOCAL           7
 161
 162#define ACPI_METHOD_NUM_ARGS            7
 163#define ACPI_METHOD_MAX_ARG             6
 164
 165/*
 166 * Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG
 167 */
 168#define ACPI_OBJ_NUM_OPERANDS           8
 169#define ACPI_OBJ_MAX_OPERAND            7
 170
 171/* Number of elements in the Result Stack frame, can be an arbitrary value */
 172
 173#define ACPI_RESULTS_FRAME_OBJ_NUM      8
 174
 175/*
 176 * Maximal number of elements the Result Stack can contain,
 177 * it may be an arbitray value not exceeding the types of
 178 * result_size and result_count (now u8).
 179 */
 180#define ACPI_RESULTS_OBJ_NUM_MAX        255
 181
 182/* Constants used in searching for the RSDP in low memory */
 183
 184#define ACPI_EBDA_PTR_LOCATION          0x0000040E      /* Physical Address */
 185#define ACPI_EBDA_PTR_LENGTH            2
 186#define ACPI_EBDA_WINDOW_SIZE           1024
 187#define ACPI_HI_RSDP_WINDOW_BASE        0x000E0000      /* Physical Address */
 188#define ACPI_HI_RSDP_WINDOW_SIZE        0x00020000
 189#define ACPI_RSDP_SCAN_STEP             16
 190
 191/* Operation regions */
 192
 193#define ACPI_USER_REGION_BEGIN          0x80
 194
 195/* Maximum space_ids for Operation Regions */
 196
 197#define ACPI_MAX_ADDRESS_SPACE          255
 198#define ACPI_NUM_DEFAULT_SPACES         4
 199
 200/* Array sizes.  Used for range checking also */
 201
 202#define ACPI_MAX_MATCH_OPCODE           5
 203
 204/* RSDP checksums */
 205
 206#define ACPI_RSDP_CHECKSUM_LENGTH       20
 207#define ACPI_RSDP_XCHECKSUM_LENGTH      36
 208
 209/* SMBus, GSBus and IPMI bidirectional buffer size */
 210
 211#define ACPI_SMBUS_BUFFER_SIZE          34
 212#define ACPI_GSBUS_BUFFER_SIZE          34
 213#define ACPI_IPMI_BUFFER_SIZE           66
 214
 215/* _sx_d and _sx_w control methods */
 216
 217#define ACPI_NUM_sx_d_METHODS           4
 218#define ACPI_NUM_sx_w_METHODS           5
 219
 220/******************************************************************************
 221 *
 222 * Miscellaneous constants
 223 *
 224 *****************************************************************************/
 225
 226/* UUID constants */
 227
 228#define UUID_BUFFER_LENGTH          16  /* Length of UUID in memory */
 229#define UUID_STRING_LENGTH          36  /* Total length of a UUID string */
 230
 231/* Positions for required hyphens (dashes) in UUID strings */
 232
 233#define UUID_HYPHEN1_OFFSET         8
 234#define UUID_HYPHEN2_OFFSET         13
 235#define UUID_HYPHEN3_OFFSET         18
 236#define UUID_HYPHEN4_OFFSET         23
 237
 238/******************************************************************************
 239 *
 240 * ACPI AML Debugger
 241 *
 242 *****************************************************************************/
 243
 244#define ACPI_DEBUGGER_MAX_ARGS          ACPI_METHOD_NUM_ARGS + 4        /* Max command line arguments */
 245#define ACPI_DB_LINE_BUFFER_SIZE        512
 246
 247#define ACPI_DEBUGGER_COMMAND_PROMPT    '-'
 248#define ACPI_DEBUGGER_EXECUTE_PROMPT    '%'
 249
 250#endif                          /* _ACCONFIG_H */
 251