1/****************************************************************************** 2 * 3 * Name: acconfig.h - Global configuration constants 4 * $Revision: 1.1.1.1 $ 5 * 6 *****************************************************************************/ 7 8/* 9 * Copyright (C) 2000, 2001 R. Byron Moore 10 * 11 * This program is free software; you can redistribute it and/or modify 12 * it under the terms of the GNU General Public License as published by 13 * the Free Software Foundation; either version 2 of the License, or 14 * (at your option) any later version. 15 * 16 * This program is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU General Public License for more details. 20 * 21 * You should have received a copy of the GNU General Public License 22 * along with this program; if not, write to the Free Software 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 24 */ 25 26#ifndef _ACCONFIG_H 27#define _ACCONFIG_H 28 29 30/****************************************************************************** 31 * 32 * Compile-time options 33 * 34 *****************************************************************************/ 35 36/* 37 * ACPI_DEBUG - This switch enables all the debug facilities of the ACPI 38 * subsystem. This includes the DEBUG_PRINT output statements 39 * When disabled, all DEBUG_PRINT statements are compiled out. 40 * 41 * ACPI_APPLICATION - Use this switch if the subsystem is going to be run 42 * at the application level. 43 * 44 */ 45 46 47/****************************************************************************** 48 * 49 * Subsystem Constants 50 * 51 *****************************************************************************/ 52 53 54/* Version string */ 55 56#define ACPI_CA_VERSION 0x20011018 57 58/* Version of ACPI supported */ 59 60#define ACPI_CA_SUPPORT_LEVEL 2 61 62 63/* Maximum objects in the various object caches */ 64 65#define MAX_STATE_CACHE_DEPTH 64 /* State objects for stacks */ 66#define MAX_PARSE_CACHE_DEPTH 96 /* Parse tree objects */ 67#define MAX_EXTPARSE_CACHE_DEPTH 64 /* Parse tree objects */ 68#define MAX_OBJECT_CACHE_DEPTH 64 /* Interpreter operand objects */ 69#define MAX_WALK_CACHE_DEPTH 4 /* Objects for parse tree walks (method execution) */ 70 71 72/* String size constants */ 73 74#define MAX_STRING_LENGTH 512 75#define PATHNAME_MAX 256 /* A full namespace pathname */ 76 77 78/* Maximum count for a semaphore object */ 79 80#define MAX_SEMAPHORE_COUNT 256 81 82 83/* Max reference count (for debug only) */ 84 85#define MAX_REFERENCE_COUNT 0x400 86 87 88/* Size of cached memory mapping for system memory operation region */ 89 90#define SYSMEM_REGION_WINDOW_SIZE 4096 91 92 93/* 94 * Debugger threading model 95 * Use single threaded if the entire subsystem is contained in an application 96 * Use multiple threaded when the subsystem is running in the kernel. 97 * 98 * By default the model is single threaded if ACPI_APPLICATION is set, 99 * multi-threaded if ACPI_APPLICATION is not set. 100 */ 101 102#define DEBUGGER_SINGLE_THREADED 0 103#define DEBUGGER_MULTI_THREADED 1 104 105#ifdef ACPI_APPLICATION 106#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED 107 108#else 109#define DEBUGGER_THREADING DEBUGGER_MULTI_THREADED 110#endif 111 112 113/****************************************************************************** 114 * 115 * ACPI Specification constants (Do not change unless the specification changes) 116 * 117 *****************************************************************************/ 118 119/* 120 * Method info (in WALK_STATE), containing local variables and argumetns 121 */ 122 123#define MTH_NUM_LOCALS 8 124#define MTH_MAX_LOCAL 7 125 126#define MTH_NUM_ARGS 7 127#define MTH_MAX_ARG 6 128 129/* Maximum length of resulting string when converting from a buffer */ 130 131#define ACPI_MAX_STRING_CONVERSION 200 132 133/* 134 * Operand Stack (in WALK_STATE), Must be large enough to contain MTH_MAX_ARG 135 */ 136 137#define OBJ_NUM_OPERANDS 8 138#define OBJ_MAX_OPERAND 7 139 140/* Names within the namespace are 4 bytes long */ 141 142#define ACPI_NAME_SIZE 4 143#define PATH_SEGMENT_LENGTH 5 /* 4 chars for name + 1 s8 for separator */ 144#define PATH_SEPARATOR '.' 145 146 147/* Constants used in searching for the RSDP in low memory */ 148 149#define LO_RSDP_WINDOW_BASE 0 /* Physical Address */ 150#define HI_RSDP_WINDOW_BASE 0xE0000 /* Physical Address */ 151#define LO_RSDP_WINDOW_SIZE 0x400 152#define HI_RSDP_WINDOW_SIZE 0x20000 153#define RSDP_SCAN_STEP 16 154 155/* Maximum Space_ids for Operation Regions */ 156 157#define ACPI_MAX_ADDRESS_SPACE 255 158#define ACPI_NUM_ADDRESS_SPACES 256 159 160 161#endif /* _ACCONFIG_H */ 162 163