Lines Matching defs:xfer

114 	bd_xfer_t		*xfer;
165 static int vioblk_read(void *arg, bd_xfer_t *xfer);
166 static int vioblk_write(void *arg, bd_xfer_t *xfer);
167 static int vioblk_flush(void *arg, bd_xfer_t *xfer);
261 vioblk_rw(struct vioblk_softc *sc, bd_xfer_t *xfer, int type,
272 if ((xfer->x_blkno + xfer->x_nblks) > sc->sc_nblks) {
288 req->hdr.sector = xfer->x_blkno;
289 req->xfer = xfer;
297 virtio_ve_add_cookie(ve_hdr, xfer->x_dmah, xfer->x_dmac,
298 xfer->x_ndmac, write ? B_TRUE : B_FALSE);
299 total_cookies += xfer->x_ndmac;
323 vioblk_rw_poll(struct vioblk_softc *sc, bd_xfer_t *xfer,
329 ASSERT(xfer->x_flags & BD_XFER_POLL);
345 ret = vioblk_rw(sc, xfer, type, len);
365 vioblk_read(void *arg, bd_xfer_t *xfer)
370 if (xfer->x_flags & BD_XFER_POLL) {
376 ret = vioblk_rw_poll(sc, xfer, VIRTIO_BLK_T_IN,
377 xfer->x_nblks * DEV_BSIZE);
384 ret = vioblk_rw(sc, xfer, VIRTIO_BLK_T_IN,
385 xfer->x_nblks * DEV_BSIZE);
392 vioblk_write(void *arg, bd_xfer_t *xfer)
397 if (xfer->x_flags & BD_XFER_POLL) {
403 ret = vioblk_rw_poll(sc, xfer, VIRTIO_BLK_T_OUT,
404 xfer->x_nblks * DEV_BSIZE);
411 ret = vioblk_rw(sc, xfer, VIRTIO_BLK_T_OUT,
412 xfer->x_nblks * DEV_BSIZE);
418 vioblk_flush(void *arg, bd_xfer_t *xfer)
423 ASSERT((xfer->x_flags & BD_XFER_POLL) == 0);
425 ret = vioblk_rw(sc, xfer, VIRTIO_BLK_T_FLUSH_OUT,
426 xfer->x_nblks * DEV_BSIZE);
477 bd_xfer_t xfer;
480 (void) memset(&xfer, 0, sizeof (bd_xfer_t));
481 xfer.x_nblks = 1;
484 DDI_DMA_SLEEP, NULL, &xfer.x_dmah);
488 ret = ddi_dma_addr_bind_handle(xfer.x_dmah, NULL, (caddr_t)&sc->devid,
490 DDI_DMA_SLEEP, NULL, &xfer.x_dmac, &xfer.x_ndmac);
498 ret = vioblk_rw(sc, &xfer, VIRTIO_BLK_T_GET_ID,
509 (void) ddi_dma_unbind_handle(xfer.x_dmah);
510 ddi_dma_free_handle(&xfer.x_dmah);
522 (void) ddi_dma_unbind_handle(xfer.x_dmah);
524 ddi_dma_free_handle(&xfer.x_dmah);
651 bd_xfer_t *xfer = req->xfer;
655 if (req->xfer == (void *)VIOBLK_POISON) {
661 req->xfer = (void *) VIOBLK_POISON;
691 bd_xfer_done(xfer, error);