Lines Matching full:cc
300 crypto_cursor_init(struct crypto_buffer_cursor *cc, in crypto_cursor_init() argument
303 memset(cc, 0, sizeof(*cc)); in crypto_cursor_init()
304 cc->cc_type = cb->cb_type; in crypto_cursor_init()
305 switch (cc->cc_type) { in crypto_cursor_init()
307 cc->cc_buf = cb->cb_buf; in crypto_cursor_init()
308 cc->cc_buf_len = cb->cb_buf_len; in crypto_cursor_init()
312 cc->cc_mbuf = cb->cb_mbuf; in crypto_cursor_init()
315 cc->cc_vmpage = cb->cb_vm_page; in crypto_cursor_init()
316 cc->cc_buf_len = cb->cb_vm_page_len; in crypto_cursor_init()
317 cc->cc_offset = cb->cb_vm_page_offset; in crypto_cursor_init()
320 cc->cc_iov = cb->cb_uio->uio_iov; in crypto_cursor_init()
321 cc->cc_buf_len = cb->cb_uio->uio_resid; in crypto_cursor_init()
334 crypto_cursor_advance(struct crypto_buffer_cursor *cc, size_t amount) in crypto_cursor_advance() argument
338 switch (cc->cc_type) { in crypto_cursor_advance()
340 MPASS(cc->cc_buf_len >= amount); in crypto_cursor_advance()
341 cc->cc_buf += amount; in crypto_cursor_advance()
342 cc->cc_buf_len -= amount; in crypto_cursor_advance()
346 remain = cc->cc_mbuf->m_len - cc->cc_offset; in crypto_cursor_advance()
348 cc->cc_offset += amount; in crypto_cursor_advance()
352 cc->cc_mbuf = cc->cc_mbuf->m_next; in crypto_cursor_advance()
353 cc->cc_offset = 0; in crypto_cursor_advance()
359 MPASS(cc->cc_mbuf->m_len >= cc->cc_offset + amount); in crypto_cursor_advance()
360 cc->cc_offset += amount; in crypto_cursor_advance()
365 cc, amount); in crypto_cursor_advance()
366 remain = MIN(PAGE_SIZE - cc->cc_offset, cc->cc_buf_len); in crypto_cursor_advance()
368 cc->cc_buf_len -= amount; in crypto_cursor_advance()
369 cc->cc_offset += amount; in crypto_cursor_advance()
372 cc->cc_buf_len -= remain; in crypto_cursor_advance()
374 cc->cc_vmpage++; in crypto_cursor_advance()
375 cc->cc_offset = 0; in crypto_cursor_advance()
376 if (amount == 0 || cc->cc_buf_len == 0) in crypto_cursor_advance()
382 remain = cc->cc_iov->iov_len - cc->cc_offset; in crypto_cursor_advance()
384 cc->cc_offset += amount; in crypto_cursor_advance()
387 cc->cc_buf_len -= remain; in crypto_cursor_advance()
389 cc->cc_iov++; in crypto_cursor_advance()
390 cc->cc_offset = 0; in crypto_cursor_advance()
397 panic("%s: invalid buffer type %d", __func__, cc->cc_type); in crypto_cursor_advance()
404 crypto_cursor_segment(struct crypto_buffer_cursor *cc, size_t *len) in crypto_cursor_segment() argument
406 switch (cc->cc_type) { in crypto_cursor_segment()
410 if (cc->cc_buf_len == 0) { in crypto_cursor_segment()
417 if (cc->cc_mbuf == NULL) { in crypto_cursor_segment()
424 panic("%s: invalid buffer type %d", __func__, cc->cc_type); in crypto_cursor_segment()
430 switch (cc->cc_type) { in crypto_cursor_segment()
432 *len = cc->cc_buf_len; in crypto_cursor_segment()
433 return (cc->cc_buf); in crypto_cursor_segment()
436 if (cc->cc_mbuf->m_flags & M_EXTPG) in crypto_cursor_segment()
437 return (m_epg_segment(cc->cc_mbuf, cc->cc_offset, len)); in crypto_cursor_segment()
438 *len = cc->cc_mbuf->m_len - cc->cc_offset; in crypto_cursor_segment()
439 return (mtod(cc->cc_mbuf, char *) + cc->cc_offset); in crypto_cursor_segment()
441 *len = PAGE_SIZE - cc->cc_offset; in crypto_cursor_segment()
443 *cc->cc_vmpage)) + cc->cc_offset); in crypto_cursor_segment()
445 *len = cc->cc_iov->iov_len - cc->cc_offset; in crypto_cursor_segment()
446 return ((char *)cc->cc_iov->iov_base + cc->cc_offset); in crypto_cursor_segment()
453 crypto_cursor_copyback(struct crypto_buffer_cursor *cc, int size, in crypto_cursor_copyback() argument
461 switch (cc->cc_type) { in crypto_cursor_copyback()
463 MPASS(cc->cc_buf_len >= size); in crypto_cursor_copyback()
464 memcpy(cc->cc_buf, src, size); in crypto_cursor_copyback()
465 cc->cc_buf += size; in crypto_cursor_copyback()
466 cc->cc_buf_len -= size; in crypto_cursor_copyback()
475 remain = cc->cc_mbuf->m_len - cc->cc_offset; in crypto_cursor_copyback()
477 m_copyback(cc->cc_mbuf, cc->cc_offset, todo, src); in crypto_cursor_copyback()
480 cc->cc_offset += todo; in crypto_cursor_copyback()
484 cc->cc_mbuf = cc->cc_mbuf->m_next; in crypto_cursor_copyback()
485 cc->cc_offset = 0; in crypto_cursor_copyback()
491 MPASS(cc->cc_mbuf->m_len >= cc->cc_offset + size); in crypto_cursor_copyback()
492 m_copyback(cc->cc_mbuf, cc->cc_offset, size, src); in crypto_cursor_copyback()
493 cc->cc_offset += size; in crypto_cursor_copyback()
498 *cc->cc_vmpage)) + cc->cc_offset; in crypto_cursor_copyback()
499 remain = MIN(PAGE_SIZE - cc->cc_offset, cc->cc_buf_len); in crypto_cursor_copyback()
503 cc->cc_buf_len -= todo; in crypto_cursor_copyback()
505 cc->cc_offset += todo; in crypto_cursor_copyback()
509 cc->cc_vmpage++; in crypto_cursor_copyback()
510 cc->cc_offset = 0; in crypto_cursor_copyback()
517 dst = (char *)cc->cc_iov->iov_base + cc->cc_offset; in crypto_cursor_copyback()
518 remain = cc->cc_iov->iov_len - cc->cc_offset; in crypto_cursor_copyback()
522 cc->cc_buf_len -= todo; in crypto_cursor_copyback()
524 cc->cc_offset += todo; in crypto_cursor_copyback()
528 cc->cc_iov++; in crypto_cursor_copyback()
529 cc->cc_offset = 0; in crypto_cursor_copyback()
536 panic("%s: invalid buffer type %d", __func__, cc->cc_type); in crypto_cursor_copyback()
543 crypto_cursor_copydata(struct crypto_buffer_cursor *cc, int size, void *vdst) in crypto_cursor_copydata() argument
550 switch (cc->cc_type) { in crypto_cursor_copydata()
552 MPASS(cc->cc_buf_len >= size); in crypto_cursor_copydata()
553 memcpy(dst, cc->cc_buf, size); in crypto_cursor_copydata()
554 cc->cc_buf += size; in crypto_cursor_copydata()
555 cc->cc_buf_len -= size; in crypto_cursor_copydata()
564 remain = cc->cc_mbuf->m_len - cc->cc_offset; in crypto_cursor_copydata()
566 m_copydata(cc->cc_mbuf, cc->cc_offset, todo, dst); in crypto_cursor_copydata()
569 cc->cc_offset += todo; in crypto_cursor_copydata()
573 cc->cc_mbuf = cc->cc_mbuf->m_next; in crypto_cursor_copydata()
574 cc->cc_offset = 0; in crypto_cursor_copydata()
580 MPASS(cc->cc_mbuf->m_len >= cc->cc_offset + size); in crypto_cursor_copydata()
581 m_copydata(cc->cc_mbuf, cc->cc_offset, size, dst); in crypto_cursor_copydata()
582 cc->cc_offset += size; in crypto_cursor_copydata()
587 *cc->cc_vmpage)) + cc->cc_offset; in crypto_cursor_copydata()
588 remain = MIN(PAGE_SIZE - cc->cc_offset, cc->cc_buf_len); in crypto_cursor_copydata()
592 cc->cc_buf_len -= todo; in crypto_cursor_copydata()
594 cc->cc_offset += todo; in crypto_cursor_copydata()
598 cc->cc_vmpage++; in crypto_cursor_copydata()
599 cc->cc_offset = 0; in crypto_cursor_copydata()
606 src = (const char *)cc->cc_iov->iov_base + in crypto_cursor_copydata()
607 cc->cc_offset; in crypto_cursor_copydata()
608 remain = cc->cc_iov->iov_len - cc->cc_offset; in crypto_cursor_copydata()
612 cc->cc_buf_len -= todo; in crypto_cursor_copydata()
614 cc->cc_offset += todo; in crypto_cursor_copydata()
618 cc->cc_iov++; in crypto_cursor_copydata()
619 cc->cc_offset = 0; in crypto_cursor_copydata()
626 panic("%s: invalid buffer type %d", __func__, cc->cc_type); in crypto_cursor_copydata()
637 crypto_cursor_copydata_noadv(struct crypto_buffer_cursor *cc, int size, in crypto_cursor_copydata_noadv() argument
642 copy = *cc; in crypto_cursor_copydata_noadv()