mirror of
https://github.com/wichtounet/thor-os.git
synced 2025-09-17 00:26:44 -04:00
Cleanup TODOS
This commit is contained in:
parent
2d0413f0ca
commit
e20a4fb164
@ -16,8 +16,8 @@ const char KEY_ENTER = 0x1C;
|
|||||||
const char KEY_BACKSPACE = 0x0E;
|
const char KEY_BACKSPACE = 0x0E;
|
||||||
const char KEY_UP = 0x48;
|
const char KEY_UP = 0x48;
|
||||||
const char KEY_DOWN = 0x50;
|
const char KEY_DOWN = 0x50;
|
||||||
const char KEY_LEFT_SHIFT = 42; //TODO TO hex
|
const char KEY_LEFT_SHIFT = 0x2A;
|
||||||
const char KEY_RIGHT_SHIFT = 54; //TODO TO hex
|
const char KEY_RIGHT_SHIFT = 0x36;
|
||||||
|
|
||||||
void install_driver();
|
void install_driver();
|
||||||
char get_char();
|
char get_char();
|
||||||
|
@ -77,7 +77,7 @@ void install_idt(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void install_isrs(){
|
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(0, _isr0, gdt::LONG_SELECTOR, 0x8E);
|
||||||
idt_set_gate(1, _isr1, gdt::LONG_SELECTOR, 0x8E);
|
idt_set_gate(1, _isr1, gdt::LONG_SELECTOR, 0x8E);
|
||||||
@ -135,6 +135,8 @@ void remap_irqs(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void install_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(32, _irq0, gdt::LONG_SELECTOR, 0x8E);
|
||||||
idt_set_gate(33, _irq1, gdt::LONG_SELECTOR, 0x8E);
|
idt_set_gate(33, _irq1, gdt::LONG_SELECTOR, 0x8E);
|
||||||
idt_set_gate(34, _irq2, gdt::LONG_SELECTOR, 0x8E);
|
idt_set_gate(34, _irq2, gdt::LONG_SELECTOR, 0x8E);
|
||||||
@ -154,6 +156,8 @@ void install_irqs(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void install_syscalls(){
|
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+0, _syscall0, gdt::LONG_SELECTOR, 0xEE);
|
||||||
idt_set_gate(interrupt::SYSCALL_FIRST+1, _syscall1, 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);
|
idt_set_gate(interrupt::SYSCALL_FIRST+2, _syscall2, gdt::LONG_SELECTOR, 0xEE);
|
||||||
|
@ -35,8 +35,8 @@ void idle_task(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t idle_stack[64];
|
char idle_stack[scheduler::user_stack_stack];
|
||||||
size_t idle_kernel_stack[4096]; //TODO Perhaps not good
|
char idle_kernel_stack[scheduler::kernel_stack_size];
|
||||||
|
|
||||||
void create_idle_task(){
|
void create_idle_task(){
|
||||||
auto idle_process = scheduler::new_process();
|
auto idle_process = scheduler::new_process();
|
||||||
@ -49,8 +49,8 @@ void create_idle_task(){
|
|||||||
|
|
||||||
idle_process.regs.rflags = 0x200;
|
idle_process.regs.rflags = 0x200;
|
||||||
idle_process.regs.rip = reinterpret_cast<size_t>(&idle_task);
|
idle_process.regs.rip = reinterpret_cast<size_t>(&idle_task);
|
||||||
idle_process.regs.rsp = reinterpret_cast<size_t>(&idle_stack[63]);
|
idle_process.regs.rsp = reinterpret_cast<size_t>(&idle_stack[scheduler::user_stack_size - 1]);
|
||||||
idle_process.kernel_rsp = reinterpret_cast<size_t>(&idle_kernel_stack[4095]);
|
idle_process.kernel_rsp = reinterpret_cast<size_t>(&idle_kernel_stack[scheduler::kernel_stack_size - 1]);
|
||||||
|
|
||||||
idle_process.regs.cs = gdt::LONG_SELECTOR;
|
idle_process.regs.cs = gdt::LONG_SELECTOR;
|
||||||
idle_process.regs.ds = gdt::DATA_SELECTOR;
|
idle_process.regs.ds = gdt::DATA_SELECTOR;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user