This allows the memory stats in vmstat view to be viewed in MB. ok/comments?
-mark Index: systat.1 =================================================================== RCS file: /cvs/src/usr.bin/systat/systat.1,v retrieving revision 1.92 diff -u -p -r1.92 systat.1 --- systat.1 29 Apr 2011 05:48:04 -0000 1.92 +++ systat.1 29 Apr 2011 06:22:17 -0000 @@ -444,6 +444,9 @@ virtual memory, that is, the amount of m needed if all processes were resident at the same time. Finally, the last column shows the amount of physical memory on the free list. +Pressing +.Ic M +displays these statistics in megabytes instead of the default kilobytes. .Pp Below the memory display is a list of the average number of processes (over the last refresh interval) that are runnable Index: main.c =================================================================== RCS file: /cvs/src/usr.bin/systat/main.c,v retrieving revision 1.59 diff -u -p -r1.59 main.c --- main.c 5 Apr 2011 07:35:32 -0000 1.59 +++ main.c 29 Apr 2011 06:22:16 -0000 @@ -70,7 +70,8 @@ WINDOW *wnd; int CMDLINE; char timebuf[26]; char uloadbuf[TIMEPOS]; - +int mempref = 1; +char memchar = 'K'; int ucount(void); void usage(void); Index: systat.h =================================================================== RCS file: /cvs/src/usr.bin/systat/systat.h,v retrieving revision 1.17 diff -u -p -r1.17 systat.h --- systat.h 31 Mar 2011 06:12:34 -0000 1.17 +++ systat.h 29 Apr 2011 06:22:17 -0000 @@ -71,6 +71,8 @@ extern int verbose; extern int nflag; extern char uloadbuf[]; extern char timebuf[]; +extern int mempref; +extern char memchar; struct inpcb; Index: vmstat.c =================================================================== RCS file: /cvs/src/usr.bin/systat/vmstat.c,v retrieving revision 1.73 diff -u -p -r1.73 vmstat.c --- vmstat.c 19 Nov 2010 18:35:16 -0000 1.73 +++ vmstat.c 29 Apr 2011 06:22:17 -0000 @@ -223,7 +223,8 @@ labelkre(void) { int i, j, l; - mvprintw(MEMROW, MEMCOL, " memory totals (in KB)"); + mvprintw(MEMROW, MEMCOL, " memory totals (in %cB)", + memchar); mvprintw(MEMROW + 1, MEMCOL, " real virtual free"); mvprintw(MEMROW + 2, MEMCOL, "Active"); mvprintw(MEMROW + 3, MEMCOL, "All"); @@ -376,7 +377,7 @@ showkre(void) addch(cpuchar[c]); } -#define pgtokb(pg) ((pg) * (s.uvmexp.pagesize / 1024)) +#define pgtokb(pg) (((pg) * (s.uvmexp.pagesize / 1024)) / mempref) putint(pgtokb(s.uvmexp.active), MEMROW + 2, MEMCOL + 7, 8); putint(pgtokb(s.uvmexp.active + s.uvmexp.swpginuse), /* XXX */ @@ -476,6 +477,15 @@ vm_keyboard_callback(int ch) case 'z': if (state == RUN) getinfo(&s1); + break; + case 'M': + if (mempref == 1) { + mempref = 1024; + memchar = 'M'; + } else { + mempref = 1; + memchar = 'K'; + } break; } return (keyboard_callback(ch));