aboutsummaryrefslogtreecommitdiff
path: root/src/core/scheduler.hpp
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2021-05-01 11:37:52 +0200
committerLoic Guegan <manzerbredes@mailbox.org>2021-05-01 11:37:52 +0200
commit4f08ba2b1d0ad7ea90d4d97a483b56b891b9c902 (patch)
treeeeba5dd2a23a346234a1ceb6d6c7b135a7344af3 /src/core/scheduler.hpp
parentfb69c7b05894cee2b8bb691ead948798a0674059 (diff)
Creating scheduler, debug paging
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