Changeset View
Changeset View
Standalone View
Standalone View
sys/opencrypto/criov.c
Show First 20 Lines • Show All 585 Lines • ▼ Show 20 Lines | case CRYPTO_BUF_SINGLE_MBUF: | ||||
break; | break; | ||||
case CRYPTO_BUF_VMPAGE: | case CRYPTO_BUF_VMPAGE: | ||||
for (;;) { | for (;;) { | ||||
src = (char *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS( | src = (char *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS( | ||||
*cc->cc_vmpage)) + cc->cc_offset; | *cc->cc_vmpage)) + cc->cc_offset; | ||||
remain = MIN(PAGE_SIZE - cc->cc_offset, cc->cc_buf_len); | remain = MIN(PAGE_SIZE - cc->cc_offset, cc->cc_buf_len); | ||||
todo = MIN(remain, size); | todo = MIN(remain, size); | ||||
memcpy(dst, src, todo); | memcpy(dst, src, todo); | ||||
src += todo; | dst += todo; | ||||
cc->cc_buf_len -= todo; | cc->cc_buf_len -= todo; | ||||
if (todo < remain) { | if (todo < remain) { | ||||
cc->cc_offset += todo; | cc->cc_offset += todo; | ||||
break; | break; | ||||
} | } | ||||
size -= todo; | size -= todo; | ||||
cc->cc_vmpage++; | cc->cc_vmpage++; | ||||
cc->cc_offset = 0; | cc->cc_offset = 0; | ||||
▲ Show 20 Lines • Show All 258 Lines • Show Last 20 Lines |