svn commit: r200167 - head/usr.bin/systat

Ed Schouten ed at FreeBSD.org
Sat Dec 5 20:52:12 UTC 2009


Author: ed
Date: Sat Dec  5 20:52:11 2009
New Revision: 200167
URL: http://svn.freebsd.org/changeset/base/200167

Log:
  Let systat's vmstat use utmpx.

Modified:
  head/usr.bin/systat/Makefile
  head/usr.bin/systat/vmstat.c

Modified: head/usr.bin/systat/Makefile
==============================================================================
--- head/usr.bin/systat/Makefile	Sat Dec  5 20:44:19 2009	(r200166)
+++ head/usr.bin/systat/Makefile	Sat Dec  5 20:52:11 2009	(r200167)
@@ -14,7 +14,7 @@ SRCS+=	icmp6.c ip6.c
 CFLAGS+= -DINET6
 .endif
 
-DPADD=	${LIBCURSES} ${LIBM} ${LIBDEVSTAT} ${LIBKVM}
-LDADD=	-lcursesw -lm -ldevstat -lkvm
+DPADD=	${LIBCURSES} ${LIBM} ${LIBDEVSTAT} ${LIBKVM} ${LIBULOG}
+LDADD=	-lcursesw -lm -ldevstat -lkvm -lulog
 
 .include <bsd.prog.mk>

Modified: head/usr.bin/systat/vmstat.c
==============================================================================
--- head/usr.bin/systat/vmstat.c	Sat Dec  5 20:44:19 2009	(r200166)
+++ head/usr.bin/systat/vmstat.c	Sat Dec  5 20:52:11 2009	(r200167)
@@ -65,8 +65,9 @@ static const char sccsid[] = "@(#)vmstat
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
+#define	_ULOG_POSIX_NAMES
+#include <ulog.h>
 #include <unistd.h>
-#include <utmp.h>
 #include <devstat.h>
 #include "systat.h"
 #include "extern.h"
@@ -141,7 +142,6 @@ static void putlongdouble(long double, i
 static int ucount(void);
 
 static	int ncpu;
-static	int ut;
 static	char buf[26];
 static	time_t t;
 static	double etime;
@@ -150,16 +150,10 @@ static	long *intrloc;
 static	char **intrname;
 static	int nextintsrow;
 
-struct	utmp utmp;
-
-
 WINDOW *
 openkre(void)
 {
 
-	ut = open(_PATH_UTMP, O_RDONLY);
-	if (ut < 0)
-		error("No utmp");
 	return (stdscr);
 }
 
@@ -167,7 +161,6 @@ void
 closekre(WINDOW *w)
 {
 
-	(void) close(ut);
 	if (w == NULL)
 		return;
 	wclear(w);
@@ -634,14 +627,14 @@ static int
 ucount(void)
 {
 	int nusers = 0;
+	struct utmpx *ut;
 
-	if (ut < 0)
-		return (0);
-	while (read(ut, &utmp, sizeof(utmp)))
-		if (utmp.ut_name[0] != '\0')
+	setutxent();
+	while ((ut = getutxent()) != NULL)
+		if (ut->ut_type == USER_PROCESS)
 			nusers++;
+	endutxent();
 
-	lseek(ut, 0L, L_SET);
 	return (nusers);
 }
 


More information about the svn-src-all mailing list