=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/netstat/mbuf.c,v retrieving revision 1.26 retrieving revision 1.27 diff -c -r1.26 -r1.27 *** src/usr.bin/netstat/mbuf.c 2007/12/19 01:47:00 1.26 --- src/usr.bin/netstat/mbuf.c 2008/12/04 05:59:57 1.27 *************** *** 1,4 **** ! /* $OpenBSD: mbuf.c,v 1.26 2007/12/19 01:47:00 deraadt Exp $ */ /* $NetBSD: mbuf.c,v 1.9 1996/05/07 02:55:03 thorpej Exp $ */ /* --- 1,4 ---- ! /* $OpenBSD: mbuf.c,v 1.27 2008/12/04 05:59:57 deraadt Exp $ */ /* $NetBSD: mbuf.c,v 1.9 1996/05/07 02:55:03 thorpej Exp $ */ /* *************** *** 36,41 **** --- 36,42 ---- #include #include #include + #include #include #include *************** *** 49,55 **** typedef int bool; struct mbstat mbstat; ! struct pool mbpool, mclpool; extern kvm_t *kvmd; --- 50,61 ---- typedef int bool; struct mbstat mbstat; ! struct pool mbpool, mclpools[MCLPOOLS]; ! int mclp; ! char *mclnames[] = { ! "mcl2k", "mcl4k", "mcl8k", "mcl9k", "mcl12k", "mcl16k", "mcl64k" ! }; ! char **mclnamep = mclnames; extern kvm_t *kvmd; *************** *** 77,83 **** mbpr(void) { int totmem, totused, totmbufs, totpct; ! int i, mib[4], npools, flag = 0; struct pool pool; struct mbtypes *mp; size_t size; --- 83,89 ---- mbpr(void) { int totmem, totused, totmbufs, totpct; ! int i, mib[4], npools; struct pool pool; struct mbtypes *mp; size_t size; *************** *** 135,153 **** return; } ! if (!strncmp(name, "mbpl", strlen("mbpl"))) { bcopy(&pool, &mbpool, sizeof(struct pool)); ! flag++; ! } else { ! if (!strncmp(name, "mclpl", strlen("mclpl"))) { ! bcopy(&pool, &mclpool, ! sizeof(struct pool)); ! flag++; ! } } - - if (flag == 2) - break; } totmbufs = 0; --- 141,155 ---- return; } ! if (!strncmp(name, "mbpl", strlen("mbpl"))) bcopy(&pool, &mbpool, sizeof(struct pool)); ! else if (mclp < nitems(mclpools) && ! !strncmp(name, *mclnamep, strlen(*mclnamep))) { ! printf("%s\n", name); ! bcopy(&pool, &mclpools[mclp++], ! sizeof(struct pool)); ! mclnamep++; } } totmbufs = 0; *************** *** 169,182 **** mbstat.m_mtypes[i], plural((int)mbstat.m_mtypes[i]), i); } ! printf("%lu/%lu/%lu mbuf clusters in use (current/peak/max)\n", ! (u_long)(mclpool.pr_nout), ! (u_long)(mclpool.pr_hiwat * mclpool.pr_itemsperpage), ! (u_long)(mclpool.pr_maxpages * mclpool.pr_itemsperpage)); ! totmem = (mbpool.pr_npages * page_size) + ! (mclpool.pr_npages * page_size); ! totused = mbpool.pr_nout * mbpool.pr_size + ! mclpool.pr_nout * mclpool.pr_size; totpct = (totmem == 0)? 0 : ((totused * 100)/totmem); printf("%u Kbytes allocated to network (%d%% in use)\n", totmem / 1024, totpct); --- 171,188 ---- mbstat.m_mtypes[i], plural((int)mbstat.m_mtypes[i]), i); } ! totmem = (mbpool.pr_npages * page_size); ! totused = mbpool.pr_nout * mbpool.pr_size; ! for (i = 0; i < mclp; i++) { ! printf("%lu/%lu/%lu mbuf %d byte clusters in use (current/peak/max)\n", ! (u_long)(mclpools[i].pr_nout), ! (u_long)(mclpools[i].pr_hiwat * mclpools[i].pr_itemsperpage), ! (u_long)(mclpools[i].pr_maxpages * mclpools[i].pr_itemsperpage), ! mclpools[i].pr_size); ! totmem += (mclpools[i].pr_npages * page_size); ! totused += mclpools[i].pr_nout * mclpools[i].pr_size; ! } ! totpct = (totmem == 0)? 0 : ((totused * 100)/totmem); printf("%u Kbytes allocated to network (%d%% in use)\n", totmem / 1024, totpct);