Lines Matching refs:bdm
873 struct bwfm_pci_dmamem *bdm;
876 bdm = kmem_zalloc(sizeof(*bdm), KM_SLEEP);
877 bdm->bdm_size = size;
880 BUS_DMA_WAITOK | BUS_DMA_ALLOCNOW, &bdm->bdm_map) != 0)
883 if (bus_dmamem_alloc(sc->sc_dmat, size, align, 0, &bdm->bdm_seg, 1,
887 if (bus_dmamem_map(sc->sc_dmat, &bdm->bdm_seg, nsegs, size,
888 (void **) &bdm->bdm_kva, BUS_DMA_WAITOK | BUS_DMA_COHERENT) != 0)
891 if (bus_dmamap_load(sc->sc_dmat, bdm->bdm_map, bdm->bdm_kva, size,
895 bzero(bdm->bdm_kva, size);
897 return (bdm);
900 bus_dmamem_unmap(sc->sc_dmat, bdm->bdm_kva, size);
902 bus_dmamem_free(sc->sc_dmat, &bdm->bdm_seg, 1);
904 bus_dmamap_destroy(sc->sc_dmat, bdm->bdm_map);
906 kmem_free(bdm, sizeof(*bdm));
912 bwfm_pci_dmamem_free(struct bwfm_pci_softc *sc, struct bwfm_pci_dmamem *bdm)
914 bus_dmamap_unload(sc->sc_dmat, bdm->bdm_map);
915 bus_dmamem_unmap(sc->sc_dmat, bdm->bdm_kva, bdm->bdm_size);
916 bus_dmamem_free(sc->sc_dmat, &bdm->bdm_seg, 1);
917 bus_dmamap_destroy(sc->sc_dmat, bdm->bdm_map);
918 kmem_free(bdm, sizeof(*bdm));