Xinqi Bao's Git

Split into multiple files
[slstatus.git] / ram.c
1 #include <stdio.h>
2
3 #include "util.h"
4
5 const char *
6 ram_free(void)
7 {
8 long free;
9
10 return (pscanf("/proc/meminfo", "MemFree: %ld kB\n", &free) == 1) ?
11 bprintf("%f", (float)free / 1024 / 1024) : NULL;
12 }
13
14 const char *
15 ram_perc(void)
16 {
17 long total, free, buffers, cached;
18
19 return (pscanf("/proc/meminfo",
20 "MemTotal: %ld kB\n"
21 "MemFree: %ld kB\n"
22 "MemAvailable: %ld kB\nBuffers: %ld kB\n"
23 "Cached: %ld kB\n",
24 &total, &free, &buffers, &buffers, &cached) == 5) ?
25 bprintf("%d", 100 * ((total - free) - (buffers + cached)) / total) :
26 NULL;
27 }
28
29 const char *
30 ram_total(void)
31 {
32 long total;
33
34 return (pscanf("/proc/meminfo", "MemTotal: %ld kB\n", &total) == 1) ?
35 bprintf("%f", (float)total / 1024 / 1024) : NULL;
36 }
37
38 const char *
39 ram_used(void)
40 {
41 long total, free, buffers, cached;
42
43 return (pscanf("/proc/meminfo",
44 "MemTotal: %ld kB\n"
45 "MemFree: %ld kB\n"
46 "MemAvailable: %ld kB\nBuffers: %ld kB\n"
47 "Cached: %ld kB\n",
48 &total, &free, &buffers, &buffers, &cached) == 5) ?
49 bprintf("%f", (float)(total - free - buffers - cached) / 1024 / 1024) :
50 NULL;
51 }