commit 9750a3d731cd381e832bcacf1d03e48ddb46cc16
parent 42edfea89a47cbf0623d1aaf5673a4e5ca79fb52
Author: Laslo Hunhold <dev@frign.de>
Date: Tue, 1 May 2018 19:01:22 +0200
Use indentation to increase readability
Granted, this style is definitely not common, but for the short
utility-functions of this program it's just the right choice. This
provides great flexibility, such that in the long run, it will be
possible to also share code between the OS-implementations.
This also keeps the state-keeping at a minimum and makes it clearer
which functions are implemented on which OS without having to jiggle
around with too many files in the process.
Diffstat:
M | LICENSE | | | 2 | +- |
M | components/battery.c | | | 138 | ++++++++++++++++++++++++++++++++++++++++---------------------------------------- |
M | components/cpu.c | | | 136 | +++++++++++++++++++++++++++++++++++++++++-------------------------------------- |
M | components/entropy.c | | | 21 | ++++++++++++--------- |
M | components/ram.c | | | 220 | ++++++++++++++++++++++++++++++++++++++++--------------------------------------- |
M | components/swap.c | | | 260 | ++++++++++++++++++++++++++++++++++++++++++------------------------------------- |
M | components/temperature.c | | | 76 | +++++++++++++++++++++++++++++++++++++++------------------------------------- |
M | components/uptime.c | | | 101 | +++++++++++++++++++++++++++++++++++++++---------------------------------------- |
M | components/wifi.c | | | 158 | +++++++++++++++++++++++++++++++++++++++++-------------------------------------- |
9 files changed, 573 insertions(+), 539 deletions(-)
diff --git a/LICENSE b/LICENSE
@@ -11,7 +11,7 @@ Copyright 2016-2017 Quentin Rameau <quinq@fifth.space>
Copyright 2016 Mike Coddington <mike@coddington.us>
Copyright 2016-2018 parazyd <parazyd@dyne.org>
Copyright 2017 Tobias Stoeckmann <tobias@stoeckmann.org>
-Copyright 2017 Laslo Hunhold <dev@frign.de>
+Copyright 2017-2018 Laslo Hunhold <dev@frign.de>
Copyright 2018 Darron Anderson <darronanderson@protonmail.com>
Permission to use, copy, modify, and/or distribute this software for any
diff --git a/components/battery.c b/components/battery.c
@@ -2,90 +2,90 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
-#if defined(__linux__)
-#include <limits.h>
-#include <string.h>
-#elif defined(__OpenBSD__)
-#include <sys/ioctl.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <machine/apmvar.h>
-#endif
#include "../util.h"
#if defined(__linux__)
-const char *
-battery_perc(const char *bat)
-{
- int perc;
- char path[PATH_MAX];
+ #include <limits.h>
- snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/", bat, "/capacity");
- return (pscanf(path, "%i", &perc) == 1) ?
- bprintf("%d", perc) : NULL;
-}
-#elif defined(__OpenBSD__)
-const char *
-battery_perc(const char *null)
-{
- struct apm_power_info apm_info;
- int fd;
+ const char *
+ battery_perc(const char *bat)
+ {
+ int perc;
+ char path[PATH_MAX];
- fd = open("/dev/apm", O_RDONLY);
- if (fd < 0) {
- fprintf(stderr, "open '/dev/apm': %s\n", strerror(errno));
- return NULL;
+ snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/",
+ bat, "/capacity");
+ return (pscanf(path, "%i", &perc) == 1) ?
+ bprintf("%d", perc) : NULL;
}
- if (ioctl(fd, APM_IOC_GETPOWER, &apm_info) < 0) {
- fprintf(stderr, "ioctl 'APM_IOC_GETPOWER': %s\n", strerror(errno));
- close(fd);
- return NULL;
+ const char *
+ battery_power(const char *bat)
+ {
+ int watts;
+ char path[PATH_MAX];
+
+ snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/",
+ bat, "/power_now");
+ return (pscanf(path, "%i", &watts) == 1) ?
+ bprintf("%d", (watts + 500000) / 1000000) : NULL;
}
- close(fd);
- return bprintf("%d", apm_info.battery_life);
-}
-#endif
+ const char *
+ battery_state(const char *bat)
+ {
+ struct {
+ char *state;
+ char *symbol;
+ } map[] = {
+ { "Charging", "+" },
+ { "Discharging", "-" },
+ { "Full", "=" },
+ { "Unknown", "/" },
+ };
+ size_t i;
+ char path[PATH_MAX], state[12];
-#if defined(__linux__)
-const char *
-battery_power(const char *bat)
-{
- int watts;
- char path[PATH_MAX];
+ snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/",
+ bat, "/status");
+ if (pscanf(path, "%12s", state) != 1) {
+ return NULL;
+ }
- snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/", bat, "/power_now");
- return (pscanf(path, "%i", &watts) == 1) ?
- bprintf("%d", (watts + 500000) / 1000000) : NULL;
-}
+ for (i = 0; i < LEN(map); i++) {
+ if (!strcmp(map[i].state, state)) {
+ break;
+ }
+ }
+ return (i == LEN(map)) ? "?" : map[i].symbol;
+ }
+#elif defined(__OpenBSD__)
+ #include <fcntl.h>
+ #include <machine/apmvar.h>
+ #include <sys/ioctl.h>
+ #include <unistd.h>
-const char *
-battery_state(const char *bat)
-{
- struct {
- char *state;
- char *symbol;
- } map[] = {
- { "Charging", "+" },
- { "Discharging", "-" },
- { "Full", "=" },
- { "Unknown", "/" },
- };
- size_t i;
- char path[PATH_MAX], state[12];
+ const char *
+ battery_perc(const char *null)
+ {
+ struct apm_power_info apm_info;
+ int fd;
- snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/", bat, "/status");
- if (pscanf(path, "%12s", state) != 1) {
- return NULL;
- }
+ fd = open("/dev/apm", O_RDONLY);
+ if (fd < 0) {
+ fprintf(stderr, "open '/dev/apm': %s\n", strerror(errno));
+ return NULL;
+ }
- for (i = 0; i < LEN(map); i++) {
- if (!strcmp(map[i].state, state)) {
- break;
+ if (ioctl(fd, APM_IOC_GETPOWER, &apm_info) < 0) {
+ fprintf(stderr, "ioctl 'APM_IOC_GETPOWER': %s\n",
+ strerror(errno));
+ close(fd);
+ return NULL;
}
+ close(fd);
+
+ return bprintf("%d", apm_info.battery_life);
}
- return (i == LEN(map)) ? "?" : map[i].symbol;
-}
#endif
diff --git a/components/cpu.c b/components/cpu.c
@@ -2,87 +2,91 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
-#if defined(__OpenBSD__)
-#include <sys/sysctl.h>
-#endif
#include "../util.h"
#if defined(__linux__)
-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;
+ 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;
}
- 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]));
+ const char *
+ cpu_perc(void)
+ {
+ int perc;
+ static long double a[7];
+ static int valid;
+ long double b[7];
- return bprintf("%d", perc);
-}
+ 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;
+ }
-const char *
-cpu_iowait(void)
-{
- int perc;
- static int valid;
- static long double a[7];
- long double b[7];
+ 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]));
- 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;
+ return bprintf("%d", perc);
}
- 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]));
+ 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;
+ }
- return bprintf("%d", perc);
-}
+ 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);
+ }
#elif defined(__OpenBSD__)
-const char *
-cpu_freq(void)
-{
- int freq, mib[2];
- size_t size;
+ #include <sys/sysctl.h>
- mib[0] = CTL_HW;
- mib[1] = HW_CPUSPEED;
+ const char *
+ cpu_freq(void)
+ {
+ int freq, mib[2];
+ size_t size;
- size = sizeof(freq);
+ mib[0] = CTL_HW;
+ mib[1] = HW_CPUSPEED;
- if (sysctl(mib, 2, &freq, &size, NULL, 0) == -1) {
- fprintf(stderr, "sysctl 'HW_CPUSPEED': %s\n", strerror(errno));
- return NULL;
- }
+ size = sizeof(freq);
- return bprintf("%d", freq);
-}
+ if (sysctl(mib, 2, &freq, &size, NULL, 0) == -1) {
+ fprintf(stderr, "sysctl 'HW_CPUSPEED': %s\n",
+ strerror(errno));
+ return NULL;
+ }
+
+ return bprintf("%d", freq);
+ }
#endif
diff --git a/components/entropy.c b/components/entropy.c
@@ -1,15 +1,18 @@
/* See LICENSE file for copyright and license details. */
#if defined(__linux__)
-#include <stdio.h>
+ #include <stdio.h>
-#include "../util.h"
+ #include "../util.h"
-const char *
-entropy(void)
-{
- int num;
+ const char *
+ entropy(void)
+ {
+ int num;
- return (pscanf("/proc/sys/kernel/random/entropy_avail", "%d", &num) == 1) ?
- bprintf("%d", num) : NULL;
-}
+ return (pscanf("/proc/sys/kernel/random/entropy_avail",
+ "%d", &num) == 1) ?
+ bprintf("%d", num) : NULL;
+ }
+#elif defined(__OpenBSD__)
+ /* unimplemented */
#endif
diff --git a/components/ram.c b/components/ram.c
@@ -1,129 +1,133 @@
/* See LICENSE file for copyright and license details. */
#include <stdio.h>
-#if defined (__OpenBSD__)
-#include <sys/types.h>
-#include <sys/sysctl.h>
-#include <stdlib.h>
-#include <unistd.h>
-#endif
#include "../util.h"
#if defined(__linux__)
-const char *
-ram_free(void)
-{
- long free;
-
- return (pscanf("/proc/meminfo", "MemFree: %ld kB\n", &free) == 1) ?
- bprintf("%f", (float)free / 1024 / 1024) : NULL;
-}
-
-const char *
-ram_perc(void)
-{
- long total, free, buffers, cached;
-
- return (pscanf("/proc/meminfo",
- "MemTotal: %ld kB\n"
- "MemFree: %ld kB\n"
- "MemAvailable: %ld kB\nBuffers: %ld kB\n"
- "Cached: %ld kB\n",
- &total, &free, &buffers, &buffers, &cached) == 5) ?
- bprintf("%d", 100 * ((total - free) - (buffers + cached)) / total) :
- NULL;
-}
-
-const char *
-ram_total(void)
-{
- long total;
-
- return (pscanf("/proc/meminfo", "MemTotal: %ld kB\n", &total) == 1) ?
- bprintf("%f", (float)total / 1024 / 1024) : NULL;
-}
-
-const char *
-ram_used(void)
-{
- long total, free, buffers, cached;
-
- return (pscanf("/proc/meminfo",
- "MemTotal: %ld kB\n"
- "MemFree: %ld kB\n"
- "MemAvailable: %ld kB\nBuffers: %ld kB\n"
- "Cached: %ld kB\n",
- &total, &free, &buffers, &buffers, &cached) == 5) ?
- bprintf("%f", (float)(total - free - buffers - cached) / 1024 / 1024) :
- NULL;
-}
-#elif defined(__OpenBSD__)
-inline int
-load_uvmexp(struct uvmexp *uvmexp)
-{
- int uvmexp_mib[] = {CTL_VM, VM_UVMEXP};
- size_t size;
-
- size = sizeof(*uvmexp);
-
- return sysctl(uvmexp_mib, 2, uvmexp, &size, NULL, 0) >= 0 ? 1 : 0;
-}
-
-const char *
-ram_free(void)
-{
- struct uvmexp uvmexp;
- float free;
- int free_pages;
-
- if (load_uvmexp(&uvmexp)) {
- free_pages = uvmexp.npages - uvmexp.active;
- free = (double) (free_pages * uvmexp.pagesize) / 1024 / 1024 / 1024;
- return bprintf("%f", free);
+ const char *
+ ram_free(void)
+ {
+ long free;
+
+ return (pscanf("/proc/meminfo", "MemFree: %ld kB\n", &free) == 1) ?
+ bprintf("%f", (float)free / 1024 / 1024) : NULL;
+ }
+
+ const char *
+ ram_perc(void)
+ {
+ long total, free, buffers, cached;
+
+ return (pscanf("/proc/meminfo",
+ "MemTotal: %ld kB\n"
+ "MemFree: %ld kB\n"
+ "MemAvailable: %ld kB\nBuffers: %ld kB\n"
+ "Cached: %ld kB\n",
+ &total, &free, &buffers, &buffers, &cached) == 5) ?
+ bprintf("%d", 100 * ((total - free) - (buffers + cached)) /
+ total) :
+ NULL;
+ }
+
+ const char *
+ ram_total(void)
+ {
+ long total;
+
+ return (pscanf("/proc/meminfo", "MemTotal: %ld kB\n", &total) == 1) ?
+ bprintf("%f", (float)total / 1024 / 1024) : NULL;
}
- return NULL;
-}
+ const char *
+ ram_used(void)
+ {
+ long total, free, buffers, cached;
+
+ return (pscanf("/proc/meminfo",
+ "MemTotal: %ld kB\n"
+ "MemFree: %ld kB\n"
+ "MemAvailable: %ld kB\nBuffers: %ld kB\n"
+ "Cached: %ld kB\n",
+ &total, &free, &buffers, &buffers, &cached) == 5) ?
+ bprintf("%f", (float)(total - free - buffers - cached) /
+ 1024 / 1024) :
+ NULL;
+ }
+#elif defined(__OpenBSD__)
+ #include <sys/types.h>
+ #include <sys/sysctl.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ inline int
+ load_uvmexp(struct uvmexp *uvmexp)
+ {
+ int uvmexp_mib[] = {CTL_VM, VM_UVMEXP};
+ size_t size;
+
+ size = sizeof(*uvmexp);
-const char *
-ram_perc(void)
-{
- struct uvmexp uvmexp;
- int percent;
+ return sysctl(uvmexp_mib, 2, uvmexp, &size, NULL, 0) >= 0 ? 1 : 0;
+ }
- if (load_uvmexp(&uvmexp)) {
- percent = uvmexp.active * 100 / uvmexp.npages;
- return bprintf("%d", percent);
+ const char *
+ ram_free(void)
+ {
+ struct uvmexp uvmexp;
+ float free;
+ int free_pages;
+
+ if (load_uvmexp(&uvmexp)) {
+ free_pages = uvmexp.npages - uvmexp.active;
+ free = (double) (free_pages * uvmexp.pagesize) / 1024 /
+ 1024 / 1024;
+ return bprintf("%f", free);
+ }
+
+ return NULL;
}
- return NULL;
-}
+ const char *
+ ram_perc(void)
+ {
+ struct uvmexp uvmexp;
+ int percent;
-const char *
-ram_total(void)
-{
- struct uvmexp uvmexp;
- float total;
+ if (load_uvmexp(&uvmexp)) {
+ percent = uvmexp.active * 100 / uvmexp.npages;
+ return bprintf("%d", percent);
+ }
- if (load_uvmexp(&uvmexp)) {
- total = (double) (uvmexp.npages * uvmexp.pagesize) / 1024 / 1024 / 1024;
- return bprintf("%f", total);
+ return NULL;
}
- return NULL;
-}
+ const char *
+ ram_total(void)
+ {
+ struct uvmexp uvmexp;
+ float total;
-const char *
-ram_used(void)
-{
- struct uvmexp uvmexp;
- float used;
+ if (load_uvmexp(&uvmexp)) {
+ total = (double) (uvmexp.npages * uvmexp.pagesize) /
+ 1024 / 1024 / 1024;
+ return bprintf("%f", total);
+ }
- if (load_uvmexp(&uvmexp)) {
- used = (double) (uvmexp.active * uvmexp.pagesize) / 1024 / 1024 / 1024;
- return bprintf("%f", used);
+ return NULL;
}
- return NULL;
-}
+ const char *
+ ram_used(void)
+ {
+ struct uvmexp uvmexp;
+ float used;
+
+ if (load_uvmexp(&uvmexp)) {
+ used = (double) (uvmexp.active * uvmexp.pagesize) /
+ 1024 / 1024 / 1024;
+ return bprintf("%f", used);
+ }
+
+ return NULL;
+ }
#endif
diff --git a/components/swap.c b/components/swap.c
@@ -1,138 +1,152 @@
/* See LICENSE file for copyright and license details. */
#if defined(__linux__)
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "../util.h"
-
-const char *
-swap_free(void)
-{
- long total, free;
- FILE *fp;
- size_t bytes_read;
- char *match;
-
- fp = fopen("/proc/meminfo", "r");
- if (fp == NULL) {
- fprintf(stderr, "fopen '/proc/meminfo': %s\n", strerror(errno));
- return NULL;
- }
-
- if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1, fp)) == 0) {
- fprintf(stderr, "fread '/proc/meminfo': %s\n", strerror(errno));
+ #include <errno.h>
+ #include <stdio.h>
+ #include <string.h>
+
+ #include "../util.h"
+
+ const char *
+ swap_free(void)
+ {
+ long total, free;
+ FILE *fp;
+ size_t bytes_read;
+ char *match;
+
+ fp = fopen("/proc/meminfo", "r");
+ if (fp == NULL) {
+ fprintf(stderr, "fopen '/proc/meminfo': %s\n",
+ strerror(errno));
+ return NULL;
+ }
+
+ if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1,
+ fp)) == 0) {
+ fprintf(stderr, "fread '/proc/meminfo': %s\n",
+ strerror(errno));
+ fclose(fp);
+ return NULL;
+ }
fclose(fp);
- return NULL;
- }
- fclose(fp);
-
- if ((match = strstr(buf, "SwapTotal")) == NULL)
- return NULL;
- sscanf(match, "SwapTotal: %ld kB\n", &total);
-
- if ((match = strstr(buf, "SwapFree")) == NULL)
- return NULL;
- sscanf(match, "SwapFree: %ld kB\n", &free);
-
- return bprintf("%f", (float)free / 1024 / 1024);
-}
-
-const char *
-swap_perc(void)
-{
- long total, free, cached;
- FILE *fp;
- size_t bytes_read;
- char *match;
-
- fp = fopen("/proc/meminfo", "r");
- if (fp == NULL) {
- fprintf(stderr, "fopen '/proc/meminfo': %s\n", strerror(errno));
- return NULL;
+
+ if ((match = strstr(buf, "SwapTotal")) == NULL)
+ return NULL;
+ sscanf(match, "SwapTotal: %ld kB\n", &total);
+
+ if ((match = strstr(buf, "SwapFree")) == NULL)
+ return NULL;
+ sscanf(match, "SwapFree: %ld kB\n", &free);
+
+ return bprintf("%f", (float)free / 1024 / 1024);
}
- if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1, fp)) == 0) {
- fprintf(stderr, "fread '/proc/meminfo': %s\n", strerror(errno));
+ const char *
+ swap_perc(void)
+ {
+ long total, free, cached;
+ FILE *fp;
+ size_t bytes_read;
+ char *match;
+
+ fp = fopen("/proc/meminfo", "r");
+ if (fp == NULL) {
+ fprintf(stderr, "fopen '/proc/meminfo': %s\n",
+ strerror(errno));
+ return NULL;
+ }
+
+ if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1,
+ fp)) == 0) {
+ fprintf(stderr, "fread '/proc/meminfo': %s\n",
+ strerror(errno));
+ fclose(fp);
+ return NULL;
+ }
fclose(fp);
- return NULL;
- }
- fclose(fp);
-
- if ((match = strstr(buf, "SwapTotal")) == NULL)
- return NULL;
- sscanf(match, "SwapTotal: %ld kB\n", &total);
-
- if ((match = strstr(buf, "SwapCached")) == NULL)
- return NULL;
- sscanf(match, "SwapCached: %ld kB\n", &cached);
-
- if ((match = strstr(buf, "SwapFree")) == NULL)
- return NULL;
- sscanf(match, "SwapFree: %ld kB\n", &free);
-
- return bprintf("%d", 100 * (total - free - cached) / total);
-}
-
-const char *
-swap_total(void)
-{
- long total;
- FILE *fp;
- size_t bytes_read;
- char *match;
-
- fp = fopen("/proc/meminfo", "r");
- if (fp == NULL) {
- fprintf(stderr, "fopen '/proc/meminfo': %s\n", strerror(errno));
- return NULL;
+
+ if ((match = strstr(buf, "SwapTotal")) == NULL)
+ return NULL;
+ sscanf(match, "SwapTotal: %ld kB\n", &total);
+
+ if ((match = strstr(buf, "SwapCached")) == NULL)
+ return NULL;
+ sscanf(match, "SwapCached: %ld kB\n", &cached);
+
+ if ((match = strstr(buf, "SwapFree")) == NULL)
+ return NULL;
+ sscanf(match, "SwapFree: %ld kB\n", &free);
+
+ return bprintf("%d", 100 * (total - free - cached) / total);
}
- if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1, fp)) == 0) {
- fprintf(stderr, "fread '/proc/meminfo': %s\n", strerror(errno));
+
+ const char *
+ swap_total(void)
+ {
+ long total;
+ FILE *fp;
+ size_t bytes_read;
+ char *match;
+
+ fp = fopen("/proc/meminfo", "r");
+ if (fp == NULL) {
+ fprintf(stderr, "fopen '/proc/meminfo': %s\n",
+ strerror(errno));
+ return NULL;
+ }
+ if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1,
+ fp)) == 0) {
+ fprintf(stderr, "fread '/proc/meminfo': %s\n",
+ strerror(errno));
+ fclose(fp);
+ return NULL;
+ }
fclose(fp);
- return NULL;
- }
- fclose(fp);
-
- if ((match = strstr(buf, "SwapTotal")) == NULL)
- return NULL;
- sscanf(match, "SwapTotal: %ld kB\n", &total);
-
- return bprintf("%f", (float)total / 1024 / 1024);
-}
-
-const char *
-swap_used(void)
-{
- long total, free, cached;
- FILE *fp;
- size_t bytes_read;
- char *match;
-
- fp = fopen("/proc/meminfo", "r");
- if (fp == NULL) {
- fprintf(stderr, "fopen '/proc/meminfo': %s\n", strerror(errno));
- return NULL;
+
+ if ((match = strstr(buf, "SwapTotal")) == NULL)
+ return NULL;
+ sscanf(match, "SwapTotal: %ld kB\n", &total);
+
+ return bprintf("%f", (float)total / 1024 / 1024);
}
- if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1, fp)) == 0) {
- fprintf(stderr, "fread '/proc/meminfo': %s\n", strerror(errno));
+
+ const char *
+ swap_used(void)
+ {
+ long total, free, cached;
+ FILE *fp;
+ size_t bytes_read;
+ char *match;
+
+ fp = fopen("/proc/meminfo", "r");
+ if (fp == NULL) {
+ fprintf(stderr, "fopen '/proc/meminfo': %s\n",
+ strerror(errno));
+ return NULL;
+ }
+ if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1,
+ fp)) == 0) {
+ fprintf(stderr, "fread '/proc/meminfo': %s\n",
+ strerror(errno));
+ fclose(fp);
+ return NULL;
+ }
fclose(fp);
- return NULL;
- }
- fclose(fp);
- if ((match = strstr(buf, "SwapTotal")) == NULL)
- return NULL;
- sscanf(match, "SwapTotal: %ld kB\n", &total);
+ if ((match = strstr(buf, "SwapTotal")) == NULL)
+ return NULL;
+ sscanf(match, "SwapTotal: %ld kB\n", &total);
- if ((match = strstr(buf, "SwapCached")) == NULL)
- return NULL;
- sscanf(match, "SwapCached: %ld kB\n", &cached);
+ if ((match = strstr(buf, "SwapCached")) == NULL)
+ return NULL;
+ sscanf(match, "SwapCached: %ld kB\n", &cached);
- if ((match = strstr(buf, "SwapFree")) == NULL)
- return NULL;
- sscanf(match, "SwapFree: %ld kB\n", &free);
+ if ((match = strstr(buf, "SwapFree")) == NULL)
+ return NULL;
+ sscanf(match, "SwapFree: %ld kB\n", &free);
- return bprintf("%f", (float)(total - free - cached) / 1024 / 1024);
-}
+ return bprintf("%f", (float)(total - free - cached) / 1024 / 1024);
+ }
+#elif defined(__OpenBSD__)
+ /* unimplemented */
#endif
diff --git a/components/temperature.c b/components/temperature.c
@@ -1,45 +1,47 @@
/* See LICENSE file for copyright and license details. */
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#if defined(__OpenBSD__)
-#include <sys/sysctl.h>
-#include <sys/time.h>
-#include <sys/sensors.h>
-#endif
+#include <stddef.h>
#include "../util.h"
#if defined(__linux__)
-const char *
-temp(const char *file)
-{
- int temp;
-
- return (pscanf(file, "%d", &temp) == 1) ?
- bprintf("%d", temp / 1000) : NULL;
-}
-#elif defined(__OpenBSD__)
-const char *
-temp(const char *null)
-{
- int mib[5];
- size_t size;
- struct sensor temp;
-
- mib[0] = CTL_HW;
- mib[1] = HW_SENSORS;
- mib[2] = 0; /* cpu0 */
- mib[3] = SENSOR_TEMP;
- mib[4] = 0; /* temp0 */
-
- size = sizeof(temp);
-
- if (sysctl(mib, 5, &temp, &size, NULL, 0) == -1) {
- fprintf(stderr, "sysctl 'SENSOR_TEMP': %s\n", strerror(errno));
- return NULL;
+ const char *
+ temp(const char *file)
+ {
+ int temp;
+
+ return (pscanf(file, "%d", &temp) == 1) ?
+ bprintf("%d", temp / 1000) : NULL;
}
+#elif defined(__OpenBSD__)
+ #include <errno.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <sys/sysctl.h>
+ #include <sys/time.h>
+ #include <sys/sensors.h>
+
+ const char *
+ temp(const char *null)
+ {
+ int mib[5];
+ size_t size;
+ struct sensor temp;
- return bprintf("%d", (temp.value - 273150000) / 1000000); /* kelvin to celsius */
-}
+ mib[0] = CTL_HW;
+ mib[1] = HW_SENSORS;
+ mib[2] = 0; /* cpu0 */
+ mib[3] = SENSOR_TEMP;
+ mib[4] = 0; /* temp0 */
+
+ size = sizeof(temp);
+
+ if (sysctl(mib, 5, &temp, &size, NULL, 0) == -1) {
+ fprintf(stderr, "sysctl 'SENSOR_TEMP': %s\n",
+ strerror(errno));
+ return NULL;
+ }
+
+ /* kelvin to celsius */
+ return bprintf("%d", (temp.value - 273150000) / 1000000);
+ }
#endif
diff --git a/components/uptime.c b/components/uptime.c
@@ -2,62 +2,61 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
-#if defined(__linux__)
-#include <sys/sysinfo.h>
-#elif defined(__OpenBSD__)
-#include <sys/sysctl.h>
-#include <sys/time.h>
-#endif
#include "../util.h"
#if defined(__linux__)
-const char *
-uptime(void)
-{
- int h;
- int m;
- int uptime = 0;
- struct sysinfo info;
-
- sysinfo(&info);
- uptime = info.uptime;
-
- h = uptime / 3600;
- m = (uptime - h * 3600) / 60;
-
- return bprintf("%dh %dm", h, m);
-}
-#elif defined(__OpenBSD__)
-const char *
-uptime(void)
-{
- int h;
- int m;
- int uptime = 0;
-
- int mib[2];
- size_t size;
- time_t now;
- struct timeval boottime;
-
- time(&now);
-
- mib[0] = CTL_KERN;
- mib[1] = KERN_BOOTTIME;
-
- size = sizeof(boottime);
-
- if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1)
- uptime = now - boottime.tv_sec;
- else {
- fprintf(stderr, "sysctl 'KERN_BOOTTIME': %s\n", strerror(errno));
- return NULL;
+ #include <sys/sysinfo.h>
+
+ const char *
+ uptime(void)
+ {
+ int h;
+ int m;
+ int uptime = 0;
+ struct sysinfo info;
+
+ sysinfo(&info);
+ uptime = info.uptime;
+
+ h = uptime / 3600;
+ m = (uptime - h * 3600) / 60;
+
+ return bprintf("%dh %dm", h, m);
}
+#elif defined(__OpenBSD__)
+ #include <sys/sysctl.h>
+ #include <sys/time.h>
+
+ const char *
+ uptime(void)
+ {
+ int h;
+ int m;
+ int uptime = 0;
+
+ int mib[2];
+ size_t size;
+ time_t now;
+ struct timeval boottime;
+
+ time(&now);
- h = uptime / 3600;
- m = (uptime - h * 3600) / 60;
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_BOOTTIME;
- return bprintf("%dh %dm", h, m);
-}
+ size = sizeof(boottime);
+
+ if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1)
+ uptime = now - boottime.tv_sec;
+ else {
+ fprintf(stderr, "sysctl 'KERN_BOOTTIME': %s\n", strerror(errno));
+ return NULL;
+ }
+
+ h = uptime / 3600;
+ m = (uptime - h * 3600) / 60;
+
+ return bprintf("%dh %dm", h, m);
+ }
#endif
diff --git a/components/wifi.c b/components/wifi.c
@@ -1,92 +1,100 @@
/* See LICENSE file for copyright and license details. */
#if defined(__linux__)
-#include <errno.h>
-#include <ifaddrs.h>
-#include <linux/wireless.h>
-#include <sys/socket.h>
-#include <stdio.h>
-#include <limits.h>
-#include <string.h>
-#include <sys/ioctl.h>
-#include <unistd.h>
+ #include <errno.h>
+ #include <ifaddrs.h>
+ #include <linux/wireless.h>
+ #include <sys/socket.h>
+ #include <stdio.h>
+ #include <limits.h>
+ #include <string.h>
+ #include <sys/ioctl.h>
+ #include <unistd.h>
-#include "../util.h"
+ #include "../util.h"
-const char *
-wifi_perc(const char *iface)
-{
- int i, cur;
- float perc;
- int total = 70; /* the max of /proc/net/wireless */
- char *p, *datastart;
- char path[PATH_MAX];
- char status[5];
- FILE *fp;
+ const char *
+ wifi_perc(const char *iface)
+ {
+ int i, cur;
+ float perc;
+ int total = 70; /* the max of /proc/net/wireless */
+ char *p, *datastart;
+ char path[PATH_MAX];
+ char status[5];
+ FILE *fp;
- snprintf(path, sizeof(path), "%s%s%s", "/sys/class/net/", iface, "/operstate");
- fp = fopen(path, "r");
- if (fp == NULL) {
- fprintf(stderr, "fopen '%s': %s\n", path, strerror(errno));
- return NULL;
- }
- p = fgets(status, 5, fp);
- fclose(fp);
- if(!p || strcmp(status, "up\n") != 0) {
- return NULL;
- }
+ snprintf(path, sizeof(path), "%s%s%s", "/sys/class/net/", iface,
+ "/operstate");
+ fp = fopen(path, "r");
+ if (fp == NULL) {
+ fprintf(stderr, "fopen '%s': %s\n", path,
+ strerror(errno));
+ return NULL;
+ }
+ p = fgets(status, 5, fp);
+ fclose(fp);
+ if(!p || strcmp(status, "up\n") != 0) {
+ return NULL;
+ }
- fp = fopen("/proc/net/wireless", "r");
- if (fp == NULL) {
- fprintf(stderr, "fopen '/proc/net/wireless': %s\n", strerror(errno));
- return NULL;
- }
+ fp = fopen("/proc/net/wireless", "r");
+ if (fp == NULL) {
+ fprintf(stderr, "fopen '/proc/net/wireless': %s\n",
+ strerror(errno));
+ return NULL;
+ }
- for (i = 0; i < 3; i++) {
- if (!(p = fgets(buf, sizeof(buf) - 1, fp)))
- break;
- }
- fclose(fp);
- if (i < 2 || !p)
- return NULL;
+ for (i = 0; i < 3; i++) {
+ if (!(p = fgets(buf, sizeof(buf) - 1, fp)))
+ break;
+ }
+ fclose(fp);
+ if (i < 2 || !p)
+ return NULL;
+
+ if ((datastart = strstr(buf, iface)) == NULL)
+ return NULL;
- if ((datastart = strstr(buf, iface)) == NULL)
- return NULL;
+ datastart = (datastart+(strlen(iface)+1));
+ sscanf(datastart + 1, " %*d %d %*d %*d\t\t %*d\t "
+ "%*d\t\t%*d\t\t %*d\t %*d\t\t %*d", &cur);
- datastart = (datastart+(strlen(iface)+1));
- sscanf(datastart + 1, " %*d %d %*d %*d %*d %*d %*d %*d %*d %*d", &cur);
+ perc = (float)cur / total * 100.0;
- perc = (float)cur / total * 100.0;
+ return bprintf("%.0f", perc);
+ }
- return bprintf("%.0f", perc);
-}
+ const char *
+ wifi_essid(const char *iface)
+ {
+ static char id[IW_ESSID_MAX_SIZE+1];
+ int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
+ struct iwreq wreq;
-const char *
-wifi_essid(const char *iface)
-{
- static char id[IW_ESSID_MAX_SIZE+1];
- int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
- struct iwreq wreq;
+ memset(&wreq, 0, sizeof(struct iwreq));
+ wreq.u.essid.length = IW_ESSID_MAX_SIZE+1;
+ snprintf(wreq.ifr_name, sizeof(wreq.ifr_name), "%s", iface);
- memset(&wreq, 0, sizeof(struct iwreq));
- wreq.u.essid.length = IW_ESSID_MAX_SIZE+1;
- snprintf(wreq.ifr_name, sizeof(wreq.ifr_name), "%s", iface);
+ if (sockfd == -1) {
+ fprintf(stderr, "socket 'AF_INET': %s\n",
+ strerror(errno));
+ return NULL;
+ }
+ wreq.u.essid.pointer = id;
+ if (ioctl(sockfd,SIOCGIWESSID, &wreq) == -1) {
+ fprintf(stderr, "ioctl 'SIOCGIWESSID': %s\n",
+ strerror(errno));
+ close(sockfd);
+ return NULL;
+ }
- if (sockfd == -1) {
- fprintf(stderr, "socket 'AF_INET': %s\n", strerror(errno));
- return NULL;
- }
- wreq.u.essid.pointer = id;
- if (ioctl(sockfd,SIOCGIWESSID, &wreq) == -1) {
- fprintf(stderr, "ioctl 'SIOCGIWESSID': %s\n", strerror(errno));
close(sockfd);
- return NULL;
- }
- close(sockfd);
-
- if (strcmp(id, "") == 0)
- return NULL;
- else
- return id;
-}
+ if (strcmp(id, "") == 0)
+ return NULL;
+ else
+ return id;
+ }
+#elif defined(__OpenBSD__)
+ /* unimplemented */
#endif