* ccp_populate_sglist() generates a scatter/gather list that covers the entire * crypto operation buffer. */
| 92 | * crypto operation buffer. |
| 93 | */ |
| 94 | static int |
| 95 | ccp_populate_sglist(struct sglist *sg, struct crypto_buffer *cb) |
| 96 | { |
| 97 | int error; |
| 98 | |
| 99 | sglist_reset(sg); |
| 100 | switch (cb->cb_type) { |
| 101 | case CRYPTO_BUF_MBUF: |
| 102 | error = sglist_append_mbuf(sg, cb->cb_mbuf); |
| 103 | break; |
| 104 | case CRYPTO_BUF_UIO: |
| 105 | error = sglist_append_uio(sg, cb->cb_uio); |
| 106 | break; |
| 107 | case CRYPTO_BUF_CONTIG: |
| 108 | error = sglist_append(sg, cb->cb_buf, cb->cb_buf_len); |
| 109 | break; |
| 110 | case CRYPTO_BUF_VMPAGE: |
| 111 | error = sglist_append_vmpages(sg, cb->cb_vm_page, |
| 112 | cb->cb_vm_page_len, cb->cb_vm_page_offset); |
| 113 | break; |
| 114 | default: |
| 115 | error = EINVAL; |
| 116 | } |
| 117 | return (error); |
| 118 | } |
| 119 | |
| 120 | static int |
| 121 | ccp_probe(device_t dev) |
no test coverage detected