rem: init_timer( RT_T1_TO_1, retransmission_handler ); init_timer( RT_T1_TO_2, retransmission_handler ); init_timer( RT_T1_TO_3, retransmission_handler ); init_timer( RT_T2, retransmission_handler ); init_timer( FR_TIMER_LIST, final_response_handler ); init_timer( FR_INV_TIMER_LIST, final_response_handler ); init_timer( WT_TIMER_LIST, wait_handler ); init_timer( DELETE_LIST, delete_handler );
add: register_timer( timer_routine , hash_table , 1 );
context: int tm_startup(){   /* building the hash table*/   hash_table = init_hash_table();   if (!hash_table)      return -1;#define init_timer(_id,_handler) \	hash_table->timers[(_id)].timeout_handler=(_handler); \	hash_table->timers[(_id)].id=(_id);   init_timer( RT_T1_TO_1, retransmission_handler );   init_timer( RT_T1_TO_2, retransmission_handler );   init_timer( RT_T1_TO_3, retransmission_handler );   init_timer( RT_T2, retransmission_handler );   init_timer( FR_TIMER_LIST, final_response_handler );   init_timer( FR_INV_TIMER_LIST, final_response_handler );   init_timer( WT_TIMER_LIST, wait_handler );   init_timer( DELETE_LIST, delete_handler );   /* register the timer function */   register_timer( timer_routine , hash_table , 1 );   /*first msg id*/   global_msg_id = 0;   T = T_UNDEFINED;   return 0;}