summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2016-01-08 13:20:32 +0000
committerGiampaolo Rodola <g.rodola@gmail.com>2016-01-08 13:20:32 +0000
commitdf490a94b04debcc692837a36b15b7a2a67187dd (patch)
treeed406688c7a3eb17ca10a60be0d84fe4e4869bb3
parentc27ee1d83b2a3057885dc4f4a1ca2eea2bd613d6 (diff)
downloadpsutil-df490a94b04debcc692837a36b15b7a2a67187dd.tar.gz
#557 (NetBSD): virtual_mem(): add cached mem stats
-rw-r--r--psutil/arch/bsd/netbsd.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/psutil/arch/bsd/netbsd.c b/psutil/arch/bsd/netbsd.c
index 48373c72..86dfec41 100644
--- a/psutil/arch/bsd/netbsd.c
+++ b/psutil/arch/bsd/netbsd.c
@@ -426,7 +426,7 @@ PyObject *
psutil_virtual_mem(PyObject *self, PyObject *args) {
unsigned int total, active, inactive, wired, cached, free;
size_t size = sizeof(total);
- struct uvmexp_sysctl uvmexp;
+ struct uvmexp_sysctl uv;
int mib[] = {CTL_VM, VM_UVMEXP2};
long pagesize = getpagesize();
size = sizeof(uvmexp);
@@ -436,15 +436,19 @@ psutil_virtual_mem(PyObject *self, PyObject *args) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
+
return Py_BuildValue("KKKKKKKK",
- (unsigned long long) uvmexp.npages * pagesize,
- (unsigned long long) uvmexp.free * pagesize,
- (unsigned long long) uvmexp.active * pagesize,
- (unsigned long long) uvmexp.inactive * pagesize,
- (unsigned long long) uvmexp.wired * pagesize,
- (unsigned long long) 0,
- (unsigned long long) 0,
- (unsigned long long) 0
+ (unsigned long long) uv.npages * pagesize, // total
+ (unsigned long long) uv.free * pagesize, // free
+ (unsigned long long) uv.active * pagesize, // active
+ (unsigned long long) uv.inactive * pagesize, // inactive
+ (unsigned long long) uv.wired * pagesize, // wired
+ // taken from:
+ // https://github.com/satterly/zabbix-stats/blob/master/src/libs/
+ // zbxsysinfo/netbsd/memory.c
+ (unsigned long long) uv.filepages + uv.execpages * pagesize, // cached
+ (unsigned long long) 0, // buffers
+ (unsigned long long) 0 // shared
);
}