Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/uipc_mbuf.c
Show First 20 Lines • Show All 1,295 Lines • ▼ Show 20 Lines | if (off < m->m_epg_hdrlen) { | ||||
off = 0; | off = 0; | ||||
} else | } else | ||||
off -= m->m_epg_hdrlen; | off -= m->m_epg_hdrlen; | ||||
pgoff = m->m_epg_1st_off; | pgoff = m->m_epg_1st_off; | ||||
for (i = 0; i < m->m_epg_npgs && len > 0; i++) { | for (i = 0; i < m->m_epg_npgs && len > 0; i++) { | ||||
pglen = m_epg_pagelen(m, i, pgoff); | pglen = m_epg_pagelen(m, i, pgoff); | ||||
if (off < pglen) { | if (off < pglen) { | ||||
count = min(pglen - off, len); | count = min(pglen - off, len); | ||||
p = (void *)PHYS_TO_DMAP(m->m_epg_pa[i] + pgoff); | p = (void *)PHYS_TO_DMAP(m->m_epg_pa[i] + pgoff + off); | ||||
rval = f(arg, p, count); | rval = f(arg, p, count); | ||||
if (rval) | if (rval) | ||||
return (rval); | return (rval); | ||||
len -= count; | len -= count; | ||||
off = 0; | off = 0; | ||||
} else | } else | ||||
off -= pglen; | off -= pglen; | ||||
pgoff = 0; | pgoff = 0; | ||||
▲ Show 20 Lines • Show All 960 Lines • Show Last 20 Lines |