/* config.h.in. Generated from configure.ac by autoheader. */ #ifndef __CONFIG_H__ #define __CONFIG_H__ /* _SYS_FEATURE_TESTS_H is Solaris, _FEATURES_H is GCC */ #if defined( _SYS_FEATURE_TESTS_H) || defined(_FEATURES_H) #error "You should include config.h as your first include file" #endif #include #ifndef CONFIG_H #define CONFIG_H #ifdef _SYS_FEATURE_TESTS_H #error "You should include config.h as your first include file" #endif #ifdef WIN32 #define _WIN32_WINNT 0x0501 #endif /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD /* the location of */ #undef CINTTYPES_H /* the location of */ #undef CSTDINT_H /* Another magical number */ #undef EAI_SYSTEM /* Define to 1 if you have the header file. */ #undef HAVE_ASSERT_H /* Define to 1 if you have the `atomic_add_32' function. */ #undef HAVE_ATOMIC_ADD_32 /* Define to 1 if you have the `atomic_add_64' function. */ #undef HAVE_ATOMIC_ADD_64 /* Define to 1 if you have the header file. */ #undef HAVE_ATOMIC_H /* Define to 1 if you have the `backtrace' function. */ #undef HAVE_BACKTRACE /* Define to 1 if you have the `backtrace_symbols_fd' function. */ #undef HAVE_BACKTRACE_SYMBOLS_FD /* Have a working clock_gettime function */ #undef HAVE_CLOCK_GETTIME /* Define to 1 if you have the declaration of `madvise', and to 0 if you don't. */ #undef HAVE_DECL_MADVISE /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Enables DTRACE Support */ #undef HAVE_DTRACE /* Define to 1 if you have the `event_base_free' function. */ #undef HAVE_EVENT_BASE_FREE /* Define to 1 if you have the `event_base_get_method' function. */ #undef HAVE_EVENT_BASE_GET_METHOD /* Define to 1 if you have the `event_base_new' function. */ #undef HAVE_EVENT_BASE_NEW /* Define to 1 if you have the header file. */ #undef HAVE_EXECINFO_H /* Define to 1 if you have the header file. */ #undef HAVE_FNMATCH_H /* Define to 1 if compiler provides atomic builtins. */ #undef HAVE_GCC_ATOMIC_BUILTINS /* Define to 1 if you have the `getline' function. */ #undef HAVE_GETLINE /* Enables hsieh hashing support */ #undef HAVE_HSIEH_HASH /* Have ntohll */ #undef HAVE_HTONLL /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `bind' library (-lbind). */ #undef HAVE_LIBBIND /* Define to 1 if you have the `c_p' library (-lc_p). */ #undef HAVE_LIBC_P /* Define if you have the event library. */ #undef HAVE_LIBEVENT /* Define if you have the innodb library. */ #undef HAVE_LIBINNODB /* Enables libmemcachedutil Support */ #undef HAVE_LIBMEMCACHEDUTIL /* Define to 1 if you have the `mtmalloc' library (-lmtmalloc). */ #undef HAVE_LIBMTMALLOC /* Define if you have the sasl library. */ #undef HAVE_LIBSASL /* Define if you have the sasl2 library. */ #undef HAVE_LIBSASL2 /* Define to 1 if you have the `socket' library (-lsocket). */ #undef HAVE_LIBSOCKET /* Define to 1 if you have the `tcmalloc' library (-ltcmalloc). */ #undef HAVE_LIBTCMALLOC /* Define to 1 if you have the `tcmalloc-minimal' library (-ltcmalloc-minimal). */ #undef HAVE_LIBTCMALLOC_MINIMAL /* Define to 1 if you have the `umem' library (-lumem). */ #undef HAVE_LIBUMEM /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have a MSG_DONTWAIT */ #undef HAVE_MSG_DONTWAIT /* Define to 1 if you have a HAVE_MSG_MORE */ #undef HAVE_MSG_MORE /* Define to 1 if you have a MSG_NOSIGNAL */ #undef HAVE_MSG_NOSIGNAL /* Enables murmur hashing support */ #undef HAVE_MURMUR_HASH /* For some non posix threads */ #undef HAVE_NONPOSIX_PTHREAD_GETSPECIFIC /* For some non posix threads */ #undef HAVE_NONPOSIX_PTHREAD_MUTEX_INIT /* sigwait with one argument */ #undef HAVE_NONPOSIX_SIGWAIT /* Define to 1 if you have the header file. */ #undef HAVE_POLL_H /* Define to 1 if you have the `printstack' function. */ #undef HAVE_PRINTSTACK /* Define if you have POSIX threads libraries and header files. */ #undef HAVE_PTHREAD /* Define to 1 if you have the `pthread_attr_create' function. */ #undef HAVE_PTHREAD_ATTR_CREATE /* Define to 1 if you have the `pthread_attr_getstacksize' function. */ #undef HAVE_PTHREAD_ATTR_GETSTACKSIZE /* Define to 1 if you have the `pthread_attr_setprio' function. */ #undef HAVE_PTHREAD_ATTR_SETPRIO /* Define to 1 if you have the `pthread_attr_setschedparam' function. */ #undef HAVE_PTHREAD_ATTR_SETSCHEDPARAM /* pthread_attr_setscope */ #undef HAVE_PTHREAD_ATTR_SETSCOPE /* Define to 1 if you have the `pthread_attr_setstacksize' function. */ #undef HAVE_PTHREAD_ATTR_SETSTACKSIZE /* Define to 1 if you have the `pthread_condattr_create' function. */ #undef HAVE_PTHREAD_CONDATTR_CREATE /* Define to 1 if you have the `pthread_getsequence_np' function. */ #undef HAVE_PTHREAD_GETSEQUENCE_NP /* Define to 1 if you have the `pthread_key_delete' function. */ #undef HAVE_PTHREAD_KEY_DELETE /* Define to 1 if you have the `pthread_rwlock_rdlock' function. */ #undef HAVE_PTHREAD_RWLOCK_RDLOCK /* Define to 1 if you have the `pthread_setprio' function. */ #undef HAVE_PTHREAD_SETPRIO /* Define to 1 if you have the `pthread_setprio_np' function. */ #undef HAVE_PTHREAD_SETPRIO_NP /* Define to 1 if you have the `pthread_setschedparam' function. */ #undef HAVE_PTHREAD_SETSCHEDPARAM /* Define to 1 if you have the `pthread_sigmask' function. */ #undef HAVE_PTHREAD_SIGMASK /* Define to 1 if you have the `pthread_yield_np' function. */ #undef HAVE_PTHREAD_YIELD_NP /* pthread_yield function with one argument */ #undef HAVE_PTHREAD_YIELD_ONE_ARG /* pthread_yield that doesn't take any arguments */ #undef HAVE_PTHREAD_YIELD_ZERO_ARG /* Define to 1 if you have a working SO_RCVTIMEO */ #undef HAVE_RCVTIMEO /* POSIX readdir_r */ #undef HAVE_READDIR_R /* Define to 1 if you have the `rwlock_init' function. */ #undef HAVE_RWLOCK_INIT /* POSIX sigwait */ #undef HAVE_SIGWAIT /* Define to 1 if you have a working SO_SNDTIMEO */ #undef HAVE_SNDTIMEO /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SDT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_WAIT_H /* Define to 1 if you have the header file. */ #undef HAVE_UCONTEXT_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Add additional valgrind code for testing with valgrind. */ #undef HAVE_VALGRIND /* Define to 1 or 0, depending whether the compiler supports simple visibility declarations. */ #undef HAVE_VISIBILITY /* Define to 1 if you have the header file. */ #undef HAVE_WINSOCK2_H /* CPU of Build System */ #undef HOST_CPU /* OS of Build System */ #undef HOST_OS /* Vendor of Build System */ #undef HOST_VENDOR /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of the memcached binary used in make test */ #undef MEMCACHED_BINARY /* Define to 1 if assertions should be disabled. */ #undef NDEBUG /* Define to 1 if your C compiler doesn't accept -c and -o together. */ #undef NO_MINUS_C_MINUS_O /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Version of the software */ #undef PANDORA_RELEASE_VERSION /* Define to necessary symbol if this constant uses a non-standard name on your system. */ #undef PTHREAD_CREATE_JOINABLE /* Define if system doesn't define */ #undef RUSAGE_THREAD /* Size of long long as computed by sizeof() */ #undef SIZEOF_LONG_LONG /* The size of `off_t', as computed by sizeof. */ #undef SIZEOF_OFF_T /* Size of size_t as computed by sizeof() */ #undef SIZEOF_SIZE_T /* Define if ISO C++ 1998 header files are present. */ #undef STDCXX_98_HEADERS /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* CPU of Target System */ #undef TARGET_CPU /* OS of Target System */ #undef TARGET_OS /* Whether we are building for FreeBSD */ #undef TARGET_OS_FREEBSD /* Whether we build for Linux */ #undef TARGET_OS_LINUX /* Whether we build for OSX */ #undef TARGET_OS_OSX /* Whether we are building for Solaris */ #undef TARGET_OS_SOLARIS /* Whether we are building for Windows */ #undef TARGET_OS_WINDOWS /* Vendor of Target System */ #undef TARGET_VENDOR /* Define to 1 if time_t is unsigned */ #undef TIME_T_UNSIGNED /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Define to true if you want to use functions from atomic.h */ #undef USE_ATOMIC_H /* Define to true if you need to test for eagain */ #undef USE_EAGAIN /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Version number of package */ #undef VERSION /* Version of Windows */ #undef WINVER /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD # if defined __BIG_ENDIAN__ # define WORDS_BIGENDIAN 1 # endif #else # ifndef WORDS_BIGENDIAN # undef WORDS_BIGENDIAN # endif #endif /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE /* Cause Sun Studio to not be quite so strict with standards conflicts */ #undef _STLP_NO_NEW_C_HEADERS /* Magical number to make things work */ #undef _WIN32_WINNT /* Workaround for bug in FreeBSD headers */ #undef __APPLE_CC__ /* Use STDC Constant Macros in C++ */ #undef __STDC_CONSTANT_MACROS /* Use STDC Format Macros in C++ */ #undef __STDC_FORMAT_MACROS /* Use STDC Limit Macros in C++ */ #undef __STDC_LIMIT_MACROS /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is supported directly. */ #undef restrict /* Work around a bug in Sun C++: it does not support _Restrict or __restrict__, even though the corresponding Sun C compiler ends up with "#define restrict _Restrict" or "#define restrict __restrict__" in the previous line. Perhaps some future version of Sun C++ will work with restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ #if defined __SUNPRO_CC && !defined __RESTRICT # define _Restrict # define __restrict__ #endif /* Define to `unsigned int' if does not define. */ #undef size_t /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ #undef volatile #ifndef HAVE_SYS_SOCKET_H # define SHUT_RD SD_RECEIVE # define SHUT_WR SD_SEND # define SHUT_RDWR SD_BOTH #endif #if defined(__cplusplus) # include CSTDINT_H # include CINTTYPES_H #else # include # include #endif #if !defined(HAVE_ULONG) && !defined(__USE_MISC) # define HAVE_ULONG 1 typedef unsigned long int ulong; #endif /* To hide the platform differences between MS Windows and Unix, I am * going to use the Microsoft way and #define the Microsoft-specific * functions to the unix way. Microsoft use a separate subsystem for sockets, * but Unix normally just use a filedescriptor on the same functions. It is * a lot easier to map back to the unix way with macros than going the other * way without side effect ;-) */ #ifdef TARGET_OS_WINDOWS #define random() rand() #define srandom(a) srand(a) #define get_socket_errno() WSAGetLastError() #else #define INVALID_SOCKET -1 #define SOCKET_ERROR -1 #define closesocket(a) close(a) #define get_socket_errno() errno #endif #if defined(__cplusplus) # if defined(DEBUG) # include # include # endif template inline To implicit_cast(From const &f) { return f; } template // use like this: down_cast(foo); inline To down_cast(From* f) { // so we only accept pointers // Ensures that To is a sub-type of From *. This test is here only // for compile-time type checking, and has no overhead in an // optimized build at run-time, as it will be optimized away // completely. if (false) { implicit_cast(0); } #if defined(DEBUG) assert(f == NULL || dynamic_cast(f) != NULL); // RTTI: debug mode only! #endif return static_cast(f); } #endif /* defined(__cplusplus) */ #endif /* __CONFIG_H__ */ #ifdef HAVE_SYS_WAIT_H #include #endif #ifdef HAVE_FNMATCH_H #include #endif #ifdef HAVE_POLL_H #include #else #include "poll/poll.h" #endif /* To hide the platform differences between MS Windows and Unix, I am * going to use the Microsoft way and #define the Microsoft-specific * functions to the unix way. Microsoft use a separate subsystem for sockets, * but Unix normally just use a filedescriptor on the same functions. It is * a lot easier to map back to the unix way with macros than going the other * way without side effect ;-) */ #ifdef WIN32 #include "win32/wrappers.h" #define get_socket_errno() WSAGetLastError() #else #define INVALID_SOCKET -1 #define SOCKET_ERROR -1 #define closesocket(a) close(a) #define get_socket_errno() errno #endif #ifndef HAVE_MSG_NOSIGNAL #define MSG_NOSIGNAL 0 #endif #ifndef HAVE_MSG_DONTWAIT #define MSG_DONTWAIT 0 #endif #ifndef HAVE_MSG_MORE #define MSG_MORE 0 #endif #endif #ifdef __cplusplus #include #define PANDORA_PRINTSTACK_STD_PREFIX std:: #else #include #define PANDORA_PRINTSTACK_STD_PREFIX #endif #if defined(HAVE_UCONTEXT_H) && defined(HAVE_PRINTSTACK) #include #define pandora_print_callstack(a) \ printstack(PANDORA_PRINTSTACK_STD_PREFIX fileno(a)) #elif defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE) && defined(HAVE_BACKTRACE_SYMBOLS_FD) #include #define pandora_print_callstack(a) \ { \ void *stack[100]; \ int depth = backtrace(stack, 100); \ backtrace_symbols_fd(stack, depth, PANDORA_PRINTSTACK_STD_PREFIX fileno(a)); \ } #elif defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE) && defined(HAVE_BACKTRACE_SYMBOLS) && !defined(HAVE_BACKTRACE_SYMBOLS_FD) #include #define pandora_print_callstack(a) \ { \ void *stack[100]; \ int depth= backtrace(stack, 100); \ char **symbol= backtrace_symbols(stack, depth); \ for (int x= 0; x < size; ++x) \ PANDORA_PRINTSTACK_STD_PREFIX fprintf(a, "%s\n", symbol[x]); \ } #else #define pandora_print_callstack(a) \ PANDORA_PRINTSTACK_STD_PREFIX fprintf(a, \ "Stackdump not supported for this platform\n"); #endif