1 #ifndef __LUNAIX_TIMER_H
2 #define __LUNAIX_TIMER_H
4 #include <lunaix/ds/llist.h>
7 #define SYS_TIMER_FREQUENCY_HZ 2048
9 #define TIMER_MODE_PERIODIC 0x1
11 struct lx_timer_context {
12 struct lx_timer *active_timers;
13 uint32_t base_frequency;
14 uint32_t running_frequency;
15 uint32_t tick_interval;
19 struct llist_header link;
23 void (*callback)(void*);
29 * @brief Initialize the system timer that runs at specified frequency
31 * @param frequency The frequency that timer should run in Hz.
34 timer_init(uint32_t frequency);
37 timer_run_second(uint32_t second, void (*callback)(void*), void* payload, uint8_t flags);
40 timer_run(uint32_t ticks, void (*callback)(void*), void* payload, uint8_t flags);
42 #endif /* __LUNAIX_TIMER_H */