X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/8357bda627bdf02c1b69eecf27993182239fb463..270869139db617e29a35bb9ded41087bb702f9ac:/lunaix-os/includes/lunaix/sched.h diff --git a/lunaix-os/includes/lunaix/sched.h b/lunaix-os/includes/lunaix/sched.h index 69019f3..4264307 100644 --- a/lunaix-os/includes/lunaix/sched.h +++ b/lunaix-os/includes/lunaix/sched.h @@ -1,22 +1,37 @@ #ifndef __LUNAIX_SCHEDULER_H #define __LUNAIX_SCHEDULER_H +#include +#include + #define SCHED_TIME_SLICE 300 +#define MAX_THREAD_PP 1024 + +#define PROC_TABLE_SIZE 8192 +#define MAX_PROCESS (PROC_TABLE_SIZE / sizeof(ptr_t)) struct scheduler { - struct proc_info* _procs; + struct proc_info** procs; + struct llist_header* threads; + struct llist_header* proc_list; + struct llist_header sleepers; + int procs_index; - unsigned int ptable_len; + int ptable_len; + int ttable_len; }; void sched_init(); -void +void noret schedule(); +void noret +run(struct thread* thread); + void -sched_yield(); +cleanup_detached_threads(); #endif /* __LUNAIX_SCHEDULER_H */