Lines Matching refs:idt

82 static void idm_so_send_rtt_data(idm_conn_t *ic, idm_task_t *idt,
84 static void idm_so_send_rtt_data_done(idm_task_t *idt, idm_buf_t *idb);
85 static idm_status_t idm_so_send_buf_region(idm_task_t *idt,
101 static idm_status_t idm_so_buf_tx_to_ini(idm_task_t *idt, idm_buf_t *idb);
102 static idm_status_t idm_so_buf_rx_from_ini(idm_task_t *idt, idm_buf_t *idb);
106 static idm_status_t idm_so_free_task_rsrc(idm_task_t *idt);
1417 idm_so_free_task_rsrc(idm_task_t *idt) in idm_so_free_task_rsrc() argument
1424 if (IDM_CONN_ISINI(idt->idt_ic)) in idm_so_free_task_rsrc()
1436 mutex_enter(&idt->idt_mutex); in idm_so_free_task_rsrc()
1438 for (idb = list_head(&idt->idt_outbufv); idb != NULL; idb = next_idb) { in idm_so_free_task_rsrc()
1439 next_idb = list_next(&idt->idt_outbufv, idb); in idm_so_free_task_rsrc()
1444 DTRACE_ISCSI_8(xfer__done, idm_conn_t *, idt->idt_ic, in idm_so_free_task_rsrc()
1450 idm_buf_rx_from_ini_done(idt, idb, IDM_STATUS_ABORTED); in idm_so_free_task_rsrc()
1451 mutex_enter(&idt->idt_mutex); in idm_so_free_task_rsrc()
1455 for (idb = list_head(&idt->idt_inbufv); idb != NULL; idb = next_idb) { in idm_so_free_task_rsrc()
1456 next_idb = list_next(&idt->idt_inbufv, idb); in idm_so_free_task_rsrc()
1467 DTRACE_ISCSI_8(xfer__done, idm_conn_t *, idt->idt_ic, in idm_so_free_task_rsrc()
1473 idm_buf_tx_to_ini_done(idt, idb, IDM_STATUS_ABORTED); in idm_so_free_task_rsrc()
1474 mutex_enter(&idt->idt_mutex); in idm_so_free_task_rsrc()
1478 mutex_exit(&idt->idt_mutex); in idm_so_free_task_rsrc()
1648 idm_task_t *idt; in idm_so_rx_datain() local
1667 idt = idm_task_find(ic, bhs->itt, bhs->ttt); in idm_so_rx_datain()
1668 if (idt == NULL) { in idm_so_rx_datain()
1678 idm_task_rele(idt); in idm_so_rx_datain()
1687 if (datasn == idt->idt_exp_datasn) { in idm_so_rx_datain()
1688 idt->idt_exp_datasn++; /* keep track of DataSN received */ in idm_so_rx_datain()
1691 idm_task_rele(idt); in idm_so_rx_datain()
1702 idm_task_rele(idt); in idm_so_rx_datain()
1708 idt->idt_rx_bytes += n2h24(bhs->dlength); in idm_so_rx_datain()
1710 idm_task_rele(idt); in idm_so_rx_datain()
1738 idm_task_t *idt; in idm_so_rx_dataout() local
1753 idt = idm_task_find(ic, bhs->itt, bhs->ttt); in idm_so_rx_dataout()
1754 if (idt == NULL) { in idm_so_rx_dataout()
1765 idm_task_rele(idt); in idm_so_rx_dataout()
1774 idm_task_rele(idt); in idm_so_rx_dataout()
1780 idt->idt_rx_bytes += n2h24(bhs->dlength); in idm_so_rx_dataout()
1814 idm_task_rele(idt); in idm_so_rx_dataout()
1831 mutex_enter(&idt->idt_mutex); in idm_so_rx_dataout()
1839 idm_task_rele(idt); in idm_so_rx_dataout()
1844 DTRACE_ISCSI_8(xfer__done, idm_conn_t *, idt->idt_ic, in idm_so_rx_dataout()
1849 idm_buf_rx_from_ini_done(idt, idb, IDM_STATUS_SUCCESS); in idm_so_rx_dataout()
1854 idm_task_rele(idt); in idm_so_rx_dataout()
1872 idm_task_t *idt; in idm_so_rx_rtt() local
1884 idt = idm_task_find(ic, rtt_hdr->itt, rtt_hdr->ttt); in idm_so_rx_rtt()
1886 if (idt == NULL) { in idm_so_rx_rtt()
1893 mutex_enter(&idt->idt_mutex); in idm_so_rx_rtt()
1894 idb = idm_buf_find(&idt->idt_outbufv, data_offset); in idm_so_rx_rtt()
1896 mutex_exit(&idt->idt_mutex); in idm_so_rx_rtt()
1897 idm_task_rele(idt); in idm_so_rx_rtt()
1906 mutex_exit(&idt->idt_mutex); in idm_so_rx_rtt()
1907 idm_task_rele(idt); in idm_so_rx_rtt()
1914 idt->idt_r2t_ttt = rtt_hdr->ttt; in idm_so_rx_rtt()
1915 idt->idt_exp_datasn = 0; in idm_so_rx_rtt()
1917 idm_so_send_rtt_data(ic, idt, idb, data_offset, in idm_so_rx_rtt()
1924 idm_task_rele(idt); in idm_so_rx_rtt()
2322 idm_task_t *idt; in idm_i_so_tx() local
2330 idt = idm_task_find(ic, ihp->itt, ihp->ttt); in idm_i_so_tx()
2331 if (idt) { in idm_i_so_tx()
2332 mutex_enter(&idt->idt_mutex); in idm_i_so_tx()
2333 idb = idm_buf_find(&idt->idt_outbufv, 0); in idm_i_so_tx()
2334 mutex_exit(&idt->idt_mutex); in idm_i_so_tx()
2348 idm_task_rele(idt); in idm_i_so_tx()
2438 idm_so_buf_tx_to_ini(idm_task_t *idt, idm_buf_t *idb) in idm_so_buf_tx_to_ini() argument
2443 ASSERT(mutex_owned(&idt->idt_mutex)); in idm_so_buf_tx_to_ini()
2451 DTRACE_ISCSI_8(xfer__start, idm_conn_t *, idt->idt_ic, in idm_so_buf_tx_to_ini()
2462 DTRACE_ISCSI_8(xfer__done, idm_conn_t *, idt->idt_ic, in idm_so_buf_tx_to_ini()
2467 idm_buf_tx_to_ini_done(idt, idb, IDM_STATUS_ABORTED); in idm_so_buf_tx_to_ini()
2478 (*idt->idt_ic->ic_conn_ops.icb_build_hdr)(idt, &tmppdu, in idm_so_buf_tx_to_ini()
2484 mutex_exit(&idt->idt_mutex); in idm_so_buf_tx_to_ini()
2508 idm_so_buf_rx_from_ini(idm_task_t *idt, idm_buf_t *idb) in idm_so_buf_rx_from_ini() argument
2513 ASSERT(mutex_owned(&idt->idt_mutex)); in idm_so_buf_rx_from_ini()
2515 DTRACE_ISCSI_8(xfer__start, idm_conn_t *, idt->idt_ic, in idm_so_buf_rx_from_ini()
2521 pdu->isp_ic = idt->idt_ic; in idm_so_buf_rx_from_ini()
2526 (*idt->idt_ic->ic_conn_ops.icb_build_hdr)(idt, pdu, ISCSI_OP_RTT_RSP); in idm_so_buf_rx_from_ini()
2535 rtt->rttsn = htonl(idt->idt_exp_rttsn++); in idm_so_buf_rx_from_ini()
2539 mutex_exit(&idt->idt_mutex); in idm_so_buf_rx_from_ini()
2598 idm_so_send_rtt_data(idm_conn_t *ic, idm_task_t *idt, idm_buf_t *idb, in idm_so_send_rtt_data() argument
2605 ASSERT(mutex_owned(&idt->idt_mutex)); in idm_so_send_rtt_data()
2629 mutex_exit(&idt->idt_mutex); in idm_so_send_rtt_data()
2637 rtt_buf->idb_ic = idt->idt_ic; in idm_so_send_rtt_data()
2638 rtt_buf->idb_task_binding = idt; in idm_so_send_rtt_data()
2644 idm_task_hold(idt); in idm_so_send_rtt_data()
2645 mutex_exit(&idt->idt_mutex); in idm_so_send_rtt_data()
2656 idm_task_rele(idt); in idm_so_send_rtt_data()
2667 (*idt->idt_ic->ic_conn_ops.icb_build_hdr)(idt, &tmppdu, in idm_so_send_rtt_data()
2677 idm_so_send_rtt_data_done(idm_task_t *idt, idm_buf_t *idb) in idm_so_send_rtt_data_done() argument
2684 idm_task_rele(idt); in idm_so_send_rtt_data_done()
2689 idm_so_send_buf_region(idm_task_t *idt, idm_buf_t *idb, in idm_so_send_buf_region() argument
2700 ASSERT(mutex_owned(&idt->idt_mutex)); in idm_so_send_buf_region()
2702 ic = idt->idt_ic; in idm_so_send_buf_region()
2708 if (idt->idt_state != TASK_ACTIVE) { in idm_so_send_buf_region()
2709 ASSERT((idt->idt_state != TASK_IDLE) && in idm_so_send_buf_region()
2710 (idt->idt_state != TASK_COMPLETE)); in idm_so_send_buf_region()
2741 bhs->datasn = htonl(idt->idt_exp_datasn++); in idm_so_send_buf_region()
2753 if (idt->idt_flags & IDM_TASK_PHASECOLLAPSE_REQ) { in idm_so_send_buf_region()
2756 (*idt->idt_ic->ic_conn_ops.icb_update_statsn) in idm_so_send_buf_region()
2757 (idt, pdu); in idm_so_send_buf_region()
2758 idt->idt_flags |= in idm_so_send_buf_region()
2770 idm_conn_t *, idt->idt_ic, in idm_so_send_buf_region()
2781 mutex_exit(&idt->idt_mutex); in idm_so_send_buf_region()
2788 mutex_enter(&idt->idt_mutex); in idm_so_send_buf_region()
2792 mutex_enter(&idt->idt_mutex); in idm_so_send_buf_region()
2793 idt->idt_tx_bytes += chunk; in idm_so_send_buf_region()
2930 idm_task_t *idt = idb->idb_task_binding; in idm_sotx_thread() local
2935 mutex_enter(&idt->idt_mutex); in idm_sotx_thread()
2936 status = idm_so_send_buf_region(idt, in idm_sotx_thread()
2950 idm_conn_t *, idt->idt_ic, in idm_sotx_thread()
2956 idm_buf_tx_to_ini_done(idt, idb, status); in idm_sotx_thread()
2958 idm_so_send_rtt_data_done(idt, idb); in idm_sotx_thread()
2959 mutex_exit(&idt->idt_mutex); in idm_sotx_thread()
2998 idm_task_t *idt = idb->idb_task_binding; in idm_sotx_thread() local
3000 mutex_enter(&idt->idt_mutex); in idm_sotx_thread()
3012 idm_conn_t *, idt->idt_ic, in idm_sotx_thread()
3018 idm_buf_tx_to_ini_done(idt, idb, in idm_sotx_thread()
3021 idm_so_send_rtt_data_done(idt, idb); in idm_sotx_thread()
3022 mutex_exit(&idt->idt_mutex); in idm_sotx_thread()