1 --- src/VBox/Runtime/r3/freebsd/systemmem-freebsd.cpp.orig 2017-07-27 13:18:46 UTC 2 +++ src/VBox/Runtime/r3/freebsd/systemmem-freebsd.cpp 3 @@ -65,7 +65,6 @@ RTDECL(int) RTSystemQueryAvailableRam(uint64_t *pcb) 4 u_int cPagesMemFree = 0; 5 u_int cPagesMemInactive = 0; 6 u_int cPagesMemCached = 0; 7 - u_int cPagesMemUsed = 0; 8 int cbPage = 0; 9 size_t cbParameter; 10 int cProcessed = 0; 11 @@ -73,25 +72,23 @@ RTDECL(int) RTSystemQueryAvailableRam(uint64_t *pcb) 12 cbParameter = sizeof(cPagesMemFree); 13 if (sysctlbyname("vm.stats.vm.v_free_count", &cPagesMemFree, &cbParameter, NULL, 0)) 14 rc = RTErrConvertFromErrno(errno); 15 - cbParameter = sizeof(cPagesMemUsed); 16 - if ( RT_SUCCESS(rc) 17 - && sysctlbyname("vm.stats.vm.v_active_count", &cPagesMemUsed, &cbParameter, NULL, 0)) 18 - rc = RTErrConvertFromErrno(errno); 19 cbParameter = sizeof(cPagesMemInactive); 20 if ( RT_SUCCESS(rc) 21 && sysctlbyname("vm.stats.vm.v_inactive_count", &cPagesMemInactive, &cbParameter, NULL, 0)) 22 rc = RTErrConvertFromErrno(errno); 23 +#if __FreeBSD_version < 1200016 24 cbParameter = sizeof(cPagesMemCached); 25 if ( RT_SUCCESS(rc) 26 && sysctlbyname("vm.stats.vm.v_cache_count", &cPagesMemCached, &cbParameter, NULL, 0)) 27 rc = RTErrConvertFromErrno(errno); 28 +#endif 29 cbParameter = sizeof(cbPage); 30 if ( RT_SUCCESS(rc) 31 && sysctlbyname("hw.pagesize", &cbPage, &cbParameter, NULL, 0)) 32 rc = RTErrConvertFromErrno(errno); 33 34 if (RT_SUCCESS(rc)) 35 - *pcb = (cPagesMemFree + cPagesMemInactive + cPagesMemCached ) * cbPage; 36 + *pcb = ((uint64_t)cPagesMemFree + cPagesMemInactive + cPagesMemCached) * cbPage; 37 38 return rc; 39 } 40