diff --git a/.gitignore b/.gitignore index f346283..75b98a8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /build .idea /log +a.out \ No newline at end of file diff --git a/src/kernel/arch/x86_64/gdt.rs b/src/kernel/arch/x86_64/gdt.rs index 6e997df..cb65e64 100644 --- a/src/kernel/arch/x86_64/gdt.rs +++ b/src/kernel/arch/x86_64/gdt.rs @@ -78,7 +78,6 @@ lazy_static! { // DO NOT REORDER let sel_tss = gdt.append( Descriptor::tss_segment(&TSS).set_flags(DescriptorFlags::from_bits_retain(0b1010)) - .set_access(0b10001011), // This would set the TSS to Busy, but it causes a GPF. ); Selectors { sel_kernel_code: sel_k_cs, diff --git a/src/kernel/arch/x86_64/startup.rs b/src/kernel/arch/x86_64/startup.rs index 5fb080c..6d1aa20 100644 --- a/src/kernel/arch/x86_64/startup.rs +++ b/src/kernel/arch/x86_64/startup.rs @@ -2,15 +2,10 @@ use x86_64::{VirtAddr, registers::rflags::RFlags, structures::idt::InterruptStac use crate::{ arch::{ - asm::ltr, - x86_64::{ - gdt::{SELECTORS, dump_gdt}, - interrupts::IDT, + asm::ltr, x86_64::{ + gdt::SELECTORS, interrupts::IDT, }, - }, - log::{LOGGER, LogLevel}, - log_info, - memory::alloc::format, + }, log::{LOGGER, LogLevel}, log_info, memory::alloc::format, }; pub fn init() -> Result<(), ()> { @@ -27,8 +22,8 @@ pub fn init() -> Result<(), ()> { SELECTORS.sel_kernel_stack, ) .expect("Segment order in GDT is bad"); - dump_gdt(); - ltr(SELECTORS.sel_tss.index()); + //ltr(SELECTORS.sel_tss.index()) // THIS WILL CAUSE A GPF, YOU STUPID WHORE + ltr(SELECTORS.sel_tss.0); Ok(()) }