diff options
| author | Franklin Wei <frankhwei536@gmail.com> | 2015-03-01 14:20:47 -0500 |
|---|---|---|
| committer | Franklin Wei <frankhwei536@gmail.com> | 2015-03-01 14:20:47 -0500 |
| commit | c7252588ebb95f97631e9470778c69afa00c35b5 (patch) | |
| tree | 06d760878e18f6cddbe4305cddd4d5dfa74529f8 /include/kernel | |
| parent | b8f54e63d2b8f8007c580adf2a6034c98a0f2eaa (diff) | |
| download | kappa-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.c | 16 | ||||
| -rw-r--r-- | include/kernel/task.h | 10 | ||||
| -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 |