Lines Matching refs:ccb

220 	ccb_t *ccb;
225 ccb = TAILQ_FIRST(&sess->ccb_pool);
226 if (ccb != NULL) {
227 TAILQ_REMOVE(&sess->ccb_pool, ccb, chain);
230 DEB(100, ("get_ccb: ccb = %p, waitok = %d\n", ccb, waitok));
231 if (ccb == NULL) {
238 } while (ccb == NULL);
240 ccb->flags = 0;
241 ccb->xs = NULL;
242 ccb->temp_data = NULL;
243 ccb->text_data = NULL;
244 ccb->status = ISCSI_STATUS_SUCCESS;
245 ccb->ITT = (ccb->ITT & 0xffffff) | (++sess->itt_id << 24);
246 ccb->disp = CCBDISP_NOWAIT;
247 ccb->connection = conn;
250 return ccb;
261 free_ccb(ccb_t *ccb)
263 session_t *sess = ccb->session;
266 ccb->connection->usecount--;
267 ccb->connection = NULL;
269 ccb->disp = CCBDISP_UNUSED;
272 if (ccb->temp_data != NULL) {
273 free(ccb->temp_data, M_TEMP);
275 if (ccb->text_data != NULL) {
276 free(ccb->text_data, M_TEMP);
279 if ((pdu = ccb->pdu_waiting) != NULL) {
280 ccb->pdu_waiting = NULL;
285 TAILQ_INSERT_TAIL(&sess->ccb_pool, ccb, chain);
303 ccb_t *ccb;
308 for (i = 0, ccb = sess->ccb; i < CCBS_PER_SESSION; i++, ccb++) {
309 ccb->ITT = i | sid;
310 ccb->session = sess;
312 callout_init(&ccb->timeout, 0);
314 callout_setfunc(&ccb->timeout, ccb_timeout, ccb);
317 /*DEB (9, ("Create_ccbs: ccb %x itt %x\n", ccb, ccb->ITT)); */
318 TAILQ_INSERT_HEAD(&sess->ccb_pool, ccb, chain);
333 wake_ccb(ccb_t *ccb)
344 if (ccb == NULL)
347 conn = ccb->connection;
350 if (ccb != lastccb || ccb->disp != lastdisp) {
351 DEBC(conn, 9, ("Wake CCB, ccb = %p, disp = %d\n",
352 ccb, (ccb) ? ccb->disp : 0));
353 lastccb = ccb;
354 lastdisp = (ccb) ? ccb->disp : 0;
358 callout_stop(&ccb->timeout);
361 disp = ccb->disp;
368 TAILQ_REMOVE(&conn->ccbs_waiting, ccb, chain);
371 ccb->disp = CCBDISP_BUSY;
374 PERF_END(ccb);
378 wakeup(ccb);
382 iscsi_done(ccb);
389 free_ccb(ccb);
403 complete_ccb(ccb_t *ccb)
409 if (ccb == NULL)
412 callout_stop(&ccb->timeout);
415 disp = ccb->disp;
421 ccb->disp = CCBDISP_BUSY;
424 PERF_END(ccb);
428 wakeup(ccb);
432 iscsi_done(ccb);
436 free_ccb(ccb);