Lines Matching defs:ndm
2101 struct nvme_dmamem *ndm;
2104 ndm = kmem_zalloc(sizeof(*ndm), KM_SLEEP);
2105 if (ndm == NULL)
2108 ndm->ndm_size = size;
2111 BUS_DMA_WAITOK | BUS_DMA_ALLOCNOW, &ndm->ndm_map) != 0)
2114 if (bus_dmamem_alloc(sc->sc_dmat, size, sc->sc_mps, 0, &ndm->ndm_seg,
2118 if (bus_dmamem_map(sc->sc_dmat, &ndm->ndm_seg, nsegs, size,
2119 &ndm->ndm_kva, BUS_DMA_WAITOK) != 0)
2122 if (bus_dmamap_load(sc->sc_dmat, ndm->ndm_map, ndm->ndm_kva, size,
2126 memset(ndm->ndm_kva, 0, size);
2127 bus_dmamap_sync(sc->sc_dmat, ndm->ndm_map, 0, size, BUS_DMASYNC_PREREAD);
2129 return ndm;
2132 bus_dmamem_unmap(sc->sc_dmat, ndm->ndm_kva, size);
2134 bus_dmamem_free(sc->sc_dmat, &ndm->ndm_seg, 1);
2136 bus_dmamap_destroy(sc->sc_dmat, ndm->ndm_map);
2138 kmem_free(ndm, sizeof(*ndm));
2150 nvme_dmamem_free(struct nvme_softc *sc, struct nvme_dmamem *ndm)
2152 bus_dmamap_unload(sc->sc_dmat, ndm->ndm_map);
2153 bus_dmamem_unmap(sc->sc_dmat, ndm->ndm_kva, ndm->ndm_size);
2154 bus_dmamem_free(sc->sc_dmat, &ndm->ndm_seg, 1);
2155 bus_dmamap_destroy(sc->sc_dmat, ndm->ndm_map);
2156 kmem_free(ndm, sizeof(*ndm));