added mm_early_vpage_alloc(); kernel still crashing...
git-svn-id: svn://anubis/hos/trunk@98 5b3e749e-e535-0410-8002-a9bb6afbdfca
This commit is contained in:
1 parent
5ac343a2e8
commit
d41ffbbedc
3 files changed
+22
-3
No files matched your search
@@ -49,8 +49,11 @@ void isr(u8_t int_num, int_stack_t * istack)
|
||||
|
||||
void interrupts_bootstrap()
|
||||
{
|
||||
u32_t idt_base = mm_page_alloc();
|
||||
u64_t * idt = (u64_t *) (idt_base + KERNEL_OFFSET);
|
||||
u32_t idt_phys = mm_page_alloc();
|
||||
u32_t idt_virt = mm_early_vpage_alloc();
|
||||
mm_map(idt_virt, idt_phys, 0, 1);
|
||||
|
||||
u64_t * idt = (u64_t *) idt_virt;
|
||||
idt[0] = MAKE_IDT_DESCRIPTOR(KERNEL_CODE_SEGMENT, isr_0, 0);
|
||||
idt[1] = MAKE_IDT_DESCRIPTOR(KERNEL_CODE_SEGMENT, isr_1, 0);
|
||||
idt[2] = MAKE_IDT_DESCRIPTOR(KERNEL_CODE_SEGMENT, isr_2, 0);
|
||||
@@ -101,7 +104,7 @@ void interrupts_bootstrap()
|
||||
idt[47] = MAKE_IDT_DESCRIPTOR(KERNEL_CODE_SEGMENT, isr_47, 0);
|
||||
idt[48] = MAKE_IDT_DESCRIPTOR(KERNEL_CODE_SEGMENT, isr_48, 0);
|
||||
idt[49] = MAKE_IDT_DESCRIPTOR(KERNEL_CODE_SEGMENT, isr_49, 0);
|
||||
idtr.base = idt_base;
|
||||
idtr.base = idt_phys;
|
||||
idtr.limit = 49 * sizeof(idt[0]) - 1;
|
||||
__asm__ __volatile__ ("lidt (idtr)");
|
||||
}
|
||||
Reference in new issue
Block a user