Lines Matching defs:vd
368 struct vs_dma *vd;
375 for (vd = sc->sc_dmas; vd != NULL; vd = vd->vd_next) {
376 if (KVADDR(vd) <= block && block < KVADDR_END(vd)
379 if (vd == NULL) {
387 if (vd != sc->sc_prev_vd) {
389 vd->vd_map, DMAC_OCR_DIR_MTD,
392 sc->sc_prev_vd = vd;
395 (int)block - (int)KVADDR(vd), blksize);
414 struct vs_dma *vd;
421 for (vd = sc->sc_dmas; vd != NULL; vd = vd->vd_next) {
422 if (KVADDR(vd) <= block && block < KVADDR_END(vd)
425 if (vd == NULL) {
433 if (vd != sc->sc_prev_vd) {
435 vd->vd_map, DMAC_OCR_DIR_DTM,
438 sc->sc_prev_vd = vd;
441 (int)block - (int)KVADDR(vd), blksize);
490 struct vs_dma *vd)
499 vd->vd_size = size;
501 error = bus_dmamem_alloc(vd->vd_dmat, vd->vd_size, align, boundary,
502 vd->vd_segs,
503 sizeof (vd->vd_segs) / sizeof (vd->vd_segs[0]),
504 &vd->vd_nsegs, BUS_DMA_WAITOK);
508 error = bus_dmamem_map(vd->vd_dmat, vd->vd_segs, vd->vd_nsegs,
509 vd->vd_size, &vd->vd_addr,
514 error = bus_dmamap_create(vd->vd_dmat, vd->vd_size, 1, DMAC_MAXSEGSZ,
515 0, BUS_DMA_WAITOK, &vd->vd_map);
519 error = bus_dmamap_load(vd->vd_dmat, vd->vd_map, vd->vd_addr,
520 vd->vd_size, NULL, BUS_DMA_WAITOK);
527 bus_dmamap_destroy(vd->vd_dmat, vd->vd_map);
529 bus_dmamem_unmap(vd->vd_dmat, vd->vd_addr, vd->vd_size);
531 bus_dmamem_free(vd->vd_dmat, vd->vd_segs, vd->vd_nsegs);
537 vs_freemem(struct vs_dma *vd)
540 bus_dmamap_unload(vd->vd_dmat, vd->vd_map);
541 bus_dmamap_destroy(vd->vd_dmat, vd->vd_map);
542 bus_dmamem_unmap(vd->vd_dmat, vd->vd_addr, vd->vd_size);
543 bus_dmamem_free(vd->vd_dmat, vd->vd_segs, vd->vd_nsegs);
587 struct vs_dma *vd;
590 vd = kmem_alloc(sizeof(*vd), KM_SLEEP);
592 vd->vd_dmat = sc->sc_dmat;
594 error = vs_allocmem(sc, size, 32, 0, vd);
596 kmem_free(vd, sizeof(*vd));
599 vd->vd_next = sc->sc_dmas;
600 sc->sc_dmas = vd;
602 return KVADDR(vd);