Lines Matching defs:srp_cmd

192 static int srp_indirect_data(struct ibmvscsis_cmd *cmd, struct srp_cmd *srp_cmd,
211 if ((dir == DMA_FROM_DEVICE && nmd == srp_cmd->data_in_desc_cnt) ||
212 (dir == DMA_TO_DEVICE && nmd == srp_cmd->data_out_desc_cnt)) {
269 static int data_out_desc_size(struct srp_cmd *cmd)
295 int srp_transfer_data(struct ibmvscsis_cmd *cmd, struct srp_cmd *srp_cmd,
307 offset = srp_cmd->add_cdb_len & ~3;
309 dir = srp_cmd_direction(srp_cmd);
311 offset += data_out_desc_size(srp_cmd);
314 format = srp_cmd->buf_fmt >> 4;
316 format = srp_cmd->buf_fmt & ((1U << 4) - 1);
322 md = (struct srp_direct_buf *)(srp_cmd->add_data + offset);
326 id = (struct srp_indirect_buf *)(srp_cmd->add_data + offset);
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)
371 int srp_get_desc_table(struct srp_cmd *srp_cmd, enum dma_data_direction *dir,
381 * if srp_cmd::add_data is declared as s8*, u8*, s8[] or u8[], so check
382 * whether srp_cmd::add_data has been declared as a byte pointer.
384 BUILD_BUG_ON(!__same_type(srp_cmd->add_data[0], (s8)0)
385 && !__same_type(srp_cmd->add_data[0], (u8)0));
395 if (srp_cmd->buf_fmt & 0xf)
397 else if (srp_cmd->buf_fmt >> 4)
400 add_cdb_offset = srp_cmd->add_cdb_len & ~3;
401 if (((srp_cmd->buf_fmt & 0xf) == SRP_DATA_DESC_DIRECT) ||
402 ((srp_cmd->buf_fmt >> 4) == SRP_DATA_DESC_DIRECT)) {
403 db = (struct srp_direct_buf *)(srp_cmd->add_data
406 } else if (((srp_cmd->buf_fmt & 0xf) == SRP_DATA_DESC_INDIRECT) ||
407 ((srp_cmd->buf_fmt >> 4) == SRP_DATA_DESC_INDIRECT)) {
408 idb = (struct srp_indirect_buf *)(srp_cmd->add_data