| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #ifndef CX_ZIVUOS_TASK_H_INCLUDED
- #define CX_ZIVUOS_TASK_H_INCLUDED
- #include "systypes.h"
- typedef enum zv_task_type_e {
- ZV_COROUTINE_TASK,
- ZV_PROCESS_TASK,
- ZV_ONESHOT_TASK
- } zv_task_type_t;
- typedef enum zv_state_e {
- ZV_KILLED,
- ZV_RUNNING,
- ZV_READY,
- ZV_SLEEP
- } zv_state_t;
- struct zv_kernel_s;
- typedef zv_state_t (*zv_worker_t) (struct zv_kernel_t *, zv_pid_t);
- typedef struct zv_coroutine_s {
- zv_worker_t worker;
- zv_universal_t param;
- } zv_coroutine_t;
- typedef struct zv_process_s {
- } zv_process_t;
- typedef struct zv_oneshot_s {
- zv_worker_t worker;
- zv_universal_t param;
- } zv_oneshot_t;
- typedef union zv_task_selector_u {
- zv_coroutine_t coroutine;
- zv_process_t process;
- zv_oneshot_t oneshot;
- } zv_task_selector_t;
- typedef struct zv_task_s {
- zv_pid_t pid;
- zv_state_t state;
- zv_priority_t priority;
- zv_task_type_t type;
-
- } zv_task_t;
- #endif
|