aboutsummaryrefslogtreecommitdiff
path: root/include/kernel
diff options
context:
space:
mode:
authorFranklin Wei <frankhwei536@gmail.com>2015-03-01 14:20:47 -0500
committerFranklin Wei <frankhwei536@gmail.com>2015-03-01 14:20:47 -0500
commitc7252588ebb95f97631e9470778c69afa00c35b5 (patch)
tree06d760878e18f6cddbe4305cddd4d5dfa74529f8 /include/kernel
parentb8f54e63d2b8f8007c580adf2a6034c98a0f2eaa (diff)
downloadkappa-c7252588ebb95f97631e9470778c69afa00c35b5.zip
kappa-c7252588ebb95f97631e9470778c69afa00c35b5.tar.gz
kappa-c7252588ebb95f97631e9470778c69afa00c35b5.tar.bz2
kappa-c7252588ebb95f97631e9470778c69afa00c35b5.tar.xz
Huge restructure
Diffstat (limited to '')
-rw-r--r--include/kernel/heap.h (renamed from kernel/include/heap.h)0
-rw-r--r--include/kernel/io.h (renamed from kernel/include/io.h)0
-rw-r--r--include/kernel/log.h (renamed from kernel/include/log.h)0
-rw-r--r--include/kernel/multiboot.h (renamed from kernel/include/multiboot.h)0
-rw-r--r--include/kernel/panic.h (renamed from kernel/include/panic.h)0
-rw-r--r--include/kernel/task.c16
-rw-r--r--include/kernel/task.h10
-rw-r--r--include/kernel/version.h (renamed from kernel/include/version.h)0
8 files changed, 26 insertions, 0 deletions
diff --git a/kernel/include/heap.h b/include/kernel/heap.h
index dfadf36..dfadf36 100644
--- a/kernel/include/heap.h
+++ b/include/kernel/heap.h
diff --git a/kernel/include/io.h b/include/kernel/io.h
index d1177ac..d1177ac 100644
--- a/kernel/include/io.h
+++ b/include/kernel/io.h
diff --git a/kernel/include/log.h b/include/kernel/log.h
index 1a28c0d..1a28c0d 100644
--- a/kernel/include/log.h
+++ b/include/kernel/log.h
diff --git a/kernel/include/multiboot.h b/include/kernel/multiboot.h
index e1f7cf0..e1f7cf0 100644
--- a/kernel/include/multiboot.h
+++ b/include/kernel/multiboot.h
diff --git a/kernel/include/panic.h b/include/kernel/panic.h
index db53e8e..db53e8e 100644
--- a/kernel/include/panic.h
+++ b/include/kernel/panic.h
diff --git a/include/kernel/task.c b/include/kernel/task.c
new file mode 100644
index 0000000..ecc0042
--- /dev/null
+++ b/include/kernel/task.c
@@ -0,0 +1,16 @@
+#include "task.h"
+
+void task_create(struct task_t *task, void (*func)(void), uint32_t flags, uint32_t *pagedir)
+{
+ task->regs.eax = 0;
+ task->regs.ebx = 0;
+ task->regs.ecx = 0;
+ task->regs.edx = 0;
+ task->regs.esi = 0;
+ task->regs.edi = 0;
+ task->regs.eflags = flags;
+ task->regs.eip = (uint32_t)main;
+ task->regs.cr3 = (uint32_t)pagedir;
+ task->regs.esp = kmalloc(0x1000) + 0x1000;
+ task->next = NULL;
+}
diff --git a/include/kernel/task.h b/include/kernel/task.h
new file mode 100644
index 0000000..86beed3
--- /dev/null
+++ b/include/kernel/task.h
@@ -0,0 +1,10 @@
+#include <stdint.h>
+
+struct taskregs_t {
+ uint32_t eax, ebx, ecx, edx, esi, edi, esp, ebp, eip, eflags, cr3;
+};
+
+struct task_t {
+ struct taskregs_t regs;
+ struct task_t *next;
+};
diff --git a/kernel/include/version.h b/include/kernel/version.h
index 8fff367..8fff367 100644
--- a/kernel/include/version.h
+++ b/include/kernel/version.h