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));

Reply via email to