Lines Matching refs:m0

226 m_demote(struct mbuf *m0, int all, int flags)
230 for (m = all ? m0 : m0->m_next; m != NULL; m = m->m_next) {
231 KASSERT(m->m_nextpkt == NULL, ("%s: m_nextpkt in m %p, m0 %p",
232 __func__, m, m0));
247 m_sanity(struct mbuf *m0, int sanitize)
259 for (m = m0; m != NULL; m = m->m_next) {
275 if (m != m0 && m->m_nextpkt != NULL) {
284 if (m0->m_flags & M_PKTHDR)
288 if (m != m0 && m->m_flags & M_PKTHDR &&
298 if (m != m0 && m->m_flags & M_PKTHDR) {
307 m = m0;
893 m_split(struct mbuf *m0, int len0, int wait)
899 for (m = m0; m && len > m->m_len; m = m->m_next)
904 if (m0->m_flags & M_PKTHDR && remain == 0) {
905 n = m_gethdr(wait, m0->m_type);
910 n->m_pkthdr.rcvif = m0->m_pkthdr.rcvif;
911 n->m_pkthdr.len = m0->m_pkthdr.len - len0;
912 m0->m_pkthdr.len = len0;
914 } else if (m0->m_flags & M_PKTHDR) {
915 n = m_gethdr(wait, m0->m_type);
918 n->m_pkthdr.rcvif = m0->m_pkthdr.rcvif;
919 n->m_pkthdr.len = m0->m_pkthdr.len - len0;
920 m0->m_pkthdr.len = len0;
1031 m_copyback(struct mbuf *m0, int off, int len, c_caddr_t cp)
1034 struct mbuf *m = m0, *n;
1037 if (m0 == NULL)
1075 out: if (((m = m0)->m_flags & M_PKTHDR) && (m->m_pkthdr.len < totlen))
1087 m_append(struct mbuf *m0, int len, c_caddr_t cp)
1092 for (m = m0; m->m_next != NULL; m = m->m_next)
1120 if (m0->m_flags & M_PKTHDR)
1121 m0->m_pkthdr.len += len - remainder;
1223 m_fixhdr(struct mbuf *m0)
1227 len = m_length(m0, NULL);
1228 m0->m_pkthdr.len = len;
1233 m_length(struct mbuf *m0, struct mbuf **last)
1239 for (m = m0; m != NULL; m = m->m_next) {
1261 m_defrag(struct mbuf *m0, int how)
1267 if (!(m0->m_flags & M_PKTHDR))
1268 return (m0);
1270 m_fixhdr(m0); /* Needed sanity check */
1280 if (m0->m_pkthdr.len > MHLEN)
1288 if (m_dup_pkthdr(m_final, m0, how) == 0)
1293 while (progress < m0->m_pkthdr.len) {
1294 length = m0->m_pkthdr.len - progress;
1307 m_copydata(m0, progress, length, mtod(m_new, caddr_t));
1315 if (m0->m_next == NULL)
1318 m_freem(m0);
1319 m0 = m_final;
1322 m_defragbytes += m0->m_pkthdr.len;
1324 return (m0);
1344 m_collapse(struct mbuf *m0, int how, int maxfrags)
1353 for (m = m0; m != NULL; m = m->m_next)
1361 m = m0;
1375 return m0;
1384 prev = &m0->m_next; /* NB: not the first mbuf */
1400 return m0;
1438 m_fragment(struct mbuf *m0, int how, int length)
1443 if (!(m0->m_flags & M_PKTHDR))
1444 return (m0);
1447 return (m0);
1457 m_fixhdr(m0); /* Needed sanity check */
1463 if (m_dup_pkthdr(m_first, m0, how) == 0)
1468 while (progress < m0->m_pkthdr.len) {
1471 if (fraglen > m0->m_pkthdr.len - progress)
1472 fraglen = m0->m_pkthdr.len - progress;
1483 m_copydata(m0, progress, fraglen, mtod(m_last, caddr_t));
1487 m_freem(m0);
1488 m0 = m_first;
1489 return (m0);
1494 return (m0);
1595 m_unshare(struct mbuf *m0, int how)
1602 for (m = m0; m != NULL; m = mprev->m_next) {
1672 m_freem(m0);
1676 KASSERT(mprev == NULL, ("%s: m0 %p, m %p has M_PKTHDR",
1677 __func__, m0, m));
1703 m_freem(m0);
1709 m0 = mfirst; /* new head of chain */
1715 return (m0);