9 void status_memusage(GlobalData *g)
12 char text[16] = { 0 };
18 long long memtotal = 0;
19 long long memfree = 0;
21 long long membuffers = 0;
22 long long memcached = 0;
28 stfile = fopen("/proc/meminfo", "r");
30 stlen = getline(&stline, &stlen, stfile);
31 memtotal = atoll(&stline[16]);
33 stlen = getline(&stline, &stlen, stfile);
34 memfree = atoll(&stline[16]);
36 stlen = getline(&stline, &stlen, stfile);
37 if (stlen > 13 && !memcmp(stline, "MemAvailable:", 13)) {
38 stlen = getline(&stline, &stlen, stfile);
40 membuffers = atoll(&stline[16]);
42 stlen = getline(&stline, &stlen, stfile);
43 memcached = atoll(&stline[16]);
48 memused = memtotal - memfree - memcached - membuffers;
50 memused /= 1024; // Just show MBs used
52 /* Change color based on % of RAM used */
53 if ((float)memused / (float)memtotal < 0.85) {
54 s.color = "#22FF22"; // green
56 s.color = "#FF0000"; // red
59 snprintf(text, sizeof(text), "Mem: %lld M", memused);
61 line_append_item(g, &s);