Lines Matching defs:cmd
161 static int srp_direct_data(struct ibmvscsis_cmd *cmd, struct srp_direct_buf *md,
170 iue = cmd->iue;
171 sg = cmd->se_cmd.t_data_sg;
172 nsg = dma_map_sg(iue->target->dev, sg, cmd->se_cmd.t_data_nents,
176 cmd->se_cmd.t_data_nents);
179 len = min(cmd->se_cmd.data_length, be32_to_cpu(md->len));
184 err = rdma_io(cmd, sg, nsg, md, 1, dir, len);
192 static int srp_indirect_data(struct ibmvscsis_cmd *cmd, struct srp_cmd *srp_cmd,
205 iue = cmd->iue;
206 sg = cmd->se_cmd.t_data_sg;
230 err = rdma_io(cmd, &dummy, 1, &id->table_desc, 1, DMA_TO_DEVICE,
243 nsg = dma_map_sg(iue->target->dev, sg, cmd->se_cmd.t_data_nents,
247 cmd->se_cmd.t_data_nents);
251 len = min(cmd->se_cmd.data_length, be32_to_cpu(id->len));
256 err = rdma_io(cmd, sg, nsg, md, nmd, dir, len);
269 static int data_out_desc_size(struct srp_cmd *cmd)
272 u8 fmt = cmd->buf_fmt >> 4;
282 sizeof(struct srp_direct_buf) * cmd->data_out_desc_cnt;
295 int srp_transfer_data(struct ibmvscsis_cmd *cmd, struct srp_cmd *srp_cmd,
304 if (!cmd->se_cmd.t_data_nents)
323 err = srp_direct_data(cmd, md, dir, rdma_io, dma_map, ext_desc);
327 err = srp_indirect_data(cmd, srp_cmd, id, dir, rdma_io, dma_map,
338 u64 srp_data_length(struct srp_cmd *cmd, enum dma_data_direction dir)
343 uint offset = cmd->add_cdb_len & ~3;
347 fmt = cmd->buf_fmt >> 4;
349 fmt = cmd->buf_fmt & ((1U << 4) - 1);
350 offset += data_out_desc_size(cmd);
357 md = (struct srp_direct_buf *)(cmd->add_data + offset);
361 id = (struct srp_indirect_buf *)(cmd->add_data + offset);