Home | History | Annotate | Download | only in opencrypto

Lines Matching defs:crp

456 	struct cryptop *crp = NULL;
505 crp = crypto_getreq((cse->tcomp != NULL) + (cse->txform != NULL) + (cse->thash != NULL));
506 if (crp == NULL) {
510 DPRINTF("lid[%u]: crp %p\n", CRYPTO_SESID2LID(cse->sid), crp);
520 crdc = crp->crp_desc;
524 crda = crdc ? crdc->crd_next : crp->crp_desc;
529 crde = crdc ? crdc->crd_next : crp->crp_desc;
609 crp->crp_ilen = cop->len;
610 crp->crp_flags = CRYPTO_F_IOV | (cop->flags & COP_F_BATCH) | flags;
611 crp->crp_buf = (void *)&cse->uio;
612 crp->crp_callback = cryptodev_cb;
613 crp->crp_sid = cse->sid;
614 crp->crp_opaque = cse;
647 crp->crp_mac = cse->tmp_mac;
650 cv_init(&crp->crp_cv, "crydev");
651 crypto_dispatch(crp);
653 while (!(crp->crp_devflags & CRYPTODEV_F_RET)) {
654 DPRINTF("cse->sid[%d]: sleeping on cv %p for crp %p\n",
655 (uint32_t)cse->sid, &crp->crp_cv, crp);
656 cv_wait(&crp->crp_cv, &cryptodev_mtx); /* XXX cv_wait_sig? */
659 cv_destroy(&crp->crp_cv);
661 if (crp->crp_etype != 0) {
662 DPRINTF("crp_etype %d\n", crp->crp_etype);
663 error = crp->crp_etype;
673 dst_len = crp->crp_ilen;
675 if (crp->crp_olen) {
676 if (crp->crp_olen > (cop->dst_len ? cop->dst_len : cop->len)) {
680 dst_len = cop->dst_len = crp->crp_olen;
694 (error = copyout(crp->crp_mac, cop->mac, cse->thash->authsize))) {
701 if (crp) {
702 crypto_freereq(crp);
712 cryptodev_cb(struct cryptop *crp)
714 struct csession *cse = crp->crp_opaque;
717 cse->error = crp->crp_etype;
718 crp->crp_devflags |= CRYPTODEV_F_RET;
719 cv_signal(&crp->crp_cv);
724 cryptodev_mcb(struct cryptop *crp)
726 struct csession *cse = crp->crp_opaque;
729 cse->error = crp->crp_etype;
730 TAILQ_INSERT_TAIL(&crp->fcrp->crp_ret_mq, crp, crp_next);
731 selnotify(&crp->fcrp->sinfo, 0, 0);
1078 struct cryptop *crp = NULL;
1125 crp = crypto_getreq((cse->txform != NULL) +
1128 if (crp == NULL) {
1143 (void)memset(&crp->uio, 0, sizeof(crp->uio));
1144 crp->uio.uio_iovcnt = 1;
1145 crp->uio.uio_resid = 0;
1146 crp->uio.uio_rw = UIO_WRITE;
1147 crp->uio.uio_iov = crp->iovec;
1148 UIO_SETUP_SYSSPACE(&crp->uio);
1149 memset(&crp->iovec, 0, sizeof(crp->iovec));
1150 crp->uio.uio_iov[0].iov_len = iov_len;
1152 crp->uio.uio_iov[0].iov_base = kmem_alloc(iov_len, KM_SLEEP);
1153 crp->uio.uio_resid = crp->uio.uio_iov[0].iov_len;
1156 crdc = crp->crp_desc;
1160 crda = crdc ? crdc->crd_next : crp->crp_desc;
1165 crde = crdc ? crdc->crd_next : crp->crp_desc;
1173 crp->uio.uio_iov[0].iov_base, cnop[req].len))) {
1240 crp->crp_ilen = cnop[req].len;
1241 crp->crp_flags = CRYPTO_F_IOV |
1243 crp->crp_buf = (void *)&crp->uio;
1244 crp->crp_callback = cryptodev_mcb;
1245 crp->crp_sid = cse->sid;
1246 crp->crp_opaque = cse;
1247 crp->fcrp = fcr;
1248 crp->dst = cnop[req].dst;
1249 crp->len = cnop[req].len; /* input len, iov may be larger */
1250 crp->mac = cnop[req].mac;
1252 crp->uio.uio_iov[0].iov_base, crp->dst, crp->len,
1253 crp->mac);
1264 if ((error = copyin(cnop[req].iv, crp->tmp_iv,
1269 (void)memcpy(crde->crd_iv, crp->tmp_iv,
1289 crp->crp_mac=cse->tmp_mac;
1292 crp->crp_reqid = cnop[req].reqid;
1293 crp->crp_usropaque = cnop[req].opaque;
1294 cv_init(&crp->crp_cv, "crydev");
1295 crypto_dispatch(crp);
1297 cv_destroy(&crp->crp_cv);
1300 if (crp) {
1301 if (crp->uio.uio_iov[0].iov_base) {
1302 kmem_free(crp->uio.uio_iov[0].iov_base,
1303 crp->uio.uio_iov[0].iov_len);
1305 crypto_freereq(crp);
1738 struct cryptop *crp = NULL;
1759 crp = TAILQ_FIRST(&fcr->crp_ret_mq);
1760 if (crp) {
1761 TAILQ_REMOVE(&fcr->crp_ret_mq, crp, crp_next);
1762 TAILQ_INSERT_TAIL(&crp_delfree_q, crp, crp_next);
1763 cse = (struct csession *)crp->crp_opaque;
1789 crp = TAILQ_FIRST(&crp_delfree_q);
1790 if (crp) {
1795 cse = (struct csession *)crp->crp_opaque;
1796 crypt_res[req].reqid = crp->crp_reqid;
1797 crypt_res[req].opaque = crp->crp_usropaque;
1800 if (crp->crp_etype != 0) {
1801 crypt_res[req].status = crp->crp_etype;
1810 if (crp->dst && (crypt_res[req].status =
1811 copyout(crp->uio.uio_iov[0].iov_base, crp->dst,
1812 crp->len)))
1815 if (crp->mac && (crypt_res[req].status =
1816 copyout(crp->crp_mac, crp->mac,
1821 TAILQ_REMOVE(&crp_delfree_q, crp, crp_next);
1822 kmem_free(crp->uio.uio_iov[0].iov_base,
1823 crp->uio.uio_iov[0].iov_len);
1824 crypto_freereq(crp);
1884 struct cryptop *crp = NULL, *cnext;
1892 TAILQ_FOREACH_SAFE(crp, &fcr->crp_ret_mq, crp_next, cnext) {
1893 if(crp && (crp->crp_reqid == crypt_res->reqid)) {
1894 cse = (struct csession *)crp->crp_opaque;
1895 crypt_res->opaque = crp->crp_usropaque;
1903 if (crp->crp_etype != 0) {
1904 crypt_res->status = crp->crp_etype;
1913 if (crp->dst && (crypt_res->status =
1914 copyout(crp->uio.uio_iov[0].iov_base,
1915 crp->dst, crp->len)))
1918 if (crp->mac && (crypt_res->status =
1919 copyout(crp->crp_mac, crp->mac,
1923 TAILQ_REMOVE(&fcr->crp_ret_mq, crp, crp_next);
1926 crypto_freereq(crp);