Module Name: src Committed By: pooka Date: Fri May 21 08:46:14 UTC 2010
Modified Files: src/lib/libpuffs: opdump.c Log Message: Don't try to print the names of messages we don't know about. To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/lib/libpuffs/opdump.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libpuffs/opdump.c diff -u src/lib/libpuffs/opdump.c:1.31 src/lib/libpuffs/opdump.c:1.32 --- src/lib/libpuffs/opdump.c:1.31 Thu May 20 13:07:28 2010 +++ src/lib/libpuffs/opdump.c Fri May 21 08:46:14 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: opdump.c,v 1.31 2010/05/20 13:07:28 pooka Exp $ */ +/* $NetBSD: opdump.c,v 1.32 2010/05/21 08:46:14 pooka Exp $ */ /* * Copyright (c) 2005, 2006 Antti Kantee. All Rights Reserved. @@ -35,7 +35,7 @@ #include <sys/cdefs.h> #if !defined(lint) -__RCSID("$NetBSD: opdump.c,v 1.31 2010/05/20 13:07:28 pooka Exp $"); +__RCSID("$NetBSD: opdump.c,v 1.32 2010/05/21 08:46:14 pooka Exp $"); #endif /* !lint */ #include <sys/types.h> @@ -141,39 +141,54 @@ void puffsdump_req(struct puffs_req *preq) { + char buf[128]; static struct timeval tv_prev; struct timeval tv_now, tv; const char **map; - int isvn = 0; + const char *optype; + size_t maxhandle; + int opclass, isvn = 0; printf("reqid: %" PRIu64 ", ", preq->preq_id); - switch (PUFFSOP_OPCLASS(preq->preq_opclass)) { + opclass = PUFFSOP_OPCLASS(preq->preq_opclass); + switch (opclass) { case PUFFSOP_VFS: map = vfsop_revmap; + maxhandle = __arraycount(vfsop_revmap); break; case PUFFSOP_VN: map = vnop_revmap; + maxhandle = __arraycount(vnop_revmap); isvn = 1; break; case PUFFSOP_CACHE: map = cacheop_revmap; + maxhandle = __arraycount(cacheop_revmap); break; case PUFFSOP_ERROR: map = errnot_revmap; + maxhandle = __arraycount(errnot_revmap); break; case PUFFSOP_FLUSH: map = flush_revmap; + maxhandle = __arraycount(flush_revmap); break; default: - printf("unhandled opclass\n"); + printf("unhandled opclass %d\n", opclass); return; } + if (preq->preq_optype < maxhandle) { + optype = map[preq->preq_optype]; + } else { + snprintf(buf, sizeof(buf), "UNKNOWN (%d)", preq->preq_optype); + optype = buf; + } + printf("opclass %d%s, optype: %s, " "cookie: %p,\n" DINT "aux: %p, auxlen: %zu, pid: %d, lwpid: %d\n", - PUFFSOP_OPCLASS(preq->preq_opclass), - PUFFSOP_WANTREPLY(preq->preq_opclass) ? "" : " (FAF)", - map[preq->preq_optype], preq->preq_cookie, + opclass, PUFFSOP_WANTREPLY(preq->preq_opclass) ? "" : " (FAF)", + optype, preq->preq_cookie, preq->preq_buf, preq->preq_buflen, preq->preq_pid, preq->preq_lid);