30 lines
441 B
C
30 lines
441 B
C
#pragma once
|
|
|
|
#include <stddef.h>
|
|
|
|
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;
|