View | Details | Raw Unified | Return to bug 211432 | Differences between
and this patch

Collapse All | Expand All

(-)emulators/virtualbox-ose/files/patch-src_VBox_Main_src-server_freebsd_PerformanceFreeBSD.cpp (+24 lines)
Line 0 Link Here
1
--- src/VBox/Main/src-server/freebsd/PerformanceFreeBSD.cpp.orig	2017-07-27 13:18:27 UTC
2
+++ src/VBox/Main/src-server/freebsd/PerformanceFreeBSD.cpp
3
@@ -80,8 +80,10 @@ int CollectorFreeBSD::getHostMemoryUsage(ULONG *total,
4
     cbParameter = sizeof(cPagesMemInactive);
5
     if (!sysctlbyname("vm.stats.vm.v_inactive_count", &cPagesMemInactive, &cbParameter, NULL, 0))
6
         cProcessed++;
7
+#if __FreeBSD_version < 1200016
8
     cbParameter = sizeof(cPagesMemCached);
9
     if (!sysctlbyname("vm.stats.vm.v_cache_count", &cPagesMemCached, &cbParameter, NULL, 0))
10
+#endif
11
         cProcessed++;
12
     cbParameter = sizeof(cbPage);
13
     if (!sysctlbyname("hw.pagesize", &cbPage, &cbParameter, NULL, 0))
14
@@ -90,8 +92,8 @@ int CollectorFreeBSD::getHostMemoryUsage(ULONG *total,
15
     if (cProcessed == 6)
16
     {
17
         *total     = cbMemPhys / _1K;
18
-        *used      = cPagesMemUsed * (cbPage / _1K);
19
-        *available = (cPagesMemFree + cPagesMemInactive + cPagesMemCached ) * (cbPage / _1K);
20
+        *used      = (ULONG64)cPagesMemUsed * (cbPage / _1K);
21
+        *available = ((ULONG64)cPagesMemFree + cPagesMemInactive + cPagesMemCached ) * (cbPage / _1K);
22
     }
23
     else
24
         rc = VERR_NOT_SUPPORTED;
(-)emulators/virtualbox-ose/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp (+39 lines)
Line 0 Link Here
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
 }

Return to bug 211432