Monitor procinfo FD formatting
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 13 May 2014 23:58:48 +0000 (16:58 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 13 May 2014 23:59:58 +0000 (16:59 -0700)
Fixes various formatting issues with the 9ns FDs when you procinfo pid XX.

kern/src/ns/dev.c
kern/src/ns/sysfile.c

index ec2a883..b49625d 100644 (file)
@@ -440,7 +440,7 @@ int devconfig(int unused_int, char *c, DevConf *)
 
 char *devchaninfo(struct chan *chan, char *ret, size_t ret_l)
 {
-       snprintf(ret, ret_l, "qid.path: %p, qid.type: %02x\n", chan->qid.path,
+       snprintf(ret, ret_l, "qid.path: %p, qid.type: %02x", chan->qid.path,
                         chan->qid.type);
        return ret;
 }
index 3725e5d..a712caa 100644 (file)
@@ -1369,12 +1369,17 @@ void print_chaninfo(struct chan *c)
 {
        char buf[64] = { 0 };
        bool has_dev = c->type != -1;
-       printk("Chan pathname: %s, Dev: %s, Devinfo: %s\n",
+       if (has_dev && !devtab[c->type].chaninfo) {
+               printk("Chan type %d has no chaninfo!\n", c->type);
+               has_dev = FALSE;
+       }
+       printk("Chan pathname: %s ref %d, Dev: %s, Devinfo: %s",
                   c->name ? c->name->s : "no cname",
+                  kref_refcnt(&c->ref),
                   has_dev ? devtab[c->type].name : "no dev",
-                  has_dev ? devtab[c->type].chaninfo(c, buf, sizeof(buf)) : "no info");
+                  has_dev ? devtab[c->type].chaninfo(c, buf, sizeof(buf)) : "");
        if (!has_dev)
-               printk("No dev: intermediate chan? qid.path: %p\n", c->qid.path);
+               printk("qid.path: %p\n", c->qid.path);
        printk("\n");
 }
 
@@ -1387,7 +1392,7 @@ void print_9ns_files(struct proc *p)
        for (int i = 0; i <= f->maxfd; i++) {
                if (!f->fd[i])
                        continue;
-               printk("\t9fs %d, ", i);
+               printk("\t9fs %4d, ", i);
                print_chaninfo(f->fd[i]);
        }
        spin_unlock(&f->lock);