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