#pragma once #include typedef void (*task_callback_func_t)(uint64_t); typedef struct { uint64_t firing_tick; uint64_t interval; task_callback_func_t func; uint64_t param; } task_t; typedef struct timer { struct timer *_l, *_r; uint32_t _d; task_t data; } timer_t; void timer_init(void); void add_timer_task(task_t task); void sleep(uint64_t ms); void timer_irq_handler(void); extern timer_t *global_timer;