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