srp_rsp
static void srp_process_rsp(struct srp_rdma_ch *ch, struct srp_rsp *rsp)
BUILD_BUG_ON(sizeof(struct srp_rsp) != 36);
struct srp_rsp *srp_rsp;
srp_rsp = ioctx->ioctx.buf;
BUG_ON(!srp_rsp);
memset(srp_rsp, 0, sizeof(*srp_rsp));
srp_rsp->opcode = SRP_RSP;
srp_rsp->req_lim_delta =
srp_rsp->tag = tag;
srp_rsp->status = status;
srp_rsp->flags = SRP_RSP_FLAG_DOUNDER;
srp_rsp->data_out_res_cnt = cpu_to_be32(resid);
srp_rsp->flags = SRP_RSP_FLAG_DIUNDER;
srp_rsp->data_in_res_cnt = cpu_to_be32(resid);
srp_rsp->flags = SRP_RSP_FLAG_DOOVER;
srp_rsp->data_out_res_cnt = cpu_to_be32(resid);
srp_rsp->flags = SRP_RSP_FLAG_DIOVER;
srp_rsp->data_in_res_cnt = cpu_to_be32(resid);
BUILD_BUG_ON(MIN_MAX_RSP_SIZE <= sizeof(*srp_rsp));
max_sense_len = ch->max_ti_iu_len - sizeof(*srp_rsp);
srp_rsp->flags |= SRP_RSP_FLAG_SNSVALID;
srp_rsp->sense_data_len = cpu_to_be32(sense_data_len);
memcpy(srp_rsp->data, sense_data, sense_data_len);
return sizeof(*srp_rsp) + sense_data_len;
struct srp_rsp *srp_rsp;
resp_len = sizeof(*srp_rsp) + resp_data_len;
srp_rsp = ioctx->ioctx.buf;
BUG_ON(!srp_rsp);
memset(srp_rsp, 0, sizeof(*srp_rsp));
srp_rsp->opcode = SRP_RSP;
srp_rsp->req_lim_delta =
srp_rsp->tag = tag;
srp_rsp->flags |= SRP_RSP_FLAG_RSPVALID;
srp_rsp->resp_data_len = cpu_to_be32(resp_data_len);
srp_rsp->data[3] = rsp_code;
MIN_MAX_RSP_SIZE = sizeof(struct srp_rsp)/*36*/ + 4,
union viosrp_iu srp_rsp;
evt->sync_srp = &srp_rsp;
if (unlikely(srp_rsp.srp.rsp.opcode != SRP_RSP)) {
srp_rsp.srp.rsp.opcode);
if (srp_rsp.srp.rsp.flags & SRP_RSP_FLAG_RSPVALID)
rsp_rc = *((int *)srp_rsp.srp.rsp.data);
rsp_rc = srp_rsp.srp.rsp.status;
union viosrp_iu srp_rsp;
evt->sync_srp = &srp_rsp;
if (unlikely(srp_rsp.srp.rsp.opcode != SRP_RSP)) {
srp_rsp.srp.rsp.opcode);
if (srp_rsp.srp.rsp.flags & SRP_RSP_FLAG_RSPVALID)
rsp_rc = *((int *)srp_rsp.srp.rsp.data);
rsp_rc = srp_rsp.srp.rsp.status;
struct srp_rsp *rsp = &evt_struct->xfer_iu->srp.rsp;
struct srp_rsp *rsp;
struct srp_rsp *rsp)
struct srp_rsp rsp;