From 06059b41feb416a7035c343c591bdfcc472d8410 Mon Sep 17 00:00:00 2001 From: Doug MacEachern Date: Mon, 18 Feb 2008 00:03:22 +0000 Subject: [PATCH] OpenBSD sigar_swap_get impl --- src/os/darwin/darwin_sigar.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/os/darwin/darwin_sigar.c b/src/os/darwin/darwin_sigar.c index 18b11918..9b8d6f94 100644 --- a/src/os/darwin/darwin_sigar.c +++ b/src/os/darwin/darwin_sigar.c @@ -574,8 +574,17 @@ int sigar_swap_get(sigar_t *sigar, sigar_swap_t *swap) else { swap->page_in = swap->page_out = -1; } -#else - /*XXX OpenBSD*/ +#elif defined(__OpenBSD__) + struct uvmexp vmstat; + + if ((status = sigar_vmstat(sigar, &vmstat)) != SIGAR_OK) { + return status; + } + swap->total = vmstat.swpages * sigar->pagesize; + swap->used = vmstat.swpginuse * sigar->pagesize; + swap->free = swap->total - swap->used; + swap->page_in = vmstat.pageins; + swap->page_out = vmstat.pdpageouts; #endif return SIGAR_OK;