Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 33 additions & 53 deletions CPUMeter.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ in the source distribution for its full text.

#include "CPUMeter.h"

#include <assert.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdlib.h>
Expand Down Expand Up @@ -233,7 +234,7 @@ static void AllCPUsMeter_updateValues(Meter* this) {
Meter_updateValues(meters[i]);
}

static void CPUMeterCommonInit(Meter* this, int ncol) {
static void CPUMeterCommonInit(Meter* this) {
unsigned int cpus = this->host->existingCPUs;
CPUMeterData* data = this->meterData;
if (!data) {
Expand All @@ -250,24 +251,19 @@ static void CPUMeterCommonInit(Meter* this, int ncol) {

Meter_init(meters[i]);
}

if (this->mode == 0)
this->mode = BAR_METERMODE;

int h = Meter_modes[this->mode]->h;
this->h = h * ((count + ncol - 1) / ncol);
}

static void CPUMeterCommonUpdateMode(Meter* this, int mode, int ncol) {
static void CPUMeterCommonUpdateMode(Meter* this, MeterModeId mode, int ncol) {
CPUMeterData* data = this->meterData;
Meter** meters = data->meters;
this->mode = mode;
int h = Meter_modes[mode]->h;
int start, count;
AllCPUsMeter_getRange(this, &start, &count);
for (int i = 0; i < count; i++) {
Meter_setMode(meters[i], mode);
}
int h = meters[0]->h;
assert(h > 0);
this->h = h * ((count + ncol - 1) / ncol);
}

Expand All @@ -282,35 +278,19 @@ static void AllCPUsMeter_done(Meter* this) {
free(data);
}

static void SingleColCPUsMeter_init(Meter* this) {
CPUMeterCommonInit(this, 1);
}

static void SingleColCPUsMeter_updateMode(Meter* this, int mode) {
static void SingleColCPUsMeter_updateMode(Meter* this, MeterModeId mode) {
CPUMeterCommonUpdateMode(this, mode, 1);
}

static void DualColCPUsMeter_init(Meter* this) {
CPUMeterCommonInit(this, 2);
}

static void DualColCPUsMeter_updateMode(Meter* this, int mode) {
static void DualColCPUsMeter_updateMode(Meter* this, MeterModeId mode) {
CPUMeterCommonUpdateMode(this, mode, 2);
}

static void QuadColCPUsMeter_init(Meter* this) {
CPUMeterCommonInit(this, 4);
}

static void QuadColCPUsMeter_updateMode(Meter* this, int mode) {
static void QuadColCPUsMeter_updateMode(Meter* this, MeterModeId mode) {
CPUMeterCommonUpdateMode(this, mode, 4);
}

static void OctoColCPUsMeter_init(Meter* this) {
CPUMeterCommonInit(this, 8);
}

static void OctoColCPUsMeter_updateMode(Meter* this, int mode) {
static void OctoColCPUsMeter_updateMode(Meter* this, MeterModeId mode) {
CPUMeterCommonUpdateMode(this, mode, 8);
}

Expand Down Expand Up @@ -380,15 +360,15 @@ const MeterClass AllCPUsMeter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
.defaultMode = CUSTOM_METERMODE,
.defaultMode = BAR_METERMODE,
.total = 100.0,
.attributes = CPUMeter_attributes,
.name = "AllCPUs",
.uiName = "CPUs (1/1)",
.description = "CPUs (1/1): all CPUs",
.caption = "CPU",
.draw = SingleColCPUsMeter_draw,
.init = SingleColCPUsMeter_init,
.init = CPUMeterCommonInit,
.updateMode = SingleColCPUsMeter_updateMode,
.done = AllCPUsMeter_done
};
Expand All @@ -400,7 +380,7 @@ const MeterClass AllCPUs2Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
.defaultMode = CUSTOM_METERMODE,
.defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
Expand All @@ -409,7 +389,7 @@ const MeterClass AllCPUs2Meter_class = {
.description = "CPUs (1&2/2): all CPUs in 2 shorter columns",
.caption = "CPU",
.draw = DualColCPUsMeter_draw,
.init = DualColCPUsMeter_init,
.init = CPUMeterCommonInit,
.updateMode = DualColCPUsMeter_updateMode,
.done = AllCPUsMeter_done
};
Expand All @@ -421,7 +401,7 @@ const MeterClass LeftCPUsMeter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
.defaultMode = CUSTOM_METERMODE,
.defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
Expand All @@ -430,7 +410,7 @@ const MeterClass LeftCPUsMeter_class = {
.description = "CPUs (1/2): first half of list",
.caption = "CPU",
.draw = SingleColCPUsMeter_draw,
.init = SingleColCPUsMeter_init,
.init = CPUMeterCommonInit,
.updateMode = SingleColCPUsMeter_updateMode,
.done = AllCPUsMeter_done
};
Expand All @@ -442,7 +422,7 @@ const MeterClass RightCPUsMeter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
.defaultMode = CUSTOM_METERMODE,
.defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
Expand All @@ -451,7 +431,7 @@ const MeterClass RightCPUsMeter_class = {
.description = "CPUs (2/2): second half of list",
.caption = "CPU",
.draw = SingleColCPUsMeter_draw,
.init = SingleColCPUsMeter_init,
.init = CPUMeterCommonInit,
.updateMode = SingleColCPUsMeter_updateMode,
.done = AllCPUsMeter_done
};
Expand All @@ -463,7 +443,7 @@ const MeterClass LeftCPUs2Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
.defaultMode = CUSTOM_METERMODE,
.defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
Expand All @@ -472,7 +452,7 @@ const MeterClass LeftCPUs2Meter_class = {
.description = "CPUs (1&2/4): first half in 2 shorter columns",
.caption = "CPU",
.draw = DualColCPUsMeter_draw,
.init = DualColCPUsMeter_init,
.init = CPUMeterCommonInit,
.updateMode = DualColCPUsMeter_updateMode,
.done = AllCPUsMeter_done
};
Expand All @@ -484,7 +464,7 @@ const MeterClass RightCPUs2Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
.defaultMode = CUSTOM_METERMODE,
.defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
Expand All @@ -493,7 +473,7 @@ const MeterClass RightCPUs2Meter_class = {
.description = "CPUs (3&4/4): second half in 2 shorter columns",
.caption = "CPU",
.draw = DualColCPUsMeter_draw,
.init = DualColCPUsMeter_init,
.init = CPUMeterCommonInit,
.updateMode = DualColCPUsMeter_updateMode,
.done = AllCPUsMeter_done
};
Expand All @@ -505,7 +485,7 @@ const MeterClass AllCPUs4Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
.defaultMode = CUSTOM_METERMODE,
.defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
Expand All @@ -514,7 +494,7 @@ const MeterClass AllCPUs4Meter_class = {
.description = "CPUs (1&2&3&4/4): all CPUs in 4 shorter columns",
.caption = "CPU",
.draw = QuadColCPUsMeter_draw,
.init = QuadColCPUsMeter_init,
.init = CPUMeterCommonInit,
.updateMode = QuadColCPUsMeter_updateMode,
.done = AllCPUsMeter_done
};
Expand All @@ -526,7 +506,7 @@ const MeterClass LeftCPUs4Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
.defaultMode = CUSTOM_METERMODE,
.defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
Expand All @@ -535,7 +515,7 @@ const MeterClass LeftCPUs4Meter_class = {
.description = "CPUs (1-4/8): first half in 4 shorter columns",
.caption = "CPU",
.draw = QuadColCPUsMeter_draw,
.init = QuadColCPUsMeter_init,
.init = CPUMeterCommonInit,
.updateMode = QuadColCPUsMeter_updateMode,
.done = AllCPUsMeter_done
};
Expand All @@ -547,7 +527,7 @@ const MeterClass RightCPUs4Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
.defaultMode = CUSTOM_METERMODE,
.defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
Expand All @@ -556,7 +536,7 @@ const MeterClass RightCPUs4Meter_class = {
.description = "CPUs (5-8/8): second half in 4 shorter columns",
.caption = "CPU",
.draw = QuadColCPUsMeter_draw,
.init = QuadColCPUsMeter_init,
.init = CPUMeterCommonInit,
.updateMode = QuadColCPUsMeter_updateMode,
.done = AllCPUsMeter_done
};
Expand All @@ -568,7 +548,7 @@ const MeterClass AllCPUs8Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
.defaultMode = CUSTOM_METERMODE,
.defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
Expand All @@ -577,7 +557,7 @@ const MeterClass AllCPUs8Meter_class = {
.description = "CPUs (1-8/8): all CPUs in 8 shorter columns",
.caption = "CPU",
.draw = OctoColCPUsMeter_draw,
.init = OctoColCPUsMeter_init,
.init = CPUMeterCommonInit,
.updateMode = OctoColCPUsMeter_updateMode,
.done = AllCPUsMeter_done
};
Expand All @@ -589,7 +569,7 @@ const MeterClass LeftCPUs8Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
.defaultMode = CUSTOM_METERMODE,
.defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
Expand All @@ -598,7 +578,7 @@ const MeterClass LeftCPUs8Meter_class = {
.description = "CPUs (1-8/16): first half in 8 shorter columns",
.caption = "CPU",
.draw = OctoColCPUsMeter_draw,
.init = OctoColCPUsMeter_init,
.init = CPUMeterCommonInit,
.updateMode = OctoColCPUsMeter_updateMode,
.done = AllCPUsMeter_done
};
Expand All @@ -610,7 +590,7 @@ const MeterClass RightCPUs8Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
.defaultMode = CUSTOM_METERMODE,
.defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
Expand All @@ -619,7 +599,7 @@ const MeterClass RightCPUs8Meter_class = {
.description = "CPUs (9-16/16): second half in 8 shorter columns",
.caption = "CPU",
.draw = OctoColCPUsMeter_draw,
.init = OctoColCPUsMeter_init,
.init = CPUMeterCommonInit,
.updateMode = OctoColCPUsMeter_updateMode,
.done = AllCPUsMeter_done
};
4 changes: 2 additions & 2 deletions Header.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,8 +149,8 @@ void Header_writeBackToSettings(const Header* this) {
const Vector* vec = this->columns[col];
int len = Vector_size(vec);

colSettings->names = len ? xCalloc(len + 1, sizeof(char*)) : NULL;
colSettings->modes = len ? xCalloc(len, sizeof(int)) : NULL;
colSettings->names = len ? xCalloc(len + 1, sizeof(*colSettings->names)) : NULL;
colSettings->modes = len ? xCalloc(len, sizeof(*colSettings->modes)) : NULL;
colSettings->len = len;

for (int i = 0; i < len; i++) {
Expand Down
1 change: 1 addition & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ myhtopheaders = \
MemoryMeter.h \
MemorySwapMeter.h \
Meter.h \
MeterMode.h \
MetersPanel.h \
NetworkIOMeter.h \
Object.h \
Expand Down
21 changes: 8 additions & 13 deletions MemorySwapMeter.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,36 +50,31 @@ static void MemorySwapMeter_init(Meter* this) {
MemorySwapMeterData* data = this->meterData;

if (!data) {
data = this->meterData = xMalloc(sizeof(MemorySwapMeterData));
data->memoryMeter = NULL;
data->swapMeter = NULL;
data = this->meterData = xCalloc(1, sizeof(MemorySwapMeterData));
}

if (!data->memoryMeter)
data->memoryMeter = Meter_new(this->host, 0, (const MeterClass*) Class(MemoryMeter));
if (!data->swapMeter)
data->swapMeter = Meter_new(this->host, 0, (const MeterClass*) Class(SwapMeter));

if (Meter_initFn(data->memoryMeter))
if (Meter_initFn(data->memoryMeter)) {
Meter_init(data->memoryMeter);
if (Meter_initFn(data->swapMeter))
}
if (Meter_initFn(data->swapMeter)) {
Meter_init(data->swapMeter);

if (this->mode == 0)
this->mode = BAR_METERMODE;

this->h = MAXIMUM(Meter_modes[data->memoryMeter->mode]->h, Meter_modes[data->swapMeter->mode]->h);
}
}

static void MemorySwapMeter_updateMode(Meter* this, int mode) {
static void MemorySwapMeter_updateMode(Meter* this, MeterModeId mode) {
MemorySwapMeterData* data = this->meterData;

this->mode = mode;

Meter_setMode(data->memoryMeter, mode);
Meter_setMode(data->swapMeter, mode);

this->h = MAXIMUM(Meter_modes[data->memoryMeter->mode]->h, Meter_modes[data->swapMeter->mode]->h);
this->h = MAXIMUM(data->memoryMeter->h, data->swapMeter->h);
}

static void MemorySwapMeter_done(Meter* this) {
Expand All @@ -97,7 +92,7 @@ const MeterClass MemorySwapMeter_class = {
.delete = Meter_delete,
},
.updateValues = MemorySwapMeter_updateValues,
.defaultMode = CUSTOM_METERMODE,
.defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.name = "MemorySwap",
.uiName = "Memory & Swap",
Expand Down
Loading