diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /include/acpi/platform/acenv.h |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'include/acpi/platform/acenv.h')
-rw-r--r-- | include/acpi/platform/acenv.h | 378 |
1 files changed, 378 insertions, 0 deletions
diff --git a/include/acpi/platform/acenv.h b/include/acpi/platform/acenv.h new file mode 100644 index 000000000000..57bf9362335d --- /dev/null +++ b/include/acpi/platform/acenv.h | |||
@@ -0,0 +1,378 @@ | |||
1 | /****************************************************************************** | ||
2 | * | ||
3 | * Name: acenv.h - Generation environment specific items | ||
4 | * | ||
5 | *****************************************************************************/ | ||
6 | |||
7 | /* | ||
8 | * Copyright (C) 2000 - 2005, R. Byron Moore | ||
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 __ACENV_H__ | ||
45 | #define __ACENV_H__ | ||
46 | |||
47 | |||
48 | /* | ||
49 | * Configuration for ACPI tools and utilities | ||
50 | */ | ||
51 | |||
52 | #ifdef _ACPI_DUMP_APP | ||
53 | #ifndef MSDOS | ||
54 | #define ACPI_DEBUG_OUTPUT | ||
55 | #endif | ||
56 | #define ACPI_APPLICATION | ||
57 | #define ACPI_DISASSEMBLER | ||
58 | #define ACPI_NO_METHOD_EXECUTION | ||
59 | #define ACPI_USE_SYSTEM_CLIBRARY | ||
60 | #define ACPI_ENABLE_OBJECT_CACHE | ||
61 | #endif | ||
62 | |||
63 | #ifdef _ACPI_EXEC_APP | ||
64 | #undef DEBUGGER_THREADING | ||
65 | #define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED | ||
66 | #define ACPI_DEBUG_OUTPUT | ||
67 | #define ACPI_APPLICATION | ||
68 | #define ACPI_DEBUGGER | ||
69 | #define ACPI_DISASSEMBLER | ||
70 | #define ACPI_USE_SYSTEM_CLIBRARY | ||
71 | #define ACPI_ENABLE_OBJECT_CACHE | ||
72 | #endif | ||
73 | |||
74 | #ifdef _ACPI_ASL_COMPILER | ||
75 | #define ACPI_DEBUG_OUTPUT | ||
76 | #define ACPI_APPLICATION | ||
77 | #define ACPI_DISASSEMBLER | ||
78 | #define ACPI_CONSTANT_EVAL_ONLY | ||
79 | #define ACPI_USE_SYSTEM_CLIBRARY | ||
80 | #define ACPI_ENABLE_OBJECT_CACHE | ||
81 | #endif | ||
82 | |||
83 | /* | ||
84 | * Environment configuration. The purpose of this file is to interface to the | ||
85 | * local generation environment. | ||
86 | * | ||
87 | * 1) ACPI_USE_SYSTEM_CLIBRARY - Define this if linking to an actual C library. | ||
88 | * Otherwise, local versions of string/memory functions will be used. | ||
89 | * 2) ACPI_USE_STANDARD_HEADERS - Define this if linking to a C library and | ||
90 | * the standard header files may be used. | ||
91 | * | ||
92 | * The ACPI subsystem only uses low level C library functions that do not call | ||
93 | * operating system services and may therefore be inlined in the code. | ||
94 | * | ||
95 | * It may be necessary to tailor these include files to the target | ||
96 | * generation environment. | ||
97 | * | ||
98 | * | ||
99 | * Functions and constants used from each header: | ||
100 | * | ||
101 | * string.h: memcpy | ||
102 | * memset | ||
103 | * strcat | ||
104 | * strcmp | ||
105 | * strcpy | ||
106 | * strlen | ||
107 | * strncmp | ||
108 | * strncat | ||
109 | * strncpy | ||
110 | * | ||
111 | * stdlib.h: strtoul | ||
112 | * | ||
113 | * stdarg.h: va_list | ||
114 | * va_arg | ||
115 | * va_start | ||
116 | * va_end | ||
117 | * | ||
118 | */ | ||
119 | |||
120 | /*! [Begin] no source code translation */ | ||
121 | |||
122 | #if defined(__linux__) | ||
123 | #include "aclinux.h" | ||
124 | |||
125 | #elif defined(_AED_EFI) | ||
126 | #include "acefi.h" | ||
127 | |||
128 | #elif defined(WIN32) | ||
129 | #include "acwin.h" | ||
130 | |||
131 | #elif defined(WIN64) | ||
132 | #include "acwin64.h" | ||
133 | |||
134 | #elif defined(MSDOS) /* Must appear after WIN32 and WIN64 check */ | ||
135 | #include "acdos16.h" | ||
136 | |||
137 | #elif defined(__FreeBSD__) | ||
138 | #include "acfreebsd.h" | ||
139 | |||
140 | #elif defined(__NetBSD__) | ||
141 | #include "acnetbsd.h" | ||
142 | |||
143 | #elif defined(MODESTO) | ||
144 | #include "acmodesto.h" | ||
145 | |||
146 | #elif defined(NETWARE) | ||
147 | #include "acnetware.h" | ||
148 | |||
149 | #else | ||
150 | |||
151 | /* All other environments */ | ||
152 | |||
153 | #define ACPI_USE_STANDARD_HEADERS | ||
154 | |||
155 | #define COMPILER_DEPENDENT_INT64 long long | ||
156 | #define COMPILER_DEPENDENT_UINT64 unsigned long long | ||
157 | |||
158 | /* | ||
159 | * This macro is used to tag functions as "printf-like" because | ||
160 | * some compilers can catch printf format string problems. MSVC | ||
161 | * doesn't, so this is proprocessed away. | ||
162 | */ | ||
163 | #define ACPI_PRINTF_LIKE_FUNC | ||
164 | |||
165 | #endif | ||
166 | |||
167 | /* | ||
168 | * Memory allocation tracking. Used only if | ||
169 | * 1) This is the debug version | ||
170 | * 2) This is NOT a 16-bit version of the code (not enough real-mode memory) | ||
171 | */ | ||
172 | #ifdef ACPI_DEBUG_OUTPUT | ||
173 | #if ACPI_MACHINE_WIDTH != 16 | ||
174 | #define ACPI_DBG_TRACK_ALLOCATIONS | ||
175 | #endif | ||
176 | #endif | ||
177 | |||
178 | /*! [End] no source code translation !*/ | ||
179 | |||
180 | |||
181 | /* | ||
182 | * Debugger threading model | ||
183 | * Use single threaded if the entire subsystem is contained in an application | ||
184 | * Use multiple threaded when the subsystem is running in the kernel. | ||
185 | * | ||
186 | * By default the model is single threaded if ACPI_APPLICATION is set, | ||
187 | * multi-threaded if ACPI_APPLICATION is not set. | ||
188 | */ | ||
189 | #define DEBUGGER_SINGLE_THREADED 0 | ||
190 | #define DEBUGGER_MULTI_THREADED 1 | ||
191 | |||
192 | #ifndef DEBUGGER_THREADING | ||
193 | #ifdef ACPI_APPLICATION | ||
194 | #define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED | ||
195 | |||
196 | #else | ||
197 | #define DEBUGGER_THREADING DEBUGGER_MULTI_THREADED | ||
198 | #endif | ||
199 | #endif /* !DEBUGGER_THREADING */ | ||
200 | |||
201 | /****************************************************************************** | ||
202 | * | ||
203 | * C library configuration | ||
204 | * | ||
205 | *****************************************************************************/ | ||
206 | |||
207 | #ifdef ACPI_USE_SYSTEM_CLIBRARY | ||
208 | /* | ||
209 | * Use the standard C library headers. | ||
210 | * We want to keep these to a minimum. | ||
211 | */ | ||
212 | |||
213 | #ifdef ACPI_USE_STANDARD_HEADERS | ||
214 | /* | ||
215 | * Use the standard headers from the standard locations | ||
216 | */ | ||
217 | #include <stdarg.h> | ||
218 | #include <stdlib.h> | ||
219 | #include <string.h> | ||
220 | #include <ctype.h> | ||
221 | |||
222 | #endif /* ACPI_USE_STANDARD_HEADERS */ | ||
223 | |||
224 | /* | ||
225 | * We will be linking to the standard Clib functions | ||
226 | */ | ||
227 | |||
228 | #define ACPI_STRSTR(s1,s2) strstr((s1), (s2)) | ||
229 | #define ACPI_STRCHR(s1,c) strchr((s1), (c)) | ||
230 | |||
231 | #ifdef ACPI_FUTURE_USAGE | ||
232 | #define ACPI_STRUPR(s) (void) acpi_ut_strupr ((s)) | ||
233 | #endif | ||
234 | |||
235 | #define ACPI_STRLEN(s) (acpi_size) strlen((s)) | ||
236 | #define ACPI_STRCPY(d,s) (void) strcpy((d), (s)) | ||
237 | #define ACPI_STRNCPY(d,s,n) (void) strncpy((d), (s), (acpi_size)(n)) | ||
238 | #define ACPI_STRNCMP(d,s,n) strncmp((d), (s), (acpi_size)(n)) | ||
239 | #define ACPI_STRCMP(d,s) strcmp((d), (s)) | ||
240 | #define ACPI_STRCAT(d,s) (void) strcat((d), (s)) | ||
241 | #define ACPI_STRNCAT(d,s,n) strncat((d), (s), (acpi_size)(n)) | ||
242 | #define ACPI_STRTOUL(d,s,n) strtoul((d), (s), (acpi_size)(n)) | ||
243 | #define ACPI_MEMCMP(s1,s2,n) memcmp((s1), (s2), (acpi_size)(n)) | ||
244 | #define ACPI_MEMCPY(d,s,n) (void) memcpy((d), (s), (acpi_size)(n)) | ||
245 | #define ACPI_MEMSET(d,s,n) (void) memset((d), (s), (acpi_size)(n)) | ||
246 | |||
247 | #define ACPI_TOUPPER toupper | ||
248 | #define ACPI_TOLOWER tolower | ||
249 | #define ACPI_IS_XDIGIT isxdigit | ||
250 | #define ACPI_IS_DIGIT isdigit | ||
251 | #define ACPI_IS_SPACE isspace | ||
252 | #define ACPI_IS_UPPER isupper | ||
253 | #define ACPI_IS_PRINT isprint | ||
254 | #define ACPI_IS_ALPHA isalpha | ||
255 | #define ACPI_IS_ASCII isascii | ||
256 | |||
257 | /****************************************************************************** | ||
258 | * | ||
259 | * Not using native C library, use local implementations | ||
260 | * | ||
261 | *****************************************************************************/ | ||
262 | #else | ||
263 | |||
264 | /* | ||
265 | * Use local definitions of C library macros and functions | ||
266 | * NOTE: The function implementations may not be as efficient | ||
267 | * as an inline or assembly code implementation provided by a | ||
268 | * native C library. | ||
269 | */ | ||
270 | |||
271 | #ifndef va_arg | ||
272 | |||
273 | #ifndef _VALIST | ||
274 | #define _VALIST | ||
275 | typedef char *va_list; | ||
276 | #endif /* _VALIST */ | ||
277 | |||
278 | /* | ||
279 | * Storage alignment properties | ||
280 | */ | ||
281 | |||
282 | #define _AUPBND (sizeof (acpi_native_int) - 1) | ||
283 | #define _ADNBND (sizeof (acpi_native_int) - 1) | ||
284 | |||
285 | /* | ||
286 | * Variable argument list macro definitions | ||
287 | */ | ||
288 | |||
289 | #define _bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd))) | ||
290 | #define va_arg(ap, T) (*(T *)(((ap) += (_bnd (T, _AUPBND))) - (_bnd (T,_ADNBND)))) | ||
291 | #define va_end(ap) (void) 0 | ||
292 | #define va_start(ap, A) (void) ((ap) = (((char *) &(A)) + (_bnd (A,_AUPBND)))) | ||
293 | |||
294 | #endif /* va_arg */ | ||
295 | |||
296 | |||
297 | #define ACPI_STRSTR(s1,s2) acpi_ut_strstr ((s1), (s2)) | ||
298 | #define ACPI_STRCHR(s1,c) acpi_ut_strchr ((s1), (c)) | ||
299 | |||
300 | #ifdef ACPI_FUTURE_USAGE | ||
301 | #define ACPI_STRUPR(s) (void) acpi_ut_strupr ((s)) | ||
302 | #endif | ||
303 | |||
304 | #define ACPI_STRLEN(s) (acpi_size) acpi_ut_strlen ((s)) | ||
305 | #define ACPI_STRCPY(d,s) (void) acpi_ut_strcpy ((d), (s)) | ||
306 | #define ACPI_STRNCPY(d,s,n) (void) acpi_ut_strncpy ((d), (s), (acpi_size)(n)) | ||
307 | #define ACPI_STRNCMP(d,s,n) acpi_ut_strncmp ((d), (s), (acpi_size)(n)) | ||
308 | #define ACPI_STRCMP(d,s) acpi_ut_strcmp ((d), (s)) | ||
309 | #define ACPI_STRCAT(d,s) (void) acpi_ut_strcat ((d), (s)) | ||
310 | #define ACPI_STRNCAT(d,s,n) acpi_ut_strncat ((d), (s), (acpi_size)(n)) | ||
311 | #define ACPI_STRTOUL(d,s,n) acpi_ut_strtoul ((d), (s), (acpi_size)(n)) | ||
312 | #define ACPI_MEMCMP(s1,s2,n) acpi_ut_memcmp((s1), (s2), (acpi_size)(n)) | ||
313 | #define ACPI_MEMCPY(d,s,n) (void) acpi_ut_memcpy ((d), (s), (acpi_size)(n)) | ||
314 | #define ACPI_MEMSET(d,v,n) (void) acpi_ut_memset ((d), (v), (acpi_size)(n)) | ||
315 | #define ACPI_TOUPPER acpi_ut_to_upper | ||
316 | #define ACPI_TOLOWER acpi_ut_to_lower | ||
317 | |||
318 | #endif /* ACPI_USE_SYSTEM_CLIBRARY */ | ||
319 | |||
320 | |||
321 | /****************************************************************************** | ||
322 | * | ||
323 | * Assembly code macros | ||
324 | * | ||
325 | *****************************************************************************/ | ||
326 | |||
327 | /* | ||
328 | * Handle platform- and compiler-specific assembly language differences. | ||
329 | * These should already have been defined by the platform includes above. | ||
330 | * | ||
331 | * Notes: | ||
332 | * 1) Interrupt 3 is used to break into a debugger | ||
333 | * 2) Interrupts are turned off during ACPI register setup | ||
334 | */ | ||
335 | |||
336 | /* Unrecognized compiler, use defaults */ | ||
337 | |||
338 | #ifndef ACPI_ASM_MACROS | ||
339 | |||
340 | /* | ||
341 | * Calling conventions: | ||
342 | * | ||
343 | * ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads) | ||
344 | * ACPI_EXTERNAL_XFACE - External ACPI interfaces | ||
345 | * ACPI_INTERNAL_XFACE - Internal ACPI interfaces | ||
346 | * ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces | ||
347 | */ | ||
348 | #define ACPI_SYSTEM_XFACE | ||
349 | #define ACPI_EXTERNAL_XFACE | ||
350 | #define ACPI_INTERNAL_XFACE | ||
351 | #define ACPI_INTERNAL_VAR_XFACE | ||
352 | |||
353 | #define ACPI_ASM_MACROS | ||
354 | #define BREAKPOINT3 | ||
355 | #define ACPI_DISABLE_IRQS() | ||
356 | #define ACPI_ENABLE_IRQS() | ||
357 | #define ACPI_ACQUIRE_GLOBAL_LOCK(Glptr, acq) | ||
358 | #define ACPI_RELEASE_GLOBAL_LOCK(Glptr, acq) | ||
359 | |||
360 | #endif /* ACPI_ASM_MACROS */ | ||
361 | |||
362 | |||
363 | #ifdef ACPI_APPLICATION | ||
364 | |||
365 | /* Don't want software interrupts within a ring3 application */ | ||
366 | |||
367 | #undef BREAKPOINT3 | ||
368 | #define BREAKPOINT3 | ||
369 | #endif | ||
370 | |||
371 | |||
372 | /****************************************************************************** | ||
373 | * | ||
374 | * Compiler-specific information is contained in the compiler-specific | ||
375 | * headers. | ||
376 | * | ||
377 | *****************************************************************************/ | ||
378 | #endif /* __ACENV_H__ */ | ||