Lines Matching refs:xfer

2796 nvme_fill_prp(nvme_cmd_t *cmd, bd_xfer_t *xfer)
2802 if (xfer->x_ndmac == 0)
2805 cmd->nc_sqe.sqe_dptr.d_prp[0] = xfer->x_dmac.dmac_laddress;
2806 ddi_dma_nextcookie(xfer->x_dmah, &xfer->x_dmac);
2808 if (xfer->x_ndmac == 1) {
2811 } else if (xfer->x_ndmac == 2) {
2812 cmd->nc_sqe.sqe_dptr.d_prp[1] = xfer->x_dmac.dmac_laddress;
2816 xfer->x_ndmac--;
2820 nprp = (xfer->x_ndmac + nprp_page - 1) / nprp_page;
2836 xfer->x_ndmac > 0;
2837 prp++, xfer->x_ndmac--) {
2838 *prp = xfer->x_dmac.dmac_laddress;
2839 ddi_dma_nextcookie(xfer->x_dmah, &xfer->x_dmac);
2848 nvme_create_nvm_cmd(nvme_namespace_t *ns, uint8_t opc, bd_xfer_t *xfer)
2856 cmd = nvme_alloc_cmd(nvme, (xfer->x_flags & BD_XFER_POLL) ?
2864 cmd->nc_xfer = xfer;
2869 VERIFY(xfer->x_nblks <= 0x10000);
2873 cmd->nc_sqe.sqe_cdw10 = xfer->x_blkno & 0xffffffffu;
2874 cmd->nc_sqe.sqe_cdw11 = (xfer->x_blkno >> 32);
2875 cmd->nc_sqe.sqe_cdw12 = (uint16_t)(xfer->x_nblks - 1);
2877 if (nvme_fill_prp(cmd, xfer) != DDI_SUCCESS)
2900 bd_xfer_t *xfer = cmd->nc_xfer;
2906 bd_xfer_done(xfer, error);
2964 nvme_bd_cmd(nvme_namespace_t *ns, bd_xfer_t *xfer, uint8_t opc)
2973 if (xfer->x_flags & BD_XFER_POLL)
2976 cmd = nvme_create_nvm_cmd(ns, opc, xfer);
2991 nvme_bd_read(void *arg, bd_xfer_t *xfer)
2995 return (nvme_bd_cmd(ns, xfer, NVME_OPC_NVM_READ));
2999 nvme_bd_write(void *arg, bd_xfer_t *xfer)
3003 return (nvme_bd_cmd(ns, xfer, NVME_OPC_NVM_WRITE));
3007 nvme_bd_sync(void *arg, bd_xfer_t *xfer)
3019 bd_xfer_done(xfer, ENOTSUP);
3024 bd_xfer_done(xfer, 0);
3028 return (nvme_bd_cmd(ns, xfer, NVME_OPC_NVM_FLUSH));