Lines Matching refs:isc
460 struct icl_soft_conn *isc; in icl_pdu_receive_data_segment() local
464 isc = (struct icl_soft_conn *)request->ip_conn; in icl_pdu_receive_data_segment()
467 isc->receive_len = 0; in icl_pdu_receive_data_segment()
516 isc->receive_len = icl_pdu_data_segment_receive_len(request); in icl_pdu_receive_data_segment()
555 icl_conn_receive_pdu(struct icl_soft_conn *isc, struct mbuf **r, size_t *rs) in icl_conn_receive_pdu() argument
557 struct icl_conn *ic = &isc->ic; in icl_conn_receive_pdu()
563 if (isc->receive_state == ICL_CONN_STATE_BHS) { in icl_conn_receive_pdu()
564 KASSERT(isc->receive_pdu == NULL, in icl_conn_receive_pdu()
573 isc->receive_pdu = request; in icl_conn_receive_pdu()
575 KASSERT(isc->receive_pdu != NULL, in icl_conn_receive_pdu()
577 request = isc->receive_pdu; in icl_conn_receive_pdu()
580 switch (isc->receive_state) { in icl_conn_receive_pdu()
600 isc->receive_state = ICL_CONN_STATE_AHS; in icl_conn_receive_pdu()
601 isc->receive_len = icl_pdu_ahs_length(request); in icl_conn_receive_pdu()
607 isc->receive_state = ICL_CONN_STATE_HEADER_DIGEST; in icl_conn_receive_pdu()
609 isc->receive_len = 0; in icl_conn_receive_pdu()
611 isc->receive_len = ISCSI_HEADER_DIGEST_SIZE; in icl_conn_receive_pdu()
623 isc->receive_state = ICL_CONN_STATE_DATA; in icl_conn_receive_pdu()
624 isc->receive_len = icl_pdu_data_segment_receive_len(request); in icl_conn_receive_pdu()
640 isc->receive_state = ICL_CONN_STATE_DATA_DIGEST; in icl_conn_receive_pdu()
642 isc->receive_len = 0; in icl_conn_receive_pdu()
644 isc->receive_len = ISCSI_DATA_DIGEST_SIZE; in icl_conn_receive_pdu()
660 isc->receive_state = ICL_CONN_STATE_BHS; in icl_conn_receive_pdu()
661 isc->receive_len = sizeof(struct iscsi_bhs); in icl_conn_receive_pdu()
662 isc->receive_pdu = NULL; in icl_conn_receive_pdu()
666 panic("invalid receive_state %d\n", isc->receive_state); in icl_conn_receive_pdu()
681 icl_conn_receive_pdus(struct icl_soft_conn *isc, struct mbuf **r, size_t *rs) in icl_conn_receive_pdus() argument
683 struct icl_conn *ic = &isc->ic; in icl_conn_receive_pdus()
694 if (*rs < isc->receive_len) { in icl_conn_receive_pdus()
697 *rs, isc->receive_len); in icl_conn_receive_pdus()
702 response = icl_conn_receive_pdu(isc, r, rs); in icl_conn_receive_pdus()
722 struct icl_soft_conn *isc = arg; in icl_receive_thread() local
723 struct icl_conn *ic = &isc->ic; in icl_receive_thread()
746 if (read + available < isc->receive_len) { in icl_receive_thread()
747 so->so_rcv.sb_lowat = isc->receive_len - read; in icl_receive_thread()
748 cv_wait(&isc->receive_cv, SOCKBUF_MTX(&so->so_rcv)); in icl_receive_thread()
783 icl_conn_receive_pdus(isc, &r, &read); in icl_receive_thread()
790 isc->receive_running = false; in icl_receive_thread()
791 cv_signal(&isc->send_cv); in icl_receive_thread()
799 struct icl_soft_conn *isc; in icl_soupcall_receive() local
804 isc = arg; in icl_soupcall_receive()
805 cv_signal(&isc->receive_cv); in icl_soupcall_receive()
865 icl_conn_send_pdus(struct icl_soft_conn *isc, struct icl_pdu_stailq *queue) in icl_conn_send_pdus() argument
867 struct icl_conn *ic = &isc->ic; in icl_conn_send_pdus()
886 isc->check_send_space = false; in icl_conn_send_pdus()
981 struct icl_soft_conn *isc; in icl_send_thread() local
985 isc = arg; in icl_send_thread()
986 ic = &isc->ic; in icl_send_thread()
998 if (STAILQ_EMPTY(&queue) || isc->check_send_space) in icl_send_thread()
999 STAILQ_CONCAT(&queue, &isc->to_send); in icl_send_thread()
1002 icl_conn_send_pdus(isc, &queue); in icl_send_thread()
1009 if (isc->check_send_space) in icl_send_thread()
1017 !STAILQ_EMPTY(&isc->to_send)) in icl_send_thread()
1033 cv_wait(&isc->send_cv, ic->ic_lock); in icl_send_thread()
1040 STAILQ_CONCAT(&isc->to_send, &queue); in icl_send_thread()
1042 isc->send_running = false; in icl_send_thread()
1043 cv_signal(&isc->send_cv); in icl_send_thread()
1051 struct icl_soft_conn *isc; in icl_soupcall_send() local
1057 isc = arg; in icl_soupcall_send()
1058 ic = &isc->ic; in icl_soupcall_send()
1061 isc->check_send_space = true; in icl_soupcall_send()
1064 cv_signal(&isc->send_cv); in icl_soupcall_send()
1136 struct icl_soft_conn *isc = (struct icl_soft_conn *)ic; in icl_soft_conn_pdu_queue_cb() local
1149 if (!STAILQ_EMPTY(&isc->to_send)) { in icl_soft_conn_pdu_queue_cb()
1150 STAILQ_INSERT_TAIL(&isc->to_send, ip, ip_next); in icl_soft_conn_pdu_queue_cb()
1159 STAILQ_INSERT_TAIL(&isc->to_send, ip, ip_next); in icl_soft_conn_pdu_queue_cb()
1160 cv_signal(&isc->send_cv); in icl_soft_conn_pdu_queue_cb()
1166 struct icl_soft_conn *isc; in icl_soft_new_conn() local
1171 isc = (struct icl_soft_conn *)kobj_create(&icl_soft_class, M_ICL_SOFT, in icl_soft_new_conn()
1174 STAILQ_INIT(&isc->to_send); in icl_soft_new_conn()
1175 cv_init(&isc->send_cv, "icl_tx"); in icl_soft_new_conn()
1176 cv_init(&isc->receive_cv, "icl_rx"); in icl_soft_new_conn()
1178 ic = &isc->ic; in icl_soft_new_conn()
1193 struct icl_soft_conn *isc = (struct icl_soft_conn *)ic; in icl_soft_conn_free() local
1200 cv_destroy(&isc->send_cv); in icl_soft_conn_free()
1201 cv_destroy(&isc->receive_cv); in icl_soft_conn_free()
1202 kobj_delete((struct kobj *)isc, M_ICL_SOFT); in icl_soft_conn_free()
1209 struct icl_soft_conn *isc = (struct icl_soft_conn *)ic; in icl_conn_start() local
1224 isc->receive_state = ICL_CONN_STATE_BHS; in icl_conn_start()
1225 isc->receive_len = sizeof(struct iscsi_bhs); in icl_conn_start()
1282 soupcall_set(ic->ic_socket, SO_SND, icl_soupcall_send, isc); in icl_conn_start()
1285 soupcall_set(ic->ic_socket, SO_RCV, icl_soupcall_receive, isc); in icl_conn_start()
1292 isc->send_running = isc->receive_running = true; in icl_conn_start()
1299 isc->send_running = isc->receive_running = false; in icl_conn_start()
1300 cv_signal(&isc->send_cv); in icl_conn_start()
1310 isc->receive_running = false; in icl_conn_start()
1311 cv_signal(&isc->send_cv); in icl_conn_start()
1386 struct icl_soft_conn *isc = (struct icl_soft_conn *)ic; in icl_soft_conn_close() local
1403 while (isc->receive_running || isc->send_running) { in icl_soft_conn_close()
1404 cv_signal(&isc->receive_cv); in icl_soft_conn_close()
1405 cv_signal(&isc->send_cv); in icl_soft_conn_close()
1406 cv_wait(&isc->send_cv, ic->ic_lock); in icl_soft_conn_close()
1432 if (isc->receive_pdu != NULL) { in icl_soft_conn_close()
1434 icl_soft_conn_pdu_free(ic, isc->receive_pdu); in icl_soft_conn_close()
1435 isc->receive_pdu = NULL; in icl_soft_conn_close()
1441 while (!STAILQ_EMPTY(&isc->to_send)) { in icl_soft_conn_close()
1442 pdu = STAILQ_FIRST(&isc->to_send); in icl_soft_conn_close()
1443 STAILQ_REMOVE_HEAD(&isc->to_send, ip_next); in icl_soft_conn_close()
1447 KASSERT(STAILQ_EMPTY(&isc->to_send), in icl_soft_conn_close()