Merge lp:~c4ogb46o8b7eq03apu9xuh9ifc2rr97r/byobu/freebsd-memory into lp:byobu

Proposed by c4ogb46o8b7eq03apu9xuh9ifc2rr97r
Status: Needs review
Proposed branch: lp:~c4ogb46o8b7eq03apu9xuh9ifc2rr97r/byobu/freebsd-memory
Merge into: lp:byobu
Diff against target: 72 lines (+35/-17)
1 file modified
usr/lib/byobu/memory (+35/-17)
To merge this branch: bzr merge lp:~c4ogb46o8b7eq03apu9xuh9ifc2rr97r/byobu/freebsd-memory
Reviewer Review Type Date Requested Status
Dustin Kirkland  Pending
Review via email: mp+396882@code.launchpad.net

Description of the change

Added FreeBSD-specific code to determine memory/free.

To post a comment you must log in.

Unmerged revisions

2644. By c4ogb46o8b7eq03apu9xuh9ifc2rr97r

Added FreeBSD-specific mem/free code for widget

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'usr/lib/byobu/memory'
--- usr/lib/byobu/memory 2016-09-15 19:25:51 +0000
+++ usr/lib/byobu/memory 2021-01-26 03:17:44 +0000
@@ -26,16 +26,32 @@
26__memory() {26__memory() {
27 local free="" total="" buffers="" cached=""27 local free="" total="" buffers="" cached=""
28 local kb_main_used=0 buffers_plus_cached=0 fo_buffers=0 fo_cached=028 local kb_main_used=0 buffers_plus_cached=0 fo_buffers=0 fo_cached=0
29 if [ -r /proc/meminfo ]; then29
30 while read tok val unit; do30 if [ $(uname) = "Linux" ]; then
31 case "$tok" in31 if [ -r /proc/meminfo ]; then
32 MemTotal:) total=${val};;32 while read tok val unit; do
33 MemFree:) free=${val};;33 case "$tok" in
34 Buffers:) buffers=${val};;34 MemTotal:) total=${val};;
35 Cached:) cached=${val};;35 MemFree:) free=${val};;
36 esac36 Buffers:) buffers=${val};;
37 [ -n "${free}" -a -n "${total}" -a -n "${buffers}" -a -n "${cached}" ] && break;37 Cached:) cached=${val};;
38 done < /proc/meminfo38 esac
39 [ -n "${free}" -a -n "${total}" -a -n "${buffers}" -a -n "${cached}" ] && break;
40 done < /proc/meminfo
41 fi
42 elif [ $(uname) = "FreeBSD" ]; then
43 # FreeBSD support
44 page_size=$(sysctl vm.stats.vm.v_page_size | awk '{print $2'})
45 page_count=$(sysctl vm.stats.vm.v_page_count | awk '{print $2'})
46 total=$((($page_count*$page_size)/1024))
47
48 cache_pages=$(sysctl vm.stats.vm.v_cache_count | awk '{print $2'})
49 inact_pages=$(sysctl vm.stats.vm.v_inactive_count | awk '{print $2'})
50 free_pages=$(sysctl vm.stats.vm.v_free_count | awk '{print $2'})
51 free=$(((($cache_pages+$inact_pages+$free_pages)*$page_size)/1024))
52
53 buffers=0
54 cached=0
39 elif eval $BYOBU_TEST vm_stat >/dev/null 2>&1; then55 elif eval $BYOBU_TEST vm_stat >/dev/null 2>&1; then
40 # MacOS support56 # MacOS support
41 # calculation borrowed from http://apple.stackexchange.com/a/48195/1885757 # calculation borrowed from http://apple.stackexchange.com/a/48195/18857
@@ -44,16 +60,18 @@
44 speculative_blocks=$(vm_stat | grep speculative | awk '{ print $3 }' | sed -e 's/\.//')60 speculative_blocks=$(vm_stat | grep speculative | awk '{ print $3 }' | sed -e 's/\.//')
45 free=$((($free_blocks+speculative_blocks)*4))61 free=$((($free_blocks+speculative_blocks)*4))
46 inactive=$(($inactive_blocks*4))62 inactive=$(($inactive_blocks*4))
47 total=$((($free+$inactive)))63 total=$(($free+$inactive))
48 buffers=064 buffers=0
49 cached=065 cached=0
50 fi66 fi
51 kb_main_used=$(($total-$free))67
52 buffers_plus_cached=$(($buffers+$cached))68 kb_main_used=$(($total-$free))
53 # "free output" buffers and cache (output from 'free')69 buffers_plus_cached=$(($buffers+$cached))
54 fo_buffers=$(($kb_main_used - $buffers_plus_cached))70 # "free output" buffers and cache (output from 'free')
55 fpdiv $((100*${fo_buffers})) "${total}" 0;71 fo_buffers=$(($kb_main_used - $buffers_plus_cached))
56 usage=${_RET}72 fpdiv $((100*${fo_buffers})) "${total}" 0;
73 usage=${_RET}
74
57 if [ $total -ge 1048576 ]; then75 if [ $total -ge 1048576 ]; then
58 fpdiv "$total" 1048567 176 fpdiv "$total" 1048567 1
59 total=${_RET}77 total=${_RET}

Subscribers

People subscribed via source and target branches