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.
This commit is contained in:
parent
42edfea89a
commit
9750a3d731
9 changed files with 556 additions and 522 deletions
2
LICENSE
2
LICENSE
|
@ -11,7 +11,7 @@ Copyright 2016-2017 Quentin Rameau <quinq@fifth.space>
|
||||||
Copyright 2016 Mike Coddington <mike@coddington.us>
|
Copyright 2016 Mike Coddington <mike@coddington.us>
|
||||||
Copyright 2016-2018 parazyd <parazyd@dyne.org>
|
Copyright 2016-2018 parazyd <parazyd@dyne.org>
|
||||||
Copyright 2017 Tobias Stoeckmann <tobias@stoeckmann.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>
|
Copyright 2018 Darron Anderson <darronanderson@protonmail.com>
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software for any
|
Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
|
|
@ -2,61 +2,32 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.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"
|
#include "../util.h"
|
||||||
|
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
battery_perc(const char *bat)
|
battery_perc(const char *bat)
|
||||||
{
|
{
|
||||||
int perc;
|
int perc;
|
||||||
char path[PATH_MAX];
|
char path[PATH_MAX];
|
||||||
|
|
||||||
snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/", bat, "/capacity");
|
snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/",
|
||||||
|
bat, "/capacity");
|
||||||
return (pscanf(path, "%i", &perc) == 1) ?
|
return (pscanf(path, "%i", &perc) == 1) ?
|
||||||
bprintf("%d", perc) : NULL;
|
bprintf("%d", perc) : NULL;
|
||||||
}
|
}
|
||||||
#elif defined(__OpenBSD__)
|
|
||||||
const char *
|
|
||||||
battery_perc(const char *null)
|
|
||||||
{
|
|
||||||
struct apm_power_info apm_info;
|
|
||||||
int fd;
|
|
||||||
|
|
||||||
fd = open("/dev/apm", O_RDONLY);
|
|
||||||
if (fd < 0) {
|
|
||||||
fprintf(stderr, "open '/dev/apm': %s\n", strerror(errno));
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__linux__)
|
|
||||||
const char *
|
const char *
|
||||||
battery_power(const char *bat)
|
battery_power(const char *bat)
|
||||||
{
|
{
|
||||||
int watts;
|
int watts;
|
||||||
char path[PATH_MAX];
|
char path[PATH_MAX];
|
||||||
|
|
||||||
snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/", bat, "/power_now");
|
snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/",
|
||||||
|
bat, "/power_now");
|
||||||
return (pscanf(path, "%i", &watts) == 1) ?
|
return (pscanf(path, "%i", &watts) == 1) ?
|
||||||
bprintf("%d", (watts + 500000) / 1000000) : NULL;
|
bprintf("%d", (watts + 500000) / 1000000) : NULL;
|
||||||
}
|
}
|
||||||
|
@ -76,7 +47,8 @@ battery_state(const char *bat)
|
||||||
size_t i;
|
size_t i;
|
||||||
char path[PATH_MAX], state[12];
|
char path[PATH_MAX], state[12];
|
||||||
|
|
||||||
snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/", bat, "/status");
|
snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/",
|
||||||
|
bat, "/status");
|
||||||
if (pscanf(path, "%12s", state) != 1) {
|
if (pscanf(path, "%12s", state) != 1) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -88,4 +60,32 @@ battery_state(const char *bat)
|
||||||
}
|
}
|
||||||
return (i == LEN(map)) ? "?" : map[i].symbol;
|
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_perc(const char *null)
|
||||||
|
{
|
||||||
|
struct apm_power_info apm_info;
|
||||||
|
int fd;
|
||||||
|
|
||||||
|
fd = open("/dev/apm", O_RDONLY);
|
||||||
|
if (fd < 0) {
|
||||||
|
fprintf(stderr, "open '/dev/apm': %s\n", strerror(errno));
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2,9 +2,6 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#if defined(__OpenBSD__)
|
|
||||||
#include <sys/sysctl.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "../util.h"
|
#include "../util.h"
|
||||||
|
|
||||||
|
@ -28,8 +25,8 @@ cpu_perc(void)
|
||||||
long double b[7];
|
long double b[7];
|
||||||
|
|
||||||
memcpy(b, a, sizeof(b));
|
memcpy(b, a, sizeof(b));
|
||||||
if (pscanf("/proc/stat", "%*s %Lf %Lf %Lf %Lf %Lf %Lf %Lf", &a[0], &a[1], &a[2],
|
if (pscanf("/proc/stat", "%*s %Lf %Lf %Lf %Lf %Lf %Lf %Lf",
|
||||||
&a[3], &a[4], &a[5], &a[6]) != 7) {
|
&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6]) != 7) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (!valid) {
|
if (!valid) {
|
||||||
|
@ -37,8 +34,11 @@ cpu_perc(void)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
perc = 100 * ((b[0]+b[1]+b[2]+b[5]+b[6]) - (a[0]+a[1]+a[2]+a[5]+a[6])) /
|
perc = 100 *
|
||||||
((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]));
|
((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);
|
return bprintf("%d", perc);
|
||||||
}
|
}
|
||||||
|
@ -52,8 +52,8 @@ cpu_iowait(void)
|
||||||
long double b[7];
|
long double b[7];
|
||||||
|
|
||||||
memcpy(b, a, sizeof(b));
|
memcpy(b, a, sizeof(b));
|
||||||
if (pscanf("/proc/stat", "%*s %Lf %Lf %Lf %Lf %Lf %Lf %Lf", &a[0], &a[1], &a[2],
|
if (pscanf("/proc/stat", "%*s %Lf %Lf %Lf %Lf %Lf %Lf %Lf",
|
||||||
&a[3], &a[4], &a[5], &a[6]) != 7) {
|
&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6]) != 7) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (!valid) {
|
if (!valid) {
|
||||||
|
@ -62,11 +62,14 @@ cpu_iowait(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
perc = 100 * ((b[4]) - (a[4])) /
|
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]));
|
((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);
|
return bprintf("%d", perc);
|
||||||
}
|
}
|
||||||
#elif defined(__OpenBSD__)
|
#elif defined(__OpenBSD__)
|
||||||
|
#include <sys/sysctl.h>
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
cpu_freq(void)
|
cpu_freq(void)
|
||||||
{
|
{
|
||||||
|
@ -79,7 +82,8 @@ cpu_freq(void)
|
||||||
size = sizeof(freq);
|
size = sizeof(freq);
|
||||||
|
|
||||||
if (sysctl(mib, 2, &freq, &size, NULL, 0) == -1) {
|
if (sysctl(mib, 2, &freq, &size, NULL, 0) == -1) {
|
||||||
fprintf(stderr, "sysctl 'HW_CPUSPEED': %s\n", strerror(errno));
|
fprintf(stderr, "sysctl 'HW_CPUSPEED': %s\n",
|
||||||
|
strerror(errno));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,10 @@ entropy(void)
|
||||||
{
|
{
|
||||||
int num;
|
int num;
|
||||||
|
|
||||||
return (pscanf("/proc/sys/kernel/random/entropy_avail", "%d", &num) == 1) ?
|
return (pscanf("/proc/sys/kernel/random/entropy_avail",
|
||||||
|
"%d", &num) == 1) ?
|
||||||
bprintf("%d", num) : NULL;
|
bprintf("%d", num) : NULL;
|
||||||
}
|
}
|
||||||
|
#elif defined(__OpenBSD__)
|
||||||
|
/* unimplemented */
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,11 +1,5 @@
|
||||||
/* See LICENSE file for copyright and license details. */
|
/* See LICENSE file for copyright and license details. */
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#if defined (__OpenBSD__)
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/sysctl.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "../util.h"
|
#include "../util.h"
|
||||||
|
|
||||||
|
@ -30,7 +24,8 @@ ram_perc(void)
|
||||||
"MemAvailable: %ld kB\nBuffers: %ld kB\n"
|
"MemAvailable: %ld kB\nBuffers: %ld kB\n"
|
||||||
"Cached: %ld kB\n",
|
"Cached: %ld kB\n",
|
||||||
&total, &free, &buffers, &buffers, &cached) == 5) ?
|
&total, &free, &buffers, &buffers, &cached) == 5) ?
|
||||||
bprintf("%d", 100 * ((total - free) - (buffers + cached)) / total) :
|
bprintf("%d", 100 * ((total - free) - (buffers + cached)) /
|
||||||
|
total) :
|
||||||
NULL;
|
NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,10 +49,16 @@ ram_used(void)
|
||||||
"MemAvailable: %ld kB\nBuffers: %ld kB\n"
|
"MemAvailable: %ld kB\nBuffers: %ld kB\n"
|
||||||
"Cached: %ld kB\n",
|
"Cached: %ld kB\n",
|
||||||
&total, &free, &buffers, &buffers, &cached) == 5) ?
|
&total, &free, &buffers, &buffers, &cached) == 5) ?
|
||||||
bprintf("%f", (float)(total - free - buffers - cached) / 1024 / 1024) :
|
bprintf("%f", (float)(total - free - buffers - cached) /
|
||||||
|
1024 / 1024) :
|
||||||
NULL;
|
NULL;
|
||||||
}
|
}
|
||||||
#elif defined(__OpenBSD__)
|
#elif defined(__OpenBSD__)
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/sysctl.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
inline int
|
inline int
|
||||||
load_uvmexp(struct uvmexp *uvmexp)
|
load_uvmexp(struct uvmexp *uvmexp)
|
||||||
{
|
{
|
||||||
|
@ -78,7 +79,8 @@ ram_free(void)
|
||||||
|
|
||||||
if (load_uvmexp(&uvmexp)) {
|
if (load_uvmexp(&uvmexp)) {
|
||||||
free_pages = uvmexp.npages - uvmexp.active;
|
free_pages = uvmexp.npages - uvmexp.active;
|
||||||
free = (double) (free_pages * uvmexp.pagesize) / 1024 / 1024 / 1024;
|
free = (double) (free_pages * uvmexp.pagesize) / 1024 /
|
||||||
|
1024 / 1024;
|
||||||
return bprintf("%f", free);
|
return bprintf("%f", free);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,7 +108,8 @@ ram_total(void)
|
||||||
float total;
|
float total;
|
||||||
|
|
||||||
if (load_uvmexp(&uvmexp)) {
|
if (load_uvmexp(&uvmexp)) {
|
||||||
total = (double) (uvmexp.npages * uvmexp.pagesize) / 1024 / 1024 / 1024;
|
total = (double) (uvmexp.npages * uvmexp.pagesize) /
|
||||||
|
1024 / 1024 / 1024;
|
||||||
return bprintf("%f", total);
|
return bprintf("%f", total);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,7 +123,8 @@ ram_used(void)
|
||||||
float used;
|
float used;
|
||||||
|
|
||||||
if (load_uvmexp(&uvmexp)) {
|
if (load_uvmexp(&uvmexp)) {
|
||||||
used = (double) (uvmexp.active * uvmexp.pagesize) / 1024 / 1024 / 1024;
|
used = (double) (uvmexp.active * uvmexp.pagesize) /
|
||||||
|
1024 / 1024 / 1024;
|
||||||
return bprintf("%f", used);
|
return bprintf("%f", used);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,12 +16,15 @@ swap_free(void)
|
||||||
|
|
||||||
fp = fopen("/proc/meminfo", "r");
|
fp = fopen("/proc/meminfo", "r");
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
fprintf(stderr, "fopen '/proc/meminfo': %s\n", strerror(errno));
|
fprintf(stderr, "fopen '/proc/meminfo': %s\n",
|
||||||
|
strerror(errno));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1, fp)) == 0) {
|
if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1,
|
||||||
fprintf(stderr, "fread '/proc/meminfo': %s\n", strerror(errno));
|
fp)) == 0) {
|
||||||
|
fprintf(stderr, "fread '/proc/meminfo': %s\n",
|
||||||
|
strerror(errno));
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -48,12 +51,15 @@ swap_perc(void)
|
||||||
|
|
||||||
fp = fopen("/proc/meminfo", "r");
|
fp = fopen("/proc/meminfo", "r");
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
fprintf(stderr, "fopen '/proc/meminfo': %s\n", strerror(errno));
|
fprintf(stderr, "fopen '/proc/meminfo': %s\n",
|
||||||
|
strerror(errno));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1, fp)) == 0) {
|
if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1,
|
||||||
fprintf(stderr, "fread '/proc/meminfo': %s\n", strerror(errno));
|
fp)) == 0) {
|
||||||
|
fprintf(stderr, "fread '/proc/meminfo': %s\n",
|
||||||
|
strerror(errno));
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -84,11 +90,14 @@ swap_total(void)
|
||||||
|
|
||||||
fp = fopen("/proc/meminfo", "r");
|
fp = fopen("/proc/meminfo", "r");
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
fprintf(stderr, "fopen '/proc/meminfo': %s\n", strerror(errno));
|
fprintf(stderr, "fopen '/proc/meminfo': %s\n",
|
||||||
|
strerror(errno));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1, fp)) == 0) {
|
if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1,
|
||||||
fprintf(stderr, "fread '/proc/meminfo': %s\n", strerror(errno));
|
fp)) == 0) {
|
||||||
|
fprintf(stderr, "fread '/proc/meminfo': %s\n",
|
||||||
|
strerror(errno));
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -111,11 +120,14 @@ swap_used(void)
|
||||||
|
|
||||||
fp = fopen("/proc/meminfo", "r");
|
fp = fopen("/proc/meminfo", "r");
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
fprintf(stderr, "fopen '/proc/meminfo': %s\n", strerror(errno));
|
fprintf(stderr, "fopen '/proc/meminfo': %s\n",
|
||||||
|
strerror(errno));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1, fp)) == 0) {
|
if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1,
|
||||||
fprintf(stderr, "fread '/proc/meminfo': %s\n", strerror(errno));
|
fp)) == 0) {
|
||||||
|
fprintf(stderr, "fread '/proc/meminfo': %s\n",
|
||||||
|
strerror(errno));
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -135,4 +147,6 @@ swap_used(void)
|
||||||
|
|
||||||
return bprintf("%f", (float)(total - free - cached) / 1024 / 1024);
|
return bprintf("%f", (float)(total - free - cached) / 1024 / 1024);
|
||||||
}
|
}
|
||||||
|
#elif defined(__OpenBSD__)
|
||||||
|
/* unimplemented */
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,12 +1,5 @@
|
||||||
/* See LICENSE file for copyright and license details. */
|
/* See LICENSE file for copyright and license details. */
|
||||||
#include <errno.h>
|
#include <stddef.h>
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#if defined(__OpenBSD__)
|
|
||||||
#include <sys/sysctl.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <sys/sensors.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "../util.h"
|
#include "../util.h"
|
||||||
|
|
||||||
|
@ -20,6 +13,13 @@ temp(const char *file)
|
||||||
bprintf("%d", temp / 1000) : NULL;
|
bprintf("%d", temp / 1000) : NULL;
|
||||||
}
|
}
|
||||||
#elif defined(__OpenBSD__)
|
#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 *
|
const char *
|
||||||
temp(const char *null)
|
temp(const char *null)
|
||||||
{
|
{
|
||||||
|
@ -36,10 +36,12 @@ temp(const char *null)
|
||||||
size = sizeof(temp);
|
size = sizeof(temp);
|
||||||
|
|
||||||
if (sysctl(mib, 5, &temp, &size, NULL, 0) == -1) {
|
if (sysctl(mib, 5, &temp, &size, NULL, 0) == -1) {
|
||||||
fprintf(stderr, "sysctl 'SENSOR_TEMP': %s\n", strerror(errno));
|
fprintf(stderr, "sysctl 'SENSOR_TEMP': %s\n",
|
||||||
|
strerror(errno));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return bprintf("%d", (temp.value - 273150000) / 1000000); /* kelvin to celsius */
|
/* kelvin to celsius */
|
||||||
|
return bprintf("%d", (temp.value - 273150000) / 1000000);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2,16 +2,12 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.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"
|
#include "../util.h"
|
||||||
|
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
|
#include <sys/sysinfo.h>
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
uptime(void)
|
uptime(void)
|
||||||
{
|
{
|
||||||
|
@ -29,6 +25,9 @@ uptime(void)
|
||||||
return bprintf("%dh %dm", h, m);
|
return bprintf("%dh %dm", h, m);
|
||||||
}
|
}
|
||||||
#elif defined(__OpenBSD__)
|
#elif defined(__OpenBSD__)
|
||||||
|
#include <sys/sysctl.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
uptime(void)
|
uptime(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,10 +23,12 @@ wifi_perc(const char *iface)
|
||||||
char status[5];
|
char status[5];
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
|
||||||
snprintf(path, sizeof(path), "%s%s%s", "/sys/class/net/", iface, "/operstate");
|
snprintf(path, sizeof(path), "%s%s%s", "/sys/class/net/", iface,
|
||||||
|
"/operstate");
|
||||||
fp = fopen(path, "r");
|
fp = fopen(path, "r");
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
fprintf(stderr, "fopen '%s': %s\n", path, strerror(errno));
|
fprintf(stderr, "fopen '%s': %s\n", path,
|
||||||
|
strerror(errno));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
p = fgets(status, 5, fp);
|
p = fgets(status, 5, fp);
|
||||||
|
@ -37,7 +39,8 @@ wifi_perc(const char *iface)
|
||||||
|
|
||||||
fp = fopen("/proc/net/wireless", "r");
|
fp = fopen("/proc/net/wireless", "r");
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
fprintf(stderr, "fopen '/proc/net/wireless': %s\n", strerror(errno));
|
fprintf(stderr, "fopen '/proc/net/wireless': %s\n",
|
||||||
|
strerror(errno));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +56,8 @@ wifi_perc(const char *iface)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
datastart = (datastart+(strlen(iface)+1));
|
datastart = (datastart+(strlen(iface)+1));
|
||||||
sscanf(datastart + 1, " %*d %d %*d %*d %*d %*d %*d %*d %*d %*d", &cur);
|
sscanf(datastart + 1, " %*d %d %*d %*d\t\t %*d\t "
|
||||||
|
"%*d\t\t%*d\t\t %*d\t %*d\t\t %*d", &cur);
|
||||||
|
|
||||||
perc = (float)cur / total * 100.0;
|
perc = (float)cur / total * 100.0;
|
||||||
|
|
||||||
|
@ -72,12 +76,14 @@ wifi_essid(const char *iface)
|
||||||
snprintf(wreq.ifr_name, sizeof(wreq.ifr_name), "%s", iface);
|
snprintf(wreq.ifr_name, sizeof(wreq.ifr_name), "%s", iface);
|
||||||
|
|
||||||
if (sockfd == -1) {
|
if (sockfd == -1) {
|
||||||
fprintf(stderr, "socket 'AF_INET': %s\n", strerror(errno));
|
fprintf(stderr, "socket 'AF_INET': %s\n",
|
||||||
|
strerror(errno));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
wreq.u.essid.pointer = id;
|
wreq.u.essid.pointer = id;
|
||||||
if (ioctl(sockfd,SIOCGIWESSID, &wreq) == -1) {
|
if (ioctl(sockfd,SIOCGIWESSID, &wreq) == -1) {
|
||||||
fprintf(stderr, "ioctl 'SIOCGIWESSID': %s\n", strerror(errno));
|
fprintf(stderr, "ioctl 'SIOCGIWESSID': %s\n",
|
||||||
|
strerror(errno));
|
||||||
close(sockfd);
|
close(sockfd);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -89,4 +95,6 @@ wifi_essid(const char *iface)
|
||||||
else
|
else
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
#elif defined(__OpenBSD__)
|
||||||
|
/* unimplemented */
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue