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