Lines Matching defs:srp_cmd

981 static inline void *srpt_get_desc_buf(struct srp_cmd *srp_cmd)
985 * if srp_cmd::add_data is declared as s8*, u8*, s8[] or u8[], so check
986 * whether srp_cmd::add_data has been declared as a byte pointer.
988 BUILD_BUG_ON(!__same_type(srp_cmd->add_data[0], (s8)0) &&
989 !__same_type(srp_cmd->add_data[0], (u8)0));
996 return srp_cmd->add_data + (srp_cmd->add_cdb_len & ~3);
1001 * @recv_ioctx: I/O context associated with the received command @srp_cmd.
1003 * @srp_cmd: Pointer to the SRP_CMD request data.
1020 struct srp_cmd *srp_cmd, enum dma_data_direction *dir,
1032 if (srp_cmd->buf_fmt & 0xf)
1035 else if (srp_cmd->buf_fmt >> 4)
1044 if (((srp_cmd->buf_fmt & 0xf) == SRP_DATA_DESC_DIRECT) ||
1045 ((srp_cmd->buf_fmt >> 4) == SRP_DATA_DESC_DIRECT)) {
1046 struct srp_direct_buf *db = srpt_get_desc_buf(srp_cmd);
1050 } else if (((srp_cmd->buf_fmt & 0xf) == SRP_DATA_DESC_INDIRECT) ||
1051 ((srp_cmd->buf_fmt >> 4) == SRP_DATA_DESC_INDIRECT)) {
1052 struct srp_indirect_buf *idb = srpt_get_desc_buf(srp_cmd);
1057 (srp_cmd->data_out_desc_cnt + srp_cmd->data_in_desc_cnt)) {
1059 srp_cmd->data_out_desc_cnt,
1060 srp_cmd->data_in_desc_cnt,
1069 } else if ((srp_cmd->buf_fmt >> 4) == SRP_DATA_DESC_IMM) {
1070 struct srp_imm_buf *imm_buf = srpt_get_desc_buf(srp_cmd);
1071 void *data = (void *)srp_cmd + imm_data_offset;
1498 struct srp_cmd *srp_cmd;
1507 srp_cmd = recv_ioctx->ioctx.buf + recv_ioctx->ioctx.offset;
1509 cmd->tag = srp_cmd->tag;
1511 switch (srp_cmd->task_attr) {
1527 rc = srpt_get_desc_tbl(recv_ioctx, send_ioctx, srp_cmd, &dir,
1532 srp_cmd->tag);
1538 scsilun_to_int(&srp_cmd->lun), data_len,
1542 srp_cmd->tag);
1546 if (target_submit_prep(cmd, srp_cmd->cdb, sg, sg_cnt, NULL, 0, NULL, 0,
1628 struct srp_cmd *srp_cmd;
1643 srp_cmd = recv_ioctx->ioctx.buf + recv_ioctx->ioctx.offset;
1644 opcode = srp_cmd->opcode;
2274 if (imm_data_offset >= sizeof(struct srp_cmd)) {