#ifndef CX_ZIVUOS_TASK_H_INCLUDED #define CX_ZIVUOS_TASK_H_INCLUDED #include "zv_types.h" #include "state.h" #include "event.h" /** * @brief That structure store single stack. * * */ typedef struct zv_task_s { zv_state_t state; void *param; zv_event_t event; zv_worker_t worker; zv_priority_t age; zv_priority_t priority; } zv_task_t; #define __zv_task_mark_running(X) (X->state = ZV_TASK_RUNNING) #define __zv_task_clear_age(X) (X->age = 0) #define __zv_task_is_ready(X) (X->state == ZV_TASK_READY) #define __zv_task_calc_priority(X) ((X->priority) + (X->age)) #endif