From 832b21ca4b4ba866e010a6f52c0f84919c7123f2 Mon Sep 17 00:00:00 2001 From: Aaron Marcher Date: Mon, 12 Jun 2017 23:56:21 +0200 Subject: add cpu_freq function --- config.def.h | 1 + slstatus.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/config.def.h b/config.def.h index 426cc28..da26001 100644 --- a/config.def.h +++ b/config.def.h @@ -11,6 +11,7 @@ - battery_power (battery power usage) [argument: battery name] - battery_state (battery charging state) [argument: battery name] - cpu_perc (cpu usage in percent) [argument: NULL] +- cpu_freq (cpu frequency) [argument: NULL] - datetime (date and time) [argument: format] - disk_free (free disk space in GB) [argument: mountpoint] - disk_perc (disk usage in percent) [argument: mountpoint] diff --git a/slstatus.c b/slstatus.c index caccc6e..993eba4 100644 --- a/slstatus.c +++ b/slstatus.c @@ -37,6 +37,7 @@ static char *smprintf(const char *fmt, ...); static char *battery_perc(const char *bat); static char *battery_power(const char *bat); static char *battery_state(const char *bat); +static char *cpu_freq(void); static char *cpu_perc(void); static char *datetime(const char *fmt); static char *disk_free(const char *mnt); @@ -167,6 +168,23 @@ battery_state(const char *bat) } } +static char * +cpu_freq(void) +{ + int freq; + FILE *fp; + + fp = fopen("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", "r"); + if (fp == NULL) { + warn("Failed to open file /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq"); + return smprintf("%s", UNKNOWN_STR); + } + fscanf(fp, "%i", &freq); + fclose(fp); + + return smprintf("%d", (freq + 500) / 1000); +} + static char * cpu_perc(void) { -- cgit v1.2.3