sched: add struct and object types for task and thread objects
This commit is contained in:
43
include/socks/sched.h
Normal file
43
include/socks/sched.h
Normal file
@@ -0,0 +1,43 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user