diff options
author | Laslo Hunhold <dev@frign.de> | 2017-09-24 15:33:01 +0200 |
---|---|---|
committer | Aaron Marcher <me@drkhsh.at> | 2017-09-24 17:20:27 +0200 |
commit | 7246dc4381c6c95454672a5c1aff65a02d6d3747 (patch) | |
tree | 2264b09abf2e57daee396b632573f4b81e47aa59 /components/ram.c | |
parent | 61e44e894890c1521a01148fbf969cbd4dbb4cae (diff) |
Move components into dedicated subdirectory
This brings us a lot more tidiness.
Diffstat (limited to 'components/ram.c')
-rw-r--r-- | components/ram.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/components/ram.c b/components/ram.c new file mode 100644 index 0000000..f696039 --- /dev/null +++ b/components/ram.c @@ -0,0 +1,52 @@ +/* See LICENSE file for copyright and license details. */ +#include <stdio.h> + +#include "../util.h" + +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; +} |