Lines Matching refs:pq

69 _async(isc_session_t *sp, pduq_t *pq)
73 iscsi_async(sp, pq);
75 pdu_free(sp->isc, pq);
79 _reject(isc_session_t *sp, pduq_t *pq)
87 pdu = mtod(pq->mp, pdu_t *);
89 reject = &pq->pdu.ipdu.reject;
93 iscsi_reject(sp, opq, pq);
95 switch(pq->pdu.ipdu.bhs.opcode) {
101 sp->sid, ntohl(pq->pdu.ipdu.bhs.itt));
104 pdu_free(sp->isc, pq);
108 _r2t(isc_session_t *sp, pduq_t *pq)
113 opq = i_search_hld(sp, pq->pdu.ipdu.bhs.itt, 1);
115 iscsi_r2t(sp, opq, pq);
118 r2t_t *r2t = &pq->pdu.ipdu.r2t;
121 sp->sid, ntohl(pq->pdu.ipdu.bhs.itt),
124 pdu_free(sp->isc, pq);
128 _scsi_rsp(isc_session_t *sp, pduq_t *pq)
133 opq = i_search_hld(sp, pq->pdu.ipdu.bhs.itt, 0);
134 debug(5, "itt=%x pq=%p opq=%p", ntohl(pq->pdu.ipdu.bhs.itt), pq, opq);
136 iscsi_done(sp, opq, pq);
137 i_acked_hld(sp, &pq->pdu);
141 sp->sid, ntohl(pq->pdu.ipdu.bhs.itt));
142 pdu_free(sp->isc, pq);
146 _read_data(isc_session_t *sp, pduq_t *pq)
151 opq = i_search_hld(sp, pq->pdu.ipdu.bhs.itt, 1);
153 if(scsi_decap(sp, opq, pq) != 1) {
160 sp->sid, ntohl(pq->pdu.ipdu.bhs.itt));
161 pdu_free(sp->isc, pq);
170 pduq_t *pq;
180 if((pq = pdu_alloc(sp->isc, M_NOWAIT)) == NULL)
183 nop_out = &pq->pdu.ipdu.nop_out;
189 if(isc_qout(sp, pq) != 0) {
191 pdu_free(sp->isc, pq);
197 _nop_in(isc_session_t *sp, pduq_t *pq)
199 pdu_t *pp = &pq->pdu;
230 (void)isc_qout(sp, pq); //XXX: should check return?
247 i_nqueue_rsp(sp, pq);
257 pdu_free(sp->isc, pq);
262 i_prepPDU(isc_session_t *sp, pduq_t *pq)
265 pdu_t *pp = &pq->pdu;
293 pq->len = len;
305 isc_qout(isc_session_t *sp, pduq_t *pq)
311 if(pq->len == 0 && (error = i_prepPDU(sp, pq)))
314 if(pq->pdu.ipdu.bhs.I)
315 i_nqueue_isnd(sp, pq);
317 if(pq->pdu.ipdu.data_out.opcode == ISCSI_WRITE_DATA)
318 i_nqueue_wsnd(sp, pq);
320 i_nqueue_csnd(sp, pq);
322 sdebug(5, "enqued: pq=%p", pq);
358 ism_recv(isc_session_t *sp, pduq_t *pq)
365 bhs = &pq->pdu.ipdu.bhs;
379 data_in_t *cmd = &pq->pdu.ipdu.data_in;
398 i_nqueue_rsp(sp, pq);
403 case ISCSI_NOP_IN: _nop_in(sp, pq); break;
404 case ISCSI_SCSI_RSP: _scsi_rsp(sp, pq); break;
405 case ISCSI_READ_DATA: _read_data(sp, pq); break;
406 case ISCSI_R2T: _r2t(sp, pq); break;
407 case ISCSI_REJECT: _reject(sp, pq); break;
408 case ISCSI_ASYNC: _async(sp, pq); break;
427 pduq_t *pq;
448 if((pq = i_dqueue_snd(sp, which)) == NULL)
450 sdebug(4, "pq=%p", pq);
452 pp = &pq->pdu;
491 i_nqueue_hld(sp, pq);
493 error = isc_sendPDU(sp, pq);
495 pdu_free(sp->isc, pq);
498 error, bhs->opcode, pq->ccb, ntohl(bhs->itt));
499 i_remove_hld(sp, pq);
506 i_rqueue_pdu(sp, pq);
510 if(pq->ccb) {
512 pq->ccb->ccb_h.status |= CAM_REQUEUE_REQ; // some better error?
513 XPT_DONE(sp, pq->ccb);
514 pdu_free(sp->isc, pq);