Lines Matching defs:dmamap
209 * dmamap sync operations for a virtqueue.
408 printf("virtqueue %d for %s dmamap creation failed, "
415 printf("virtqueue %d for %s dmamap load failed, error %d\n",
666 * enqueue: enqueue a single dmamap.
669 virtio_enqueue(struct virtqueue *vq, int slot, bus_dmamap_t dmamap, int write)
677 VIRTIO_ASSERT(dmamap->dm_nsegs > 0);
678 if (dmamap->dm_nsegs > vq->vq_maxnsegs) {
680 for (i = 0; i < dmamap->dm_nsegs; i++) {
682 (void *)dmamap->dm_segs[i].ds_addr,
683 dmamap->dm_segs[i].ds_len);
686 panic("dmamap->dm_nseg %d > vq->vq_maxnsegs %d",
687 dmamap->dm_nsegs, vq->vq_maxnsegs);
690 for (i = 0; i < dmamap->dm_nsegs; i++) {
691 vd[s].addr = dmamap->dm_segs[i].ds_addr;
692 vd[s].len = dmamap->dm_segs[i].ds_len;
703 virtio_enqueue_p(struct virtqueue *vq, int slot, bus_dmamap_t dmamap,
712 VIRTIO_ASSERT(dmamap->dm_nsegs == 1);
713 VIRTIO_ASSERT((dmamap->dm_segs[0].ds_len > start) &&
714 (dmamap->dm_segs[0].ds_len >= start + len));
716 vd[s].addr = dmamap->dm_segs[0].ds_addr + start;