| 123456789101112131415161718192021222324252627282930313233 |
- #pragma once
- #include "libs/os.h"
- typedef u32 (*task_func)(void);
- typedef struct _task {
- u64 time;
- struct _task *next;
- u32 (*handler)(void);
- } task_t;
- typedef struct _timer {
- void (*handler)(struct _timer *timer);
- struct _timer *prev;
- struct _timer *next;
- u64 time;
- } timer_t;
- #define MAX_TASK 8
- #define TIMER_INIT(timer, handler) { handler, &timer, &timer }
- u64 get_mseconds(void);
- u32 get_seconds(void);
- void timer_post(timer_t *timer, u32 delay);
- void timer_cancel(timer_t *timer);
- void task_add(task_t *task);
- void task_run(void);
- void task_udelay(u32 delay);
- u32 task_ticks_abs(void);
- void task_ticks_enable(void);
- u32 task_ticks_rel(u32 start);
- task_t *task_start(task_func func, u32 delay);
|