Lines Matching defs:cc

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