shark_task.h 634 B

123456789101112131415161718192021222324252627
  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);
  20. void task_ticks_enable(void);
  21. void task_udelay(u32 delay); /* 精确延时, 必须在bsp_init后才能使用 */