Implement fmt_scaled for ram_* functions
authorAaron Marcher <me@drkhsh.at>
Fri, 18 May 2018 21:38:59 +0000 (23:38 +0200)
committerAaron Marcher <me@drkhsh.at>
Fri, 18 May 2018 21:38:59 +0000 (23:38 +0200)
components/ram.c

index f451601862dd1555d16e9eb6adfa9ae9d31786e2..8f96b04a416cfbda4e28bc3a5e0b06c69060d45b 100644 (file)
@@ -14,7 +14,7 @@
                               "MemFree: %ld kB\n"
                               "MemAvailable: %ld kB\n",
                               &free, &free, &free) == 3) ?
-                      bprintf("%f", (float)free / 1024 / 1024) : NULL;
+                      fmt_scaled(free * 1024) : NULL;
        }
 
        const char *
@@ -39,7 +39,7 @@
                long total;
 
                return (pscanf("/proc/meminfo", "MemTotal: %ld kB\n", &total) == 1) ?
-                      bprintf("%f", (float)total / 1024 / 1024) : NULL;
+                      fmt_scaled(total * 1024) : NULL;
        }
 
        const char *
@@ -53,9 +53,7 @@
                               "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;
+                      fmt_scaled((total - free - buffers - cached) * 1024) : NULL;
        }
 #elif defined(__OpenBSD__)
        #include <stdlib.h>
        ram_free(void)
        {
                struct uvmexp uvmexp;
-               float free;
                int free_pages;
 
                if (load_uvmexp(&uvmexp)) {
                        free_pages = uvmexp.npages - uvmexp.active;
-                       free = (float)(pagetok(free_pages, uvmexp.pageshift)) / 1024 / 1024;
-                       return bprintf("%f", free);
+                       return fmt_scaled(pagetok(free_pages, uvmexp.pageshift) * 1024);
                }
 
                return NULL;
        ram_total(void)
        {
                struct uvmexp uvmexp;
-               float total;
 
                if (load_uvmexp(&uvmexp)) {
-                       total = (float)(pagetok(uvmexp.npages, uvmexp.pageshift)) / 1024 / 1024;
-                       return bprintf("%f", total);
+                       return fmt_scaled(pagetok(uvmexp.npages, uvmexp.pageshift) * 1024);
                }
 
                return NULL;
        ram_used(void)
        {
                struct uvmexp uvmexp;
-               float used;
 
                if (load_uvmexp(&uvmexp)) {
-                       used = (float)(pagetok(uvmexp.active, uvmexp.pageshift)) / 1024 / 1024;
-                       return bprintf("%f", used);
+                       return fmt_scaled(pagetok(uvmexp.active, uvmexp.pageshift) * 1024);
                }
 
                return NULL;