Lines Matching defs:krp
831 struct cryptkop *krp = (struct cryptkop *) op;
833 wakeup_one(krp);
840 struct cryptkop *krp = NULL;
875 krp = (struct cryptkop *)malloc(sizeof *krp, M_XDATA, M_WAITOK|M_ZERO);
876 if (!krp)
878 krp->krp_op = kop->crk_op;
879 krp->krp_status = kop->crk_status;
880 krp->krp_iparams = kop->crk_iparams;
881 krp->krp_oparams = kop->crk_oparams;
882 krp->krp_crid = kop->crk_crid;
883 krp->krp_status = 0;
884 krp->krp_callback = (int (*) (struct cryptkop *)) cryptodevkey_cb;
890 krp->krp_param[i].crp_nbits = kop->crk_param[i].crp_nbits;
892 for (i = 0; i < krp->krp_iparams + krp->krp_oparams; i++) {
893 size = (krp->krp_param[i].crp_nbits + 7) / 8;
896 krp->krp_param[i].crp_p = malloc(size, M_XDATA, M_WAITOK);
897 if (i >= krp->krp_iparams)
899 error = copyin(kop->crk_param[i].crp_p, krp->krp_param[i].crp_p, size);
904 error = crypto_kdispatch(krp);
907 error = tsleep(krp, PSOCK, "crydev", 0);
913 kop->crk_crid = krp->krp_crid; /* device that did the work */
914 if (krp->krp_status != 0) {
915 error = krp->krp_status;
919 for (i = krp->krp_iparams; i < krp->krp_iparams + krp->krp_oparams; i++) {
920 size = (krp->krp_param[i].crp_nbits + 7) / 8;
923 error = copyout(krp->krp_param[i].crp_p, kop->crk_param[i].crp_p, size);
929 if (krp) {
930 kop->crk_status = krp->krp_status;
932 if (krp->krp_param[i].crp_p)
933 free(krp->krp_param[i].crp_p, M_XDATA);
935 free(krp, M_XDATA);