{pstat,swapinfo}(8): Add -g/-m to swapinfo, fix warnings, raise WARNS to 6.
authorSascha Wildner <saw@online.de>
Thu, 28 Nov 2013 18:49:37 +0000 (19:49 +0100)
committerSascha Wildner <saw@online.de>
Thu, 28 Nov 2013 18:52:29 +0000 (19:52 +0100)
-g and -m will use a BLOCKSIZE of 1G and 1M to display swap size in
gigabytes or megabytes, respectively.

Suggested-by: marino
usr.sbin/pstat/Makefile
usr.sbin/pstat/pstat.8
usr.sbin/pstat/pstat.c

index 9a67a5d..c1c5cb9 100644 (file)
@@ -12,6 +12,5 @@ LDADD=        -lkcore -lkinfo -lkvm
 MAN=   pstat.8
 LINKS= ${BINDIR}/pstat ${BINDIR}/swapinfo
 MLINKS=        pstat.8 swapinfo.8
 MAN=   pstat.8
 LINKS= ${BINDIR}/pstat ${BINDIR}/swapinfo
 MLINKS=        pstat.8 swapinfo.8
-WARNS?=        0
 
 .include <bsd.prog.mk>
 
 .include <bsd.prog.mk>
index a97d57e..f5b4b90 100644 (file)
@@ -27,9 +27,8 @@
 .\"
 .\"     @(#)pstat.8    8.5 (Berkeley) 5/13/94
 .\" $FreeBSD: src/usr.sbin/pstat/pstat.8,v 1.19.2.10 2002/07/12 09:12:49 des Exp $
 .\"
 .\"     @(#)pstat.8    8.5 (Berkeley) 5/13/94
 .\" $FreeBSD: src/usr.sbin/pstat/pstat.8,v 1.19.2.10 2002/07/12 09:12:49 des Exp $
-.\" $DragonFly: src/usr.sbin/pstat/pstat.8,v 1.5 2008/09/02 11:50:46 matthias Exp $
 .\"
 .\"
-.Dd September 2, 2008
+.Dd November 27, 2013
 .Dt PSTAT 8
 .Os
 .Sh NAME
 .Dt PSTAT 8
 .Os
 .Sh NAME
@@ -43,7 +42,9 @@
 .Op Fl N Ar system
 .Pp
 .Nm swapinfo
 .Op Fl N Ar system
 .Pp
 .Nm swapinfo
+.Op Fl g
 .Op Fl k
 .Op Fl k
+.Op Fl m
 .Op Fl M Ar core
 .Op Fl N Ar system
 .Sh DESCRIPTION
 .Op Fl M Ar core
 .Op Fl N Ar system
 .Sh DESCRIPTION
@@ -56,8 +57,10 @@ If invoked as
 the
 .Fl s
 option is implied, and only the
 the
 .Fl s
 option is implied, and only the
-.Fl k
-option is legal.
+.Fl k , m ,
+and
+.Fl g
+options are legal.
 .Pp
 The following options are available:
 .Bl -tag -width indent
 .Pp
 The following options are available:
 .Bl -tag -width indent
@@ -67,6 +70,14 @@ Print devices out by major/minor instead of name.
 Print sizes in kilobytes, regardless of the setting of the
 .Ev BLOCKSIZE
 environment variable.
 Print sizes in kilobytes, regardless of the setting of the
 .Ev BLOCKSIZE
 environment variable.
+.It Fl m
+Print sizes in megabytes, regardless of the setting of the
+.Ev BLOCKSIZE
+environment variable.
+.It Fl g
+Print sizes in gigabytes, regardless of the setting of the
+.Ev BLOCKSIZE
+environment variable.
 .It Fl T
 Print the number of used and free slots in several system tables.
 This is useful for checking to see how large system tables have become
 .It Fl T
 Print the number of used and free slots in several system tables.
 This is useful for checking to see how large system tables have become
index 842172a..f405508 100644 (file)
@@ -206,10 +206,10 @@ main(int argc, char **argv)
                opts = argv[0];
        if (!strcmp(opts,"swapinfo")) {
                swapflag = 1;
                opts = argv[0];
        if (!strcmp(opts,"swapinfo")) {
                swapflag = 1;
-               opts = "kM:N:";
-               usagestr = "swapinfo [-k] [-M core] [-N system]";
+               opts = "ghkmM:N:";
+               usagestr = "swapinfo [-gkm] [-M core] [-N system]";
        } else {
        } else {
-               opts = "TM:N:fiknstv";
+               opts = "TM:N:fhiknstv";
                usagestr = "pstat [-Tfknst] [-M core] [-N system]";
        }
 
                usagestr = "pstat [-Tfknst] [-M core] [-N system]";
        }
 
