Lines Matching defs:reqp

55 	dca_request_t	*reqp;
59 if ((reqp = dca_getreq(dca, MCR2, 1)) == NULL) {
64 reqp->dr_kcf_req = req;
66 data = &reqp->dr_ctx.in_dup;
72 reqp->dr_out = data;
73 reqp->dr_in = NULL;
75 rv = dca_rngstart(dca, reqp);
77 if (reqp->destroy)
78 dca_destroyreq(reqp);
80 dca_freereq(reqp);
86 dca_rngstart(dca_t *dca, dca_request_t *reqp)
91 crypto_data_t *out = reqp->dr_out;
94 reqp->dr_job_stat = DS_RNGSHA1JOBS;
95 reqp->dr_byte_stat = DS_RNGSHA1BYTES;
98 reqp->dr_job_stat = DS_RNGJOBS;
99 reqp->dr_byte_stat = DS_RNGBYTES;
108 dca_sgcheck(dca, reqp->dr_out, DCA_SG_WALIGN)) {
109 reqp->dr_flags |= DR_SCATTER;
113 if (!(reqp->dr_flags & DR_SCATTER)) {
114 if (dca_bindchains(reqp, 0, len) != DDI_SUCCESS) {
119 reqp->dr_in_paddr = 0;
120 reqp->dr_in_next = 0;
121 reqp->dr_in_len = 0;
128 if (reqp->dr_flags & DR_SCATTER) {
129 reqp->dr_out_paddr = reqp->dr_obuf_head.dc_buffer_paddr;
130 reqp->dr_out_next = reqp->dr_obuf_head.dc_next_paddr;
131 if (chunk > reqp->dr_obuf_head.dc_buffer_length)
132 reqp->dr_out_len = reqp->dr_obuf_head.dc_buffer_length;
134 reqp->dr_out_len = chunk;
136 reqp->dr_param.dp_rng.dr_chunklen = len;
137 reqp->dr_pkt_length = (uint16_t)chunk;
138 reqp->dr_callback = dca_rngdone;
141 PUTCTX16(reqp, CTX_LENGTH, CTX_RNG_LENGTH);
142 PUTCTX16(reqp, CTX_CMD, cmd);
145 return (dca_start(dca, reqp, MCR2, 1));
149 dca_rngdone(dca_request_t *reqp, int errno)
153 if (reqp->dr_flags & DR_SCATTER) {
154 (void) ddi_dma_sync(reqp->dr_obuf_dmah, 0,
155 reqp->dr_out_len, DDI_DMA_SYNC_FORKERNEL);
156 if (dca_check_dma_handle(reqp->dr_dca,
157 reqp->dr_obuf_dmah, DCA_FM_ECLASS_NONE) !=
159 reqp->destroy = TRUE;
163 errno = dca_scatter(reqp->dr_obuf_kaddr,
164 reqp->dr_out, reqp->dr_param.dp_rng.dr_chunklen, 0);
169 reqp->dr_out->cd_length +=
170 reqp->dr_param.dp_rng.dr_chunklen;
177 if (reqp->dr_out->cd_length < reqp->dr_out->cd_raw.iov_len) {
178 errno = dca_rngstart(reqp->dr_dca, reqp);
187 if (reqp->dr_kcf_req) {
189 crypto_op_notification(reqp->dr_kcf_req, errno);
192 dca_random_done(reqp->dr_dca);
198 if (reqp->destroy)
199 dca_destroyreq(reqp);
201 dca_freereq(reqp);