mirror of https://github.com/xzeldon/htop.git
Hold only a const version of the ProcessList in Meters
This commit is contained in:
parent
f757810f48
commit
72103e9613
2
Meter.c
2
Meter.c
|
@ -31,7 +31,7 @@ const MeterClass Meter_class = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Meter* Meter_new(struct ProcessList_* pl, int param, const MeterClass* type) {
|
Meter* Meter_new(const struct ProcessList_* pl, int param, const MeterClass* type) {
|
||||||
Meter* this = xCalloc(1, sizeof(Meter));
|
Meter* this = xCalloc(1, sizeof(Meter));
|
||||||
Object_setClass(this, type);
|
Object_setClass(this, type);
|
||||||
this->h = 1;
|
this->h = 1;
|
||||||
|
|
4
Meter.h
4
Meter.h
|
@ -74,7 +74,7 @@ struct Meter_ {
|
||||||
int param;
|
int param;
|
||||||
GraphData* drawData;
|
GraphData* drawData;
|
||||||
int h;
|
int h;
|
||||||
ProcessList* pl;
|
const ProcessList* pl;
|
||||||
char curItems;
|
char curItems;
|
||||||
double* values;
|
double* values;
|
||||||
double total;
|
double total;
|
||||||
|
@ -98,7 +98,7 @@ typedef enum {
|
||||||
|
|
||||||
extern const MeterClass Meter_class;
|
extern const MeterClass Meter_class;
|
||||||
|
|
||||||
Meter* Meter_new(ProcessList* pl, int param, const MeterClass* type);
|
Meter* Meter_new(const ProcessList* pl, int param, const MeterClass* type);
|
||||||
|
|
||||||
int Meter_humanUnit(char* buffer, unsigned long int value, int size);
|
int Meter_humanUnit(char* buffer, unsigned long int value, int size);
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ static const int TasksMeter_attributes[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void TasksMeter_updateValues(Meter* this, char* buffer, int len) {
|
static void TasksMeter_updateValues(Meter* this, char* buffer, int len) {
|
||||||
ProcessList* pl = this->pl;
|
const ProcessList* pl = this->pl;
|
||||||
this->values[0] = pl->kernelThreads;
|
this->values[0] = pl->kernelThreads;
|
||||||
this->values[1] = pl->userlandThreads;
|
this->values[1] = pl->userlandThreads;
|
||||||
this->values[2] = pl->totalTasks - pl->kernelThreads - pl->userlandThreads;
|
this->values[2] = pl->totalTasks - pl->kernelThreads - pl->userlandThreads;
|
||||||
|
@ -32,7 +32,7 @@ static void TasksMeter_updateValues(Meter* this, char* buffer, int len) {
|
||||||
if (pl->totalTasks > this->total) {
|
if (pl->totalTasks > this->total) {
|
||||||
this->total = pl->totalTasks;
|
this->total = pl->totalTasks;
|
||||||
}
|
}
|
||||||
if (this->pl->settings->hideKernelThreads) {
|
if (pl->settings->hideKernelThreads) {
|
||||||
this->values[0] = 0;
|
this->values[0] = 0;
|
||||||
}
|
}
|
||||||
xSnprintf(buffer, len, "%d/%d", (int) this->values[3], (int) this->total);
|
xSnprintf(buffer, len, "%d/%d", (int) this->values[3], (int) this->total);
|
||||||
|
|
|
@ -176,8 +176,8 @@ ProcessPidColumn Process_pidColumns[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static double Platform_setCPUAverageValues(Meter* mtr) {
|
static double Platform_setCPUAverageValues(Meter* mtr) {
|
||||||
DarwinProcessList *dpl = (DarwinProcessList *)mtr->pl;
|
const ProcessList *dpl = mtr->pl;
|
||||||
int cpus = dpl->super.cpuCount;
|
int cpus = dpl->cpuCount;
|
||||||
double sumNice = 0.0;
|
double sumNice = 0.0;
|
||||||
double sumNormal = 0.0;
|
double sumNormal = 0.0;
|
||||||
double sumKernel = 0.0;
|
double sumKernel = 0.0;
|
||||||
|
@ -200,9 +200,9 @@ double Platform_setCPUValues(Meter* mtr, int cpu) {
|
||||||
return Platform_setCPUAverageValues(mtr);
|
return Platform_setCPUAverageValues(mtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
DarwinProcessList *dpl = (DarwinProcessList *)mtr->pl;
|
const DarwinProcessList *dpl = (const DarwinProcessList *)mtr->pl;
|
||||||
processor_cpu_load_info_t prev = &dpl->prev_load[cpu-1];
|
const processor_cpu_load_info_t prev = &dpl->prev_load[cpu-1];
|
||||||
processor_cpu_load_info_t curr = &dpl->curr_load[cpu-1];
|
const processor_cpu_load_info_t curr = &dpl->curr_load[cpu-1];
|
||||||
double total = 0;
|
double total = 0;
|
||||||
|
|
||||||
/* Take the sums */
|
/* Take the sums */
|
||||||
|
@ -228,8 +228,8 @@ double Platform_setCPUValues(Meter* mtr, int cpu) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setMemoryValues(Meter* mtr) {
|
void Platform_setMemoryValues(Meter* mtr) {
|
||||||
DarwinProcessList *dpl = (DarwinProcessList *)mtr->pl;
|
const DarwinProcessList *dpl = (const DarwinProcessList *)mtr->pl;
|
||||||
vm_statistics_t vm = &dpl->vm_stats;
|
const struct vm_statistics* vm = &dpl->vm_stats;
|
||||||
double page_K = (double)vm_page_size / (double)1024;
|
double page_K = (double)vm_page_size / (double)1024;
|
||||||
|
|
||||||
mtr->total = dpl->host_info.max_mem / 1024;
|
mtr->total = dpl->host_info.max_mem / 1024;
|
||||||
|
@ -249,13 +249,13 @@ void Platform_setSwapValues(Meter* mtr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setZfsArcValues(Meter* this) {
|
void Platform_setZfsArcValues(Meter* this) {
|
||||||
DarwinProcessList* dpl = (DarwinProcessList*) this->pl;
|
const DarwinProcessList* dpl = (const DarwinProcessList*) this->pl;
|
||||||
|
|
||||||
ZfsArcMeter_readStats(this, &(dpl->zfs));
|
ZfsArcMeter_readStats(this, &(dpl->zfs));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setZfsCompressedArcValues(Meter* this) {
|
void Platform_setZfsCompressedArcValues(Meter* this) {
|
||||||
DarwinProcessList* dpl = (DarwinProcessList*) this->pl;
|
const DarwinProcessList* dpl = (const DarwinProcessList*) this->pl;
|
||||||
|
|
||||||
ZfsCompressedArcMeter_readStats(this, &(dpl->zfs));
|
ZfsCompressedArcMeter_readStats(this, &(dpl->zfs));
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,9 +149,9 @@ int Platform_getMaxPid() {
|
||||||
}
|
}
|
||||||
|
|
||||||
double Platform_setCPUValues(Meter* this, int cpu) {
|
double Platform_setCPUValues(Meter* this, int cpu) {
|
||||||
DragonFlyBSDProcessList* fpl = (DragonFlyBSDProcessList*) this->pl;
|
const DragonFlyBSDProcessList* fpl = (const DragonFlyBSDProcessList*) this->pl;
|
||||||
int cpus = this->pl->cpuCount;
|
int cpus = this->pl->cpuCount;
|
||||||
CPUData* cpuData;
|
const CPUData* cpuData;
|
||||||
|
|
||||||
if (cpus == 1) {
|
if (cpus == 1) {
|
||||||
// single CPU box has everything in fpl->cpus[0]
|
// single CPU box has everything in fpl->cpus[0]
|
||||||
|
@ -186,7 +186,7 @@ double Platform_setCPUValues(Meter* this, int cpu) {
|
||||||
|
|
||||||
void Platform_setMemoryValues(Meter* this) {
|
void Platform_setMemoryValues(Meter* this) {
|
||||||
// TODO
|
// TODO
|
||||||
ProcessList* pl = (ProcessList*) this->pl;
|
const ProcessList* pl = this->pl;
|
||||||
|
|
||||||
this->total = pl->totalMem;
|
this->total = pl->totalMem;
|
||||||
this->values[0] = pl->usedMem;
|
this->values[0] = pl->usedMem;
|
||||||
|
@ -195,7 +195,7 @@ void Platform_setMemoryValues(Meter* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setSwapValues(Meter* this) {
|
void Platform_setSwapValues(Meter* this) {
|
||||||
ProcessList* pl = (ProcessList*) this->pl;
|
const ProcessList* pl = this->pl;
|
||||||
this->total = pl->totalSwap;
|
this->total = pl->totalSwap;
|
||||||
this->values[0] = pl->usedSwap;
|
this->values[0] = pl->usedSwap;
|
||||||
}
|
}
|
||||||
|
|
|
@ -157,9 +157,9 @@ int Platform_getMaxPid() {
|
||||||
}
|
}
|
||||||
|
|
||||||
double Platform_setCPUValues(Meter* this, int cpu) {
|
double Platform_setCPUValues(Meter* this, int cpu) {
|
||||||
FreeBSDProcessList* fpl = (FreeBSDProcessList*) this->pl;
|
const FreeBSDProcessList* fpl = (const FreeBSDProcessList*) this->pl;
|
||||||
int cpus = this->pl->cpuCount;
|
int cpus = this->pl->cpuCount;
|
||||||
CPUData* cpuData;
|
const CPUData* cpuData;
|
||||||
|
|
||||||
if (cpus == 1) {
|
if (cpus == 1) {
|
||||||
// single CPU box has everything in fpl->cpus[0]
|
// single CPU box has everything in fpl->cpus[0]
|
||||||
|
@ -194,7 +194,7 @@ double Platform_setCPUValues(Meter* this, int cpu) {
|
||||||
|
|
||||||
void Platform_setMemoryValues(Meter* this) {
|
void Platform_setMemoryValues(Meter* this) {
|
||||||
// TODO
|
// TODO
|
||||||
ProcessList* pl = (ProcessList*) this->pl;
|
const ProcessList* pl = this->pl;
|
||||||
|
|
||||||
this->total = pl->totalMem;
|
this->total = pl->totalMem;
|
||||||
this->values[0] = pl->usedMem;
|
this->values[0] = pl->usedMem;
|
||||||
|
@ -203,19 +203,19 @@ void Platform_setMemoryValues(Meter* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setSwapValues(Meter* this) {
|
void Platform_setSwapValues(Meter* this) {
|
||||||
ProcessList* pl = (ProcessList*) this->pl;
|
const ProcessList* pl = this->pl;
|
||||||
this->total = pl->totalSwap;
|
this->total = pl->totalSwap;
|
||||||
this->values[0] = pl->usedSwap;
|
this->values[0] = pl->usedSwap;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setZfsArcValues(Meter* this) {
|
void Platform_setZfsArcValues(Meter* this) {
|
||||||
FreeBSDProcessList* fpl = (FreeBSDProcessList*) this->pl;
|
const FreeBSDProcessList* fpl = (const FreeBSDProcessList*) this->pl;
|
||||||
|
|
||||||
ZfsArcMeter_readStats(this, &(fpl->zfs));
|
ZfsArcMeter_readStats(this, &(fpl->zfs));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setZfsCompressedArcValues(Meter* this) {
|
void Platform_setZfsCompressedArcValues(Meter* this) {
|
||||||
FreeBSDProcessList* fpl = (FreeBSDProcessList*) this->pl;
|
const FreeBSDProcessList* fpl = (const FreeBSDProcessList*) this->pl;
|
||||||
|
|
||||||
ZfsCompressedArcMeter_readStats(this, &(fpl->zfs));
|
ZfsCompressedArcMeter_readStats(this, &(fpl->zfs));
|
||||||
}
|
}
|
||||||
|
|
|
@ -189,8 +189,8 @@ int Platform_getMaxPid() {
|
||||||
}
|
}
|
||||||
|
|
||||||
double Platform_setCPUValues(Meter* this, int cpu) {
|
double Platform_setCPUValues(Meter* this, int cpu) {
|
||||||
LinuxProcessList* pl = (LinuxProcessList*) this->pl;
|
const LinuxProcessList* pl = (const LinuxProcessList*) this->pl;
|
||||||
CPUData* cpuData = &(pl->cpus[cpu]);
|
const CPUData* cpuData = &(pl->cpus[cpu]);
|
||||||
double total = (double) ( cpuData->totalPeriod == 0 ? 1 : cpuData->totalPeriod);
|
double total = (double) ( cpuData->totalPeriod == 0 ? 1 : cpuData->totalPeriod);
|
||||||
double percent;
|
double percent;
|
||||||
double* v = this->values;
|
double* v = this->values;
|
||||||
|
@ -224,8 +224,8 @@ double Platform_setCPUValues(Meter* this, int cpu) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setMemoryValues(Meter* this) {
|
void Platform_setMemoryValues(Meter* this) {
|
||||||
ProcessList* pl = this->pl;
|
const ProcessList* pl = this->pl;
|
||||||
LinuxProcessList* lpl = (LinuxProcessList*) this->pl;
|
const LinuxProcessList* lpl = (const LinuxProcessList*) pl;
|
||||||
|
|
||||||
long int usedMem = pl->usedMem;
|
long int usedMem = pl->usedMem;
|
||||||
long int buffersMem = pl->buffersMem;
|
long int buffersMem = pl->buffersMem;
|
||||||
|
@ -243,19 +243,19 @@ void Platform_setMemoryValues(Meter* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setSwapValues(Meter* this) {
|
void Platform_setSwapValues(Meter* this) {
|
||||||
ProcessList* pl = (ProcessList*) this->pl;
|
const ProcessList* pl = this->pl;
|
||||||
this->total = pl->totalSwap;
|
this->total = pl->totalSwap;
|
||||||
this->values[0] = pl->usedSwap;
|
this->values[0] = pl->usedSwap;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setZfsArcValues(Meter* this) {
|
void Platform_setZfsArcValues(Meter* this) {
|
||||||
LinuxProcessList* lpl = (LinuxProcessList*) this->pl;
|
const LinuxProcessList* lpl = (const LinuxProcessList*) this->pl;
|
||||||
|
|
||||||
ZfsArcMeter_readStats(this, &(lpl->zfs));
|
ZfsArcMeter_readStats(this, &(lpl->zfs));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setZfsCompressedArcValues(Meter* this) {
|
void Platform_setZfsCompressedArcValues(Meter* this) {
|
||||||
LinuxProcessList* lpl = (LinuxProcessList*) this->pl;
|
const LinuxProcessList* lpl = (const LinuxProcessList*) this->pl;
|
||||||
|
|
||||||
ZfsCompressedArcMeter_readStats(this, &(lpl->zfs));
|
ZfsCompressedArcMeter_readStats(this, &(lpl->zfs));
|
||||||
}
|
}
|
||||||
|
|
|
@ -189,7 +189,7 @@ double Platform_setCPUValues(Meter* this, int cpu) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setMemoryValues(Meter* this) {
|
void Platform_setMemoryValues(Meter* this) {
|
||||||
ProcessList* pl = (ProcessList*) this->pl;
|
const ProcessList* pl = this->pl;
|
||||||
long int usedMem = pl->usedMem;
|
long int usedMem = pl->usedMem;
|
||||||
long int buffersMem = pl->buffersMem;
|
long int buffersMem = pl->buffersMem;
|
||||||
long int cachedMem = pl->cachedMem;
|
long int cachedMem = pl->cachedMem;
|
||||||
|
@ -207,7 +207,7 @@ void Platform_setMemoryValues(Meter* this) {
|
||||||
* Taken almost directly from OpenBSD's top(1)
|
* Taken almost directly from OpenBSD's top(1)
|
||||||
*/
|
*/
|
||||||
void Platform_setSwapValues(Meter* this) {
|
void Platform_setSwapValues(Meter* this) {
|
||||||
ProcessList* pl = (ProcessList*) this->pl;
|
const ProcessList* pl = this->pl;
|
||||||
struct swapent *swdev;
|
struct swapent *swdev;
|
||||||
unsigned long long int total, used;
|
unsigned long long int total, used;
|
||||||
int nswap, rnswap, i;
|
int nswap, rnswap, i;
|
||||||
|
|
|
@ -167,9 +167,9 @@ int Platform_getMaxPid() {
|
||||||
}
|
}
|
||||||
|
|
||||||
double Platform_setCPUValues(Meter* this, int cpu) {
|
double Platform_setCPUValues(Meter* this, int cpu) {
|
||||||
SolarisProcessList* spl = (SolarisProcessList*) this->pl;
|
const SolarisProcessList* spl = (const SolarisProcessList*) this->pl;
|
||||||
int cpus = this->pl->cpuCount;
|
int cpus = this->pl->cpuCount;
|
||||||
CPUData* cpuData = NULL;
|
const CPUData* cpuData = NULL;
|
||||||
|
|
||||||
if (cpus == 1) {
|
if (cpus == 1) {
|
||||||
// single CPU box has everything in spl->cpus[0]
|
// single CPU box has everything in spl->cpus[0]
|
||||||
|
@ -203,7 +203,7 @@ double Platform_setCPUValues(Meter* this, int cpu) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setMemoryValues(Meter* this) {
|
void Platform_setMemoryValues(Meter* this) {
|
||||||
ProcessList* pl = (ProcessList*) this->pl;
|
const ProcessList* pl = this->pl;
|
||||||
this->total = pl->totalMem;
|
this->total = pl->totalMem;
|
||||||
this->values[0] = pl->usedMem;
|
this->values[0] = pl->usedMem;
|
||||||
this->values[1] = pl->buffersMem;
|
this->values[1] = pl->buffersMem;
|
||||||
|
@ -211,19 +211,19 @@ void Platform_setMemoryValues(Meter* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setSwapValues(Meter* this) {
|
void Platform_setSwapValues(Meter* this) {
|
||||||
ProcessList* pl = (ProcessList*) this->pl;
|
const ProcessList* pl = this->pl;
|
||||||
this->total = pl->totalSwap;
|
this->total = pl->totalSwap;
|
||||||
this->values[0] = pl->usedSwap;
|
this->values[0] = pl->usedSwap;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setZfsArcValues(Meter* this) {
|
void Platform_setZfsArcValues(Meter* this) {
|
||||||
SolarisProcessList* spl = (SolarisProcessList*) this->pl;
|
const SolarisProcessList* spl = (const SolarisProcessList*) this->pl;
|
||||||
|
|
||||||
ZfsArcMeter_readStats(this, &(spl->zfs));
|
ZfsArcMeter_readStats(this, &(spl->zfs));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Platform_setZfsCompressedArcValues(Meter* this) {
|
void Platform_setZfsCompressedArcValues(Meter* this) {
|
||||||
SolarisProcessList* spl = (SolarisProcessList*) this->pl;
|
const SolarisProcessList* spl = (const SolarisProcessList*) this->pl;
|
||||||
|
|
||||||
ZfsCompressedArcMeter_readStats(this, &(spl->zfs));
|
ZfsCompressedArcMeter_readStats(this, &(spl->zfs));
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ static const int ZfsArcMeter_attributes[] = {
|
||||||
ZFS_MFU, ZFS_MRU, ZFS_ANON, ZFS_HEADER, ZFS_OTHER
|
ZFS_MFU, ZFS_MRU, ZFS_ANON, ZFS_HEADER, ZFS_OTHER
|
||||||
};
|
};
|
||||||
|
|
||||||
void ZfsArcMeter_readStats(Meter* this, ZfsArcStats* stats) {
|
void ZfsArcMeter_readStats(Meter* this, const ZfsArcStats* stats) {
|
||||||
this->total = stats->max;
|
this->total = stats->max;
|
||||||
this->values[0] = stats->MFU;
|
this->values[0] = stats->MFU;
|
||||||
this->values[1] = stats->MRU;
|
this->values[1] = stats->MRU;
|
||||||
|
|
|
@ -11,7 +11,7 @@ in the source distribution for its full text.
|
||||||
|
|
||||||
#include "Meter.h"
|
#include "Meter.h"
|
||||||
|
|
||||||
void ZfsArcMeter_readStats(Meter* this, ZfsArcStats* stats);
|
void ZfsArcMeter_readStats(Meter* this, const ZfsArcStats* stats);
|
||||||
|
|
||||||
extern const MeterClass ZfsArcMeter_class;
|
extern const MeterClass ZfsArcMeter_class;
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ static const int ZfsCompressedArcMeter_attributes[] = {
|
||||||
ZFS_COMPRESSED
|
ZFS_COMPRESSED
|
||||||
};
|
};
|
||||||
|
|
||||||
void ZfsCompressedArcMeter_readStats(Meter* this, ZfsArcStats* stats) {
|
void ZfsCompressedArcMeter_readStats(Meter* this, const ZfsArcStats* stats) {
|
||||||
if ( stats->isCompressed ) {
|
if ( stats->isCompressed ) {
|
||||||
this->total = stats->uncompressed;
|
this->total = stats->uncompressed;
|
||||||
this->values[0] = stats->compressed;
|
this->values[0] = stats->compressed;
|
||||||
|
|
|
@ -11,7 +11,7 @@ in the source distribution for its full text.
|
||||||
|
|
||||||
#include "Meter.h"
|
#include "Meter.h"
|
||||||
|
|
||||||
void ZfsCompressedArcMeter_readStats(Meter* this, ZfsArcStats* stats);
|
void ZfsCompressedArcMeter_readStats(Meter* this, const ZfsArcStats* stats);
|
||||||
|
|
||||||
extern const MeterClass ZfsCompressedArcMeter_class;
|
extern const MeterClass ZfsCompressedArcMeter_class;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue