Lines Matching refs:dmc
742 struct bcmeth_mapcache *dmc)
744 KASSERT(dmc->dmc_nmaps > 0);
745 KASSERT(dmc->dmc_maps[dmc->dmc_nmaps-1] != NULL);
746 return dmc->dmc_maps[--dmc->dmc_nmaps];
752 struct bcmeth_mapcache *dmc,
756 KASSERT(dmc->dmc_nmaps < dmc->dmc_maxmaps);
757 dmc->dmc_maps[dmc->dmc_nmaps++] = map;
763 struct bcmeth_mapcache *dmc)
766 offsetof(struct bcmeth_mapcache, dmc_maps[dmc->dmc_maxmaps]);
768 for (u_int i = 0; i < dmc->dmc_maxmaps; i++) {
769 bus_dmamap_destroy(sc->sc_dmat, dmc->dmc_maps[i]);
771 kmem_intr_free(dmc, dmc_size);
784 struct bcmeth_mapcache * const dmc =
787 dmc->dmc_maxmaps = maxmaps;
788 dmc->dmc_nmaps = maxmaps;
789 dmc->dmc_maxmapsize = maxmapsize;
790 dmc->dmc_maxseg = maxseg;
793 int error = bus_dmamap_create(sc->sc_dmat, dmc->dmc_maxmapsize,
794 dmc->dmc_maxseg, dmc->dmc_maxmapsize, 0,
795 BUS_DMA_WAITOK | BUS_DMA_ALLOCNOW, &dmc->dmc_maps[i]);
803 dmc->dmc_maps[i]);
805 kmem_intr_free(dmc, dmc_size);
808 KASSERT(dmc->dmc_maps[i] != NULL);
811 *dmc_p = dmc;