PERFORCE change 146071 for review
Ed Schouten
ed at FreeBSD.org
Sun Jul 27 22:30:12 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=146071
Change 146071 by ed at ed_dull on 2008/07/27 22:29:18
Add support for PTY master devices to procstat(1).
Affected files ...
.. //depot/projects/mpsafetty/sys/dev/pts/pts.c#7 edit
.. //depot/projects/mpsafetty/sys/kern/kern_descrip.c#2 edit
.. //depot/projects/mpsafetty/sys/sys/tty.h#4 edit
.. //depot/projects/mpsafetty/sys/sys/user.h#2 edit
.. //depot/projects/mpsafetty/usr.bin/procstat/procstat.1#2 edit
.. //depot/projects/mpsafetty/usr.bin/procstat/procstat_files.c#2 edit
Differences ...
==== //depot/projects/mpsafetty/sys/dev/pts/pts.c#7 (text+ko) ====
@@ -255,7 +255,7 @@
/* Reverse device name lookups, for ptsname() and ttyname() */
fgn = data;
- p = devtoname(tp->t_dev);
+ p = tty_devname(tp);
i = strlen(p) + 1;
if (i > fgn->len)
return (EINVAL);
==== //depot/projects/mpsafetty/sys/kern/kern_descrip.c#2 (text+ko) ====
@@ -70,6 +70,7 @@
#include <sys/syscallsubr.h>
#include <sys/sysctl.h>
#include <sys/sysproto.h>
+#include <sys/tty.h>
#include <sys/unistd.h>
#include <sys/user.h>
#include <sys/vnode.h>
@@ -2564,6 +2565,7 @@
struct vnode *vp;
struct file *fp;
struct proc *p;
+ struct tty *tp;
int vfslocked;
name = (int *)arg1;
@@ -2595,6 +2597,7 @@
kif->kf_structsize = sizeof(*kif);
vp = NULL;
so = NULL;
+ tp = NULL;
kif->kf_fd = i;
switch (fp->f_type) {
case DTYPE_VNODE:
@@ -2637,6 +2640,11 @@
kif->kf_type = KF_TYPE_SEM;
break;
+ case DTYPE_PTS:
+ kif->kf_type = KF_TYPE_PTS;
+ tp = fp->f_data;
+ break;
+
default:
kif->kf_type = KF_TYPE_UNKNOWN;
break;
@@ -2730,6 +2738,10 @@
kif->kf_sock_type = so->so_type;
kif->kf_sock_protocol = so->so_proto->pr_protocol;
}
+ if (tp != NULL) {
+ strlcpy(kif->kf_path, tty_devname(tp),
+ sizeof(kif->kf_path));
+ }
error = SYSCTL_OUT(req, kif, sizeof(*kif));
if (error)
break;
==== //depot/projects/mpsafetty/sys/sys/tty.h#4 (text+ko) ====
@@ -182,6 +182,7 @@
#define tty_opened(tp) ((tp)->t_flags & TF_OPENED)
#define tty_gone(tp) ((tp)->t_flags & TF_GONE)
#define tty_softc(tp) ((tp)->t_softc)
+#define tty_devname(tp) devtoname((tp)->t_dev)
/* Status line printing */
void tty_info(struct tty *);
==== //depot/projects/mpsafetty/sys/sys/user.h#2 (text+ko) ====
@@ -250,6 +250,7 @@
#define KF_TYPE_MQUEUE 7
#define KF_TYPE_SHM 8
#define KF_TYPE_SEM 9
+#define KF_TYPE_PTS 10
#define KF_TYPE_UNKNOWN 255
#define KF_VTYPE_VNON 0
==== //depot/projects/mpsafetty/usr.bin/procstat/procstat.1#2 (text+ko) ====
@@ -148,11 +148,13 @@
.It k
kqueue
.It m
-messsage queue
+message queue
.It p
pipe
.It s
socket
+.It t
+pseudo-terminal master
.It v
vnode
.El
==== //depot/projects/mpsafetty/usr.bin/procstat/procstat_files.c#2 (text+ko) ====
@@ -222,6 +222,10 @@
str = "h";
break;
+ case KF_TYPE_PTS:
+ str = "t";
+ break;
+
case KF_TYPE_SEM:
str = "e";
break;
@@ -296,6 +300,7 @@
switch (kif->kf_type) {
case KF_TYPE_VNODE:
case KF_TYPE_FIFO:
+ case KF_TYPE_PTS:
printf("%-3s ", "-");
printf("%-18s", kif->kf_path);
break;
More information about the p4-projects
mailing list