diff options
Diffstat (limited to 'include/spl/sys')
-rw-r--r-- | include/spl/sys/timer.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/include/spl/sys/timer.h b/include/spl/sys/timer.h index a6b134570..31d89d3b9 100644 --- a/include/spl/sys/timer.h +++ b/include/spl/sys/timer.h @@ -72,4 +72,29 @@ usleep_range(unsigned long min, unsigned long max) #define USEC_TO_TICK(us) usecs_to_jiffies(us) #define NSEC_TO_TICK(ns) usecs_to_jiffies(ns / NSEC_PER_USEC) +#ifndef from_timer +#define from_timer(var, timer, timer_field) \ + container_of(timer, typeof(*var), timer_field) +#endif + +#ifdef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST +typedef struct timer_list *spl_timer_list_t; +#else +typedef unsigned long spl_timer_list_t; +#endif + +#ifndef HAVE_KERNEL_TIMER_SETUP + +static inline void +timer_setup(struct timer_list *timer, void (*func)(spl_timer_list_t), u32 fl) +{ +#ifdef HAVE_KERNEL_TIMER_LIST_FLAGS + (timer)->flags = fl; +#endif + init_timer(timer); + setup_timer(timer, func, (spl_timer_list_t)(timer)); +} + +#endif /* HAVE_KERNEL_TIMER_SETUP */ + #endif /* _SPL_TIMER_H */ |