]>
git.saurik.com Git - redis.git/blob - src/config.h
57acb6db40b6dc1084ab35293abf7488acda0f48
   5 #include <AvailabilityMacros.h> 
   8 /* Define redis_fstat to fstat or fstat64() */ 
   9 #if defined(__APPLE__) && !defined(MAC_OS_X_VERSION_10_6) 
  10 #define redis_fstat fstat64 
  11 #define redis_stat stat64 
  13 #define redis_fstat fstat 
  14 #define redis_stat stat 
  17 /* Test for proc filesystem */ 
  22 /* Test for task_info() */ 
  23 #if defined(__APPLE__) 
  24 #define HAVE_TASKINFO 1 
  27 /* Test for backtrace() */ 
  28 #if defined(__APPLE__) || defined(__linux__) || defined(__sun) 
  29 #define HAVE_BACKTRACE 1 
  32 /* Test for polling API */ 
  37 #if (defined(__APPLE__) && defined(MAC_OS_X_VERSION_10_6)) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined (__NetBSD__) 
  42 #include <sys/feature_tests.h> 
  43 #ifdef _DTRACE_VERSION 
  48 /* Define aof_fsync to fdatasync() in Linux and fsync() for all the rest */ 
  50 #define aof_fsync fdatasync 
  52 #define aof_fsync fsync 
  55 /* Define rdb_fsync_range to sync_file_range() on Linux, otherwise we use 
  56  * the plain fsync() call. */ 
  58 #include <linux/version.h> 
  61 #if (LINUX_VERSION_CODE >= 0x020611 && __GLIBC_PREREQ(2, 6)) 
  62 #define HAVE_SYNC_FILE_RANGE 1 
  65 #if (LINUX_VERSION_CODE >= 0x020611) 
  66 #define HAVE_SYNC_FILE_RANGE 1 
  71 #ifdef HAVE_SYNC_FILE_RANGE 
  72 #define rdb_fsync_range(fd,off,size) sync_file_range(fd,off,size,SYNC_FILE_RANGE_WAIT_BEFORE|SYNC_FILE_RANGE_WRITE) 
  74 #define rdb_fsync_range(fd,off,size) fsync(fd) 
  77 /* Byte ordering detection */ 
  78 #include <sys/types.h> /* This will likely define BYTE_ORDER */ 
  82 # include <machine/endian.h> 
  84 #if defined(linux) || defined(__linux__) 
  87 #define LITTLE_ENDIAN   1234    /* least-significant byte first (vax, pc) */ 
  88 #define BIG_ENDIAN      4321    /* most-significant byte first (IBM, net) */ 
  89 #define PDP_ENDIAN      3412    /* LSB first in word, MSW first in long (pdp)*/ 
  91 #if defined(__i386__) || defined(__x86_64__) || defined(__amd64__) || \ 
  92    defined(vax) || defined(ns32000) || defined(sun386) || \ 
  93    defined(MIPSEL) || defined(_MIPSEL) || defined(BIT_ZERO_ON_RIGHT) || \ 
  94    defined(__alpha__) || defined(__alpha) 
  95 #define BYTE_ORDER    LITTLE_ENDIAN 
  98 #if defined(sel) || defined(pyr) || defined(mc68000) || defined(sparc) || \ 
  99     defined(is68k) || defined(tahoe) || defined(ibm032) || defined(ibm370) || \ 
 100     defined(MIPSEB) || defined(_MIPSEB) || defined(_IBMR2) || defined(DGUX) ||\ 
 101     defined(apollo) || defined(__convex__) || defined(_CRAY) || \ 
 102     defined(__hppa) || defined(__hp9000) || \ 
 103     defined(__hp9000s300) || defined(__hp9000s700) || \ 
 104     defined (BIT_ZERO_ON_LEFT) || defined(m68k) || defined(__sparc) 
 105 #define BYTE_ORDER      BIG_ENDIAN 
 109 #endif /* BYTE_ORDER */ 
 111 #if defined(__BYTE_ORDER) && !defined(BYTE_ORDER) 
 112 #if (__BYTE_ORDER == __LITTLE_ENDIAN) 
 113 #define BYTE_ORDER LITTLE_ENDIAN 
 115 #define BYTE_ORDER BIG_ENDIAN 
 119 #if !defined(BYTE_ORDER) || \ 
 120     (BYTE_ORDER != BIG_ENDIAN && BYTE_ORDER != LITTLE_ENDIAN) 
 121         /* you must determine what the correct bit order is for 
 122          * your compiler - the next line is an intentional error 
 123          * which will force your compiles to bomb until you fix 
 126 #error "Undefined or invalid BYTE_ORDER" 
 129 #if (__i386 || __amd64) && __GNUC__ 
 130 #define GNUC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) 
 131 #if GNUC_VERSION >= 40100