Subversion Repositories Kolibri OS

Rev

Rev 6588 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. /******************************************************************************
  2.  *
  3.  * Name: acconfig.h - Global configuration constants
  4.  *
  5.  *****************************************************************************/
  6.  
  7. /*
  8.  * Copyright (C) 2000 - 2016, 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 sleep allowed via Sleep() operator */
  140.  
  141. #define ACPI_MAX_SLEEP                  2000    /* 2000 millisec == two seconds */
  142.  
  143. /* Address Range lists are per-space_id (Memory and I/O only) */
  144.  
  145. #define ACPI_ADDRESS_RANGE_MAX          2
  146.  
  147. /******************************************************************************
  148.  *
  149.  * ACPI Specification constants (Do not change unless the specification changes)
  150.  *
  151.  *****************************************************************************/
  152.  
  153. /* Method info (in WALK_STATE), containing local variables and argumetns */
  154.  
  155. #define ACPI_METHOD_NUM_LOCALS          8
  156. #define ACPI_METHOD_MAX_LOCAL           7
  157.  
  158. #define ACPI_METHOD_NUM_ARGS            7
  159. #define ACPI_METHOD_MAX_ARG             6
  160.  
  161. /*
  162.  * Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG
  163.  */
  164. #define ACPI_OBJ_NUM_OPERANDS           8
  165. #define ACPI_OBJ_MAX_OPERAND            7
  166.  
  167. /* Number of elements in the Result Stack frame, can be an arbitrary value */
  168.  
  169. #define ACPI_RESULTS_FRAME_OBJ_NUM      8
  170.  
  171. /*
  172.  * Maximal number of elements the Result Stack can contain,
  173.  * it may be an arbitray value not exceeding the types of
  174.  * result_size and result_count (now u8).
  175.  */
  176. #define ACPI_RESULTS_OBJ_NUM_MAX        255
  177.  
  178. /* Constants used in searching for the RSDP in low memory */
  179.  
  180. #define ACPI_EBDA_PTR_LOCATION          0x0000040E      /* Physical Address */
  181. #define ACPI_EBDA_PTR_LENGTH            2
  182. #define ACPI_EBDA_WINDOW_SIZE           1024
  183. #define ACPI_HI_RSDP_WINDOW_BASE        0x000E0000      /* Physical Address */
  184. #define ACPI_HI_RSDP_WINDOW_SIZE        0x00020000
  185. #define ACPI_RSDP_SCAN_STEP             16
  186.  
  187. /* Operation regions */
  188.  
  189. #define ACPI_USER_REGION_BEGIN          0x80
  190.  
  191. /* Maximum space_ids for Operation Regions */
  192.  
  193. #define ACPI_MAX_ADDRESS_SPACE          255
  194. #define ACPI_NUM_DEFAULT_SPACES         4
  195.  
  196. /* Array sizes.  Used for range checking also */
  197.  
  198. #define ACPI_MAX_MATCH_OPCODE           5
  199.  
  200. /* RSDP checksums */
  201.  
  202. #define ACPI_RSDP_CHECKSUM_LENGTH       20
  203. #define ACPI_RSDP_XCHECKSUM_LENGTH      36
  204.  
  205. /* SMBus, GSBus and IPMI bidirectional buffer size */
  206.  
  207. #define ACPI_SMBUS_BUFFER_SIZE          34
  208. #define ACPI_GSBUS_BUFFER_SIZE          34
  209. #define ACPI_IPMI_BUFFER_SIZE           66
  210.  
  211. /* _sx_d and _sx_w control methods */
  212.  
  213. #define ACPI_NUM_sx_d_METHODS           4
  214. #define ACPI_NUM_sx_w_METHODS           5
  215.  
  216. /******************************************************************************
  217.  *
  218.  * Miscellaneous constants
  219.  *
  220.  *****************************************************************************/
  221.  
  222. /* UUID constants */
  223.  
  224. #define UUID_BUFFER_LENGTH          16  /* Length of UUID in memory */
  225. #define UUID_STRING_LENGTH          36  /* Total length of a UUID string */
  226.  
  227. /* Positions for required hyphens (dashes) in UUID strings */
  228.  
  229. #define UUID_HYPHEN1_OFFSET         8
  230. #define UUID_HYPHEN2_OFFSET         13
  231. #define UUID_HYPHEN3_OFFSET         18
  232. #define UUID_HYPHEN4_OFFSET         23
  233.  
  234. /******************************************************************************
  235.  *
  236.  * ACPI AML Debugger
  237.  *
  238.  *****************************************************************************/
  239.  
  240. #define ACPI_DEBUGGER_MAX_ARGS          ACPI_METHOD_NUM_ARGS + 4        /* Max command line arguments */
  241. #define ACPI_DB_LINE_BUFFER_SIZE        512
  242.  
  243. #define ACPI_DEBUGGER_COMMAND_PROMPT    '-'
  244. #define ACPI_DEBUGGER_EXECUTE_PROMPT    '%'
  245.  
  246. #endif                          /* _ACCONFIG_H */
  247.