aboutsummaryrefslogtreecommitdiff
path: root/src/core/scheduler.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/scheduler.hpp')
-rw-r--r--src/core/scheduler.hpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/core/scheduler.hpp b/src/core/scheduler.hpp
new file mode 100644
index 0000000..15b4caf
--- /dev/null
+++ b/src/core/scheduler.hpp
@@ -0,0 +1,31 @@
+#pragma once
+
+#include "boucane.hpp"
+
+#define MAX_TASK 5
+#define TASK_VMA 0x0
+
+typedef struct {
+ u32 rax, rbx, rcx, rdx;
+ u32 cs, rip;
+ u32 ss, rsp, rbp;
+ u32 rsi, rdi;
+ u32 ds, es, fs, gs;
+ u32 eflags;
+ u32 ss0, rsp0;
+} __attribute__((packed)) REGS;
+
+typedef struct {
+ u32 id;
+ u32 pid;
+ u64* pml4;
+ u32 size;
+ REGS registers;
+} __attribute__((packed)) TASK;
+
+extern char show_ticks;
+
+extern "C" void clock();
+void schedule();
+void create_task(void*task, u32 size);
+void scheduler_start(); \ No newline at end of file