From: Quentin Rameau Date: Mon, 30 Apr 2018 13:14:36 +0000 (+0200) Subject: swap: OS split X-Git-Url: https://git.atheridis.org/?a=commitdiff_plain;h=72f5a0d69ad43e7329064f415b4f8df3c1c2ccec;p=suckless%2Fslstatus.git swap: OS split --- diff --git a/Makefile b/Makefile index 99d10c5..5dcef0f 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ COM =\ components/num_files\ components/$(OS)/ram \ components/run_command\ - components/swap\ + components/$(OS)/swap \ components/temperature\ components/uptime\ components/user\ diff --git a/components/Linux/swap.c b/components/Linux/swap.c new file mode 100644 index 0000000..bce9d5a --- /dev/null +++ b/components/Linux/swap.c @@ -0,0 +1,136 @@ +/* See LICENSE file for copyright and license details. */ +#include +#include +#include + +#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); + + 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 ((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); + + 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 ((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); + + 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 ((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); + + 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("%f", (float)(total - free - cached) / 1024 / 1024); +} diff --git a/components/OpenBSD/swap.c b/components/OpenBSD/swap.c new file mode 100644 index 0000000..e69de29 diff --git a/components/swap.c b/components/swap.c deleted file mode 100644 index f3bbeb2..0000000 --- a/components/swap.c +++ /dev/null @@ -1,138 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#if defined(__linux__) -#include -#include -#include - -#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); - - 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 ((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); - - 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 ((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); - - 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 ((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); - - 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("%f", (float)(total - free - cached) / 1024 / 1024); -} -#endif