22#ifndef __TIMERWHEEL_H_
23#define __TIMERWHEEL_H_
25#include <linux/list.h>
28#define TIMERWHEEL_TIMER_UNUSED -1
30typedef void (*timerwheel_timer_handler)(
void *);
32struct timerwheel_timer {
33 struct list_head link;
34 timerwheel_timer_handler handler;
37 volatile int refcount;
40static inline void timerwheel_init_timer(
struct timerwheel_timer *timer,
41 timerwheel_timer_handler handler,
44 timer->slot = TIMERWHEEL_TIMER_UNUSED;
45 timer->handler = handler;
51int timerwheel_add_timer(
struct timerwheel_timer *timer,
54int timerwheel_remove_timer(
struct timerwheel_timer *timer);
56void timerwheel_remove_timer_sync(
struct timerwheel_timer *timer);
58int timerwheel_init(
nanosecs_rel_t timeout,
unsigned int granularity);
60void timerwheel_cleanup(
void);
int64_t nanosecs_rel_t
RTDM type for representing relative intervals.
Definition rtdm.h:49