lm_l4fp.h revision d14abf155341d55053c76eeec58b787a456b753b
/*******************************************************************************
* lm_l4fp.h - l4 common fast path interface
*******************************************************************************/
#ifndef _LM_L4FP_H
#define _LM_L4FP_H
/* Maximum size of the SGE BD may point at */
/* Maximum size of the SGL */
/* Assumptions: Called only from DPC flow OR deferred cqes. Holds the fp-lock */
void lm_tcp_complete_bufs(
struct _lm_device_t *pdev,
lm_tcp_con_t *con);
/* Assumptions: Called only from DPC flow OR deferred cqes. Does not hold the fp-lock */
struct _lm_device_t *pdev,
completed buffers towards mm */);
/**
* Description:
* Aborts the pending buffers on the given connection :
* immediately completes them with the given status.
*/
void lm_tcp_abort_bufs(
);
/******** qe_buffer interface: cyclic NO-OVERRIDE buffer ****************/
/** Description
* returns the next cqe in the cqe_buffer and updates the buffer params
* (head)
*/
/** Description
* returns the next occupied cqe in the cqe_buffer and updates the buffer params
* (tail)
*/
/** Description
* returns whether the buffer is empty or not (head == tail)
*/
/******** qe_buffer interface: cyclic OVERRIDE buffer ****************/
/** Description
* returns the next head location in a cyclic manner. This is an override
* function, meaning that the returned head could be overriding a previous
* written cqe
*/
/** Description
* processes a single rx cqe
* called as a result of deferred cqes
*/
void lm_tcp_rx_process_cqe(
lm_device_t * pdev,
struct toe_rx_cqe * cqe,
);
/** Description
* processes a single tx cqe
* called as a result of deferred cqes
*/
void lm_tcp_tx_process_cqe(
lm_device_t * pdev,
struct toe_tx_cqe * cqe,
);
lm_device_t * pdev,
);
lm_device_t * pdev,
);
/** Description
* adds another nbytes to the sws counter, and posts a doorbell if we're
* above a certain threshold
* assumptions : caller took the rx-lock
*/
void lm_tcp_rx_post_sws (
lm_device_t * pdev,
);
#define TCP_RX_POST_SWS_INC 0
#define TCP_RX_POST_SWS_DEC 1
#define TCP_RX_POST_SWS_SET 2
/** Description
* while we are in a DPC, we don't pop buffers from the active_tb_list, this function
* helps in determining the next buffer in the active tb list that is valid (i.e. the
* head of active_tb_list had we popped buffers)
*/
{
} else {
}
}
#endif /* _LM_L4FP_H */