task.h 604 B

12345678910111213141516171819202122232425262728
  1. #ifndef CX_ZIVUOS_TASK_H_INCLUDED
  2. #define CX_ZIVUOS_TASK_H_INCLUDED
  3. #include "zv_types.h"
  4. #include "state.h"
  5. #include "event.h"
  6. /**
  7. * @brief That structure store single stack.
  8. *
  9. *
  10. */
  11. typedef struct zv_task_s {
  12. zv_state_t state;
  13. void *param;
  14. zv_event_t event;
  15. zv_worker_t worker;
  16. zv_priority_t age;
  17. zv_priority_t priority;
  18. } zv_task_t;
  19. #define __zv_task_mark_running(X) (X->state = ZV_TASK_RUNNING)
  20. #define __zv_task_clear_age(X) (X->age = 0)
  21. #define __zv_task_is_ready(X) (X->state == ZV_TASK_READY)
  22. #define __zv_task_calc_priority(X) ((X->priority) + (X->age))
  23. #endif