netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/evisum.git/commit/?id=f61e780f0bf7dea59031ea21bb47dbb82a2833ff

commit f61e780f0bf7dea59031ea21bb47dbb82a2833ff
Author: Alastair Poole <[email protected]>
Date:   Fri Jun 5 15:32:11 2020 +0100

    bytes: use bytes for everything...
    
    Convert Linux memory values to bytes rather than reducing the
    granularity of every other OS which reports memory use in
    bytes.
    
    The previous method just made everything confusing when it
    needn't be.
---
 src/bin/system/machine.c | 45 ++++++++++++++-------------------------------
 src/bin/ui/ui.c          | 11 ++++++-----
 src/bin/ui/ui.h          |  2 +-
 src/bin/ui/ui_memory.c   | 20 ++++++++++----------
 4 files changed, 31 insertions(+), 47 deletions(-)

diff --git a/src/bin/system/machine.c b/src/bin/system/machine.c
index 508cc5a..3172b4b 100644
--- a/src/bin/system/machine.c
+++ b/src/bin/system/machine.c
@@ -93,14 +93,6 @@
 #define RESULTS_MEM_GB    0x80
 #define RESULTS_CPU_CORES 0x100
 
-#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__)
-static void
-_memsize_bytes_to_kb(unsigned long *bytes)
-{
-   *bytes /= 1024;
-}
-#endif
-
 #if defined(__linux__)
 static char *
 file_contents(const char *path)
@@ -490,6 +482,14 @@ _memory_usage_get(meminfo_t *memory)
    memory->used = memory->total - tmp_free - memory->cached - memory->buffered;
    memory->swap_used = memory->swap_total - swap_free;
 
+   memory->total *= 1024;
+   memory->used *= 1024;
+   memory->buffered *= 1024;
+   memory->cached *= 1024;
+   memory->shared *= 1024;
+   memory->swap_total *= 1024;
+   memory->swap_used *= 1024;
+
    fclose(f);
 #elif defined(__FreeBSD__) || defined(__DragonFly__)
    unsigned int free = 0, active = 0, inactive = 0, wired = 0;
@@ -518,19 +518,14 @@ _memory_usage_get(meminfo_t *memory)
    if ((buffered = _sysctlfromname("vfs.bufspace", mib, 2, &len)) < 0)
      return;
 
-   _memsize_bytes_to_kb(&memory->total);
    memory->used = ((active + wired + cached) * page_size);
-   _memsize_bytes_to_kb(&memory->used);
    memory->buffered = buffered;
-   _memsize_bytes_to_kb(&memory->buffered);
    memory->cached = (cached * page_size);
-   _memsize_bytes_to_kb(&memory->cached);
 
    result = _sysctlfromname("vm.swap_total", mib, 2, &len);
    if (result < 0)
      return;
-
-   memory->swap_total = (result / 1024);
+   memory->swap_total = result;
 
    miblen = 3;
    if (sysctlnametomib("vm.swap_info", mib, &miblen) == -1) return;
@@ -547,9 +542,6 @@ _memory_usage_get(meminfo_t *memory)
 
         memory->swap_used += (unsigned long) xsw.xsw_used * page_size;
      }
-
-   memory->swap_used >>= 10;
-
 #elif defined(__OpenBSD__)
    static int mib[] = { CTL_HW, HW_PHYSMEM64 };
    static int bcstats_mib[] = { CTL_VFS, VFS_GENERIC, VFS_BCACHESTAT };
@@ -592,23 +584,17 @@ _memory_usage_get(meminfo_t *memory)
              memory->swap_total += (swdev[i].se_nblks / (1024 / DEV_BSIZE));
           }
      }
+
+   memory->swap_total *= 1024;
+   memory->swap_used *= 1024;
 swap_out:
    if (swdev)
      free(swdev);
 
-   memory->total /= 1024;
-
    memory->cached = (uvmexp.pagesize * bcstats.numbufpages);
-   _memsize_bytes_to_kb(&memory->cached);
-
    memory->used = (uvmexp.active * uvmexp.pagesize);
-   _memsize_bytes_to_kb(&memory->used);
-
    memory->buffered = (uvmexp.pagesize * (uvmexp.npages - uvmexp.free));
-   _memsize_bytes_to_kb(&memory->buffered);
-
    memory->shared = (uvmexp.pagesize * uvmexp.wired);
-   _memsize_bytes_to_kb(&memory->shared);
 #elif defined(__MacOS__)
    int mib[2] = { CTL_HW, HW_MEMSIZE };
    size_t total;
@@ -624,20 +610,15 @@ swap_out:
    mach_port = mach_host_self();
    count = sizeof(vm_stats) / sizeof(natural_t);
 
-   total >>= 10;
    memory->total = total;
 
    if (host_page_size(mach_port, &page_size) == KERN_SUCCESS &&
        host_statistics64(mach_port, HOST_VM_INFO, (host_info64_t)&vm_stats, 
&count) == KERN_SUCCESS)
      {
         memory->used = vm_stats.active_count + vm_stats.inactive_count + 
vm_stats.wire_count * page_size;
-        memory->used >>= 10;
         memory->cached = vm_stats.active_count * page_size;
-        memory->cached >>= 10;
         memory->shared = vm_stats.wire_count * page_size;
-        memory->shared >>= 10;
         memory->buffered = vm_stats.inactive_count * page_size;
-        memory->buffered >>= 10;
      }
 
    total = sizeof(xsu);
@@ -646,6 +627,8 @@ swap_out:
         memory->swap_total = xsu.xsu_total;
         memory->swap_used = xsu.xsu_used;
      }
