Kernel: Rework interrupt mechanism

All interruptrable classes now inherit from Interruptable which
has methdo handle_irq which is called on a interrupt.
This commit is contained in:
2023-10-05 18:53:45 +03:00
parent 68a913c838
commit 27eb5af6f0
23 changed files with 716 additions and 706 deletions

View File

@@ -1,6 +1,7 @@
#pragma once
#include <BAN/Errors.h>
#include <kernel/InterruptController.h>
#include <kernel/SpinLock.h>
#include <kernel/Storage/ATAController.h>
@@ -9,7 +10,7 @@ namespace Kernel
class ATADevice;
class ATABus
class ATABus : public Interruptable
{
public:
enum class DeviceType
@@ -27,7 +28,7 @@ namespace Kernel
ATAController& controller() { return m_controller; }
void on_irq();
virtual void handle_irq() override;
private:
ATABus(ATAController& controller, uint16_t base, uint16_t ctrl)