Author: trociny
Date: Sat Apr 20 08:05:04 2013
New Revision: 249678
URL: http://svnweb.freebsd.org/changeset/base/249678

Log:
  Use libprocstat(3) when retrieving binary information for a process.
  
  MFC after:    1 month

Modified:
  head/usr.bin/procstat/procstat.c
  head/usr.bin/procstat/procstat.h
  head/usr.bin/procstat/procstat_bin.c

Modified: head/usr.bin/procstat/procstat.c
==============================================================================
--- head/usr.bin/procstat/procstat.c    Sat Apr 20 08:03:56 2013        
(r249677)
+++ head/usr.bin/procstat/procstat.c    Sat Apr 20 08:05:04 2013        
(r249678)
@@ -59,7 +59,7 @@ procstat(struct procstat *prstat, struct
 {
 
        if (bflag)
-               procstat_bin(kipp);
+               procstat_bin(prstat, kipp);
        else if (cflag)
                procstat_args(kipp);
        else if (eflag)

Modified: head/usr.bin/procstat/procstat.h
==============================================================================
--- head/usr.bin/procstat/procstat.h    Sat Apr 20 08:03:56 2013        
(r249677)
+++ head/usr.bin/procstat/procstat.h    Sat Apr 20 08:05:04 2013        
(r249678)
@@ -37,7 +37,7 @@ void  kinfo_proc_sort(struct kinfo_proc *
 void   procstat_args(struct kinfo_proc *kipp);
 void   procstat_auxv(struct kinfo_proc *kipp);
 void   procstat_basic(struct kinfo_proc *kipp);
-void   procstat_bin(struct kinfo_proc *kipp);
+void   procstat_bin(struct procstat *prstat, struct kinfo_proc *kipp);
 void   procstat_cred(struct procstat *prstat, struct kinfo_proc *kipp);
 void   procstat_env(struct kinfo_proc *kipp);
 void   procstat_files(struct procstat *prstat, struct kinfo_proc *kipp);

Modified: head/usr.bin/procstat/procstat_bin.c
==============================================================================
--- head/usr.bin/procstat/procstat_bin.c        Sat Apr 20 08:03:56 2013        
(r249677)
+++ head/usr.bin/procstat/procstat_bin.c        Sat Apr 20 08:05:04 2013        
(r249678)
@@ -40,40 +40,19 @@
 #include "procstat.h"
 
 void
-procstat_bin(struct kinfo_proc *kipp)
+procstat_bin(struct procstat *prstat, struct kinfo_proc *kipp)
 {
-       char pathname[PATH_MAX];
-       int error, osrel, name[4];
-       size_t len;
+       int osrel;
+       static char pathname[PATH_MAX];
 
        if (!hflag)
                printf("%5s %-16s %8s %s\n", "PID", "COMM", "OSREL", "PATH");
 
-       name[0] = CTL_KERN;
-       name[1] = KERN_PROC;
-       name[2] = KERN_PROC_PATHNAME;
-       name[3] = kipp->ki_pid;
-
-       len = sizeof(pathname);
-       error = sysctl(name, 4, pathname, &len, NULL, 0);
-       if (error < 0 && errno != ESRCH) {
-               warn("sysctl: kern.proc.pathname: %d", kipp->ki_pid);
-               return;
-       }
-       if (error < 0)
+       if (procstat_getpathname(prstat, kipp, pathname, sizeof(pathname)) != 0)
                return;
-       if (len == 0 || strlen(pathname) == 0)
+       if (strlen(pathname) == 0)
                strcpy(pathname, "-");
-
-       name[2] = KERN_PROC_OSREL;
-
-       len = sizeof(osrel);
-       error = sysctl(name, 4, &osrel, &len, NULL, 0);
-       if (error < 0 && errno != ESRCH) {
-               warn("sysctl: kern.proc.osrel: %d", kipp->ki_pid);
-               return;
-       }
-       if (error < 0)
+       if (procstat_getosrel(prstat, kipp, &osrel) != 0)
                return;
 
        printf("%5d ", kipp->ki_pid);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to