74 lines
2.5 KiB
Text
74 lines
2.5 KiB
Text
--- usr/lib/byobu/memory.orig 2016-09-15 19:22:48 UTC
|
|
+++ usr/lib/byobu/memory
|
|
@@ -26,16 +26,35 @@ __memory_detail() {
|
|
__memory() {
|
|
local free="" total="" buffers="" cached=""
|
|
local kb_main_used=0 buffers_plus_cached=0 fo_buffers=0 fo_cached=0
|
|
- if [ -r /proc/meminfo ]; then
|
|
- while read tok val unit; do
|
|
- case "$tok" in
|
|
- MemTotal:) total=${val};;
|
|
- MemFree:) free=${val};;
|
|
- Buffers:) buffers=${val};;
|
|
- Cached:) cached=${val};;
|
|
- esac
|
|
- [ -n "${free}" -a -n "${total}" -a -n "${buffers}" -a -n "${cached}" ] && break;
|
|
- done < /proc/meminfo
|
|
+
|
|
+ if [ $(uname) = "Linux" ]; then
|
|
+ if [ -r /proc/meminfo ]; then
|
|
+ while read tok val unit; do
|
|
+ case "$tok" in
|
|
+ MemTotal:) total=${val};;
|
|
+ MemFree:) free=${val};;
|
|
+ Buffers:) buffers=${val};;
|
|
+ Cached:) cached=${val};;
|
|
+ esac
|
|
+ [ -n "${free}" -a -n "${total}" -a -n "${buffers}" -a -n "${cached}" ] && break;
|
|
+ done < /proc/meminfo
|
|
+ fi
|
|
+ elif [ $(uname) = "FreeBSD" ]; then
|
|
+ # FreeBSD support
|
|
+ mem_phys=$(sysctl -n hw.physmem)
|
|
+ page_size=$(sysctl -n hw.pagesize)
|
|
+ mem_inactive=$(($(sysctl -n vm.stats.vm.v_inactive_count)*$page_size))
|
|
+ mem_cache=$(($(sysctl -n vm.stats.vm.v_cache_count)*$page_size))
|
|
+ mem_free=$(($(sysctl -n vm.stats.vm.v_free_count)*$page_size))
|
|
+
|
|
+ mem_avail=$(($mem_inactive+$mem_cache+$mem_free))
|
|
+ mem_used=$(($mem_phys-$mem_avail))
|
|
+
|
|
+ total=$(($mem_phys/1024))
|
|
+ free=$(($mem_avail/1024))
|
|
+
|
|
+ buffers=0
|
|
+ cached=0
|
|
elif eval $BYOBU_TEST vm_stat >/dev/null 2>&1; then
|
|
# MacOS support
|
|
# calculation borrowed from http://apple.stackexchange.com/a/48195/18857
|
|
@@ -44,16 +63,18 @@ __memory() {
|
|
speculative_blocks=$(vm_stat | grep speculative | awk '{ print $3 }' | sed -e 's/\.//')
|
|
free=$((($free_blocks+speculative_blocks)*4))
|
|
inactive=$(($inactive_blocks*4))
|
|
- total=$((($free+$inactive)))
|
|
+ total=$(($free+$inactive))
|
|
buffers=0
|
|
cached=0
|
|
fi
|
|
- kb_main_used=$(($total-$free))
|
|
- buffers_plus_cached=$(($buffers+$cached))
|
|
- # "free output" buffers and cache (output from 'free')
|
|
- fo_buffers=$(($kb_main_used - $buffers_plus_cached))
|
|
- fpdiv $((100*${fo_buffers})) "${total}" 0;
|
|
- usage=${_RET}
|
|
+
|
|
+ kb_main_used=$(($total-$free))
|
|
+ buffers_plus_cached=$(($buffers+$cached))
|
|
+ # "free output" buffers and cache (output from 'free')
|
|
+ fo_buffers=$(($kb_main_used - $buffers_plus_cached))
|
|
+ fpdiv $((100*${fo_buffers})) "${total}" 0;
|
|
+ usage=${_RET}
|
|
+
|
|
if [ $total -ge 1048576 ]; then
|
|
fpdiv "$total" 1048567 1
|
|
total=${_RET}
|