diff options
-rw-r--r-- | sys/kern/uipc_mbuf.c | 16 | ||||
-rw-r--r-- | sys/sys/mbuf.h | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c index d84cf0b..619f3a6 100644 --- a/sys/kern/uipc_mbuf.c +++ b/sys/kern/uipc_mbuf.c @@ -951,3 +951,19 @@ m_copyback(m0, off, len, cp) out: if (((m = m0)->m_flags & M_PKTHDR) && (m->m_pkthdr.len < totlen)) m->m_pkthdr.len = totlen; } + +void +m_print(const struct mbuf *m) +{ + int len; + struct mbuf *m2; + + len = m->m_pkthdr.len; + m2 = m; + while (len) { + printf("%p %*D\n", m2, m2->m_len, (u_char *)m2->m_data, "-"); + len -= m2->m_len; + m2 = m2->m_next; + } + return; +} diff --git a/sys/sys/mbuf.h b/sys/sys/mbuf.h index 70fc882..cce10ad 100644 --- a/sys/sys/mbuf.h +++ b/sys/sys/mbuf.h @@ -418,6 +418,7 @@ struct mbuf *m_get __P((int, int)); struct mbuf *m_getclr __P((int, int)); struct mbuf *m_gethdr __P((int, int)); struct mbuf *m_prepend __P((struct mbuf *,int,int)); +void m_print __P((const struct mbuf *m)); struct mbuf *m_pullup __P((struct mbuf *, int)); struct mbuf *m_retry __P((int, int)); struct mbuf *m_retryhdr __P((int, int)); |