Lines Matching refs:krp
1201 cryptodevkey_cb(struct cryptkop *krp) in cryptodevkey_cb() argument
1204 wakeup_one(krp); in cryptodevkey_cb()
1210 struct cryptkop *krp = NULL; in cryptodev_key() local
1252 krp = malloc(sizeof(*krp), M_XDATA, M_WAITOK | M_ZERO); in cryptodev_key()
1253 krp->krp_op = kop->crk_op; in cryptodev_key()
1254 krp->krp_status = kop->crk_status; in cryptodev_key()
1255 krp->krp_iparams = kop->crk_iparams; in cryptodev_key()
1256 krp->krp_oparams = kop->crk_oparams; in cryptodev_key()
1257 krp->krp_crid = kop->crk_crid; in cryptodev_key()
1258 krp->krp_status = 0; in cryptodev_key()
1259 krp->krp_callback = cryptodevkey_cb; in cryptodev_key()
1267 krp->krp_param[i].crp_nbits = kop->crk_param[i].crp_nbits; in cryptodev_key()
1269 for (i = 0; i < krp->krp_iparams + krp->krp_oparams; i++) { in cryptodev_key()
1270 size = (krp->krp_param[i].crp_nbits + 7) / 8; in cryptodev_key()
1273 krp->krp_param[i].crp_p = malloc(size, M_XDATA, M_WAITOK); in cryptodev_key()
1274 if (i >= krp->krp_iparams) in cryptodev_key()
1276 error = copyin(kop->crk_param[i].crp_p, krp->krp_param[i].crp_p, size); in cryptodev_key()
1283 error = crypto_kdispatch(krp); in cryptodev_key()
1288 error = tsleep(krp, PSOCK, "crydev", 0); in cryptodev_key()
1295 kop->crk_crid = krp->krp_hid; /* device that did the work */ in cryptodev_key()
1296 if (krp->krp_status != 0) { in cryptodev_key()
1297 error = krp->krp_status; in cryptodev_key()
1302 for (i = krp->krp_iparams; i < krp->krp_iparams + krp->krp_oparams; i++) { in cryptodev_key()
1303 size = (krp->krp_param[i].crp_nbits + 7) / 8; in cryptodev_key()
1306 error = copyout(krp->krp_param[i].crp_p, kop->crk_param[i].crp_p, size); in cryptodev_key()
1314 if (krp) { in cryptodev_key()
1315 kop->crk_status = krp->krp_status; in cryptodev_key()
1317 if (krp->krp_param[i].crp_p) in cryptodev_key()
1318 free(krp->krp_param[i].crp_p, M_XDATA); in cryptodev_key()
1320 free(krp, M_XDATA); in cryptodev_key()