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