--- src/VBox/Runtime/r3/freebsd/systemmem-freebsd.cpp.orig 2017-07-27 13:18:46 UTC
+++ src/VBox/Runtime/r3/freebsd/systemmem-freebsd.cpp
@@ -65,7 +65,6 @@ RTDECL(int) RTSystemQueryAvailableRam(uint64_t *pcb)
u_int cPagesMemFree = 0;
u_int cPagesMemInactive = 0;
u_int cPagesMemCached = 0;
- u_int cPagesMemUsed = 0;
int cbPage = 0;
size_t cbParameter;
int cProcessed = 0;
@@ -73,25 +72,23 @@ RTDECL(int) RTSystemQueryAvailableRam(uint64_t *pcb)
cbParameter = sizeof(cPagesMemFree);
if (sysctlbyname("vm.stats.vm.v_free_count", &cPagesMemFree, &cbParameter, NULL, 0))
rc = RTErrConvertFromErrno(errno);
- cbParameter = sizeof(cPagesMemUsed);
- if ( RT_SUCCESS(rc)
- && sysctlbyname("vm.stats.vm.v_active_count", &cPagesMemUsed, &cbParameter, NULL, 0))
- rc = RTErrConvertFromErrno(errno);
cbParameter = sizeof(cPagesMemInactive);
if ( RT_SUCCESS(rc)
&& sysctlbyname("vm.stats.vm.v_inactive_count", &cPagesMemInactive, &cbParameter, NULL, 0))
rc = RTErrConvertFromErrno(errno);
+#if __FreeBSD_version < 1200016
cbParameter = sizeof(cPagesMemCached);
if ( RT_SUCCESS(rc)
&& sysctlbyname("vm.stats.vm.v_cache_count", &cPagesMemCached, &cbParameter, NULL, 0))
rc = RTErrConvertFromErrno(errno);
+#endif
cbParameter = sizeof(cbPage);
if ( RT_SUCCESS(rc)
&& sysctlbyname("hw.pagesize", &cbPage, &cbParameter, NULL, 0))
rc = RTErrConvertFromErrno(errno);
if (RT_SUCCESS(rc))
- *pcb = (cPagesMemFree + cPagesMemInactive + cPagesMemCached ) * cbPage;
+ *pcb = ((uint64_t)cPagesMemFree + cPagesMemInactive + cPagesMemCached) * cbPage;
return rc;
}