restore_flags(flags); 
local_irq_restore(flags); 
void start_one_shot_timer(struct fast_timer *t,                          fast_timer_function_type *function,                          unsigned long data,                          unsigned long delay_us,                          const char *name){  unsigned long flags;  struct fast_timer *tmp;  D1(printk("sft %s %d us\n", name, delay_us));  save_flags(flags);  cli();  do_gettimeofday_fast(&t->tv_set);  tmp = fast_timer_list;  SANITYCHECK({ /* Check so this is not in the list already... */    while (tmp != NULL)    {      if (tmp == t)      {        printk(KERN_WARNING               "timer name: %s data: 0x%08lX already in list!\n", name, data);        sanity_failed++;        return;      }      else      {        tmp = tmp->next;      }    }    tmp = fast_timer_list;  });  t->delay_us = delay_us;  t->function = function;  t->data = data;  t->name = name;  t->tv_expires.tv_usec = t->tv_set.tv_usec + delay_us % 1000000;  t->tv_expires.tv_sec  = t->tv_set.tv_sec  + delay_us / 1000000;  if (t->tv_expires.tv_usec > 1000000)  {    t->tv_expires.tv_usec -= 1000000;    t->tv_expires.tv_sec++;  }#ifdef FAST_TIMER_LOG  timer_added_log[fast_timers_added % NUM_TIMER_STATS] = *t;#endif  fast_timers_added++;  /* Check if this should timeout before anything else */  if (tmp == NULL || timeval_cmp(&t->tv_expires, &tmp->tv_expires) < 0)  {    /* Put first in list and modify the timer value */    t->prev = NULL;    t->next = fast_timer_list;    if (fast_timer_list)    {      fast_timer_list->prev = t;    }    fast_timer_list = t;#ifdef FAST_TIMER_LOG    timer_started_log[fast_timers_started % NUM_TIMER_STATS] = *t;#endif    start_timer1(delay_us);  } else {    /* Put in correct place in list */    while (tmp->next &&           timeval_cmp(&t->tv_expires, &tmp->next->tv_expires) > 0)    {      tmp = tmp->next;    }    /* Insert t after tmp */    t->prev = tmp;    t->next = tmp->next;    if (tmp->next)    {      tmp->next->prev = t;    }    tmp->next = t;  }  D2(printk("start_one_shot_timer: %d us done\n", delay_us));  restore_flags(flags);} /* start_one_shot_timer */
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/7e9204265b4ec6680fad9abc7a78b94087983916/fasttimer.c/clean/arch/cris/arch-v10/kernel/fasttimer.c