1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 01:08:11 +00:00

Kernel: Stop flushing GDT/IDT registers all the time

This commit is contained in:
Andreas Kling 2020-01-18 11:10:44 +01:00
parent 17d4e74518
commit c3e4387c57
2 changed files with 0 additions and 4 deletions

View file

@ -447,14 +447,12 @@ void register_interrupt_handler(u8 index, void (*f)())
{
s_idt[index].low = 0x00080000 | LSW((f));
s_idt[index].high = ((u32)(f)&0xffff0000) | 0x8e00;
flush_idt();
}
void register_user_callable_interrupt_handler(u8 index, void (*f)())
{
s_idt[index].low = 0x00080000 | LSW((f));
s_idt[index].high = ((u32)(f)&0xffff0000) | 0xef00;
flush_idt();
}
void flush_idt()

View file

@ -464,7 +464,6 @@ void Scheduler::switch_now()
{
Descriptor& descriptor = get_gdt_entry(current->selector());
descriptor.type = 9;
flush_gdt();
asm("sti\n"
"ljmp *(%%eax)\n" ::"a"(&current->far_ptr()));
}
@ -521,7 +520,6 @@ bool Scheduler::context_switch(Thread& thread)
auto& descriptor = get_gdt_entry(thread.selector());
descriptor.type = 11; // Busy TSS
flush_gdt();
return true;
}