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 %)", - 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 %)", - 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 %)", - 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 %)", - 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 %)", - 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)); }