shark_task.h 535 B

1234567891011121314151617181920212223242526
  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)(struct shark_timer *timer);
  13. } shark_timer_t;
  14. u64 shark_get_mseconds(void);
  15. u32 shark_get_seconds(void);
  16. void shark_timer_post(shark_timer_t *timer, u32 delay);
  17. void shark_timer_cancel(shark_timer_t *timer);
  18. void shark_task_add(shark_task_t *task);
  19. void shark_task_run(void);