1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-13 21:57:36 +00:00
serenity/Kernel/Interrupts
Tom bc107d0b33 Kernel: Add SMP IPI support
We can now properly initialize all processors without
crashing by sending SMP IPI messages to synchronize memory
between processors.

We now initialize the APs once we have the scheduler running.
This is so that we can process IPI messages from the other
cores.

Also rework interrupt handling a bit so that it's more of a
1:1 mapping. We need to allocate non-sharable interrupts for
IPIs.

This also fixes the occasional hang/crash because all
CPUs now synchronize memory with each other.
2020-07-06 17:07:44 +02:00
..
APIC.cpp Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
APIC.h Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
GenericInterruptHandler.cpp Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
GenericInterruptHandler.h Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
InterruptManagement.cpp Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
InterruptManagement.h Kernel: Simplify scanning BIOS/EBDA and MP parser initialization 2020-05-22 13:36:57 +02:00
IOAPIC.cpp Kernel: Detect APs and boot them into protected mode 2020-06-04 18:15:23 +02:00
IOAPIC.h Kernel: Use TypedMapping for accessing IOAPIC registers 2020-05-23 15:57:48 +02:00
IRQController.h Interrupts: Simplify IRQ disabling & enabling in IRQController(s) 2020-03-24 16:15:33 +01:00
IRQHandler.cpp Kernel: Simplify disable_irq() and enable_irq() methods in IRQHandler 2020-03-24 16:15:33 +01:00
IRQHandler.h Kernel: Use a const reference to RegisterState in IRQ handling 2020-03-19 15:48:00 +01:00
MSIHandler.h Kernel: Change get_sharing_devices_count() in GenericInterruptHandler 2020-02-24 11:27:03 +01:00
PIC.cpp Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
PIC.h Interrupts: Simplify IRQ disabling & enabling in IRQController(s) 2020-03-24 16:15:33 +01:00
SharedIRQHandler.cpp Kernel: Abstract IRQ controller handling from Interrupt handlers 2020-03-24 16:15:33 +01:00
SharedIRQHandler.h Kernel: Use a const reference to RegisterState in IRQ handling 2020-03-19 15:48:00 +01:00
SpuriousInterruptHandler.cpp Interrupts: Handle spurious IRQs from eoi() method 2020-03-24 16:15:33 +01:00
SpuriousInterruptHandler.h Kernel: Correct Spurious Interrupt handlers' controller model() method 2020-03-24 16:15:33 +01:00
UnhandledInterruptHandler.cpp Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
UnhandledInterruptHandler.h Kernel: Annotate UnhandledInterruptHandler::eoi with [[noreturn]] 2020-05-16 09:51:31 +02:00