Kernel: Fix interrupt system

I had not understood how MSIs work and I was unnecessarily routing them
through IOAPIC. This is not necessary and should not be done :D

Also MSIs were reserving interrupts that IOAPIC was capable of
generating. Now IOAPIC and MSIs use different set of interrupts so
IOAPIC can use more interrupts if needed.
This commit is contained in:
2024-09-27 15:31:31 +03:00
parent e4982a1a5c
commit 2d11ce9669
25 changed files with 618 additions and 199 deletions

View File

@@ -223,7 +223,7 @@ namespace Kernel
TRY(InterruptController::get().reserve_irq(0));
set_irq(0);
enable_interrupt();
InterruptController::get().enable_irq(0);
return {};
}

View File

@@ -48,7 +48,7 @@ namespace Kernel
MUST(InterruptController::get().reserve_irq(PIT_IRQ));
set_irq(PIT_IRQ);
enable_interrupt();
InterruptController::get().enable_irq(PIT_IRQ);
}
void PIT::handle_irq()