1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 11:18:13 +00:00

Kernel: Introduce IRQ sharing support

The support is very basic - Each component that needs to handle IRQs
inherits from InterruptHandler class. When the InterruptHandler
constructor is called it registers itself in a SharedInterruptHandler.
When an IRQ is fired, the SharedInterruptHandler is invoked, then it
iterates through a list of the registered InterruptHandlers.

Also, InterruptEnabler class was created to provide a way to enable IRQ
handling temporarily, similar to InterruptDisabler (in CPU.h, which does
the opposite).

In addition to that a PCI::Device class has been added, that inherits
from InterruptHandler.
This commit is contained in:
Liav A 2020-01-21 13:20:16 +02:00 committed by Andreas Kling
parent 2a160faf98
commit 1ee37245cd
7 changed files with 399 additions and 0 deletions

View file

@ -178,5 +178,6 @@ class Access;
class MMIOAccess;
class IOAccess;
class MMIOSegment;
class Device;
}