fixed segments, timer doesn't double-fault anymore

usermode
ondra05 2022-12-08 20:35:42 +01:00
parent 8f6c91ab9a
commit 61e59e45f0
2 changed files with 3 additions and 2 deletions

View File

@ -10,7 +10,7 @@ use x86_64::{
pub const DOUBLE_FAULT_IX: u16 = 0;
pub unsafe fn init() {
use x86_64::instructions::segmentation::{Segment, CS, DS};
use x86_64::instructions::segmentation::{Segment, CS, DS, ES, SS};
use x86_64::instructions::tables::load_tss;
log::info!("Initialising GDT");
@ -18,6 +18,8 @@ pub unsafe fn init() {
unsafe {
CS::set_reg(GDT.1.kcode);
DS::set_reg(GDT.1.kdata);
ES::set_reg(GDT.1.kdata);
SS::set_reg(GDT.1.kdata);
load_tss(GDT.1.tss);
}
}

View File

@ -55,7 +55,6 @@ extern "x86-interrupt" fn page_fault(
}
extern "x86-interrupt" fn timer(_: InterruptStackFrame) {
panic!("make timer not double fault");
unsafe { LAPIC.lock().end_of_interrupt() };
}