From e20a4fb164f67a50a8fb5cf6b983d4d1723fd1f6 Mon Sep 17 00:00:00 2001 From: Baptiste Wicht Date: Tue, 28 Jan 2014 22:28:36 +0100 Subject: [PATCH] Cleanup TODOS --- kernel/include/keyboard.hpp | 4 ++-- kernel/src/interrupts.cpp | 6 +++++- kernel/src/scheduler.cpp | 8 ++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/kernel/include/keyboard.hpp b/kernel/include/keyboard.hpp index 85d96db5..fca1e4a6 100644 --- a/kernel/include/keyboard.hpp +++ b/kernel/include/keyboard.hpp @@ -16,8 +16,8 @@ const char KEY_ENTER = 0x1C; const char KEY_BACKSPACE = 0x0E; const char KEY_UP = 0x48; const char KEY_DOWN = 0x50; -const char KEY_LEFT_SHIFT = 42; //TODO TO hex -const char KEY_RIGHT_SHIFT = 54; //TODO TO hex +const char KEY_LEFT_SHIFT = 0x2A; +const char KEY_RIGHT_SHIFT = 0x36; void install_driver(); char get_char(); diff --git a/kernel/src/interrupts.cpp b/kernel/src/interrupts.cpp index 0dc61ccc..e522e10e 100644 --- a/kernel/src/interrupts.cpp +++ b/kernel/src/interrupts.cpp @@ -77,7 +77,7 @@ void install_idt(){ } void install_isrs(){ - //TODO The GDT Selector should be computed in a better way + //TODO The Flags should be computed in a better way idt_set_gate(0, _isr0, gdt::LONG_SELECTOR, 0x8E); idt_set_gate(1, _isr1, gdt::LONG_SELECTOR, 0x8E); @@ -135,6 +135,8 @@ void remap_irqs(){ } void install_irqs(){ + //TODO The Flags should be computed in a better way + idt_set_gate(32, _irq0, gdt::LONG_SELECTOR, 0x8E); idt_set_gate(33, _irq1, gdt::LONG_SELECTOR, 0x8E); idt_set_gate(34, _irq2, gdt::LONG_SELECTOR, 0x8E); @@ -154,6 +156,8 @@ void install_irqs(){ } void install_syscalls(){ + //TODO The Flags should be computed in a better way + idt_set_gate(interrupt::SYSCALL_FIRST+0, _syscall0, gdt::LONG_SELECTOR, 0xEE); idt_set_gate(interrupt::SYSCALL_FIRST+1, _syscall1, gdt::LONG_SELECTOR, 0xEE); idt_set_gate(interrupt::SYSCALL_FIRST+2, _syscall2, gdt::LONG_SELECTOR, 0xEE); diff --git a/kernel/src/scheduler.cpp b/kernel/src/scheduler.cpp index bd83d598..d71d714e 100644 --- a/kernel/src/scheduler.cpp +++ b/kernel/src/scheduler.cpp @@ -35,8 +35,8 @@ void idle_task(){ } } -size_t idle_stack[64]; -size_t idle_kernel_stack[4096]; //TODO Perhaps not good +char idle_stack[scheduler::user_stack_stack]; +char idle_kernel_stack[scheduler::kernel_stack_size]; void create_idle_task(){ auto idle_process = scheduler::new_process(); @@ -49,8 +49,8 @@ void create_idle_task(){ idle_process.regs.rflags = 0x200; idle_process.regs.rip = reinterpret_cast(&idle_task); - idle_process.regs.rsp = reinterpret_cast(&idle_stack[63]); - idle_process.kernel_rsp = reinterpret_cast(&idle_kernel_stack[4095]); + idle_process.regs.rsp = reinterpret_cast(&idle_stack[scheduler::user_stack_size - 1]); + idle_process.kernel_rsp = reinterpret_cast(&idle_kernel_stack[scheduler::kernel_stack_size - 1]); idle_process.regs.cs = gdt::LONG_SELECTOR; idle_process.regs.ds = gdt::DATA_SELECTOR;