]> git.saurik.com Git - redis.git/blame - src/config.h
Use helper function for string object length
[redis.git] / src / config.h
CommitLineData
dde65f3f 1#ifndef __CONFIG_H
2#define __CONFIG_H
3
06db1f50 4#ifdef __APPLE__
5#include <AvailabilityMacros.h>
6#endif
7
d94ac406
PN
8/* Use tcmalloc's malloc_size() when available.
9 * When tcmalloc is used, native OSX malloc_size() may never be used because
10 * this expects a different allocation scheme. Therefore, *exclusively* use
11 * either tcmalloc or OSX's malloc_size()! */
7cdc98b6
PN
12#if defined(USE_TCMALLOC)
13#include <google/tcmalloc.h>
14#if TC_VERSION_MAJOR >= 1 && TC_VERSION_MINOR >= 6
15#define HAVE_MALLOC_SIZE 1
16#define redis_malloc_size(p) tc_malloc_size(p)
17#endif
d94ac406 18#elif defined(__APPLE__)
dde65f3f 19#include <malloc/malloc.h>
d76412d1 20#define HAVE_MALLOC_SIZE 1
dde65f3f 21#define redis_malloc_size(p) malloc_size(p)
22#endif
23
24/* define redis_fstat to fstat or fstat64() */
06db1f50 25#if defined(__APPLE__) && !defined(MAC_OS_X_VERSION_10_6)
dde65f3f 26#define redis_fstat fstat64
27#define redis_stat stat64
28#else
29#define redis_fstat fstat
30#define redis_stat stat
31#endif
32
eddb388e 33/* test for proc filesystem */
34#ifdef __linux__
35#define HAVE_PROCFS 1
36#endif
37
73db2acc 38/* test for task_info() */
39#if defined(__APPLE__)
40#define HAVE_TASKINFO 1
41#endif
42
d76412d1 43/* test for backtrace() */
44#if defined(__APPLE__) || defined(__linux__)
45#define HAVE_BACKTRACE 1
46#endif
47
266373b2 48/* test for polling API */
49#ifdef __linux__
50#define HAVE_EPOLL 1
51#endif
52
37be2765 53#if (defined(__APPLE__) && defined(MAC_OS_X_VERSION_10_6)) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined (__NetBSD__)
f3053eb0
HM
54#define HAVE_KQUEUE 1
55#endif
56
10ce1276 57/* define aof_fsync to fdatasync() in Linux and fsync() for all the rest */
58#ifdef __linux__
59#define aof_fsync fdatasync
60#else
61#define aof_fsync fsync
62#endif
63
dde65f3f 64#endif