--- zzzz-none-000/linux-2.4.17/include/linux/timer.h 2001-11-22 19:46:19.000000000 +0000 +++ sangam-fb-322/linux-2.4.17/include/linux/timer.h 2004-11-24 13:21:43.000000000 +0000 @@ -16,12 +16,16 @@ struct timer_list { struct list_head list; unsigned long expires; +#ifdef CONFIG_HIGH_RES_TIMERS + long sub_expires; +#endif unsigned long data; void (*function)(unsigned long); }; extern void add_timer(struct timer_list * timer); extern int del_timer(struct timer_list * timer); +extern void update_real_wall_time(void); #ifdef CONFIG_SMP extern int del_timer_sync(struct timer_list * timer); @@ -38,14 +42,26 @@ * If the timer is known to be not pending (ie, in the handler), mod_timer * is less efficient than a->expires = b; add_timer(a). */ +#ifdef CONFIG_HIGH_RES_TIMERS +int mod_timer_hr(struct timer_list *timer, + unsigned long expires, + long sub_expires); +#else +#define mod_timer_hr(a,b,c) mod_timer(a,b) +#endif + int mod_timer(struct timer_list *timer, unsigned long expires); extern void it_real_fn(unsigned long); static inline void init_timer(struct timer_list * timer) { - timer->list.next = timer->list.prev = NULL; +#ifdef CONFIG_HIGH_RES_TIMERS + timer->sub_expires = 0; +#endif + timer->list.next = timer->list.prev =(struct list_head *) NULL; } +#define TIMER_INIT(fun) {function: fun} static inline int timer_pending (const struct timer_list * timer) {