+   memory->swap_total *= 1024;
+   memory->swap_used *= 1024;
 #endif
 }
 
diff --git a/src/bin/ui/ui.c b/src/bin/ui/ui.c
index 8349933..95d3e7d 100644
--- a/src/bin/ui/ui.c
+++ b/src/bin/ui/ui.c
@@ -1464,12 +1464,13 @@ _evisum_resize_cb(void *data, Evas *e, Evas_Object 
*obj, void *event_info)
 }
 
 const char *
-evisum_size_format(unsigned long value)
+evisum_size_format(unsigned long bytes)
 {
    const char *s, *unit = "BKMGTPEZY";
-   unsigned long int powi = 1;
+   unsigned long int value, powi = 1;
    unsigned int precision = 2, powj = 1;
 
+   value = bytes;
    while (value > 1024)
      {
        if ((value / 1024) < powi) break;
@@ -1484,7 +1485,7 @@ evisum_size_format(unsigned long value)
      {
         powj *= 10;
         if ((value / powi) < powj) break;
-       --precision;
+        --precision;
      }
 
    s = eina_slstr_printf("%1.*f %c", precision, (double) value / powi, *unit);
@@ -1632,8 +1633,8 @@ _sys_info_all_poll_feedback_cb(void *data, Ecore_Thread 
*thread, void *msg)
    value = sysinfo->memory.used / ratio;
    elm_progressbar_value_set(progress, value / 100);
    elm_progressbar_unit_format_set(progress, eina_slstr_printf("%s / %s",
-                   evisum_size_format(sysinfo->memory.used << 10),
-                   evisum_size_format(sysinfo->memory.total << 10)));
+                   evisum_size_format(sysinfo->memory.used),
+                   evisum_size_format(sysinfo->memory.total)));
 out:
    free(sysinfo->cores);
    free(sysinfo);
diff --git a/src/bin/ui/ui.h b/src/bin/ui/ui.h
index 86b8928..058a190 100644
--- a/src/bin/ui/ui.h
+++ b/src/bin/ui/ui.h
@@ -121,6 +121,6 @@ const char *
 evisum_icon_path_get(const char *name);
 
 const char *
-evisum_size_format(unsigned long value);
+evisum_size_format(unsigned long bytes);
 
 #endif
diff --git a/src/bin/ui/ui_memory.c b/src/bin/ui/ui_memory.c
index df7075f..dcd65b2 100644
--- a/src/bin/ui/ui_memory.c
+++ b/src/bin/ui/ui_memory.c
@@ -142,8 +142,8 @@ ui_tab_memory_update(Ui *ui, Sys_Info *sysinfo)
    elm_progressbar_value_set(progress, value / 100);
    elm_progressbar_unit_format_set(progress,
                    eina_slstr_printf("%s / %s (%1.0f &#37;)",
-                   evisum_size_format(sysinfo->memory.used << 10),
-                   evisum_size_format(sysinfo->memory.total << 10),
+                   evisum_size_format(sysinfo->memory.used),
+                   evisum_size_format(sysinfo->memory.total),
                    value));
 
    progress = ui->progress_mem_cached;
@@ -152,8 +152,8 @@ ui_tab_memory_update(Ui *ui, Sys_Info *sysinfo)
    elm_progressbar_value_set(progress, value / 100);
    elm_progressbar_unit_format_set(progress,
                    eina_slstr_printf("%s / %s (%1.0f &#37;)",
-                   evisum_size_format(sysinfo->memory.cached << 10),
-                   evisum_size_format(sysinfo->memory.total << 10),
+                   evisum_size_format(sysinfo->memory.cached),
+                   evisum_size_format(sysinfo->memory.total),
                    value));
 
    progress = ui->progress_mem_buffered;
@@ -162,8 +162,8 @@ ui_tab_memory_update(Ui *ui, Sys_Info *sysinfo)
    elm_progressbar_value_set(progress, value / 100);
    elm_progressbar_unit_format_set(progress,
                    eina_slstr_printf("%s / %s (%1.0f &#37;)",
-                   evisum_size_format(sysinfo->memory.buffered << 10),
-                   evisum_size_format(sysinfo->memory.total << 10),
+                   evisum_size_format(sysinfo->memory.buffered),
+                   evisum_size_format(sysinfo->memory.total),
                    value));
 
    progress = ui->progress_mem_shared;
@@ -172,8 +172,8 @@ ui_tab_memory_update(Ui *ui, Sys_Info *sysinfo)
    elm_progressbar_value_set(progress, value / 100);
    elm_progressbar_unit_format_set(progress,
                    eina_slstr_printf("%s / %s (%1.0f &#37;)",
-                   evisum_size_format(sysinfo->memory.shared << 10),
-                   evisum_size_format(sysinfo->memory.total << 10),
+                   evisum_size_format(sysinfo->memory.shared),
+                   evisum_size_format(sysinfo->memory.total),
                    value));
 
    progress = ui->progress_mem_swap;
@@ -187,8 +187,8 @@ ui_tab_memory_update(Ui *ui, Sys_Info *sysinfo)
    elm_progressbar_value_set(progress, value / 100);
    elm_progressbar_unit_format_set(progress,
                    eina_slstr_printf("%s / %s (%1.0f &#37;)",
-                   evisum_size_format(sysinfo->memory.swap_used << 10),
-                   evisum_size_format(sysinfo->memory.swap_total << 10),
+                   evisum_size_format(sysinfo->memory.swap_used),
+                   evisum_size_format(sysinfo->memory.swap_total),
                    value));
 }
 

-- 


Reply via email to