commit 832b21ca4b4ba866e010a6f52c0f84919c7123f2
parent 259e967cbf855d1ed3886c7afafb1bfe6ab11645
Author: Aaron Marcher <[email protected]>
Date:   Mon, 12 Jun 2017 23:56:21 +0200
add cpu_freq function
Diffstat:
2 files changed, 19 insertions(+), 0 deletions(-)
diff --git 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
@@ -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);
@@ -168,6 +169,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)
 {
 	int perc;