diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2021-10-26 08:43:08 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2021-11-01 00:44:51 +0000 |
commit | f33a9999e2a458afe4b9c8f5cee42b30feb308ee (patch) | |
tree | 21704f68156b2d49a18a46fbfa1e7b172934d675 /usr.bin/systat/swap.c | |
parent | cfccf3baca5c26feb9fb4b72a980ea85d3f4f810 (diff) |
Augment systat(1) -swap to display large swap space processes
(cherry picked from commit 57e5da2c98003e5ab77a337e9fbe22ab7e512ba7)
Diffstat (limited to 'usr.bin/systat/swap.c')
-rw-r--r-- | usr.bin/systat/swap.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/usr.bin/systat/swap.c b/usr.bin/systat/swap.c index 29b04df0157f..f28059bfecd4 100644 --- a/usr.bin/systat/swap.c +++ b/usr.bin/systat/swap.c @@ -103,6 +103,7 @@ initswap(void) } pathlen = 80 - 50 /* % */ - 5 /* Used */ - 5 /* Size */ - 3 /* space */; dsinit(12); + procinit(); once = 1; return (1); @@ -125,14 +126,13 @@ fetchswap(void) cur_dev.dinfo = tmp_dinfo; last_dev.snap_time = cur_dev.snap_time; - dsgetinfo( &cur_dev ); + dsgetinfo(&cur_dev); + procgetinfo(); } void labelswap(void) { - const char *name; - int i; werase(wnd); @@ -146,18 +146,13 @@ labelswap(void) mvwprintw(wnd, 0, 0, "%*s%5s %5s %s", -pathlen, "Device/Path", "Size", "Used", "|0% /10 /20 /30 /40 / 60\\ 70\\ 80\\ 90\\ 100|"); - - for (i = 0; i <= kvnsw; ++i) { - name = i == kvnsw ? "Total" : kvmsw[i].ksw_devname; - mvwprintw(wnd, 1 + i, 0, "%-*.*s", pathlen, pathlen - 1, name); - } } void showswap(void) { - int count; - int i; + const char *name; + int count, i; if (kvnsw != okvnsw) labelswap(); @@ -167,7 +162,10 @@ showswap(void) if (kvnsw <= 0) return; - for (i = 0; i <= kvnsw; ++i) { + for (i = (kvnsw == 1 ? 0 : kvnsw); i >= 0; i--) { + name = i == kvnsw ? "Total" : kvmsw[i].ksw_devname; + mvwprintw(wnd, 1 + i, 0, "%-*.*s", pathlen, pathlen - 1, name); + sysputpage(wnd, i + 1, pathlen, 5, kvmsw[i].ksw_total, 0); sysputpage(wnd, i + 1, pathlen + 5 + 1, 5, kvmsw[i].ksw_used, 0); @@ -178,4 +176,8 @@ showswap(void) } wclrtoeol(wnd); } + count = kvnsw == 1 ? 2 : 3; + proclabel(kvnsw + count); + procshow(kvnsw + count, LINES - 5 - kvnsw + 3 - DISKHIGHT + 1, + kvmsw[kvnsw].ksw_total); } |