From 7246dc4381c6c95454672a5c1aff65a02d6d3747 Mon Sep 17 00:00:00 2001 From: Laslo Hunhold Date: Sun, 24 Sep 2017 15:33:01 +0200 Subject: Move components into dedicated subdirectory This brings us a lot more tidiness. --- components/cpu.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 components/cpu.c (limited to 'components/cpu.c') diff --git a/components/cpu.c b/components/cpu.c new file mode 100644 index 0000000..4a4a80b --- /dev/null +++ b/components/cpu.c @@ -0,0 +1,63 @@ +/* See LICENSE file for copyright and license details. */ +#include +#include + +#include "../util.h" + +const char * +cpu_freq(void) +{ + int freq; + + return (pscanf("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", + "%i", &freq) == 1) ? + bprintf("%d", (freq + 500) / 1000) : NULL; +} + +const char * +cpu_perc(void) +{ + int perc; + static long double a[7]; + static int valid; + long double b[7]; + + memcpy(b, a, sizeof(b)); + if (pscanf("/proc/stat", "%*s %Lf %Lf %Lf %Lf %Lf %Lf %Lf", &a[0], &a[1], &a[2], + &a[3], &a[4], &a[5], &a[6]) != 7) { + return NULL; + } + if (!valid) { + valid = 1; + return NULL; + } + + perc = 100 * ((b[0]+b[1]+b[2]+b[5]+b[6]) - (a[0]+a[1]+a[2]+a[5]+a[6])) / + ((b[0]+b[1]+b[2]+b[3]+b[4]+b[5]+b[6]) - (a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6])); + + return bprintf("%d", perc); +} + +const char * +cpu_iowait(void) +{ + int perc; + static int valid; + static long double a[7]; + long double b[7]; + + memcpy(b, a, sizeof(b)); + if (pscanf("/proc/stat", "%*s %Lf %Lf %Lf %Lf %Lf %Lf %Lf", &a[0], &a[1], &a[2], + &a[3], &a[4], &a[5], &a[6]) != 7) { + return NULL; + } + if (!valid) { + valid = 1; + return NULL; + } + + perc = 100 * ((b[4]) - (a[4])) / + ((b[0]+b[1]+b[2]+b[3]+b[4]+b[5]+b[6]) - (a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6])); + + return bprintf("%d", perc); +} -- cgit v1.2.3