blob: 5e1e031acd6dd5cc050c734cfbf9af9ecddfdaf7 [file] [log] [blame]
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -08001/*
2 * Copyright (C) 2005 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/*
18 * Android config -- "android-arm". Used for ARM device builds.
19 */
20#ifndef _ANDROID_CONFIG_H
21#define _ANDROID_CONFIG_H
22
23/*
24 * ===========================================================================
25 * !!! IMPORTANT !!!
26 * ===========================================================================
27 *
28 * This file is included by ALL C/C++ source files. Don't put anything in
29 * here unless you are absolutely certain it can't go anywhere else.
30 *
31 * Any C++ stuff must be wrapped with "#ifdef __cplusplus". Do not use "//"
32 * comments.
33 */
34
35/*
36 * Threading model. Choose one:
37 *
38 * HAVE_PTHREADS - use the pthreads library.
39 * HAVE_WIN32_THREADS - use Win32 thread primitives.
40 * -- combine HAVE_CREATETHREAD, HAVE_CREATEMUTEX, and HAVE__BEGINTHREADEX
41 */
42#define HAVE_PTHREADS
43
44/*
Andy McFadden8e9d5c92010-06-30 14:49:25 -070045 * Do we have pthread_setname_np()?
46 *
47 * (HAVE_PTHREAD_SETNAME_NP is used by WebKit to enable a function with
48 * the same name but different parameters, so we can't use that here.)
49 */
50#define HAVE_ANDROID_PTHREAD_SETNAME_NP
51
52/*
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080053 * Do we have the futex syscall?
54 */
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080055#define HAVE_FUTEX
56
57/*
58 * Define if we already have the futex wrapper functions defined. Yes if
59 * compiling against bionic.
60 */
61#define HAVE_FUTEX_WRAPPERS 1
62
63/*
64 * Process creation model. Choose one:
65 *
66 * HAVE_FORKEXEC - use fork() and exec()
67 * HAVE_WIN32_PROC - use CreateProcess()
68 */
69#define HAVE_FORKEXEC
70
71/*
72 * Process out-of-memory adjustment. Set if running on Linux,
73 * where we can write to /proc/<pid>/oom_adj to modify the out-of-memory
74 * badness adjustment.
75 */
76#define HAVE_OOM_ADJ
77
78/*
79 * IPC model. Choose one:
80 *
81 * HAVE_SYSV_IPC - use the classic SysV IPC mechanisms (semget, shmget).
82 * HAVE_MACOSX_IPC - use Macintosh IPC mechanisms (sem_open, mmap).
83 * HAVE_WIN32_IPC - use Win32 IPC (CreateSemaphore, CreateFileMapping).
84 * HAVE_ANDROID_IPC - use Android versions (?, mmap).
85 */
86#define HAVE_ANDROID_IPC
87
88/*
89 * Memory-mapping model. Choose one:
90 *
91 * HAVE_POSIX_FILEMAP - use the Posix sys/mmap.h
92 * HAVE_WIN32_FILEMAP - use Win32 filemaps
93 */
94#define HAVE_POSIX_FILEMAP
95
96/*
97 * Define this if you have <termio.h>
98 */
99#define HAVE_TERMIO_H
100
101/*
Dan Bornstein43ba23f2009-10-30 17:15:13 -0700102 * Define this if you have <sys/sendfile.h>
103 */
104#define HAVE_SYS_SENDFILE_H 1
105
106/*
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800107 * Define this if you build against MSVCRT.DLL
108 */
109/* #define HAVE_MS_C_RUNTIME */
110
111/*
112 * Define this if you have sys/uio.h
113 */
114#define HAVE_SYS_UIO_H
115
116/*
117 * Define this if your platforms implements symbolic links
118 * in its filesystems
119 */
120#define HAVE_SYMLINKS
121
122/*
123 * Define this if we have localtime_r().
124 */
125/* #define HAVE_LOCALTIME_R */
126
127/*
128 * Define this if we have gethostbyname_r().
129 */
130/* #define HAVE_GETHOSTBYNAME_R */
131
132/*
133 * Define this if we have ioctl().
134 */
135#define HAVE_IOCTL
136
137/*
138 * Define this if we want to use WinSock.
139 */
140/* #define HAVE_WINSOCK */
141
142/*
143 * Define this if have clock_gettime() and friends
144 */
145#define HAVE_POSIX_CLOCKS
146
147/*
148 * Define this if we have pthread_cond_timedwait_monotonic() and
149 * clock_gettime(CLOCK_MONOTONIC).
150 */
151#define HAVE_TIMEDWAIT_MONOTONIC
152
153/*
154 * Define this if we have linux style epoll()
155 */
156#define HAVE_EPOLL
157
158/*
159 * Endianness of the target machine. Choose one:
160 *
161 * HAVE_ENDIAN_H -- have endian.h header we can include.
162 * HAVE_LITTLE_ENDIAN -- we are little endian.
163 * HAVE_BIG_ENDIAN -- we are big endian.
164 */
165#define HAVE_ENDIAN_H
166#define HAVE_LITTLE_ENDIAN
167
168/*
169 * We need to choose between 32-bit and 64-bit off_t. All of our code should
170 * agree on the same size. For desktop systems, use 64-bit values,
171 * because some of our libraries (e.g. wxWidgets) expect to be built that way.
172 */
173/* #define _FILE_OFFSET_BITS 64 */
174/* #define _LARGEFILE_SOURCE 1 */
175
176/*
177 * Defined if we have the backtrace() call for retrieving a stack trace.
178 * Needed for CallStack to operate; if not defined, CallStack is
179 * non-functional.
180 */
181#define HAVE_BACKTRACE 0
182
183/*
184 * Defined if we have the dladdr() call for retrieving the symbol associated
185 * with a memory address. If not defined, stack crawls will not have symbolic
186 * information.
187 */
188#define HAVE_DLADDR 0
189
190/*
191 * Defined if we have the cxxabi.h header for demangling C++ symbols. If
192 * not defined, stack crawls will be displayed with raw mangled symbols
193 */
194#define HAVE_CXXABI 0
195
196/*
197 * Defined if we have the gettid() system call.
198 */
199#define HAVE_GETTID
200
201/*
202 * Defined if we have the sched_setscheduler() call
203 */
204#define HAVE_SCHED_SETSCHEDULER
205
206/*
207 * Add any extra platform-specific defines here.
208 */
Jing Yu165db2a2010-05-18 10:55:52 -0700209#ifndef __linux__
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800210#define __linux__
Jing Yu165db2a2010-05-18 10:55:52 -0700211#endif
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800212
213/*
214 * Define if we have <malloc.h> header
215 */
216#define HAVE_MALLOC_H
217
218/*
219 * Define if we're running on *our* linux on device or emulator.
220 */
221#define HAVE_ANDROID_OS 1
222
223/*
224 * Define if we have Linux-style non-filesystem Unix Domain Sockets
225 */
226#define HAVE_LINUX_LOCAL_SOCKET_NAMESPACE 1
227
228/*
229 * Define if we have Linux's inotify in <sys/inotify.h>.
230 */
231#define HAVE_INOTIFY 1
232
233/*
234 * Define if we have madvise() in <sys/mman.h>
235 */
236#define HAVE_MADVISE 1
237
238/*
239 * Define if tm struct has tm_gmtoff field
240 */
241#define HAVE_TM_GMTOFF 1
242
243/*
244 * Define if dirent struct has d_type field
245 */
246#define HAVE_DIRENT_D_TYPE 1
247
248/*
249 * Define if libc includes Android system properties implementation.
250 */
251#define HAVE_LIBC_SYSTEM_PROPERTIES 1
252
253/*
254 * Define if system provides a system property server (should be
255 * mutually exclusive with HAVE_LIBC_SYSTEM_PROPERTIES).
256 */
257/* #define HAVE_SYSTEM_PROPERTY_SERVER */
258
259/*
260 * What CPU architecture does this platform use?
261 */
262#define ARCH_ARM
263
264/*
265 * Define if the size of enums is as short as possible,
266 */
267/* #define HAVE_SHORT_ENUMS */
268
269/*
270 * sprintf() format string for shared library naming.
271 */
272#define OS_SHARED_LIB_FORMAT_STR "lib%s.so"
273
274/*
275 * Do we have __memcmp16()?
276 */
277#define HAVE__MEMCMP16 1
278
279/*
280 * type for the third argument to mincore().
281 */
282#define MINCORE_POINTER_TYPE unsigned char *
283
284/*
285 * Do we have the sigaction flag SA_NOCLDWAIT?
286 */
287#define HAVE_SA_NOCLDWAIT
288
289/*
290 * The default path separator for the platform
291 */
292#define OS_PATH_SEPARATOR '/'
293
294/*
295 * Is the filesystem case sensitive?
296 */
297#define OS_CASE_SENSITIVE
298
299/*
300 * Define if <sys/socket.h> exists.
301 */
302#define HAVE_SYS_SOCKET_H 1
303
304/*
305 * Define if the strlcpy() function exists on the system.
306 */
307#define HAVE_STRLCPY 1
308
309/*
Andy McFaddencf63d5d2010-01-22 16:37:25 -0800310 * Define if the open_memstream() function exists on the system.
311 */
312/* #define HAVE_OPEN_MEMSTREAM 1 */
313
314/*
315 * Define if the BSD funopen() function exists on the system.
316 */
317#define HAVE_FUNOPEN 1
318
319/*
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800320 * Define if prctl() exists
321 */
322#define HAVE_PRCTL 1
323
324/*
325 * Define if writev() exists
326 */
327#define HAVE_WRITEV 1
328
Andy McFadden656a8162009-08-05 14:10:49 -0700329/*
330 * Define if <stdint.h> exists.
331 */
332#define HAVE_STDINT_H 1
333
334/*
335 * Define if <stdbool.h> exists.
336 */
337#define HAVE_STDBOOL_H 1
338
Raphael0384a982009-09-15 17:10:17 -0700339/*
340 * Define if <sched.h> exists.
341 */
342#define HAVE_SCHED_H 1
343
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800344#endif /* _ANDROID_CONFIG_H */