15bdf305bbe529a85735200353478057b65bb462eYing Wang/* 25bdf305bbe529a85735200353478057b65bb462eYing Wang * Copyright (C) 2005 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 -- "Darwin". Used for X86 Mac OS X. 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 the futex syscall? 465bdf305bbe529a85735200353478057b65bb462eYing Wang */ 475bdf305bbe529a85735200353478057b65bb462eYing Wang 485bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_FUTEX */ 495bdf305bbe529a85735200353478057b65bb462eYing Wang 505bdf305bbe529a85735200353478057b65bb462eYing Wang/* 515bdf305bbe529a85735200353478057b65bb462eYing Wang * Process creation model. Choose one: 525bdf305bbe529a85735200353478057b65bb462eYing Wang * 535bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_FORKEXEC - use fork() and exec() 545bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_WIN32_PROC - use CreateProcess() 555bdf305bbe529a85735200353478057b65bb462eYing Wang */ 565bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_FORKEXEC 575bdf305bbe529a85735200353478057b65bb462eYing Wang 585bdf305bbe529a85735200353478057b65bb462eYing Wang/* 595bdf305bbe529a85735200353478057b65bb462eYing Wang * Process out-of-memory adjustment. Set if running on Linux, 605bdf305bbe529a85735200353478057b65bb462eYing Wang * where we can write to /proc/<pid>/oom_adj to modify the out-of-memory 615bdf305bbe529a85735200353478057b65bb462eYing Wang * badness adjustment. 625bdf305bbe529a85735200353478057b65bb462eYing Wang */ 635bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_OOM_ADJ */ 645bdf305bbe529a85735200353478057b65bb462eYing Wang 655bdf305bbe529a85735200353478057b65bb462eYing Wang/* 665bdf305bbe529a85735200353478057b65bb462eYing Wang * IPC model. Choose one: 675bdf305bbe529a85735200353478057b65bb462eYing Wang * 685bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_SYSV_IPC - use the classic SysV IPC mechanisms (semget, shmget). 695bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_MACOSX_IPC - use Macintosh IPC mechanisms (sem_open, mmap). 705bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_WIN32_IPC - use Win32 IPC (CreateSemaphore, CreateFileMapping). 715bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_ANDROID_IPC - use Android versions (?, mmap). 725bdf305bbe529a85735200353478057b65bb462eYing Wang */ 735bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_MACOSX_IPC 745bdf305bbe529a85735200353478057b65bb462eYing Wang 755bdf305bbe529a85735200353478057b65bb462eYing Wang/* 765bdf305bbe529a85735200353478057b65bb462eYing Wang * Memory-mapping model. Choose one: 775bdf305bbe529a85735200353478057b65bb462eYing Wang * 785bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_POSIX_FILEMAP - use the Posix sys/mmap.h 795bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_WIN32_FILEMAP - use Win32 filemaps 805bdf305bbe529a85735200353478057b65bb462eYing Wang */ 815bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_POSIX_FILEMAP 825bdf305bbe529a85735200353478057b65bb462eYing Wang 835bdf305bbe529a85735200353478057b65bb462eYing Wang/* 845bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if you have <termio.h> 855bdf305bbe529a85735200353478057b65bb462eYing Wang */ 865bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_TERMIO_H 875bdf305bbe529a85735200353478057b65bb462eYing Wang 885bdf305bbe529a85735200353478057b65bb462eYing Wang/* 895bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if you have <sys/sendfile.h> 905bdf305bbe529a85735200353478057b65bb462eYing Wang */ 915bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_SYS_SENDFILE_H 1 */ 925bdf305bbe529a85735200353478057b65bb462eYing Wang 935bdf305bbe529a85735200353478057b65bb462eYing Wang/* 945bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if you build against MSVCRT.DLL 955bdf305bbe529a85735200353478057b65bb462eYing Wang */ 965bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_MS_C_RUNTIME */ 975bdf305bbe529a85735200353478057b65bb462eYing Wang 985bdf305bbe529a85735200353478057b65bb462eYing Wang/* 995bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if you have sys/uio.h 1005bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1015bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_SYS_UIO_H 1025bdf305bbe529a85735200353478057b65bb462eYing Wang 1035bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1045bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if your platforms implements symbolic links 1055bdf305bbe529a85735200353478057b65bb462eYing Wang * in its filesystems 1065bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1075bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_SYMLINKS 1085bdf305bbe529a85735200353478057b65bb462eYing Wang 1095bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1105bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if we have localtime_r(). 1115bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1125bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_LOCALTIME_R 1 1135bdf305bbe529a85735200353478057b65bb462eYing Wang 1145bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1155bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if we have gethostbyname_r(). 1165bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1175bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_GETHOSTBYNAME_R */ 1185bdf305bbe529a85735200353478057b65bb462eYing Wang 1195bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1205bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if we have ioctl(). 1215bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1225bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_IOCTL */ 1235bdf305bbe529a85735200353478057b65bb462eYing Wang 1245bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1255bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if we want to use WinSock. 1265bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1275bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_WINSOCK */ 1285bdf305bbe529a85735200353478057b65bb462eYing Wang 1295bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1305bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if have clock_gettime() and friends 1315bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1325bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_POSIX_CLOCKS */ 1335bdf305bbe529a85735200353478057b65bb462eYing Wang 1345bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1355bdf305bbe529a85735200353478057b65bb462eYing Wang * Define this if we have pthread_cond_timedwait_monotonic() and 1365bdf305bbe529a85735200353478057b65bb462eYing Wang * clock_gettime(CLOCK_MONOTONIC). 1375bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1385bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_TIMEDWAIT_MONOTONIC */ 1395bdf305bbe529a85735200353478057b65bb462eYing Wang 1405bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1415bdf305bbe529a85735200353478057b65bb462eYing Wang * Endianness of the target machine. Choose one: 1425bdf305bbe529a85735200353478057b65bb462eYing Wang * 1435bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_ENDIAN_H -- have endian.h header we can include. 1445bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_LITTLE_ENDIAN -- we are little endian. 1455bdf305bbe529a85735200353478057b65bb462eYing Wang * HAVE_BIG_ENDIAN -- we are big endian. 1465bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1475bdf305bbe529a85735200353478057b65bb462eYing Wang#if (defined(__ppc__) || defined(__ppc64__)) 1485bdf305bbe529a85735200353478057b65bb462eYing Wang# define HAVE_BIG_ENDIAN 1495bdf305bbe529a85735200353478057b65bb462eYing Wang#elif (defined(__i386__) || defined(__x86_64__)) 1505bdf305bbe529a85735200353478057b65bb462eYing Wang# define HAVE_LITTLE_ENDIAN 1515bdf305bbe529a85735200353478057b65bb462eYing Wang#endif 1525bdf305bbe529a85735200353478057b65bb462eYing Wang 1535bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1545bdf305bbe529a85735200353478057b65bb462eYing Wang * We need to choose between 32-bit and 64-bit off_t. All of our code should 1555bdf305bbe529a85735200353478057b65bb462eYing Wang * agree on the same size. For desktop systems, use 64-bit values, 1565bdf305bbe529a85735200353478057b65bb462eYing Wang * because some of our libraries (e.g. wxWidgets) expect to be built that way. 1575bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1585bdf305bbe529a85735200353478057b65bb462eYing Wang#define _FILE_OFFSET_BITS 64 1595bdf305bbe529a85735200353478057b65bb462eYing Wang#define _LARGEFILE_SOURCE 1 1605bdf305bbe529a85735200353478057b65bb462eYing Wang 1615bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1625bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if platform has off64_t (and lseek64 and other xxx64 functions) 1635bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1645bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_OFF64_T */ 1655bdf305bbe529a85735200353478057b65bb462eYing Wang 1665bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1675bdf305bbe529a85735200353478057b65bb462eYing Wang * Defined if we have the backtrace() call for retrieving a stack trace. 1685bdf305bbe529a85735200353478057b65bb462eYing Wang * Needed for CallStack to operate; if not defined, CallStack is 1695bdf305bbe529a85735200353478057b65bb462eYing Wang * non-functional. 1705bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1715bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_BACKTRACE 0 1725bdf305bbe529a85735200353478057b65bb462eYing Wang 1735bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1745bdf305bbe529a85735200353478057b65bb462eYing Wang * Defined if we have the dladdr() call for retrieving the symbol associated 1755bdf305bbe529a85735200353478057b65bb462eYing Wang * with a memory address. If not defined, stack crawls will not have symbolic 1765bdf305bbe529a85735200353478057b65bb462eYing Wang * information. 1775bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1785bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_DLADDR 1 1795bdf305bbe529a85735200353478057b65bb462eYing Wang 1805bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1815bdf305bbe529a85735200353478057b65bb462eYing Wang * Defined if we have the cxxabi.h header for demangling C++ symbols. If 1825bdf305bbe529a85735200353478057b65bb462eYing Wang * not defined, stack crawls will be displayed with raw mangled symbols 1835bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1845bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_CXXABI 0 1855bdf305bbe529a85735200353478057b65bb462eYing Wang 1865bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1875bdf305bbe529a85735200353478057b65bb462eYing Wang * Defined if we have the gettid() system call. 1885bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1895bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_GETTID */ 1905bdf305bbe529a85735200353478057b65bb462eYing Wang 1915bdf305bbe529a85735200353478057b65bb462eYing Wang 1925bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1935bdf305bbe529a85735200353478057b65bb462eYing Wang * Add any extra platform-specific defines here. 1945bdf305bbe529a85735200353478057b65bb462eYing Wang */ 1955bdf305bbe529a85735200353478057b65bb462eYing Wang#define _THREAD_SAFE 1965bdf305bbe529a85735200353478057b65bb462eYing Wang 1975bdf305bbe529a85735200353478057b65bb462eYing Wang/* 1985bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if we have <malloc.h> header 1995bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2005bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_MALLOC_H */ 2015bdf305bbe529a85735200353478057b65bb462eYing Wang 2025bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2035bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if tm struct has tm_gmtoff field 2045bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2055bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_TM_GMTOFF 1 2065bdf305bbe529a85735200353478057b65bb462eYing Wang 2075bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2085bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if dirent struct has d_type field 2095bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2105bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_DIRENT_D_TYPE 1 2115bdf305bbe529a85735200353478057b65bb462eYing Wang 2125bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2135bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if we have madvise() in <sys/mman.h> 2145bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2155bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_MADVISE 1 2165bdf305bbe529a85735200353478057b65bb462eYing Wang 2175bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2185bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if we include <sys/mount.h> for statfs() 2195bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2205bdf305bbe529a85735200353478057b65bb462eYing Wang#define INCLUDE_SYS_MOUNT_FOR_STATFS 1 2215bdf305bbe529a85735200353478057b65bb462eYing Wang 2225bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2235bdf305bbe529a85735200353478057b65bb462eYing Wang * What CPU architecture does this platform use? 2245bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2255bdf305bbe529a85735200353478057b65bb462eYing Wang#if (defined(__ppc__) || defined(__ppc64__)) 2265bdf305bbe529a85735200353478057b65bb462eYing Wang# define ARCH_PPC 2275bdf305bbe529a85735200353478057b65bb462eYing Wang#elif (defined(__i386__) || defined(__x86_64__)) 2285bdf305bbe529a85735200353478057b65bb462eYing Wang# define ARCH_X86 2295bdf305bbe529a85735200353478057b65bb462eYing Wang#endif 2305bdf305bbe529a85735200353478057b65bb462eYing Wang 2315bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2325bdf305bbe529a85735200353478057b65bb462eYing Wang * sprintf() format string for shared library naming. 2335bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2345bdf305bbe529a85735200353478057b65bb462eYing Wang#define OS_SHARED_LIB_FORMAT_STR "lib%s.dylib" 2355bdf305bbe529a85735200353478057b65bb462eYing Wang 2365bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2375bdf305bbe529a85735200353478057b65bb462eYing Wang * type for the third argument to mincore(). 2385bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2395bdf305bbe529a85735200353478057b65bb462eYing Wang#define MINCORE_POINTER_TYPE char * 2405bdf305bbe529a85735200353478057b65bb462eYing Wang 2415bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2425bdf305bbe529a85735200353478057b65bb462eYing Wang * The default path separator for the platform 2435bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2445bdf305bbe529a85735200353478057b65bb462eYing Wang#define OS_PATH_SEPARATOR '/' 2455bdf305bbe529a85735200353478057b65bb462eYing Wang 2465bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2475bdf305bbe529a85735200353478057b65bb462eYing Wang * Is the filesystem case sensitive? 2485bdf305bbe529a85735200353478057b65bb462eYing Wang * 2495bdf305bbe529a85735200353478057b65bb462eYing Wang * For tools apps, we'll treat is as not case sensitive. 2505bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2515bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define OS_CASE_SENSITIVE */ 2525bdf305bbe529a85735200353478057b65bb462eYing Wang 2535bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2545bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if <sys/socket.h> exists. 2555bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2565bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_SYS_SOCKET_H 1 2575bdf305bbe529a85735200353478057b65bb462eYing Wang 2585bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2595bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if the strlcpy() function exists on the system. 2605bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2615bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_STRLCPY 1 2625bdf305bbe529a85735200353478057b65bb462eYing Wang 2635bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2645bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if the open_memstream() function exists on the system. 2655bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2665bdf305bbe529a85735200353478057b65bb462eYing Wang/* #define HAVE_OPEN_MEMSTREAM 1 */ 2675bdf305bbe529a85735200353478057b65bb462eYing Wang 2685bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2695bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if the BSD funopen() function exists on the system. 2705bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2715bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_FUNOPEN 1 2725bdf305bbe529a85735200353478057b65bb462eYing Wang 2735bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2745bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if writev() exists 2755bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2765bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_WRITEV 1 2775bdf305bbe529a85735200353478057b65bb462eYing Wang 2785bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2795bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if <stdint.h> exists. 2805bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2815bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_STDINT_H 1 2825bdf305bbe529a85735200353478057b65bb462eYing Wang 2835bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2845bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if <stdbool.h> exists. 2855bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2865bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_STDBOOL_H 1 2875bdf305bbe529a85735200353478057b65bb462eYing Wang 2885bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2895bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if <sched.h> exists. 2905bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2915bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_SCHED_H 1 2925bdf305bbe529a85735200353478057b65bb462eYing Wang 2935bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2945bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if pread() exists 2955bdf305bbe529a85735200353478057b65bb462eYing Wang */ 2965bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_PREAD 1 2975bdf305bbe529a85735200353478057b65bb462eYing Wang 2985bdf305bbe529a85735200353478057b65bb462eYing Wang/* 2995bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if we have st_mtim in struct stat 3005bdf305bbe529a85735200353478057b65bb462eYing Wang */ 3015bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_STAT_ST_MTIM 1 3025bdf305bbe529a85735200353478057b65bb462eYing Wang 3035bdf305bbe529a85735200353478057b65bb462eYing Wang/* 3045bdf305bbe529a85735200353478057b65bb462eYing Wang * Define if printf() supports %zd for size_t arguments 3055bdf305bbe529a85735200353478057b65bb462eYing Wang */ 3065bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_PRINTF_ZD 1 3075bdf305bbe529a85735200353478057b65bb462eYing Wang 3085bdf305bbe529a85735200353478057b65bb462eYing Wang/* 3095bdf305bbe529a85735200353478057b65bb462eYing Wang * Define to 1 if <stdlib.h> provides qsort_r() with a BSD style function prototype. 3105bdf305bbe529a85735200353478057b65bb462eYing Wang */ 3115bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_BSD_QSORT_R 1 3125bdf305bbe529a85735200353478057b65bb462eYing Wang 3135bdf305bbe529a85735200353478057b65bb462eYing Wang/* 3145bdf305bbe529a85735200353478057b65bb462eYing Wang * Define to 1 if <stdlib.h> provides qsort_r() with a GNU style function prototype. 3155bdf305bbe529a85735200353478057b65bb462eYing Wang */ 3165bdf305bbe529a85735200353478057b65bb462eYing Wang#define HAVE_GNU_QSORT_R 0 3175bdf305bbe529a85735200353478057b65bb462eYing Wang 3185bdf305bbe529a85735200353478057b65bb462eYing Wang#endif /*_ANDROID_CONFIG_H*/ 319