X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/86a9cfeadbbe180abf6c8bd8c64c86957fdacfeb..270869139db617e29a35bb9ded41087bb702f9ac:/lunaix-os/includes/lunaix/sched.h diff --git a/lunaix-os/includes/lunaix/sched.h b/lunaix-os/includes/lunaix/sched.h index b20a33a..4264307 100644 --- a/lunaix-os/includes/lunaix/sched.h +++ b/lunaix-os/includes/lunaix/sched.h @@ -1,15 +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 llist_header* threads; + struct llist_header* proc_list; + struct llist_header sleepers; -struct scheduler { - struct proc_info* _procs; int procs_index; - unsigned int ptable_len; + int ptable_len; + int ttable_len; }; -void sched_init(); -void schedule(); +void +sched_init(); + +void noret +schedule(); + +void noret +run(struct thread* thread); + +void +cleanup_detached_threads(); #endif /* __LUNAIX_SCHEDULER_H */