| 941 | } |
| 942 | |
| 943 | int |
| 944 | tcp_timer_active(struct tcpcb *tp, uint32_t timer_type) |
| 945 | { |
| 946 | struct callout *t_callout; |
| 947 | |
| 948 | switch (timer_type) { |
| 949 | case TT_DELACK: |
| 950 | t_callout = &tp->t_timers->tt_delack; |
| 951 | break; |
| 952 | case TT_REXMT: |
| 953 | t_callout = &tp->t_timers->tt_rexmt; |
| 954 | break; |
| 955 | case TT_PERSIST: |
| 956 | t_callout = &tp->t_timers->tt_persist; |
| 957 | break; |
| 958 | case TT_KEEP: |
| 959 | t_callout = &tp->t_timers->tt_keep; |
| 960 | break; |
| 961 | case TT_2MSL: |
| 962 | t_callout = &tp->t_timers->tt_2msl; |
| 963 | break; |
| 964 | default: |
| 965 | if (tp->t_fb->tfb_tcp_timer_active) { |
| 966 | return(tp->t_fb->tfb_tcp_timer_active(tp, timer_type)); |
| 967 | } |
| 968 | panic("tp %p bad timer_type %#x", tp, timer_type); |
| 969 | } |
| 970 | return callout_active(t_callout); |
| 971 | } |
| 972 | |
| 973 | /* |
| 974 | * Stop the timer from running, and apply a flag |
no test coverage detected