summaryrefslogtreecommitdiffstats
path: root/darwin/Platform.c
diff options
context:
space:
mode:
authorSaltwaterC <saltwaterc@gmail.com>2015-11-16 17:32:22 +0000
committerSaltwaterC <saltwaterc@gmail.com>2015-11-16 17:32:22 +0000
commit8895f09880f441c2075b703cdec0643ac70790aa (patch)
tree148b593f03f99111cfe91b0a94fceaf07ed12fc9 /darwin/Platform.c
parentbef00a4fd939619a413fcaa3d745589ef3690ac9 (diff)
Add Darwin swap meter.
Diffstat (limited to 'darwin/Platform.c')
-rw-r--r--darwin/Platform.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/darwin/Platform.c b/darwin/Platform.c
index 4a36fe05..73b47c4c 100644
--- a/darwin/Platform.c
+++ b/darwin/Platform.c
@@ -102,6 +102,7 @@ MeterClass* Platform_meterTypes[] = {
&LoadAverageMeter_class,
&LoadMeter_class,
&MemoryMeter_class,
+ &SwapMeter_class,
&TasksMeter_class,
&BatteryMeter_class,
&HostnameMeter_class,
@@ -226,7 +227,12 @@ void Platform_setMemoryValues(Meter* mtr) {
mtr->values[2] = (double)vm->inactive_count * page_K;
}
-void Platform_setSwapValues(Meter* this) {
- (void) this;
-}
+void Platform_setSwapValues(Meter* mtr) {
+ int mib[2] = {CTL_VM, VM_SWAPUSAGE};
+ struct xsw_usage swapused;
+ size_t swlen = sizeof(swapused);
+ sysctl(mib, 2, &swapused, &swlen, NULL, 0);
+ mtr->total = swapused.xsu_total / 1024;
+ mtr->values[0] = swapused.xsu_used / 1024;
+}

© 2014-2024 Faster IT GmbH | imprint | privacy policy