summaryrefslogtreecommitdiff
path: root/emulators/virtualbox-ose-legacy/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp
blob: 92af93646dd683f7b923d7bfdef9e584aa0cea52 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
--- 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;
 }