| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #pragma once
- #include "os/os_types.h"
- #include "bsp/delay.h"
- #define MAX_TASK 32
- #define TIMER_INIT(timer, handler) {&timer, &timer, handler}
- typedef uint32_t (*TskFunction_t)( void * );
- typedef struct shark_task {
- u64 time;
- struct shark_task *next;
- TskFunction_t handler;
- void *params;
- } shark_task_t;
- typedef struct shark_timer {
- struct shark_timer *prev;
- struct shark_timer *next;
- void (*handler)(struct shark_timer *timer);
- u64 time;
- } shark_timer_t;
- static inline bool shark_timer_started(shark_timer_t *timer)
- {
- return timer->next != timer;
- }
- static inline bool shark_timer_stopped(shark_timer_t *timer)
- {
- return timer->next == timer;
- }
- void os_enable_irq(void);
- void os_disable_irq(void);
- u64 shark_get_mseconds(void);
- u32 shark_get_seconds(void);
- void shark_timer_post(shark_timer_t *timer, u32 delay);
- void shark_timer_cancel(shark_timer_t *timer);
- void shark_task_add(shark_task_t *task);
- void shark_task_run(void);
- shark_task_t *shark_task_create(TskFunction_t, void *);
|