Xinqi Bao's Git

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