aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/procstat/procstat_bin.c
diff options
context:
space:
mode:
authorMikolaj Golub <trociny@FreeBSD.org>2013-04-20 08:05:04 +0000
committerMikolaj Golub <trociny@FreeBSD.org>2013-04-20 08:05:04 +0000
commit66e2f9998bf139680d5b7bc2a7d529a3de0dbe02 (patch)
treed4f59c0468456c7795ad92786bfeb50a267072db /usr.bin/procstat/procstat_bin.c
parenteec6cb1cf20290299c34bcab79119823f6ac7a1f (diff)
downloadsrc-66e2f9998bf139680d5b7bc2a7d529a3de0dbe02.tar.gz
src-66e2f9998bf139680d5b7bc2a7d529a3de0dbe02.zip
Use libprocstat(3) when retrieving binary information for a process.
MFC after: 1 month
Notes
Notes: svn path=/head/; revision=249678
Diffstat (limited to 'usr.bin/procstat/procstat_bin.c')
-rw-r--r--usr.bin/procstat/procstat_bin.c33
1 files changed, 6 insertions, 27 deletions
diff --git a/usr.bin/procstat/procstat_bin.c b/usr.bin/procstat/procstat_bin.c
index 718103dd69cc..dc88c38c5124 100644
--- a/usr.bin/procstat/procstat_bin.c
+++ b/usr.bin/procstat/procstat_bin.c
@@ -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);