/* Using different timers for retransmit, delayed acks and probes We may wish use just one timer maintaining a list of expire jiffies to optimize.  */
void inet_csk_init_xmit_timers(struct sock *sk, void(*retransmit_handler)(unsigned long), void(*delack_handler)(unsigned long), void(*keepalive_handler)(unsigned long))
/* Using different timers for retransmit, delayed acks and probes We may wish use just one timer maintaining a list of expire jiffies to optimize.  */
void inet_csk_init_xmit_timers(struct sock *sk, void(*retransmit_handler)(unsigned long), void(*delack_handler)(unsigned long), void(*keepalive_handler)(unsigned long))
{
	struct inet_connection_sock *icsk = inet_csk(sk);
	setup_timer(&icsk->icsk_retransmit_timer, retransmit_handler,
			(unsigned long)sk);
	setup_timer(&icsk->icsk_delack_timer, delack_handler,
			(unsigned long)sk);
	setup_timer(&sk->sk_timer, keepalive_handler, (unsigned long)sk);
	icsk->icsk_pending = icsk->icsk_ack.pending = 0;
}