Lines Matching defs:re
331 struct safe_ringentry *re = &sc->sc_ring[i];
333 re->re_desc.d_sa = raddr +
335 re->re_sa.sa_staterec = raddr +
540 struct safe_ringentry *re = sc->sc_back;
544 safe_dump_request(sc, __func__, re);
554 if (re->re_desc.d_csr != 0) {
555 if (!SAFE_PE_CSR_IS_DONE(re->re_desc.d_csr))
557 if (!SAFE_PE_LEN_IS_DONE(re->re_desc.d_len))
560 safe_callback(sc, re);
594 safe_feed(struct safe_softc *sc, struct safe_ringentry *re)
596 bus_dmamap_sync(sc->sc_srcdmat, re->re_src_map, BUS_DMASYNC_PREWRITE);
597 if (re->re_dst_map != NULL)
598 bus_dmamap_sync(sc->sc_dstdmat, re->re_dst_map,
609 safe_dump_request(sc, __func__, re);
772 struct safe_ringentry *re;
784 re = sc->sc_front;
786 staterec = re->re_sa.sa_staterec; /* save */
788 bzero(&re->re_sa, sizeof(struct safe_ringentry) - sizeof(re->re_desc));
789 re->re_sa.sa_staterec = staterec; /* restore */
791 re->re_crp = crp;
793 sa = &re->re_sa;
836 crypto_read_iv(crp, re->re_sastate.sa_saved_iv);
889 re->re_flags |= SAFE_QFLAGS_COPYOUTICV;
965 if (bus_dmamap_create(sc->sc_srcdmat, BUS_DMA_NOWAIT, &re->re_src_map)) {
970 if (bus_dmamap_load_crp(sc->sc_srcdmat, re->re_src_map, crp, safe_op_cb,
971 &re->re_src, BUS_DMA_NOWAIT) != 0) {
972 bus_dmamap_destroy(sc->sc_srcdmat, re->re_src_map);
973 re->re_src_map = NULL;
978 re->re_src_mapsize = crypto_buffer_len(&crp->crp_buf);
979 nicealign = safe_dmamap_aligned(&re->re_src);
980 uniform = safe_dmamap_uniform(&re->re_src);
983 nicealign, uniform, re->re_src.nsegs));
984 if (re->re_src.nsegs > 1) {
985 re->re_desc.d_src = sc->sc_spalloc.dma_paddr +
987 for (i = 0; i < re->re_src_nsegs; i++) {
997 pd->pd_addr = re->re_src_segs[i].ds_addr;
998 pd->pd_size = re->re_src_segs[i].ds_len;
1006 re->re_desc.d_src = re->re_src_segs[0].ds_addr;
1019 re->re_dst = re->re_src;
1030 &re->re_dst_map)) {
1035 if (bus_dmamap_load_crp(sc->sc_dstdmat, re->re_dst_map,
1036 crp, safe_op_cb, &re->re_dst, BUS_DMA_NOWAIT) !=
1039 re->re_dst_map);
1040 re->re_dst_map = NULL;
1061 totlen = re->re_src_mapsize;
1121 re->re_dst_m = top;
1123 BUS_DMA_NOWAIT, &re->re_dst_map) != 0) {
1129 re->re_dst_map, top, re->re_dst_segs,
1130 &re->re_dst_nsegs, 0) != 0) {
1132 re->re_dst_map);
1133 re->re_dst_map = NULL;
1138 re->re_dst_mapsize = re->re_src_mapsize;
1139 if (re->re_src.mapsize > oplen) {
1148 (re->re_src.mapsize-oplen) == ses->ses_mlen &&
1151 re->re_dst_m, oplen);
1180 if (re->re_dst.nsegs > 1) {
1181 re->re_desc.d_dst = sc->sc_dpalloc.dma_paddr +
1183 for (i = 0; i < re->re_dst_nsegs; i++) {
1191 pd->pd_addr = re->re_dst_segs[i].ds_addr;
1199 re->re_desc.d_dst = re->re_dst_segs[0].ds_addr;
1222 re->re_desc.d_csr = SAFE_PE_CSR_READY | SAFE_PE_CSR_SAPCI;
1224 re->re_desc.d_csr |= SAFE_PE_CSR_LOADSA | SAFE_PE_CSR_HASHFINAL;
1225 re->re_desc.d_len = oplen
1237 safe_feed(sc, re);
1242 if (re->re_dst_m != NULL)
1243 m_freem(re->re_dst_m);
1245 if (re->re_dst_map != NULL && re->re_dst_map != re->re_src_map) {
1246 bus_dmamap_unload(sc->sc_dstdmat, re->re_dst_map);
1247 bus_dmamap_destroy(sc->sc_dstdmat, re->re_dst_map);
1249 if (re->re_src_map != NULL) {
1250 bus_dmamap_unload(sc->sc_srcdmat, re->re_src_map);
1251 bus_dmamap_destroy(sc->sc_srcdmat, re->re_src_map);
1265 safe_callback(struct safe_softc *sc, struct safe_ringentry *re)
1268 struct cryptop *crp = (struct cryptop *)re->re_crp;
1276 safestats.st_obytes += re->re_dst.mapsize;
1280 if (re->re_desc.d_csr & SAFE_PE_CSR_STATUS) {
1282 re->re_desc.d_csr,
1283 re->re_sa.sa_cmd0, re->re_sa.sa_cmd1);
1289 * XXX: Should crp_buf.cb_mbuf be updated to re->re_dst_m if
1293 if (re->re_dst_map != NULL && re->re_dst_map != re->re_src_map) {
1294 bus_dmamap_sync(sc->sc_dstdmat, re->re_dst_map,
1296 bus_dmamap_unload(sc->sc_dstdmat, re->re_dst_map);
1297 bus_dmamap_destroy(sc->sc_dstdmat, re->re_dst_map);
1299 bus_dmamap_sync(sc->sc_srcdmat, re->re_src_map, BUS_DMASYNC_POSTWRITE);
1300 bus_dmamap_unload(sc->sc_srcdmat, re->re_src_map);
1301 bus_dmamap_destroy(sc->sc_srcdmat, re->re_src_map);
1303 if (re->re_flags & SAFE_QFLAGS_COPYOUTICV) {
1309 re->re_sastate.sa_saved_indigest[0] =
1310 bswap32(re->re_sastate.sa_saved_indigest[0]);
1311 re->re_sastate.sa_saved_indigest[1] =
1312 bswap32(re->re_sastate.sa_saved_indigest[1]);
1313 re->re_sastate.sa_saved_indigest[2] =
1314 bswap32(re->re_sastate.sa_saved_indigest[2]);
1320 if (timingsafe_bcmp(re->re_sastate.sa_saved_indigest,
1325 ses->ses_mlen, re->re_sastate.sa_saved_indigest);
1706 struct safe_ringentry *re = sc->sc_back;
1708 while (re != sc->sc_front) {
1709 if (re->re_desc.d_csr != 0)
1710 safe_free_entry(sc, re);
1711 if (++re == sc->sc_ringtop)
1712 re = sc->sc_ring;
1714 sc->sc_back = re;
1724 safe_free_entry(struct safe_softc *sc, struct safe_ringentry *re)
1731 if (re->re_dst_m != NULL)
1732 m_freem(re->re_dst_m);
1734 crp = (struct cryptop *)re->re_crp;
1736 re->re_desc.d_csr = 0;
1841 safe_dump_request(struct safe_softc *sc, const char* tag, struct safe_ringentry *re)
1845 ix = re - sc->sc_ring;
1848 , re, ix
1849 , re->re_desc.d_csr
1850 , re->re_desc.d_src
1851 , re->re_desc.d_dst
1852 , re->re_desc.d_sa
1853 , re->re_desc.d_len
1855 if (re->re_src.nsegs > 1) {
1856 ix = (re->re_desc.d_src - sc->sc_spalloc.dma_paddr) /
1858 for (nsegs = re->re_src.nsegs; nsegs; nsegs--) {
1872 if (re->re_dst.nsegs > 1) {
1873 ix = (re->re_desc.d_dst - sc->sc_dpalloc.dma_paddr) /
1875 for (nsegs = re->re_dst.nsegs; nsegs; nsegs--) {
1886 re->re_sa.sa_cmd0, re->re_sa.sa_cmd1, re->re_sa.sa_staterec);
1888 , re->re_sa.sa_key[0]
1889 , re->re_sa.sa_key[1]
1890 , re->re_sa.sa_key[2]
1891 , re->re_sa.sa_key[3]
1892 , re->re_sa.sa_key[4]
1893 , re->re_sa.sa_key[5]
1894 , re->re_sa.sa_key[6]
1895 , re->re_sa.sa_key[7]
1898 , re->re_sa.sa_indigest[0]
1899 , re->re_sa.sa_indigest[1]
1900 , re->re_sa.sa_indigest[2]
1901 , re->re_sa.sa_indigest[3]
1902 , re->re_sa.sa_indigest[4]
1905 , re->re_sa.sa_outdigest[0]
1906 , re->re_sa.sa_outdigest[1]
1907 , re->re_sa.sa_outdigest[2]
1908 , re->re_sa.sa_outdigest[3]
1909 , re->re_sa.sa_outdigest[4]
1912 , re->re_sastate.sa_saved_iv[0]
1913 , re->re_sastate.sa_saved_iv[1]
1914 , re->re_sastate.sa_saved_iv[2]
1915 , re->re_sastate.sa_saved_iv[3]
1918 , re->re_sastate.sa_saved_hashbc
1919 , re->re_sastate.sa_saved_indigest[0]
1920 , re->re_sastate.sa_saved_indigest[1]
1921 , re->re_sastate.sa_saved_indigest[2]
1922 , re->re_sastate.sa_saved_indigest[3]
1923 , re->re_sastate.sa_saved_indigest[4]
1936 struct safe_ringentry *re = sc->sc_back;
1938 safe_dump_request(sc, tag, re);
1939 if (++re == sc->sc_ringtop)
1940 re = sc->sc_ring;
1941 } while (re != sc->sc_front);