aboutsummaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2012-04-01 18:22:48 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2012-04-01 18:22:48 +0000
commite506e182dda35a3ac977e9057552439dd24245f5 (patch)
treec2db61e497320454ff8abdab4b6faede73162985 /usr.bin
parent87d94367b96bdad25d621c1d906750b9aa1502b9 (diff)
Notes
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/fstat/fstat.c29
-rw-r--r--usr.bin/procstat/procstat_files.c10
2 files changed, 31 insertions, 8 deletions
diff --git a/usr.bin/fstat/fstat.c b/usr.bin/fstat/fstat.c
index 6014dddc47c2..fe225a04d384 100644
--- a/usr.bin/fstat/fstat.c
+++ b/usr.bin/fstat/fstat.c
@@ -84,6 +84,8 @@ static void print_pipe_info(struct procstat *procstat,
struct filestat *fst);
static void print_pts_info(struct procstat *procstat,
struct filestat *fst);
+static void print_shm_info(struct procstat *procstat,
+ struct filestat *fst);
static void print_socket_info(struct procstat *procstat,
struct filestat *fst);
static void print_vnode_info(struct procstat *procstat,
@@ -289,6 +291,9 @@ print_file_info(struct procstat *procstat, struct filestat *fst,
case PS_FST_TYPE_PTS:
print_pts_info(procstat, fst);
break;
+ case PS_FST_TYPE_SHM:
+ print_shm_info(procstat, fst);
+ break;
default:
if (vflg)
fprintf(stderr,
@@ -419,6 +424,30 @@ print_pts_info(struct procstat *procstat, struct filestat *fst)
}
static void
+print_shm_info(struct procstat *procstat, struct filestat *fst)
+{
+ struct shmstat shm;
+ char errbuf[_POSIX2_LINE_MAX];
+ char mode[15];
+ int error;
+
+ error = procstat_get_shm_info(procstat, fst, &shm, errbuf);
+ if (error != 0) {
+ printf("* error");
+ return;
+ }
+ if (nflg) {
+ printf(" ");
+ (void)snprintf(mode, sizeof(mode), "%o", shm.mode);
+ } else {
+ printf(" %-15s", fst->fs_path != NULL ? fst->fs_path : "-");
+ strmode(shm.mode, mode);
+ }
+ printf(" %10s %6ju", mode, shm.size);
+ print_access_flags(fst->fs_fflags);
+}
+
+static void
print_vnode_info(struct procstat *procstat, struct filestat *fst)
{
struct vnstat vn;
diff --git a/usr.bin/procstat/procstat_files.c b/usr.bin/procstat/procstat_files.c
index 84737a1f2f8c..4c1905c919f5 100644
--- a/usr.bin/procstat/procstat_files.c
+++ b/usr.bin/procstat/procstat_files.c
@@ -440,13 +440,6 @@ procstat_files(struct procstat *procstat, struct kinfo_proc *kipp)
printf(" ");
}
switch (fst->fs_type) {
- case PS_FST_TYPE_VNODE:
- case PS_FST_TYPE_FIFO:
- case PS_FST_TYPE_PTS:
- printf("%-3s ", "-");
- printf("%-18s", fst->fs_path != NULL ? fst->fs_path : "-");
- break;
-
case PS_FST_TYPE_SOCKET:
error = procstat_get_socket_info(procstat, fst, &sock, NULL);
if (error != 0)
@@ -477,7 +470,8 @@ procstat_files(struct procstat *procstat, struct kinfo_proc *kipp)
break;
default:
- printf("%-18s", "-");
+ printf("%-3s ", "-");
+ printf("%-18s", fst->fs_path != NULL ? fst->fs_path : "-");
}
printf("\n");