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
1=== modified file 'usr/lib/byobu/memory'
2--- usr/lib/byobu/memory 2016-09-15 19:25:51 +0000
3+++ usr/lib/byobu/memory 2021-01-26 03:17:44 +0000
4@@ -26,16 +26,32 @@
5 __memory() {
6 local free="" total="" buffers="" cached=""
7 local kb_main_used=0 buffers_plus_cached=0 fo_buffers=0 fo_cached=0
8- if [ -r /proc/meminfo ]; then
9- while read tok val unit; do
10- case "$tok" in
11- MemTotal:) total=${val};;
12- MemFree:) free=${val};;
13- Buffers:) buffers=${val};;
14- Cached:) cached=${val};;
15- esac
16- [ -n "${free}" -a -n "${total}" -a -n "${buffers}" -a -n "${cached}" ] && break;
17- done < /proc/meminfo
18+
19+ if [ $(uname) = "Linux" ]; then
20+ if [ -r /proc/meminfo ]; then
21+ while read tok val unit; do
22+ case "$tok" in
23+ MemTotal:) total=${val};;
24+ MemFree:) free=${val};;
25+ Buffers:) buffers=${val};;
26+ Cached:) cached=${val};;
27+ esac
28+ [ -n "${free}" -a -n "${total}" -a -n "${buffers}" -a -n "${cached}" ] && break;
29+ done < /proc/meminfo
30+ fi
31+ elif [ $(uname) = "FreeBSD" ]; then
32+ # FreeBSD support
33+ page_size=$(sysctl vm.stats.vm.v_page_size | awk '{print $2'})
34+ page_count=$(sysctl vm.stats.vm.v_page_count | awk '{print $2'})
35+ total=$((($page_count*$page_size)/1024))
36+
37+ cache_pages=$(sysctl vm.stats.vm.v_cache_count | awk '{print $2'})
38+ inact_pages=$(sysctl vm.stats.vm.v_inactive_count | awk '{print $2'})
39+ free_pages=$(sysctl vm.stats.vm.v_free_count | awk '{print $2'})
40+ free=$(((($cache_pages+$inact_pages+$free_pages)*$page_size)/1024))
41+
42+ buffers=0
43+ cached=0
44 elif eval $BYOBU_TEST vm_stat >/dev/null 2>&1; then
45 # MacOS support
46 # calculation borrowed from http://apple.stackexchange.com/a/48195/18857
47@@ -44,16 +60,18 @@
48 speculative_blocks=$(vm_stat | grep speculative | awk '{ print $3 }' | sed -e 's/\.//')
49 free=$((($free_blocks+speculative_blocks)*4))
50 inactive=$(($inactive_blocks*4))
51- total=$((($free+$inactive)))
52+ total=$(($free+$inactive))
53 buffers=0
54 cached=0
55 fi
56- kb_main_used=$(($total-$free))
57- buffers_plus_cached=$(($buffers+$cached))
58- # "free output" buffers and cache (output from 'free')
59- fo_buffers=$(($kb_main_used - $buffers_plus_cached))
60- fpdiv $((100*${fo_buffers})) "${total}" 0;
61- usage=${_RET}
62+
63+ kb_main_used=$(($total-$free))
64+ buffers_plus_cached=$(($buffers+$cached))
65+ # "free output" buffers and cache (output from 'free')
66+ fo_buffers=$(($kb_main_used - $buffers_plus_cached))
67+ fpdiv $((100*${fo_buffers})) "${total}" 0;
68+ usage=${_RET}
69+
70 if [ $total -ge 1048576 ]; then
71 fpdiv "$total" 1048567 1
72 total=${_RET}

Subscribers

People subscribed via source and target branches