diff --git a/src/sys/gdt.rs b/src/sys/gdt.rs index 87ba89eb..e1cce941 100644 --- a/src/sys/gdt.rs +++ b/src/sys/gdt.rs @@ -1,7 +1,9 @@ use lazy_static::lazy_static; +use x86_64::VirtAddr; +use x86_64::instructions::segmentation::{CS, Segment}; +use x86_64::instructions::tables::load_tss; use x86_64::structures::gdt::{Descriptor, GlobalDescriptorTable, SegmentSelector}; use x86_64::structures::tss::TaskStateSegment; -use x86_64::VirtAddr; pub const DOUBLE_FAULT_IST_INDEX: u16 = 0; @@ -38,12 +40,9 @@ struct Selectors { } pub fn init() { - use x86_64::instructions::segmentation::set_cs; - use x86_64::instructions::tables::load_tss; - GDT.0.load(); unsafe { - set_cs(GDT.1.code_selector); + CS::set_reg(GDT.1.code_selector); load_tss(GDT.1.tss_selector); } }