diff options
author | Ross Williams <ross@ross-williams.net> | 2019-09-03 18:21:33 +0000 |
---|---|---|
committer | Ross Williams <ross@ross-williams.net> | 2019-09-03 18:21:33 +0000 |
commit | e450b586368750e771746ef3e2f5a070962dfd28 (patch) | |
tree | 5501777912872ee233b6c9b60a26dd4906a6b4a7 /zfs/ZfsArcMeter.c | |
parent | ff6914e4ad4b78749bcee5471a33ef206b0a7d03 (diff) |
Refactor openzfs_sysctl_init() and ZfsArcMeter...
openzfs_sysctl_init() now returns void instead of int.
The ZfsArcStats->enabled flag is set inside the init function
now, instead of having to be set from its return value.
Preparation for more flag setting in Compressed ARC commit.
ZfsArcMeter_readStats() added and all Meter->values[] setting
moved to it, eliminating duplicated code in
{darwin,freebsd,linux,solaris}/Platform.c.
Diffstat (limited to 'zfs/ZfsArcMeter.c')
-rw-r--r-- | zfs/ZfsArcMeter.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/zfs/ZfsArcMeter.c b/zfs/ZfsArcMeter.c index ebd80992..9f7028bc 100644 --- a/zfs/ZfsArcMeter.c +++ b/zfs/ZfsArcMeter.c @@ -6,6 +6,7 @@ in the source distribution for its full text. */ #include "ZfsArcMeter.h" +#include "ZfsArcStats.h" #include "CRT.h" #include "Platform.h" @@ -17,6 +18,8 @@ in the source distribution for its full text. #include <assert.h> /*{ +#include "ZfsArcStats.h" + #include "Meter.h" }*/ @@ -24,6 +27,21 @@ int ZfsArcMeter_attributes[] = { ZFS_MFU, ZFS_MRU, ZFS_ANON, ZFS_HEADER, ZFS_OTHER }; +void ZfsArcMeter_readStats(Meter* this, ZfsArcStats* stats) { + this->total = stats->max; + this->values[0] = stats->MFU; + this->values[1] = stats->MRU; + this->values[2] = stats->anon; + this->values[3] = stats->header; + this->values[4] = stats->other; + + // "Hide" the last value so it can + // only be accessed by index and is not + // displayed by the Bar or Graph style + Meter_setItems(this, 5); + this->values[5] = stats->size; +} + static void ZfsArcMeter_updateValues(Meter* this, char* buffer, int size) { int written; Platform_setZfsArcValues(this); |