summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormulti <multi@in-addr.xyz>2020-09-24 20:56:40 +0100
committercgzones <cgzones@googlemail.com>2020-09-28 14:35:35 +0200
commit9ee72568dc36e2c83add9c602387509909f3d292 (patch)
treef6f9afdc95cec324370f1ce0c4c410be19896d6c
parent491bf98b901d7f4fd96bf5d077c53b136a48af96 (diff)
CPUMeter: add octuple-column CPU meters.
This is a straightforward extension of the existing multi-column CPU meter code, which now allows for up CPU meters to be displayed in up to 16 columns. This also adds the meter declarations to all the platform-specific code.
-rw-r--r--CPUMeter.c69
-rw-r--r--CPUMeter.h6
-rw-r--r--darwin/Platform.c3
-rw-r--r--dragonflybsd/Platform.c3
-rw-r--r--freebsd/Platform.c3
-rw-r--r--linux/Platform.c3
-rw-r--r--openbsd/Platform.c3
-rw-r--r--solaris/Platform.c3
-rw-r--r--unsupported/Platform.c3
9 files changed, 96 insertions, 0 deletions
diff --git a/CPUMeter.c b/CPUMeter.c
index ccb924a3..c5e27124 100644
--- a/CPUMeter.c
+++ b/CPUMeter.c
@@ -192,6 +192,14 @@ static void QuadColCPUsMeter_updateMode(Meter* this, int mode) {
CPUMeterCommonUpdateMode(this, mode, 4);
}
+static void OctoColCPUsMeter_init(Meter* this) {
+ CPUMeterCommonInit(this, 8);
+}
+
+static void OctoColCPUsMeter_updateMode(Meter* this, int mode) {
+ CPUMeterCommonUpdateMode(this, mode, 8);
+}
+
static void CPUMeterCommonDraw(Meter* this, int x, int y, int w, int ncol) {
Meter** meters = (Meter**) this->drawData;
int start, count;
@@ -215,6 +223,10 @@ static void QuadColCPUsMeter_draw(Meter* this, int x, int y, int w) {
CPUMeterCommonDraw(this, x, y, w, 4);
}
+static void OctoColCPUsMeter_draw(Meter* this, int x, int y, int w) {
+ CPUMeterCommonDraw(this, x, y, w, 8);
+}
+
static void SingleColCPUsMeter_draw(Meter* this, int x, int y, int w) {
Meter** meters = (Meter**) this->drawData;
@@ -414,3 +426,60 @@ MeterClass RightCPUs4Meter_class = {
.updateMode = QuadColCPUsMeter_updateMode,
.done = AllCPUsMeter_done
};
+
+MeterClass AllCPUs8Meter_class = {
+ .super = {
+ .extends = Class(Meter),
+ .delete = Meter_delete,
+ .display = CPUMeter_display
+ },
+ .defaultMode = CUSTOM_METERMODE,
+ .total = 100.0,
+ .attributes = CPUMeter_attributes,
+ .name = "AllCPUs8",
+ .uiName = "CPUs (1-8/8)",
+ .description = "CPUs (1-8/8): all CPUs in 8 shorter columns",
+ .caption = "CPU",
+ .draw = OctoColCPUsMeter_draw,
+ .init = OctoColCPUsMeter_init,
+ .updateMode = OctoColCPUsMeter_updateMode,
+ .done = AllCPUsMeter_done
+};
+
+MeterClass LeftCPUs8Meter_class = {
+ .super = {
+ .extends = Class(Meter),
+ .delete = Meter_delete,
+ .display = CPUMeter_display
+ },
+ .defaultMode = CUSTOM_METERMODE,
+ .total = 100.0,
+ .attributes = CPUMeter_attributes,
+ .name = "LeftCPUs8",
+ .uiName = "CPUs (1-8/16)",
+ .description = "CPUs (1-8/16): first half in 8 shorter columns",
+ .caption = "CPU",
+ .draw = OctoColCPUsMeter_draw,
+ .init = OctoColCPUsMeter_init,
+ .updateMode = OctoColCPUsMeter_updateMode,
+ .done = AllCPUsMeter_done
+};
+
+MeterClass RightCPUs8Meter_class = {
+ .super = {
+ .extends = Class(Meter),
+ .delete = Meter_delete,
+ .display = CPUMeter_display
+ },
+ .defaultMode = CUSTOM_METERMODE,
+ .total = 100.0,
+ .attributes = CPUMeter_attributes,
+ .name = "RightCPUs8",
+ .uiName = "CPUs (9-16/16)",
+ .description = "CPUs (9-16/16): second half in 8 shorter columns",
+ .caption = "CPU",
+ .draw = OctoColCPUsMeter_draw,
+ .init = OctoColCPUsMeter_init,
+ .updateMode = OctoColCPUsMeter_updateMode,
+ .done = AllCPUsMeter_done
+};
diff --git a/CPUMeter.h b/CPUMeter.h
index d66eefbb..62a1ddc3 100644
--- a/CPUMeter.h
+++ b/CPUMeter.h
@@ -44,4 +44,10 @@ extern MeterClass LeftCPUs4Meter_class;
extern MeterClass RightCPUs4Meter_class;
+extern MeterClass AllCPUs8Meter_class;
+
+extern MeterClass LeftCPUs8Meter_class;
+
+extern MeterClass RightCPUs8Meter_class;
+
#endif
diff --git a/darwin/Platform.c b/darwin/Platform.c
index d1401cb6..747ffefb 100644
--- a/darwin/Platform.c
+++ b/darwin/Platform.c
@@ -106,12 +106,15 @@ MeterClass* Platform_meterTypes[] = {
&AllCPUsMeter_class,
&AllCPUs2Meter_class,
&AllCPUs4Meter_class,
+ &AllCPUs8Meter_class,
&LeftCPUsMeter_class,
&RightCPUsMeter_class,
&LeftCPUs2Meter_class,
&RightCPUs2Meter_class,
&LeftCPUs4Meter_class,
&RightCPUs4Meter_class,
+ &LeftCPUs8Meter_class,
+ &RightCPUs8Meter_class,
&ZfsArcMeter_class,
&ZfsCompressedArcMeter_class,
&BlankMeter_class,
diff --git a/dragonflybsd/Platform.c b/dragonflybsd/Platform.c
index da746473..7d16eda1 100644
--- a/dragonflybsd/Platform.c
+++ b/dragonflybsd/Platform.c
@@ -89,12 +89,15 @@ MeterClass* Platform_meterTypes[] = {
&AllCPUsMeter_class,
&AllCPUs2Meter_class,
&AllCPUs4Meter_class,
+ &AllCPUs8Meter_class,
&LeftCPUsMeter_class,
&RightCPUsMeter_class,
&LeftCPUs2Meter_class,
&RightCPUs2Meter_class,
&LeftCPUs4Meter_class,
&RightCPUs4Meter_class,
+ &LeftCPUs8Meter_class,
+ &RightCPUs8Meter_class,
&BlankMeter_class,
NULL
};
diff --git a/freebsd/Platform.c b/freebsd/Platform.c
index e0bce04e..318b3e12 100644
--- a/freebsd/Platform.c
+++ b/freebsd/Platform.c
@@ -90,12 +90,15 @@ MeterClass* Platform_meterTypes[] = {
&AllCPUsMeter_class,
&AllCPUs2Meter_class,
&AllCPUs4Meter_class,
+ &AllCPUs8Meter_class,
&LeftCPUsMeter_class,
&RightCPUsMeter_class,
&LeftCPUs2Meter_class,
&RightCPUs2Meter_class,
&LeftCPUs4Meter_class,
&RightCPUs4Meter_class,
+ &LeftCPUs8Meter_class,
+ &RightCPUs8Meter_class,
&BlankMeter_class,
&ZfsArcMeter_class,
&ZfsCompressedArcMeter_class,
diff --git a/linux/Platform.c b/linux/Platform.c
index c579adeb..58bc3bea 100644
--- a/linux/Platform.c
+++ b/linux/Platform.c
@@ -114,12 +114,15 @@ MeterClass* Platform_meterTypes[] = {
&AllCPUsMeter_class,
&AllCPUs2Meter_class,
&AllCPUs4Meter_class,
+ &AllCPUs8Meter_class,
&LeftCPUsMeter_class,
&RightCPUsMeter_class,
&LeftCPUs2Meter_class,
&RightCPUs2Meter_class,
&LeftCPUs4Meter_class,
&RightCPUs4Meter_class,
+ &LeftCPUs8Meter_class,
+ &RightCPUs8Meter_class,
&BlankMeter_class,
&PressureStallCPUSomeMeter_class,
&PressureStallIOSomeMeter_class,
diff --git a/openbsd/Platform.c b/openbsd/Platform.c
index 4fda8e0e..2c8bc7ae 100644
--- a/openbsd/Platform.c
+++ b/openbsd/Platform.c
@@ -102,12 +102,15 @@ MeterClass* Platform_meterTypes[] = {
&AllCPUsMeter_class,
&AllCPUs2Meter_class,
&AllCPUs4Meter_class,
+ &AllCPUs8Meter_class,
&LeftCPUsMeter_class,
&RightCPUsMeter_class,
&LeftCPUs2Meter_class,
&RightCPUs2Meter_class,
&LeftCPUs4Meter_class,
&RightCPUs4Meter_class,
+ &LeftCPUs8Meter_class,
+ &RightCPUs8Meter_class,
&BlankMeter_class,
NULL
};
diff --git a/solaris/Platform.c b/solaris/Platform.c
index dcdf0bbc..05b44462 100644
--- a/solaris/Platform.c
+++ b/solaris/Platform.c
@@ -99,12 +99,15 @@ MeterClass* Platform_meterTypes[] = {
&AllCPUsMeter_class,
&AllCPUs2Meter_class,
&AllCPUs4Meter_class,
+ &AllCPUs8Meter_class,
&LeftCPUsMeter_class,
&RightCPUsMeter_class,
&LeftCPUs2Meter_class,
&RightCPUs2Meter_class,
&LeftCPUs4Meter_class,
&RightCPUs4Meter_class,
+ &LeftCPUs8Meter_class,
+ &RightCPUs8Meter_class,
&ZfsArcMeter_class,
&ZfsCompressedArcMeter_class,
&BlankMeter_class,
diff --git a/unsupported/Platform.c b/unsupported/Platform.c
index 5c22b573..b095e126 100644
--- a/unsupported/Platform.c
+++ b/unsupported/Platform.c
@@ -70,12 +70,15 @@ MeterClass* Platform_meterTypes[] = {
&AllCPUsMeter_class,
&AllCPUs2Meter_class,
&AllCPUs4Meter_class,
+ &AllCPUs8Meter_class,
&LeftCPUsMeter_class,
&RightCPUsMeter_class,
&LeftCPUs2Meter_class,
&RightCPUs2Meter_class,
&LeftCPUs4Meter_class,
&RightCPUs4Meter_class,
+ &LeftCPUs8Meter_class,
+ &RightCPUs8Meter_class,
&BlankMeter_class,
NULL
};

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