FreeBSD/sys/dev/iser/iser_verbs.c
/**
 * iser_start_send - Initiate a Send DTO operation
 *
 * returns 0 on success, -1 on failure
 */
Initiate a Send DTO operation
returns 0 on success, -1 on failure
Initiate a Send DTO operation returns 0 on success - 1 on failure
int iser_post_send(struct ib_conn *ib_conn, struct iser_tx_desc *tx_desc,
		   bool signal)
{
	int		  ib_ret;
	struct ib_send_wr send_wr, *send_wr_failed;
	ib_dma_sync_single_for_device(ib_conn->device->ib_device,
				      tx_desc->dma_addr, ISER_HEADERS_LEN,
				      DMA_TO_DEVICE);
	send_wr.next	   = NULL;
	send_wr.wr_id	   = (uintptr_t)tx_desc;
	send_wr.sg_list	   = tx_desc->tx_sg;
	send_wr.num_sge	   = tx_desc->num_sge;
	send_wr.opcode	   = IB_WR_SEND;
	send_wr.send_flags = signal ? IB_SEND_SIGNALED : 0;
	ib_ret = ib_post_send(ib_conn->qp, &send_wr, &send_wr_failed);
	if (ib_ret)
		ISER_ERR("ib_post_send failed, ret:%d", ib_ret);
	return (ib_ret);
}
int iser_post_send ( struct ib_conn * ib_conn , struct iser_tx_desc * tx_desc , bool signal ) { int ib_ret ; struct ib_send_wr send_wr , * send_wr_failed ; ib_dma_sync_single_for_device ( ib_conn -> device -> ib_device , tx_desc -> dma_addr , ISER_HEADERS_LEN , DMA_TO_DEVICE ) ; send_wr . next = NULL ; send_wr . wr_id = ( uintptr_t ) tx_desc ; send_wr . sg_list = tx_desc -> tx_sg ; send_wr . num_sge = tx_desc -> num_sge ; send_wr . opcode = IB_WR_SEND ; send_wr . send_flags = signal ? IB_SEND_SIGNALED : 0 ; ib_ret = ib_post_send ( ib_conn -> qp , & send_wr , & send_wr_failed ) ; if ( ib_ret ) ISER_ERR ( " " , ib_ret ) ; return ( ib_ret ) ; }
iser_start_send - Initiate a Send DTO operation
 returns 0 on success, -1 on failure
iser_start_send - Initiate a Send DTO operation returns 0 on success - 1 on failure