diff --git a/make.sh b/make.sh index 4f9afe6..96f3783 100755 --- a/make.sh +++ b/make.sh @@ -62,6 +62,7 @@ fi LIBS='-lm' uname=`uname` +HAVE_VMMETER_H=0 if [ "$uname" = "Linux" ]; then OS_NAME=OS_LINUX IOEVENT_USE=IOEVENT_USE_EPOLL @@ -71,6 +72,11 @@ elif [ "$uname" = "FreeBSD" ] || [ "$uname" = "Darwin" ]; then if [ "$uname" = "Darwin" ]; then CFLAGS="$CFLAGS -DDARWIN" fi + + if [ -f /usr/include/sys/vmmeter.h ]; then + HAVE_VMMETER_H=1 + fi + elif [ "$uname" = "SunOS" ]; then OS_NAME=OS_SUNOS IOEVENT_USE=IOEVENT_USE_PORT @@ -105,6 +111,10 @@ cat < src/_os_define.h #define $IOEVENT_USE 1 #endif +#ifndef HAVE_VMMETER_H +#define HAVE_VMMETER_H $HAVE_VMMETER_H +#endif + #endif EOF diff --git a/src/sockopt.c b/src/sockopt.c index df2c2c0..4335ba3 100644 --- a/src/sockopt.c +++ b/src/sockopt.c @@ -44,8 +44,6 @@ #include #include #include -#include -#include #endif #endif diff --git a/src/system_info.c b/src/system_info.c index b2c0d02..042960e 100644 --- a/src/system_info.c +++ b/src/system_info.c @@ -31,7 +31,11 @@ #ifdef OS_FREEBSD #include #include + +#if HAVE_VMMETER_H == 1 #include +#endif + #endif #endif @@ -681,7 +685,9 @@ int get_sysinfo(struct fast_sysinfo*info) int mib[4]; size_t size; struct loadavg loads; +#if HAVE_VMMETER_H == 1 struct vmtotal vm; +#endif struct xsw_usage sw_usage; memset(info, 0, sizeof(struct fast_sysinfo)); @@ -723,6 +729,7 @@ int get_sysinfo(struct fast_sysinfo*info) get_sys_total_mem_size((int64_t *)&info->totalram); +#if HAVE_VMMETER_H == 1 mib[0] = CTL_VM; mib[1] = VM_METER; size = sizeof(vm); @@ -739,6 +746,7 @@ int get_sysinfo(struct fast_sysinfo*info) info->sharedram = vm.t_rmshr; //info->bufferram = vm. //TODO: } +#endif mib[0] = CTL_VM; mib[1] = VM_SWAPUSAGE;