taskfs fix up, minor refactoring
[lunaix-os.git] / lunaix-os / includes / lunaix / sched.h
index 618c32484e849245fe3378f7e73c077452e9355b..4264307dfa9f20fc8e29e61d047ec4cccbab27c9 100644 (file)
@@ -1,15 +1,37 @@
 #ifndef __LUNAIX_SCHEDULER_H
 #define __LUNAIX_SCHEDULER_H
 
-#define SCHED_TIME_SLICE 200
+#include <lunaix/compiler.h>
+#include <lunaix/process.h>
+
+#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 */