mirror of
https://github.com/xzeldon/htop.git
synced 2025-07-12 12:14:36 +03:00
Add new display option to also show CPU frequency in CPU meters.
The option is only implemented on Linux. On other platforms, and on Linuxes that do not expose the relevant sysfs file, the frequency will be 0. The "CPU average" meter does not show a frequency, only the individual per-CPU meters.
This commit is contained in:
@ -192,6 +192,22 @@ double Platform_setCPUValues(Meter* this, int cpu) {
|
||||
}
|
||||
percent = CLAMP(percent, 0.0, 100.0);
|
||||
if (isnan(percent)) percent = 0.0;
|
||||
|
||||
v[CPU_METER_FREQUENCY] = 0;
|
||||
if (this->pl->settings->showCPUFrequency) {
|
||||
char filename[63+1];
|
||||
xSnprintf(filename, 63, "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_cur_freq", cpu - 1);
|
||||
FILE* fd = fopen(filename, "r");
|
||||
if (fd) {
|
||||
unsigned int cpuFrequency;
|
||||
int n = fscanf(fd, "%u", &cpuFrequency);
|
||||
fclose(fd);
|
||||
if (n > 0) {
|
||||
v[CPU_METER_FREQUENCY] = cpuFrequency;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return percent;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user