Lines Matching refs:xfer
359 vioblk_map_discard(vioblk_t *vib, virtio_chain_t *vic, const bd_xfer_t *xfer) in vioblk_map_discard() argument
361 const dkioc_free_list_t *dfl = xfer->x_dfl; in vioblk_map_discard()
398 vioblk_request(vioblk_t *vib, bd_xfer_t *xfer, int type) in vioblk_request() argument
402 boolean_t polled = (xfer->x_flags & BD_XFER_POLL) != 0; in vioblk_request()
410 if (xfer->x_nblks > SIZE_MAX - xfer->x_blkno || in vioblk_request()
411 (xfer->x_blkno + xfer->x_nblks) > vib->vib_nblks) { in vioblk_request()
416 if ((vbr = vioblk_common_start(vib, type, xfer->x_blkno, polled)) == in vioblk_request()
420 vbr->vbr_xfer = xfer; in vioblk_request()
428 xfer->x_nblks > 0) { in vioblk_request()
433 for (uint_t n = 0; n < xfer->x_ndmac; n++) { in vioblk_request()
440 dmac = xfer->x_dmac; in vioblk_request()
442 ddi_dma_nextcookie(xfer->x_dmah, &dmac); in vioblk_request()
452 total_cookies += xfer->x_ndmac; in vioblk_request()
454 } else if (xfer->x_nblks > 0) { in vioblk_request()
457 xfer->x_nblks); in vioblk_request()
459 int r = vioblk_map_discard(vib, vbr->vbr_chain, xfer); in vioblk_request()
474 vioblk_bd_read(void *arg, bd_xfer_t *xfer) in vioblk_bd_read() argument
480 r = vioblk_request(vib, xfer, VIRTIO_BLK_T_IN); in vioblk_bd_read()
487 vioblk_bd_write(void *arg, bd_xfer_t *xfer) in vioblk_bd_write() argument
493 r = vioblk_request(vib, xfer, VIRTIO_BLK_T_OUT); in vioblk_bd_write()
500 vioblk_bd_flush(void *arg, bd_xfer_t *xfer) in vioblk_bd_flush() argument
516 r = vioblk_request(vib, xfer, VIRTIO_BLK_T_FLUSH); in vioblk_bd_flush()
651 vioblk_bd_free_space(void *arg, bd_xfer_t *xfer) in vioblk_bd_free_space() argument
665 r = vioblk_request(vib, xfer, VIRTIO_BLK_T_DISCARD); in vioblk_bd_free_space()