15bdf305bbe529a85735200353478057b65bb462eYing Wang/*
25bdf305bbe529a85735200353478057b65bb462eYing Wang * Copyright (C) 2010 The Android Open Source Project
35bdf305bbe529a85735200353478057b65bb462eYing Wang *
45bdf305bbe529a85735200353478057b65bb462eYing Wang * Licensed under the Apache License, Version 2.0 (the "License");
55bdf305bbe529a85735200353478057b65bb462eYing Wang * you may not use this file except in compliance with the License.
65bdf305bbe529a85735200353478057b65bb462eYing Wang * You may obtain a copy of the License at
75bdf305bbe529a85735200353478057b65bb462eYing Wang *
85bdf305bbe529a85735200353478057b65bb462eYing Wang *      http://www.apache.org/licenses/LICENSE-2.0
95bdf305bbe529a85735200353478057b65bb462eYing Wang *
105bdf305bbe529a85735200353478057b65bb462eYing Wang * Unless required by applicable law or agreed to in writing, software
115bdf305bbe529a85735200353478057b65bb462eYing Wang * distributed under the License is distributed on an "AS IS" BASIS,
125bdf305bbe529a85735200353478057b65bb462eYing Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135bdf305bbe529a85735200353478057b65bb462eYing Wang * See the License for the specific language governing permissions and
145bdf305bbe529a85735200353478057b65bb462eYing Wang * limitations under the License.
155bdf305bbe529a85735200353478057b65bb462eYing Wang */
165bdf305bbe529a85735200353478057b65bb462eYing Wang
175bdf305bbe529a85735200353478057b65bb462eYing Wang/*
185bdf305bbe529a85735200353478057b65bb462eYing Wang * Android config -- "android-mips".  Used for MIPS device builds.
195bdf305bbe529a85735200353478057b65bb462eYing Wang */
205bdf305bbe529a85735200353478057b65bb462eYing Wang#ifndef _ANDROID_CONFIG_H
215bdf305bbe529a85735200353478057b65bb462eYing Wang#define _ANDROID_CONFIG_H
225bdf305bbe529a85735200353478057b65bb462eYing Wang
235bdf305bbe529a85735200353478057b65bb462eYing Wang/*
245bdf305bbe529a85735200353478057b65bb462eYing Wang * ===========================================================================
255bdf305bbe529a85735200353478057b65bb462eYing Wang *                              !!! IMPORTANT !!!
265bdf305bbe529a85735200353478057b65bb462eYing Wang * ===========================================================================
275bdf305bbe529a85735200353478057b65bb462eYing Wang *
285bdf305bbe529a85735200353478057b65bb462eYing Wang * This file is included by ALL C/C++ source files.  Don't put anything in
295bdf305bbe529a85735200353478057b65bb462eYing Wang * here unless you are absolutely certain it can't go anywhere else.
305bdf305bbe529a85735200353478057b65bb462eYing Wang *
315bdf305bbe529a85735200353478057b65bb462eYing Wang * Any C++ stuff must be wrapped with "#ifdef __cplusplus".  Do not use "//"
325bdf305bbe529a85735200353478057b65bb462eYing Wang * comments.
335bdf305bbe529a85735200353478057b65bb462eYing Wang */
345bdf305bbe529a85735200353478057b65bb462eYing Wang
355bdf305bbe529a85735200353478057b65bb462eYing Wang/*
365bdf305bbe529a85735200353478057b65bb462eYing Wang * Threading model.  Choose one:
375bdf305bbe529a85735200353478057b65bb462eYing Wang *
385bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_PTHREADS - use the pthreads library.
395bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_WIN32_THREADS - use Win32 thread primitives.
405bdf305bbe529a85735200353478057b65bb462eYing Wang *  -- combine HAVE_CREATETHREAD, HAVE_CREATEMUTEX, and HAVE__BEGINTHREADEX
415bdf305bbe529a85735200353478057b65bb462eYing Wang */
425bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_PTHREADS
435bdf305bbe529a85735200353478057b65bb462eYing Wang
445bdf305bbe529a85735200353478057b65bb462eYing Wang/*
455bdf305bbe529a85735200353478057b65bb462eYing Wang * Do we have pthread_setname_np()?
465bdf305bbe529a85735200353478057b65bb462eYing Wang *
475bdf305bbe529a85735200353478057b65bb462eYing Wang * (HAVE_PTHREAD_SETNAME_NP is used by WebKit to enable a function with
485bdf305bbe529a85735200353478057b65bb462eYing Wang * the same name but different parameters, so we can't use that here.)
495bdf305bbe529a85735200353478057b65bb462eYing Wang */
505bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_ANDROID_PTHREAD_SETNAME_NP
515bdf305bbe529a85735200353478057b65bb462eYing Wang
525bdf305bbe529a85735200353478057b65bb462eYing Wang/*
535bdf305bbe529a85735200353478057b65bb462eYing Wang * Do we have the futex syscall?
545bdf305bbe529a85735200353478057b65bb462eYing Wang */
555bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_FUTEX
565bdf305bbe529a85735200353478057b65bb462eYing Wang
575bdf305bbe529a85735200353478057b65bb462eYing Wang/*
585bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if we already have the futex wrapper functions defined. Yes if
595bdf305bbe529a85735200353478057b65bb462eYing Wang * compiling against bionic.
605bdf305bbe529a85735200353478057b65bb462eYing Wang */
615bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_FUTEX_WRAPPERS 1
625bdf305bbe529a85735200353478057b65bb462eYing Wang
635bdf305bbe529a85735200353478057b65bb462eYing Wang/*
645bdf305bbe529a85735200353478057b65bb462eYing Wang * Process creation model.  Choose one:
655bdf305bbe529a85735200353478057b65bb462eYing Wang *
665bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_FORKEXEC - use fork() and exec()
675bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_WIN32_PROC - use CreateProcess()
685bdf305bbe529a85735200353478057b65bb462eYing Wang */
695bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_FORKEXEC
705bdf305bbe529a85735200353478057b65bb462eYing Wang
715bdf305bbe529a85735200353478057b65bb462eYing Wang/*
725bdf305bbe529a85735200353478057b65bb462eYing Wang * Process out-of-memory adjustment.  Set if running on Linux,
735bdf305bbe529a85735200353478057b65bb462eYing Wang * where we can write to /proc/<pid>/oom_adj to modify the out-of-memory
745bdf305bbe529a85735200353478057b65bb462eYing Wang * badness adjustment.
755bdf305bbe529a85735200353478057b65bb462eYing Wang */
765bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_OOM_ADJ
775bdf305bbe529a85735200353478057b65bb462eYing Wang
785bdf305bbe529a85735200353478057b65bb462eYing Wang/*
795bdf305bbe529a85735200353478057b65bb462eYing Wang * IPC model.  Choose one:
805bdf305bbe529a85735200353478057b65bb462eYing Wang *
815bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_SYSV_IPC - use the classic SysV IPC mechanisms (semget, shmget).
825bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_MACOSX_IPC - use Macintosh IPC mechanisms (sem_open, mmap).
835bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_WIN32_IPC - use Win32 IPC (CreateSemaphore, CreateFileMapping).
845bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_ANDROID_IPC - use Android versions (?, mmap).
855bdf305bbe529a85735200353478057b65bb462eYing Wang */
865bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_ANDROID_IPC
875bdf305bbe529a85735200353478057b65bb462eYing Wang
885bdf305bbe529a85735200353478057b65bb462eYing Wang/*
895bdf305bbe529a85735200353478057b65bb462eYing Wang * Memory-mapping model. Choose one:
905bdf305bbe529a85735200353478057b65bb462eYing Wang *
915bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_POSIX_FILEMAP - use the Posix sys/mmap.h
925bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_WIN32_FILEMAP - use Win32 filemaps
935bdf305bbe529a85735200353478057b65bb462eYing Wang */
945bdf305bbe529a85735200353478057b65bb462eYing Wang#define  HAVE_POSIX_FILEMAP
955bdf305bbe529a85735200353478057b65bb462eYing Wang
965bdf305bbe529a85735200353478057b65bb462eYing Wang/*
975bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if you have <termio.h>
985bdf305bbe529a85735200353478057b65bb462eYing Wang */
995bdf305bbe529a85735200353478057b65bb462eYing Wang#define  HAVE_TERMIO_H 1
1005bdf305bbe529a85735200353478057b65bb462eYing Wang
1015bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1025bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if you have <sys/sendfile.h>
1035bdf305bbe529a85735200353478057b65bb462eYing Wang */
1045bdf305bbe529a85735200353478057b65bb462eYing Wang#define  HAVE_SYS_SENDFILE_H 1
1055bdf305bbe529a85735200353478057b65bb462eYing Wang
1065bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1075bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if you build against MSVCRT.DLL
1085bdf305bbe529a85735200353478057b65bb462eYing Wang */
1095bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_MS_C_RUNTIME */
1105bdf305bbe529a85735200353478057b65bb462eYing Wang
1115bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1125bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if you have sys/uio.h
1135bdf305bbe529a85735200353478057b65bb462eYing Wang */
1145bdf305bbe529a85735200353478057b65bb462eYing Wang#define  HAVE_SYS_UIO_H 1
1155bdf305bbe529a85735200353478057b65bb462eYing Wang
1165bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1175bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if your platforms implements symbolic links
1185bdf305bbe529a85735200353478057b65bb462eYing Wang * in its filesystems
1195bdf305bbe529a85735200353478057b65bb462eYing Wang */
1205bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_SYMLINKS
1215bdf305bbe529a85735200353478057b65bb462eYing Wang
1225bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1235bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if we have localtime_r().
1245bdf305bbe529a85735200353478057b65bb462eYing Wang */
1255bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_LOCALTIME_R */
1265bdf305bbe529a85735200353478057b65bb462eYing Wang
1275bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1285bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if we have gethostbyname_r().
1295bdf305bbe529a85735200353478057b65bb462eYing Wang */
1305bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_GETHOSTBYNAME_R */
1315bdf305bbe529a85735200353478057b65bb462eYing Wang
1325bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1335bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if we have ioctl().
1345bdf305bbe529a85735200353478057b65bb462eYing Wang */
1355bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_IOCTL
1365bdf305bbe529a85735200353478057b65bb462eYing Wang
1375bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1385bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if we want to use WinSock.
1395bdf305bbe529a85735200353478057b65bb462eYing Wang */
1405bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_WINSOCK */
1415bdf305bbe529a85735200353478057b65bb462eYing Wang
1425bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1435bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if have clock_gettime() and friends
1445bdf305bbe529a85735200353478057b65bb462eYing Wang */
1455bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_POSIX_CLOCKS
1465bdf305bbe529a85735200353478057b65bb462eYing Wang
1475bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1485bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if we have pthread_cond_timedwait_monotonic() and
1495bdf305bbe529a85735200353478057b65bb462eYing Wang * clock_gettime(CLOCK_MONOTONIC).
1505bdf305bbe529a85735200353478057b65bb462eYing Wang */
1515bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_TIMEDWAIT_MONOTONIC
1525bdf305bbe529a85735200353478057b65bb462eYing Wang
1535bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1545bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if we have linux style epoll()
1555bdf305bbe529a85735200353478057b65bb462eYing Wang */
1565bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_EPOLL
1575bdf305bbe529a85735200353478057b65bb462eYing Wang
1585bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1595bdf305bbe529a85735200353478057b65bb462eYing Wang * Endianness of the target machine.  Choose one:
1605bdf305bbe529a85735200353478057b65bb462eYing Wang *
1615bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_ENDIAN_H -- have endian.h header we can include.
1625bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_LITTLE_ENDIAN -- we are little endian.
1635bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_BIG_ENDIAN -- we are big endian.
1645bdf305bbe529a85735200353478057b65bb462eYing Wang */
1655bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_ENDIAN_H
1665bdf305bbe529a85735200353478057b65bb462eYing Wang#if defined(__MIPSEB__)
1675bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_BIG_ENDIAN
1685bdf305bbe529a85735200353478057b65bb462eYing Wang#endif
1695bdf305bbe529a85735200353478057b65bb462eYing Wang#if defined(__MIPSEL__)
1705bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_LITTLE_ENDIAN
1715bdf305bbe529a85735200353478057b65bb462eYing Wang#endif
1725bdf305bbe529a85735200353478057b65bb462eYing Wang
1735bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1745bdf305bbe529a85735200353478057b65bb462eYing Wang * We need to choose between 32-bit and 64-bit off_t.  All of our code should
1755bdf305bbe529a85735200353478057b65bb462eYing Wang * agree on the same size.  For desktop systems, use 64-bit values,
1765bdf305bbe529a85735200353478057b65bb462eYing Wang * because some of our libraries (e.g. wxWidgets) expect to be built that way.
1775bdf305bbe529a85735200353478057b65bb462eYing Wang */
1785bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define _FILE_OFFSET_BITS 64 */
1795bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define _LARGEFILE_SOURCE 1 */
1805bdf305bbe529a85735200353478057b65bb462eYing Wang
1815bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1825bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if platform has off64_t (and lseek64 and other xxx64 functions)
1835bdf305bbe529a85735200353478057b65bb462eYing Wang */
1845bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_OFF64_T
1855bdf305bbe529a85735200353478057b65bb462eYing Wang
1865bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1875bdf305bbe529a85735200353478057b65bb462eYing Wang * Defined if we have the backtrace() call for retrieving a stack trace.
1885bdf305bbe529a85735200353478057b65bb462eYing Wang * Needed for CallStack to operate; if not defined, CallStack is
1895bdf305bbe529a85735200353478057b65bb462eYing Wang * non-functional.
1905bdf305bbe529a85735200353478057b65bb462eYing Wang */
1915bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_BACKTRACE 0
1925bdf305bbe529a85735200353478057b65bb462eYing Wang
1935bdf305bbe529a85735200353478057b65bb462eYing Wang/*
1945bdf305bbe529a85735200353478057b65bb462eYing Wang * Defined if we have the cxxabi.h header for demangling C++ symbols.  If
1955bdf305bbe529a85735200353478057b65bb462eYing Wang * not defined, stack crawls will be displayed with raw mangled symbols
1965bdf305bbe529a85735200353478057b65bb462eYing Wang */
1975bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_CXXABI 0
1985bdf305bbe529a85735200353478057b65bb462eYing Wang
1995bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2005bdf305bbe529a85735200353478057b65bb462eYing Wang * Defined if we have the gettid() system call.
2015bdf305bbe529a85735200353478057b65bb462eYing Wang */
2025bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_GETTID
2035bdf305bbe529a85735200353478057b65bb462eYing Wang
2045bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2055bdf305bbe529a85735200353478057b65bb462eYing Wang * Defined if we have the sched_setscheduler() call
2065bdf305bbe529a85735200353478057b65bb462eYing Wang */
2075bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_SCHED_SETSCHEDULER
2085bdf305bbe529a85735200353478057b65bb462eYing Wang
2095bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2105bdf305bbe529a85735200353478057b65bb462eYing Wang * Add any extra platform-specific defines here.
2115bdf305bbe529a85735200353478057b65bb462eYing Wang */
2125bdf305bbe529a85735200353478057b65bb462eYing Wang#ifndef __linux__
2135bdf305bbe529a85735200353478057b65bb462eYing Wang#define __linux__ 1
2145bdf305bbe529a85735200353478057b65bb462eYing Wang#endif
2155bdf305bbe529a85735200353478057b65bb462eYing Wang
2165bdf305bbe529a85735200353478057b65bb462eYing Wang#ifndef __linux
2175bdf305bbe529a85735200353478057b65bb462eYing Wang#define __linux 1
2185bdf305bbe529a85735200353478057b65bb462eYing Wang#endif
2195bdf305bbe529a85735200353478057b65bb462eYing Wang
2205bdf305bbe529a85735200353478057b65bb462eYing Wang#ifdef __unix__
2215bdf305bbe529a85735200353478057b65bb462eYing Wang#undef __unix__
2225bdf305bbe529a85735200353478057b65bb462eYing Wang#endif
2235bdf305bbe529a85735200353478057b65bb462eYing Wang
2245bdf305bbe529a85735200353478057b65bb462eYing Wang#ifdef __unix
2255bdf305bbe529a85735200353478057b65bb462eYing Wang#undef __unix
2265bdf305bbe529a85735200353478057b65bb462eYing Wang#endif
2275bdf305bbe529a85735200353478057b65bb462eYing Wang
2285bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2295bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if we have <malloc.h> header
2305bdf305bbe529a85735200353478057b65bb462eYing Wang */
2315bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_MALLOC_H
2325bdf305bbe529a85735200353478057b65bb462eYing Wang
2335bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2345bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if we're running on *our* linux on device or emulator.
2355bdf305bbe529a85735200353478057b65bb462eYing Wang */
2365bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_ANDROID_OS 1
2375bdf305bbe529a85735200353478057b65bb462eYing Wang
2385bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2395bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if we have Linux-style non-filesystem Unix Domain Sockets
2405bdf305bbe529a85735200353478057b65bb462eYing Wang */
2415bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_LINUX_LOCAL_SOCKET_NAMESPACE 1
2425bdf305bbe529a85735200353478057b65bb462eYing Wang
2435bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2445bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if we have Linux's inotify in <sys/inotify.h>.
2455bdf305bbe529a85735200353478057b65bb462eYing Wang */
2465bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_INOTIFY 1
2475bdf305bbe529a85735200353478057b65bb462eYing Wang
2485bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2495bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if we have madvise() in <sys/mman.h>
2505bdf305bbe529a85735200353478057b65bb462eYing Wang */
2515bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_MADVISE 1
2525bdf305bbe529a85735200353478057b65bb462eYing Wang
2535bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2545bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if tm struct has tm_gmtoff field
2555bdf305bbe529a85735200353478057b65bb462eYing Wang */
2565bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_TM_GMTOFF 1
2575bdf305bbe529a85735200353478057b65bb462eYing Wang
2585bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2595bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if dirent struct has d_type field
2605bdf305bbe529a85735200353478057b65bb462eYing Wang */
2615bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_DIRENT_D_TYPE 1
2625bdf305bbe529a85735200353478057b65bb462eYing Wang
2635bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2645bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if libc includes Android system properties implementation.
2655bdf305bbe529a85735200353478057b65bb462eYing Wang */
2665bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_LIBC_SYSTEM_PROPERTIES 1
2675bdf305bbe529a85735200353478057b65bb462eYing Wang
2685bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2695bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if system provides a system property server (should be
2705bdf305bbe529a85735200353478057b65bb462eYing Wang * mutually exclusive with HAVE_LIBC_SYSTEM_PROPERTIES).
2715bdf305bbe529a85735200353478057b65bb462eYing Wang */
2725bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_SYSTEM_PROPERTY_SERVER */
2735bdf305bbe529a85735200353478057b65bb462eYing Wang
2745bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2755bdf305bbe529a85735200353478057b65bb462eYing Wang * What CPU architecture does this platform use?
2765bdf305bbe529a85735200353478057b65bb462eYing Wang */
2775bdf305bbe529a85735200353478057b65bb462eYing Wang#define ARCH_MIPS 1
2785bdf305bbe529a85735200353478057b65bb462eYing Wang
2795bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2805bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if the size of enums is as short as possible,
2815bdf305bbe529a85735200353478057b65bb462eYing Wang */
2825bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_SHORT_ENUMS */
2835bdf305bbe529a85735200353478057b65bb462eYing Wang
2845bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2855bdf305bbe529a85735200353478057b65bb462eYing Wang * sprintf() format string for shared library naming.
2865bdf305bbe529a85735200353478057b65bb462eYing Wang */
2875bdf305bbe529a85735200353478057b65bb462eYing Wang#define OS_SHARED_LIB_FORMAT_STR    "lib%s.so"
2885bdf305bbe529a85735200353478057b65bb462eYing Wang
2895bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2905bdf305bbe529a85735200353478057b65bb462eYing Wang * Do we have __memcmp16()?
2915bdf305bbe529a85735200353478057b65bb462eYing Wang */
2925bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE__MEMCMP16  1
2935bdf305bbe529a85735200353478057b65bb462eYing Wang
2945bdf305bbe529a85735200353478057b65bb462eYing Wang/*
2955bdf305bbe529a85735200353478057b65bb462eYing Wang * type for the third argument to mincore().
2965bdf305bbe529a85735200353478057b65bb462eYing Wang */
2975bdf305bbe529a85735200353478057b65bb462eYing Wang#define MINCORE_POINTER_TYPE unsigned char *
2985bdf305bbe529a85735200353478057b65bb462eYing Wang
2995bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3005bdf305bbe529a85735200353478057b65bb462eYing Wang * Do we have the sigaction flag SA_NOCLDWAIT?
3015bdf305bbe529a85735200353478057b65bb462eYing Wang */
3025bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_SA_NOCLDWAIT
3035bdf305bbe529a85735200353478057b65bb462eYing Wang
3045bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3055bdf305bbe529a85735200353478057b65bb462eYing Wang * The default path separator for the platform
3065bdf305bbe529a85735200353478057b65bb462eYing Wang */
3075bdf305bbe529a85735200353478057b65bb462eYing Wang#define OS_PATH_SEPARATOR '/'
3085bdf305bbe529a85735200353478057b65bb462eYing Wang
3095bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3105bdf305bbe529a85735200353478057b65bb462eYing Wang * Is the filesystem case sensitive?
3115bdf305bbe529a85735200353478057b65bb462eYing Wang */
3125bdf305bbe529a85735200353478057b65bb462eYing Wang#define OS_CASE_SENSITIVE
3135bdf305bbe529a85735200353478057b65bb462eYing Wang
3145bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3155bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if <sys/socket.h> exists.
3165bdf305bbe529a85735200353478057b65bb462eYing Wang */
3175bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_SYS_SOCKET_H 1
3185bdf305bbe529a85735200353478057b65bb462eYing Wang
3195bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3205bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if the strlcpy() function exists on the system.
3215bdf305bbe529a85735200353478057b65bb462eYing Wang */
3225bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_STRLCPY 1
3235bdf305bbe529a85735200353478057b65bb462eYing Wang
3245bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3255bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if the open_memstream() function exists on the system.
3265bdf305bbe529a85735200353478057b65bb462eYing Wang */
3275bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_OPEN_MEMSTREAM 1 */
3285bdf305bbe529a85735200353478057b65bb462eYing Wang
3295bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3305bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if the BSD funopen() function exists on the system.
3315bdf305bbe529a85735200353478057b65bb462eYing Wang */
3325bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_FUNOPEN 1
3335bdf305bbe529a85735200353478057b65bb462eYing Wang
3345bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3355bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if prctl() exists
3365bdf305bbe529a85735200353478057b65bb462eYing Wang */
3375bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_PRCTL 1
3385bdf305bbe529a85735200353478057b65bb462eYing Wang
3395bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3405bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if writev() exists
3415bdf305bbe529a85735200353478057b65bb462eYing Wang */
3425bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_WRITEV 1
3435bdf305bbe529a85735200353478057b65bb462eYing Wang
3445bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3455bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if <stdint.h> exists.
3465bdf305bbe529a85735200353478057b65bb462eYing Wang */
3475bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_STDINT_H 1
3485bdf305bbe529a85735200353478057b65bb462eYing Wang
3495bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3505bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if <stdbool.h> exists.
3515bdf305bbe529a85735200353478057b65bb462eYing Wang */
3525bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_STDBOOL_H 1
3535bdf305bbe529a85735200353478057b65bb462eYing Wang
3545bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3555bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if <sched.h> exists.
3565bdf305bbe529a85735200353478057b65bb462eYing Wang */
3575bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_SCHED_H 1
3585bdf305bbe529a85735200353478057b65bb462eYing Wang
3595bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3605bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if pread() exists
3615bdf305bbe529a85735200353478057b65bb462eYing Wang */
3625bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_PREAD 1
3635bdf305bbe529a85735200353478057b65bb462eYing Wang
3645bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3655bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if we have st_mtim in struct stat
3665bdf305bbe529a85735200353478057b65bb462eYing Wang */
3675bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_STAT_ST_MTIM 1
3685bdf305bbe529a85735200353478057b65bb462eYing Wang
3695bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3705bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if printf() supports %zd for size_t arguments
3715bdf305bbe529a85735200353478057b65bb462eYing Wang */
3725bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_PRINTF_ZD 1
3735bdf305bbe529a85735200353478057b65bb462eYing Wang
3745bdf305bbe529a85735200353478057b65bb462eYing Wang/*
3755bdf305bbe529a85735200353478057b65bb462eYing Wang * Whether or not _Unwind_Context is defined as a struct.
3765bdf305bbe529a85735200353478057b65bb462eYing Wang */
3775bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_UNWIND_CONTEXT_STRUCT 1
3785bdf305bbe529a85735200353478057b65bb462eYing Wang
3795bdf305bbe529a85735200353478057b65bb462eYing Wang#endif /* _ANDROID_CONFIG_H */
380