SCCS-vsn: sys/vax/if/if_ec.c 4.13
mp = m;
while (mp) {
mcp = mtod(mp, char *);
mp = m;
while (mp) {
mcp = mtod(mp, char *);
+ i = 0;
+ if ((int)bp&1) {
+ *bp++ = *mcp++;
+ i++;
+ }
for (i=0; i<mp->m_len; i++)
for (i=0; i<mp->m_len; i++)
+ while (i < mp->m_len) {
+ *(short *)bp = *(short *)mcp;
+ bp += 2;
+ mcp += 2;
+ i += 2;
+ }
+ if (mp->m_len&1)
*bp++ = *mcp++;
mp = m_free(mp);
}
*bp++ = *mcp++;
mp = m_free(mp);
}
/*
* Routine to copy from UNIBUS memory into mbufs.
* Similar in spirit to if_rubaget.
/*
* Routine to copy from UNIBUS memory into mbufs.
* Similar in spirit to if_rubaget.
+ *
+ * Warning: This makes the fairly safe assumption that
+ * mbufs have even lengths.
*/
struct mbuf *
ecget(ecbuf, totlen, off0)
*/
struct mbuf *
ecget(ecbuf, totlen, off0)
m->m_off = MMINOFF;
}
mcp = mtod(m, char *);
m->m_off = MMINOFF;
}
mcp = mtod(m, char *);
+ for (i=0; i<len; i+=2) {
+ *(short *)mcp = *(short *)cp;
+ mcp += 2;
+ cp += 2;
+ }
+ if (len&1)
*mcp++ = *cp++;
*mp = m;
mp = &m->m_next;
*mcp++ = *cp++;
*mp = m;
mp = &m->m_next;