shark_task.h 482 B

12345678910111213141516171819202122
  1. #pragma once
  2. #include "shark_types.h"
  3. typedef struct shark_task {
  4. u64 time;
  5. struct shark_task *next;
  6. u32 (*handler)(void);
  7. } shark_task_t;
  8. typedef struct shark_timer {
  9. u64 time;
  10. struct shark_timer *prev;
  11. struct shark_timer *next;
  12. void (*handler)(void);
  13. } shark_timer_t;
  14. u64 shark_get_mseconds(void);
  15. void shark_timer_post(shark_timer_t *timer, u32 delay);
  16. void shark_timer_cancel(shark_timer_t *timer);
  17. void shark_task_add(shark_task_t *task);
  18. void shark_task_run(void);