Title: timer_chain

timer_chain points to the first (head) timer in a linked list of timers. The timers are arranged according to their expiration times, with the first timer scheduled to expire at the head of the linked list. timer_chain will be NULL if no timers are scheduled.

Each timer in the linked list is a struct timer:

typedef struct timer

struct timer *tim_next; /* Points to next timer in linked list. */
timer_func_t tim_func; /* Function called when timer expires (
int tim_ref;
time_t tim_time;
int tim_active;
} timer_t;
tim_next: Points to next timer in linked list.

tim_func: Function that is called when timer expires (e.g., arp_timeout()).

tim_ref: Field used by clients (arp and tcp) to identify the connection associated with the timer. This field is an argument to tim_func (see tim_func above).

tim_time: Expiration time for timer (in clock ticks since boot).

tim_active: 1 if active, 0 if inactive.