Changeset 19004 in vbox for trunk/src/VBox/Main
- Timestamp:
- Apr 17, 2009 8:06:01 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 46102
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/freebsd/PerformanceFreeBSD.cpp
r16016 r19004 20 20 */ 21 21 22 #include <sys/types.h> 23 #include <sys/sysctl.h> 22 24 #include "Performance.h" 23 25 … … 47 49 int CollectorFreeBSD::getHostCpuMHz(ULONG *mhz) 48 50 { 49 return E_NOTIMPL; 51 int CpuMHz = 0; 52 size_t cbParameter = sizeof(int); 53 54 /** @todo: Howto support more than one CPU? */ 55 if (sysctlbyname("dev.cpu.0.freq", &CpuMHz, &cbParameter, NULL, 0)) 56 return VERR_NOT_SUPPORTED; 57 58 *mhz = CpuMHz; 59 60 return VINF_SUCCESS; 50 61 } 51 62 52 63 int CollectorFreeBSD::getHostMemoryUsage(ULONG *total, ULONG *used, ULONG *available) 53 64 { 54 return E_NOTIMPL; 65 int rc = VINF_SUCCESS; 66 u_long cbMemPhys; 67 int cPagesMemFree, cPagesMemUsed, cbPage; 68 size_t cbParameter = sizeof(u_long); 69 int cbProcessed = 0; 70 71 if (!sysctlbyname("hw.physmem", &cbMemPhys, &cbParameter, NULL, 0)) 72 cbProcessed++; 73 74 cbParameter = sizeof(int); 75 if (!sysctlbyname("vm.stats.vm.v_free_count", &cPagesMemFree, &cbParameter, NULL, 0)) 76 cbProcessed++; 77 if (!sysctlbyname("vm.stats.vm.v_active_count", &cPagesMemUsed, &cbParameter, NULL, 0)) 78 cbProcessed++; 79 if (!sysctlbyname("hw.pagesize", &cbPage, &cbParameter, NULL, 0)) 80 cbProcessed++; 81 82 if (cbProcessed == 4) 83 { 84 *total = cbMemPhys; 85 *used = cPagesMemUsed * cbPage; 86 *available = cPagesMemFree * cbPage; 87 } 88 else 89 rc = VERR_NOT_SUPPORTED; 90 91 return rc; 55 92 } 56 93
Note:
See TracChangeset
for help on using the changeset viewer.