| version 1.7, 1993/10/26 22:36:25 |
version 1.8, 1993/11/05 23:00:27 |
|
|
| if ((m->m_flags & M_EXT) == 0) |
if ((m->m_flags & M_EXT) == 0) |
| goto nopages; |
goto nopages; |
| mlen = MCLBYTES; |
mlen = MCLBYTES; |
| #ifdef MAPPED_MBUFS |
len = min(min(mlen, resid), space); |
| len = min(MCLBYTES, resid); |
|
| #else |
|
| if (atomic && top == 0) { |
|
| len = min(MCLBYTES - max_hdr, resid); |
|
| m->m_data += max_hdr; |
|
| } else |
|
| len = min(MCLBYTES, resid); |
|
| #endif |
|
| len = min(len, space); |
|
| space -= len; |
|
| } else { |
} else { |
| nopages: |
nopages: |
| len = min(min(mlen, resid), space); |
len = min(min(mlen, resid), space); |
| space -= len; |
|
| /* |
/* |
| * For datagram protocols, leave room |
* For datagram protocols, leave room |
| * for protocol headers in first mbuf. |
* for protocol headers in first mbuf. |
|
|
| if (atomic && top == 0 && len < mlen) |
if (atomic && top == 0 && len < mlen) |
| MH_ALIGN(m, len); |
MH_ALIGN(m, len); |
| } |
} |
| |
space -= len; |
| error = uiomove(mtod(m, caddr_t), (int)len, uio); |
error = uiomove(mtod(m, caddr_t), (int)len, uio); |
| resid = uio->uio_resid; |
resid = uio->uio_resid; |
| m->m_len = len; |
m->m_len = len; |