Lines Matching defs:krp
1217 struct cryptkop *krp = (struct cryptkop *) op;
1219 wakeup_one(krp);
1226 struct cryptkop *krp = NULL;
1268 krp = malloc(sizeof(*krp), M_XDATA, M_WAITOK | M_ZERO);
1269 krp->krp_op = kop->crk_op;
1270 krp->krp_status = kop->crk_status;
1271 krp->krp_iparams = kop->crk_iparams;
1272 krp->krp_oparams = kop->crk_oparams;
1273 krp->krp_crid = kop->crk_crid;
1274 krp->krp_status = 0;
1275 krp->krp_callback = (int (*) (struct cryptkop *)) cryptodevkey_cb;
1283 krp->krp_param[i].crp_nbits = kop->crk_param[i].crp_nbits;
1285 for (i = 0; i < krp->krp_iparams + krp->krp_oparams; i++) {
1286 size = (krp->krp_param[i].crp_nbits + 7) / 8;
1289 krp->krp_param[i].crp_p = malloc(size, M_XDATA, M_WAITOK);
1290 if (i >= krp->krp_iparams)
1292 error = copyin(kop->crk_param[i].crp_p, krp->krp_param[i].crp_p, size);
1299 error = crypto_kdispatch(krp);
1304 error = tsleep(krp, PSOCK, "crydev", 0);
1311 kop->crk_crid = krp->krp_crid; /* device that did the work */
1312 if (krp->krp_status != 0) {
1313 error = krp->krp_status;
1318 for (i = krp->krp_iparams; i < krp->krp_iparams + krp->krp_oparams; i++) {
1319 size = (krp->krp_param[i].crp_nbits + 7) / 8;
1322 error = copyout(krp->krp_param[i].crp_p, kop->crk_param[i].crp_p, size);
1330 if (krp) {
1331 kop->crk_status = krp->krp_status;
1333 if (krp->krp_param[i].crp_p)
1334 free(krp->krp_param[i].crp_p, M_XDATA);
1336 free(krp, M_XDATA);