- * Tcp protocol timeout routine called every 500 ms.
- * Updates the timers in all active tcb's and
- * causes finite state machine actions if timers expire.
- */
-tcp_slowtimo()
-{
- register struct inpcb *ip;
- register struct tcpcb *tp;
- int s = splnet();
- register short *tmp;
- register int i;
-COUNT(TCP_TIMEO);
-
- /*
- * Search through tcb's and update active timers.
- */
- for (ip = tcb.inp_next; ip != &tcb; ip = ip->inp_next) {
- tp = intotcpcb(ip);
- tmp = &tp->t_init;
- for (i = 0; i < TNTIMERS; i++) {
- if (*tmp && --*tmp == 0)
- (void) tcp_usrreq(tp->t_inpcb->inp_socket,
- PRU_SLOWTIMO, (struct mbuf *)0,
- (caddr_t)i);
- tmp++;
- }
- tp->t_xmt++;
- }
- tcp_iss += ISSINCR/2; /* increment iss */
- splx(s);
-}
-
-/*
- * Cancel all timers for tcp tp.
- */
-tcp_tcancel(tp)
- struct tcpcb *tp;
-{
- register short *tmp = &tp->t_init;
- register int i;
-
- for (i = 0; i < TNTIMERS; i++)
- *tmp++ = 0;
-}
-
-struct tcpcb *tcp_newtcpcb();
-/*
- * Process a TCP user request for tcp tb. If this is a send request