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