summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/include/acconfig.h
blob: 2b210339b5e7a2324ce9177f4f074db0d99ba258 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/******************************************************************************
 *
 * Name: acconfig.h - Global configuration constants
 *       $Revision: 48 $
 *
 *****************************************************************************/

/*
 *  Copyright (C) 2000 R. Byron Moore
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef _ACCONFIG_H
#define _ACCONFIG_H


/******************************************************************************
 *
 * Compile-time options
 *
 *****************************************************************************/

/*
 * ACPI_DEBUG           - This switch enables all the debug facilities of the ACPI
 *                          subsystem.  This includes the DEBUG_PRINT output statements
 *                          When disabled, all DEBUG_PRINT statements are compiled out.
 *
 * ACPI_APPLICATION     - Use this switch if the subsystem is going to be run
 *                          at the application level.
 *
 */


/******************************************************************************
 *
 * Subsystem Constants
 *
 *****************************************************************************/


/* Version string */

#define ACPI_CA_VERSION             __DATE__


/* Maximum objects in the various object caches */

#define MAX_STATE_CACHE_DEPTH       64         /* State objects for stacks */
#define MAX_PARSE_CACHE_DEPTH       96          /* Parse tree objects */
#define MAX_EXTPARSE_CACHE_DEPTH    64          /* Parse tree objects */
#define MAX_OBJECT_CACHE_DEPTH      64          /* Interpreter operand objects */
#define MAX_WALK_CACHE_DEPTH        2           /* Objects for parse tree walks (method execution) */


/* String size constants */

#define MAX_STRING_LENGTH           512
#define PATHNAME_MAX                256     /* A full namespace pathname */


/* Maximum count for a semaphore object */

#define MAX_SEMAPHORE_COUNT         256


/* Max reference count (for debug only) */

#define MAX_REFERENCE_COUNT         0x200


/* Size of cached memory mapping for system memory operation region */

#define SYSMEM_REGION_WINDOW_SIZE   4096


/*
 * Debugger threading model
 * Use single threaded if the entire subsystem is contained in an application
 * Use multiple threaded when the the subsystem is running in the kernel.
 *
 * By default the model is single threaded if ACPI_APPLICATION is set,
 * multi-threaded if ACPI_APPLICATION is not set.
 */

#define DEBUGGER_SINGLE_THREADED    0
#define DEBUGGER_MULTI_THREADED     1

#ifdef ACPI_APPLICATION
#define DEBUGGER_THREADING          DEBUGGER_SINGLE_THREADED

#else
#define DEBUGGER_THREADING          DEBUGGER_MULTI_THREADED
#endif


/******************************************************************************
 *
 * ACPI Specification constants (Do not change unless the specification changes)
 *
 *****************************************************************************/

/*
 * Method info (in WALK_STATE), containing local variables and argumetns
 */

#define MTH_NUM_LOCALS              8
#define MTH_MAX_LOCAL               7

#define MTH_NUM_ARGS                7
#define MTH_MAX_ARG                 6

/*
 * Operand Stack (in WALK_STATE), Must be large enough to contain MTH_MAX_ARG
 */

#define OBJ_NUM_OPERANDS            8
#define OBJ_MAX_OPERAND             7

/* Names within the namespace are 4 bytes long */

#define ACPI_NAME_SIZE              4
#define PATH_SEGMENT_LENGTH         5           /* 4 chars for name + 1 s8 for separator */
#define PATH_SEPARATOR              '.'


/* Constants used in searching for the RSDP in low memory */

#define LO_RSDP_WINDOW_BASE         0           /* Physical Address */
#define HI_RSDP_WINDOW_BASE         0xE0000     /* Physical Address */
#define LO_RSDP_WINDOW_SIZE         0x400
#define HI_RSDP_WINDOW_SIZE         0x20000
#define RSDP_SCAN_STEP              16


/* Maximum nesting of package objects */

#define MAX_PACKAGE_DEPTH           16


#endif /* _ACCONFIG_H */