#ifndef SOCKS_SCHED_H_ #define SOCKS_SCHED_H_ #include #include #include #include typedef enum task_state { TASK_RUNNING, TASK_STOPPED, } task_state_t; typedef enum task_thread_state { TASK_THREAD_READY, TASK_THREAD_SLEEPING, TASK_THREAD_STOPPED, } task_thread_state_t; typedef struct task { struct task *t_parent; unsigned int t_id; task_state_t t_state; pmap_t t_pmap; btree_node_t t_tasklist; queue_t t_threads; queue_t t_children; } task_t; typedef struct task_thread { task_thread_state_t tr_state; unsigned int tr_id; unsigned int tr_prio; queue_entry_t tr_threads; void *tr_kstack; } task_thread_t; extern kern_status_t sched_init(void); #endif