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