add ext4,vfat and tar.bz2
[u-tools.git] / u-tools / AndroidConfig.h
blob82e39c01dff7cfddd48422cfb2ac23c370f5bc5d
1 /*
2 * Copyright (C) 2005 The Android Open Source Project
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 * Android config -- "android-arm". Used for ARM device builds.
20 #ifndef _ANDROID_CONFIG_H
21 #define _ANDROID_CONFIG_H
24 * ===========================================================================
25 * !!! IMPORTANT !!!
26 * ===========================================================================
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.
31 * Any C++ stuff must be wrapped with "#ifdef __cplusplus". Do not use "//"
32 * comments.
36 * Threading model. Choose one:
38 * HAVE_PTHREADS - use the pthreads library.
39 * HAVE_WIN32_THREADS - use Win32 thread primitives.
40 * -- combine HAVE_CREATETHREAD, HAVE_CREATEMUTEX, and HAVE__BEGINTHREADEX
42 #define HAVE_PTHREADS
45 * Do we have the futex syscall?
48 #define HAVE_FUTEX
51 * Define if we already have the futex wrapper functions defined. Yes if
52 * compiling against bionic.
54 #define HAVE_FUTEX_WRAPPERS 1
57 * Process creation model. Choose one:
59 * HAVE_FORKEXEC - use fork() and exec()
60 * HAVE_WIN32_PROC - use CreateProcess()
62 #define HAVE_FORKEXEC
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.
69 #define HAVE_OOM_ADJ
72 * IPC model. Choose one:
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).
79 #define HAVE_ANDROID_IPC
82 * Memory-mapping model. Choose one:
84 * HAVE_POSIX_FILEMAP - use the Posix sys/mmap.h
85 * HAVE_WIN32_FILEMAP - use Win32 filemaps
87 #define HAVE_POSIX_FILEMAP
90 * Define this if you have <termio.h>
92 #define HAVE_TERMIO_H
95 * Define this if you build against MSVCRT.DLL
97 /* #define HAVE_MS_C_RUNTIME */
100 * Define this if you have sys/uio.h
102 #define HAVE_SYS_UIO_H
105 * Define this if your platforms implements symbolic links
106 * in its filesystems
108 #define HAVE_SYMLINKS
111 * Define this if we have localtime_r().
113 /* #define HAVE_LOCALTIME_R */
116 * Define this if we have gethostbyname_r().
118 /* #define HAVE_GETHOSTBYNAME_R */
121 * Define this if we have ioctl().
123 #define HAVE_IOCTL
126 * Define this if we want to use WinSock.
128 /* #define HAVE_WINSOCK */
131 * Define this if have clock_gettime() and friends
133 #define HAVE_POSIX_CLOCKS
136 * Define this if we have pthread_cond_timedwait_monotonic() and
137 * clock_gettime(CLOCK_MONOTONIC).
139 #define HAVE_TIMEDWAIT_MONOTONIC
142 * Define this if we have linux style epoll()
144 #define HAVE_EPOLL
147 * Endianness of the target machine. Choose one:
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.
153 #define HAVE_ENDIAN_H
154 #define HAVE_LITTLE_ENDIAN
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.
161 /* #define _FILE_OFFSET_BITS 64 */
162 /* #define _LARGEFILE_SOURCE 1 */
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.
169 #define HAVE_BACKTRACE 0
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.
176 #define HAVE_DLADDR 0
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
182 #define HAVE_CXXABI 0
185 * Defined if we have the gettid() system call.
187 #define HAVE_GETTID
190 * Defined if we have the sched_setscheduler() call
192 #define HAVE_SCHED_SETSCHEDULER
195 * Add any extra platform-specific defines here.
197 #define __linux__
200 * Define if we have <malloc.h> header
202 #define HAVE_MALLOC_H
205 * Define if we're running on *our* linux on device or emulator.
207 #define HAVE_ANDROID_OS 1
210 * Define if we have Linux-style non-filesystem Unix Domain Sockets
212 #define HAVE_LINUX_LOCAL_SOCKET_NAMESPACE 1
215 * Define if we have Linux's inotify in <sys/inotify.h>.
217 #define HAVE_INOTIFY 1
220 * Define if we have madvise() in <sys/mman.h>
222 #define HAVE_MADVISE 1
225 * Define if tm struct has tm_gmtoff field
227 #define HAVE_TM_GMTOFF 1
230 * Define if dirent struct has d_type field
232 #define HAVE_DIRENT_D_TYPE 1
235 * Define if libc includes Android system properties implementation.
237 #define HAVE_LIBC_SYSTEM_PROPERTIES 1
240 * Define if system provides a system property server (should be
241 * mutually exclusive with HAVE_LIBC_SYSTEM_PROPERTIES).
243 /* #define HAVE_SYSTEM_PROPERTY_SERVER */
246 * What CPU architecture does this platform use?
248 #define ARCH_ARM
251 * Define if the size of enums is as short as possible,
253 /* #define HAVE_SHORT_ENUMS */
256 * sprintf() format string for shared library naming.
258 #define OS_SHARED_LIB_FORMAT_STR "lib%s.so"
261 * Do we have __memcmp16()?
263 #define HAVE__MEMCMP16 1
266 * type for the third argument to mincore().
268 #define MINCORE_POINTER_TYPE unsigned char *
271 * Do we have the sigaction flag SA_NOCLDWAIT?
273 #define HAVE_SA_NOCLDWAIT
276 * The default path separator for the platform
278 #define OS_PATH_SEPARATOR '/'
281 * Is the filesystem case sensitive?
283 #define OS_CASE_SENSITIVE
286 * Define if <sys/socket.h> exists.
288 #define HAVE_SYS_SOCKET_H 1
291 * Define if the strlcpy() function exists on the system.
293 #define HAVE_STRLCPY 1
296 * Define if prctl() exists
298 #define HAVE_PRCTL 1
301 * Define if writev() exists
303 #define HAVE_WRITEV 1
306 * Define if <stdint.h> exists.
308 #define HAVE_STDINT_H 1
311 * Define if <stdbool.h> exists.
313 #define HAVE_STDBOOL_H 1
316 * Define if <sched.h> exists.
318 #define HAVE_SCHED_H 1
320 #endif /* _ANDROID_CONFIG_H */