From 5317f44fe2ba2adb6cf0599d5837af42a0e37fec Mon Sep 17 00:00:00 2001 From: Edward Tomasz Napierala Date: Mon, 16 Apr 2018 14:39:34 +0000 Subject: MFC r324237: Make procstat(1) recognize process descriptors, so that it shows "P" instead of "?" in "procstat -af" output. Note that there are still a few more DTYPE_* kinds we don't decode yet. Sponsored by: DARPA, AFRL --- lib/libprocstat/libprocstat.c | 5 +++++ lib/libprocstat/libprocstat.h | 1 + usr.bin/procstat/procstat.1 | 4 +++- usr.bin/procstat/procstat_files.c | 5 +++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/libprocstat/libprocstat.c b/lib/libprocstat/libprocstat.c index 03d4b73387203..52adca91fc103 100644 --- a/lib/libprocstat/libprocstat.c +++ b/lib/libprocstat/libprocstat.c @@ -579,6 +579,10 @@ procstat_getfiles_kvm(struct procstat *procstat, struct kinfo_proc *kp, int mmap type = PS_FST_TYPE_SHM; data = file.f_data; break; + case DTYPE_PROCDESC: + type = PS_FST_TYPE_PROCDESC; + data = file.f_data; + break; default: continue; } @@ -662,6 +666,7 @@ kinfo_type2fst(int kftype) int kf_type; int fst_type; } kftypes2fst[] = { + { KF_TYPE_PROCDESC, PS_FST_TYPE_PROCDESC }, { KF_TYPE_CRYPTO, PS_FST_TYPE_CRYPTO }, { KF_TYPE_FIFO, PS_FST_TYPE_FIFO }, { KF_TYPE_KQUEUE, PS_FST_TYPE_KQUEUE }, diff --git a/lib/libprocstat/libprocstat.h b/lib/libprocstat/libprocstat.h index 00b6f1c1c1104..7764762f5aff6 100644 --- a/lib/libprocstat/libprocstat.h +++ b/lib/libprocstat/libprocstat.h @@ -68,6 +68,7 @@ #define PS_FST_TYPE_SEM 10 #define PS_FST_TYPE_UNKNOWN 11 #define PS_FST_TYPE_NONE 12 +#define PS_FST_TYPE_PROCDESC 13 /* * Special descriptor numbers. diff --git a/usr.bin/procstat/procstat.1 b/usr.bin/procstat/procstat.1 index db24f4097998d..edcafafe57a6a 100644 --- a/usr.bin/procstat/procstat.1 +++ b/usr.bin/procstat/procstat.1 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 20, 2017 +.Dd October 3, 2017 .Dt PROCSTAT 1 .Os .Sh NAME @@ -212,6 +212,8 @@ shared memory kqueue .It m message queue +.It P +process descriptor .It p pipe .It s diff --git a/usr.bin/procstat/procstat_files.c b/usr.bin/procstat/procstat_files.c index 3b20199a8036b..d2c599779222a 100644 --- a/usr.bin/procstat/procstat_files.c +++ b/usr.bin/procstat/procstat_files.c @@ -402,6 +402,11 @@ procstat_files(struct procstat *procstat, struct kinfo_proc *kipp) xo_emit("{eq:fd_type/sem}"); break; + case PS_FST_TYPE_PROCDESC: + str = "P"; + xo_emit("{eq:fd_type/procdesc}"); + break; + case PS_FST_TYPE_NONE: str = "?"; xo_emit("{eq:fd_type/none}"); -- cgit v1.2.3