X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/ea77b9c3fc7fb9bf9d7f9604fc187c8049212a2a..b60166b327a9108b07e3069fa6568a451529ffd9:/lunaix-os/includes/lunaix/sched.h diff --git a/lunaix-os/includes/lunaix/sched.h b/lunaix-os/includes/lunaix/sched.h index f31eab5..c011adb 100644 --- a/lunaix-os/includes/lunaix/sched.h +++ b/lunaix-os/includes/lunaix/sched.h @@ -1,25 +1,40 @@ #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(uintptr_t)) +#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 -sched_yieldk(); +sched_pass(); + +void noret +run(struct thread* thread); + +void +cleanup_detached_threads(); #endif /* __LUNAIX_SCHEDULER_H */