Module Name:    src
Committed By:   nakayama
Date:           Wed Feb 16 12:58:38 UTC 2011

Modified Files:
        src/usr.bin/vmstat: vmstat.c

Log Message:
Fix header, format and total count of system interrupt counters.


To generate a diff of this commit:
cvs rdiff -u -r1.179 -r1.180 src/usr.bin/vmstat/vmstat.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/vmstat/vmstat.c
diff -u src/usr.bin/vmstat/vmstat.c:1.179 src/usr.bin/vmstat/vmstat.c:1.180
--- src/usr.bin/vmstat/vmstat.c:1.179	Sat Feb  5 13:12:07 2011
+++ src/usr.bin/vmstat/vmstat.c	Wed Feb 16 12:58:38 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: vmstat.c,v 1.179 2011/02/05 13:12:07 mlelstv Exp $ */
+/* $NetBSD: vmstat.c,v 1.180 2011/02/16 12:58:38 nakayama Exp $ */
 
 /*-
  * Copyright (c) 1998, 2000, 2001, 2007 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
 #if 0
 static char sccsid[] = "@(#)vmstat.c	8.2 (Berkeley) 3/1/95";
 #else
-__RCSID("$NetBSD: vmstat.c,v 1.179 2011/02/05 13:12:07 mlelstv Exp $");
+__RCSID("$NetBSD: vmstat.c,v 1.180 2011/02/16 12:58:38 nakayama Exp $");
 #endif
 #endif /* not lint */
 
@@ -1137,7 +1137,9 @@
 
 	counttotal = 0;
 	uptime = getuptime();
-	(void)printf("%-34s %16s %8s %s\n", "event", "total", "rate", "type");
+	if (type == EVCNT_TYPE_ANY)
+		(void)printf("%-34s %16s %8s %s\n", "event", "total", "rate",
+		    "type");
 
 	if (memf == NULL) do {
 		const int mib[4] = { CTL_KERN, KERN_EVCNT, type,
@@ -1175,7 +1177,9 @@
 		while (evs < last_evs
 		    && buflen >= sizeof(*evs)/sizeof(uint64_t)
 		    && buflen >= evs->ev_len) {
-			(void)printf("%s %s%*s %16"PRIu64" %8"PRIu64" %s\n",
+			(void)printf(type == EVCNT_TYPE_ANY ?
+			    "%s %s%*s %16"PRIu64" %8"PRIu64" %s\n" :
+			    "%s %s%*s %16"PRIu64" %8"PRIu64"\n",
 			    evs->ev_strings,
 			    evs->ev_strings + evs->ev_grouplen + 1,
 			    34 - (evs->ev_grouplen + 1 + evs->ev_namelen), "",
@@ -1184,8 +1188,8 @@
 			    (evs->ev_type < __arraycount(evtypes) ?
 				evtypes[evs->ev_type] : "?"));
 			buflen -= evs->ev_len;
+			counttotal += evs->ev_count;
 			evs = (const void *)((const uint64_t *)evs + evs->ev_len);
-			counttotal += evcnt.ev_count++;
 		}
 		free(buf);
 		if (type != EVCNT_TYPE_ANY)
@@ -1211,7 +1215,9 @@
 		deref_kptr(evcnt.ev_name, evname,
 		    (size_t)evcnt.ev_namelen + 1, "event chain trashed");
 
-		(void)printf("%s %s%*s %16"PRIu64" %8"PRIu64" %s\n",
+		(void)printf(type == EVCNT_TYPE_ANY ?
+		    "%s %s%*s %16"PRIu64" %8"PRIu64" %s\n" :
+		    "%s %s%*s %16"PRIu64" %8"PRIu64"\n",
 		    evgroup, evname,
 		    34 - (evcnt.ev_grouplen + 1 + evcnt.ev_namelen), "",
 		    evcnt.ev_count,
@@ -1219,7 +1225,7 @@
 		    (evcnt.ev_type < __arraycount(evtypes) ?
 			evtypes[evcnt.ev_type] : "?"));
 
-		counttotal += evcnt.ev_count++;
+		counttotal += evcnt.ev_count;
 	}
 	if (type != EVCNT_TYPE_ANY)
 		(void)printf("%-34s %16"PRIu64" %8"PRIu64"\n",

Reply via email to