| 305 | } |
| 306 | |
| 307 | int ff_zc_mbuf_get(struct ff_zc_mbuf *m, int len) { |
| 308 | struct mbuf *mb; |
| 309 | |
| 310 | if (m == NULL) { |
| 311 | return -1; |
| 312 | } |
| 313 | |
| 314 | mb = m_getm2(NULL, max(len, 1), M_WAITOK, MT_DATA, 0); |
| 315 | if (mb == NULL) { |
| 316 | return -1; |
| 317 | } |
| 318 | |
| 319 | m->bsd_mbuf = m->bsd_mbuf_off = mb; |
| 320 | m->off = 0; |
| 321 | m->len = len; |
| 322 | |
| 323 | return 0; |
| 324 | } |
| 325 | |
| 326 | int |
| 327 | ff_zc_mbuf_write(struct ff_zc_mbuf *zm, const char *data, int len) |