Home | History | Annotate | Download | only in pci

Lines Matching defs:vr

247 		struct virtio_blk_req *vr = &sc->sc_reqs[i];
254 &vr->vr_cmdsts);
261 r = bus_dmamap_load(virtio_dmat(sc->sc_virtio), vr->vr_cmdsts,
262 &vr->vr_hdr,
277 &vr->vr_payload);
284 vr->vr_datap = NULL;
285 vr->vr_datas = 0;
291 struct virtio_blk_req *vr = &sc->sc_reqs[i];
292 if (vr->vr_cmdsts) {
294 vr->vr_cmdsts);
295 vr->vr_cmdsts = 0;
297 if (vr->vr_payload) {
299 vr->vr_payload);
300 vr->vr_payload = 0;
477 struct virtio_blk_req *vr;
508 vr = &sc->sc_reqs[slot];
509 KASSERT(vr->vr_bp == NULL);
511 r = bus_dmamap_load(virtio_dmat(vsc), vr->vr_payload,
522 KASSERT(vr->vr_payload->dm_nsegs <= sc->sc_seg_max);
523 r = virtio_enqueue_reserve(vsc, vq, slot, vr->vr_payload->dm_nsegs +
526 bus_dmamap_unload(virtio_dmat(vsc), vr->vr_payload);
530 vr->vr_bp = DUMMY_VR_BP;
531 vr->vr_hdr.type = virtio_rw32(vsc, VIRTIO_BLK_T_GET_ID);
532 vr->vr_hdr.ioprio = virtio_rw32(vsc, 0);
533 vr->vr_hdr.sector = virtio_rw64(vsc, 0);
535 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_cmdsts,
538 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_payload,
541 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_cmdsts,
546 virtio_enqueue_p(vsc, vq, slot, vr->vr_cmdsts,
549 virtio_enqueue(vsc, vq, slot, vr->vr_payload, false);
550 virtio_enqueue_p(vsc, vq, slot, vr->vr_cmdsts,
578 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_payload,
580 bus_dmamap_unload(virtio_dmat(vsc), vr->vr_payload);
602 struct virtio_blk_req *vr;
614 vr = &sc->sc_reqs[slot];
615 KASSERT(vr->vr_bp == NULL);
617 r = bus_dmamap_load(virtio_dmat(vsc), vr->vr_payload,
628 KASSERT(vr->vr_payload->dm_nsegs <= sc->sc_seg_max);
629 r = virtio_enqueue_reserve(vsc, vq, slot, vr->vr_payload->dm_nsegs +
632 bus_dmamap_unload(virtio_dmat(vsc), vr->vr_payload);
636 vr->vr_bp = bp;
637 vr->vr_hdr.type = virtio_rw32(vsc,
639 vr->vr_hdr.ioprio = virtio_rw32(vsc, 0);
640 vr->vr_hdr.sector = virtio_rw64(vsc,
644 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_cmdsts,
647 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_payload,
650 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_cmdsts,
655 virtio_enqueue_p(vsc, vq, slot, vr->vr_cmdsts,
658 virtio_enqueue(vsc, vq, slot, vr->vr_payload, !isread);
659 virtio_enqueue_p(vsc, vq, slot, vr->vr_cmdsts,
672 struct virtio_blk_req *vr = &sc->sc_reqs[slot];
673 struct buf *bp = vr->vr_bp;
674 const uint32_t rt = virtio_rw32(vsc, vr->vr_hdr.type);
676 vr->vr_bp = NULL;
678 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_cmdsts,
681 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_cmdsts,
686 sc->sc_sync_status = vr->vr_status;
696 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_payload,
702 if (vr->vr_datap == NULL)
704 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_payload,
705 0, vr->vr_datas, BUS_DMASYNC_POSTREAD |
709 bus_dmamap_unload(virtio_dmat(vsc), vr->vr_payload);
711 if (vr->vr_status != VIRTIO_BLK_S_OK) {
719 if (vr->vr_datap != NULL) {
720 kmem_free(vr->vr_datap, vr->vr_datas);
721 vr->vr_datap = NULL;
722 vr->vr_datas = 0;
761 struct virtio_blk_req *vr;
778 vr = &sc->sc_reqs[slot];
779 r = bus_dmamap_load(virtio_dmat(vsc), vr->vr_payload,
785 r = virtio_enqueue_reserve(vsc, vq, slot, vr->vr_payload->dm_nsegs +
788 bus_dmamap_unload(virtio_dmat(vsc), vr->vr_payload);
792 vr->vr_bp = (void*)0xdeadbeef;
793 vr->vr_hdr.type = virtio_rw32(vsc, VIRTIO_BLK_T_OUT);
794 vr->vr_hdr.ioprio = virtio_rw32(vsc, 0);
795 vr->vr_hdr.sector = virtio_rw64(vsc,
799 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_cmdsts,
802 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_payload,
805 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_cmdsts,
810 virtio_enqueue_p(vsc, vq, slot, vr->vr_cmdsts,
813 virtio_enqueue(vsc, vq, slot, vr->vr_payload, true);
814 virtio_enqueue_p(vsc, vq, slot, vr->vr_cmdsts,
833 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_cmdsts,
836 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_payload,
839 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_cmdsts,
843 if (vr->vr_status == VIRTIO_BLK_S_OK)
897 struct virtio_blk_req *vr;
922 vr = &sc->sc_reqs[slot];
923 KASSERT(vr->vr_bp == NULL);
930 vr->vr_bp = DUMMY_VR_BP;
931 vr->vr_hdr.type = virtio_rw32(vsc, VIRTIO_BLK_T_FLUSH);
932 vr->vr_hdr.ioprio = virtio_rw32(vsc, 0);
933 vr->vr_hdr.sector = virtio_rw64(vsc, 0);
935 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_cmdsts,
938 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_cmdsts,
943 virtio_enqueue_p(vsc, vq, slot, vr->vr_cmdsts,
946 virtio_enqueue_p(vsc, vq, slot, vr->vr_cmdsts,
1040 struct virtio_blk_req *vr;
1066 vr = &sc->sc_reqs[slot];
1067 KASSERT(vr->vr_bp == NULL);
1071 r = bus_dmamap_load(virtio_dmat(vsc), vr->vr_payload,
1081 KASSERT(vr->vr_payload->dm_nsegs <= sc->sc_seg_max);
1082 r = virtio_enqueue_reserve(vsc, vq, slot, vr->vr_payload->dm_nsegs +
1085 bus_dmamap_unload(virtio_dmat(vsc), vr->vr_payload);
1090 vr->vr_hdr.type = virtio_rw32(vsc, VIRTIO_BLK_T_DISCARD);
1091 vr->vr_hdr.ioprio = virtio_rw32(vsc, 0);
1092 vr->vr_hdr.sector = virtio_rw64(vsc, 0);
1093 vr->vr_bp = bp;
1095 KASSERT(vr->vr_datap == NULL);
1096 vr->vr_datap = dwz;
1097 vr->vr_datas = sizeof(*dwz);
1103 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_cmdsts,
1106 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_payload,
1107 0, vr->vr_datas, BUS_DMASYNC_PREWRITE);
1108 bus_dmamap_sync(virtio_dmat(vsc), vr->vr_cmdsts,
1113 virtio_enqueue_p(vsc, vq, slot, vr->vr_cmdsts,
1116 virtio_enqueue(vsc, vq, slot, vr->vr_payload, true);
1117 virtio_enqueue_p(vsc, vq, slot, vr->vr_cmdsts,