@@ -218,10 +218,18 @@ main(int argc, char **argv)
                case 'f':
                        fileflag = 1;
                        break;
                case 'f':
                        fileflag = 1;
                        break;
+               case 'g':
+                       if (setenv("BLOCKSIZE", "1G", 1) == -1)
+                               warn("setenv: cannot set BLOCKSIZE=1K");
+                       break;
                case 'k':
                        if (setenv("BLOCKSIZE", "1K", 1) == -1)
                                warn("setenv: cannot set BLOCKSIZE=1K");
                        break;
                case 'k':
                        if (setenv("BLOCKSIZE", "1K", 1) == -1)
                                warn("setenv: cannot set BLOCKSIZE=1K");
                        break;
+               case 'm':
+                       if (setenv("BLOCKSIZE", "1M", 1) == -1)
+                               warn("setenv: cannot set BLOCKSIZE=1K");
+                       break;
                case 'M':
                        memf = optarg;
                        break;
                case 'M':
                        memf = optarg;
                        break;
@@ -494,7 +502,7 @@ ufs_print(struct vnode *vp)
                else
                        printf(" %7s", name);
        else
                else
                        printf(" %7s", name);
        else
-               printf(" %7qd", ip->i_size);
+               printf(" %7ju", (uintmax_t)ip->i_size);
        return (0);
 }
 
        return (0);
 }
 
@@ -551,7 +559,7 @@ nfs_print(struct vnode *vp)
                else
                        printf(" %7s", name);
        else
                else
                        printf(" %7s", name);
        else
-               printf(" %7qd", np->n_size);
+               printf(" %7ju", (uintmax_t)np->n_size);
        return (0);
 }
 
        return (0);
 }
 
@@ -819,9 +827,11 @@ ttyprt(struct tty *tp, int line)
        int i, j;
        pid_t pgid;
        char *name, state[20];
        int i, j;
        pid_t pgid;
        char *name, state[20];
+       dev_t dev;
+
+       dev = (uintptr_t)tp->t_dev & 0xffff; /* XXX t_dev is really dev_t */
 
 
-       if (usenumflag || tp->t_dev == 0 ||
-          (name = devname(tp->t_dev, S_IFCHR)) == NULL)
+       if (usenumflag || dev == 0 || (name = devname(dev, S_IFCHR)) == NULL)
                printf("%7d ", line);
        else
                printf("%7s ", name);
                printf("%7d ", line);
        else
                printf("%7s ", name);
@@ -880,7 +890,7 @@ filemode(void)
                err(1, "kinfo_get_files");
        ofp = fp;
        
                err(1, "kinfo_get_files");
        ofp = fp;
        
-       printf("%d/%d open files\n", len, maxfile);
+       printf("%zu/%d open files\n", len, maxfile);
        printf("   LOC   TYPE    FLG     CNT  MSG    DATA    OFFSET\n");
        for (; len-- > 0; fp++) {
                if ((unsigned)fp->f_type > DTYPE_SOCKET)
        printf("   LOC   TYPE    FLG     CNT  MSG    DATA    OFFSET\n");
        for (; len-- > 0; fp++) {
                if ((unsigned)fp->f_type > DTYPE_SOCKET)
@@ -907,9 +917,9 @@ filemode(void)
                printf("  %3d", fp->f_msgcount);
                printf("  %8lx", (u_long)(void *)fp->f_data);
                if (fp->f_offset < 0)
                printf("  %3d", fp->f_msgcount);
                printf("  %8lx", (u_long)(void *)fp->f_data);
                if (fp->f_offset < 0)
-                       printf("  %qx\n", fp->f_offset);
+                       printf("  %jx\n", (uintmax_t)fp->f_offset);
                else
                else
-                       printf("  %qd\n", fp->f_offset);
+                       printf("  %jd\n", (intmax_t)fp->f_offset);
        }
        free(ofp);
 }
        }
        free(ofp);
 }