#ifndef __LUNAIX_HWTIMER_H #define __LUNAIX_HWTIMER_H #include #include typedef void (*timer_tick_cb)(); struct hwtimer_context { char* name; void* data; int (*supported)(struct hwtimer_context*); void (*init)(struct hwtimer_context*, u32_t hertz, timer_tick_cb); ticks_t (*systicks)(); ticks_t base_freq; ticks_t running_freq; }; extern struct hwtimer_context* current_timer; void hwtimer_init(u32_t hertz, void* tick_callback); struct hwtimer_context* hwtimer_choose(); ticks_t hwtimer_base_frequency(); ticks_t hwtimer_current_systicks(); ticks_t hwtimer_to_ticks(u32_t value, int unit); #endif /* __LUNAIX_HWTIMER_H */