Files
mango/include/socks/sched.h

44 lines
743 B
C
Raw Normal View History

#ifndef SOCKS_SCHED_H_
#define SOCKS_SCHED_H_
#include <socks/pmap.h>
#include <socks/queue.h>
#include <socks/btree.h>
#include <socks/status.h>
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