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);
 }
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to