• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2010 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-mips".  Used for MIPS 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 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 /*
53  * Do we have the futex syscall?
54  */
55 #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 1
100 
101 /*
102  * Define this if you have <sys/sendfile.h>
103  */
104 #define  HAVE_SYS_SENDFILE_H 1
105 
106 /*
107  * 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 1
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 #if defined(__MIPSEB__)
167 #define HAVE_BIG_ENDIAN
168 #endif
169 #if defined(__MIPSEL__)
170 #define HAVE_LITTLE_ENDIAN
171 #endif
172 
173 /*
174  * We need to choose between 32-bit and 64-bit off_t.  All of our code should
175  * agree on the same size.  For desktop systems, use 64-bit values,
176  * because some of our libraries (e.g. wxWidgets) expect to be built that way.
177  */
178 /* #define _FILE_OFFSET_BITS 64 */
179 /* #define _LARGEFILE_SOURCE 1 */
180 
181 /*
182  * Define if platform has off64_t (and lseek64 and other xxx64 functions)
183  */
184 #define HAVE_OFF64_T
185 
186 /*
187  * Defined if we have the backtrace() call for retrieving a stack trace.
188  * Needed for CallStack to operate; if not defined, CallStack is
189  * non-functional.
190  */
191 #define HAVE_BACKTRACE 0
192 
193 /*
194  * Defined if we have the cxxabi.h header for demangling C++ symbols.  If
195  * not defined, stack crawls will be displayed with raw mangled symbols
196  */
197 #define HAVE_CXXABI 0
198 
199 /*
200  * Defined if we have the gettid() system call.
201  */
202 #define HAVE_GETTID
203 
204 /*
205  * Defined if we have the sched_setscheduler() call
206  */
207 #define HAVE_SCHED_SETSCHEDULER
208 
209 /*
210  * Add any extra platform-specific defines here.
211  */
212 #ifndef __linux__
213 #define __linux__ 1
214 #endif
215 
216 #ifndef __linux
217 #define __linux 1
218 #endif
219 
220 #ifdef __unix__
221 #undef __unix__
222 #endif
223 
224 #ifdef __unix
225 #undef __unix
226 #endif
227 
228 /*
229  * Define if we have <malloc.h> header
230  */
231 #define HAVE_MALLOC_H
232 
233 /*
234  * Define if we're running on *our* linux on device or emulator.
235  */
236 #define HAVE_ANDROID_OS 1
237 
238 /*
239  * Define if we have Linux-style non-filesystem Unix Domain Sockets
240  */
241 #define HAVE_LINUX_LOCAL_SOCKET_NAMESPACE 1
242 
243 /*
244  * Define if we have Linux's inotify in <sys/inotify.h>.
245  */
246 #define HAVE_INOTIFY 1
247 
248 /*
249  * Define if we have madvise() in <sys/mman.h>
250  */
251 #define HAVE_MADVISE 1
252 
253 /*
254  * Define if tm struct has tm_gmtoff field
255  */
256 #define HAVE_TM_GMTOFF 1
257 
258 /*
259  * Define if dirent struct has d_type field
260  */
261 #define HAVE_DIRENT_D_TYPE 1
262 
263 /*
264  * Define if libc includes Android system properties implementation.
265  */
266 #define HAVE_LIBC_SYSTEM_PROPERTIES 1
267 
268 /*
269  * Define if system provides a system property server (should be
270  * mutually exclusive with HAVE_LIBC_SYSTEM_PROPERTIES).
271  */
272 /* #define HAVE_SYSTEM_PROPERTY_SERVER */
273 
274 /*
275  * What CPU architecture does this platform use?
276  */
277 #define ARCH_MIPS 1
278 
279 /*
280  * Define if the size of enums is as short as possible,
281  */
282 /* #define HAVE_SHORT_ENUMS */
283 
284 /*
285  * sprintf() format string for shared library naming.
286  */
287 #define OS_SHARED_LIB_FORMAT_STR    "lib%s.so"
288 
289 /*
290  * Do we have __memcmp16()?
291  */
292 #define HAVE__MEMCMP16  1
293 
294 /*
295  * type for the third argument to mincore().
296  */
297 #define MINCORE_POINTER_TYPE unsigned char *
298 
299 /*
300  * Do we have the sigaction flag SA_NOCLDWAIT?
301  */
302 #define HAVE_SA_NOCLDWAIT
303 
304 /*
305  * The default path separator for the platform
306  */
307 #define OS_PATH_SEPARATOR '/'
308 
309 /*
310  * Is the filesystem case sensitive?
311  */
312 #define OS_CASE_SENSITIVE
313 
314 /*
315  * Define if <sys/socket.h> exists.
316  */
317 #define HAVE_SYS_SOCKET_H 1
318 
319 /*
320  * Define if the strlcpy() function exists on the system.
321  */
322 #define HAVE_STRLCPY 1
323 
324 /*
325  * Define if the open_memstream() function exists on the system.
326  */
327 /* #define HAVE_OPEN_MEMSTREAM 1 */
328 
329 /*
330  * Define if the BSD funopen() function exists on the system.
331  */
332 #define HAVE_FUNOPEN 1
333 
334 /*
335  * Define if prctl() exists
336  */
337 #define HAVE_PRCTL 1
338 
339 /*
340  * Define if writev() exists
341  */
342 #define HAVE_WRITEV 1
343 
344 /*
345  * Define if <stdint.h> exists.
346  */
347 #define HAVE_STDINT_H 1
348 
349 /*
350  * Define if <stdbool.h> exists.
351  */
352 #define HAVE_STDBOOL_H 1
353 
354 /*
355  * Define if <sched.h> exists.
356  */
357 #define HAVE_SCHED_H 1
358 
359 /*
360  * Define if pread() exists
361  */
362 #define HAVE_PREAD 1
363 
364 /*
365  * Define if we have st_mtim in struct stat
366  */
367 #define HAVE_STAT_ST_MTIM 1
368 
369 /*
370  * Define if printf() supports %zd for size_t arguments
371  */
372 #define HAVE_PRINTF_ZD 1
373 
374 /*
375  * Whether or not _Unwind_Context is defined as a struct.
376  */
377 #define HAVE_UNWIND_CONTEXT_STRUCT 1
378 
379 #endif /* _ANDROID_CONFIG_H */
380