1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:57:35 +00:00

Revert "Kernel: Replace IRQHandler with the new InterruptHandler class"

This reverts commit 6c72736b26.

I am unable to boot on my home machine with this change in the tree.
This commit is contained in:
Andreas Kling 2020-01-22 22:23:50 +01:00
parent 8e21e31b3a
commit e64c335e5a
29 changed files with 169 additions and 193 deletions

View file

@ -38,10 +38,9 @@
#include <AK/OwnPtr.h>
#include <AK/RefPtr.h>
#include <Kernel/InterruptHandler.h>
#include <Kernel/IRQHandler.h>
#include <Kernel/Lock.h>
#include <Kernel/PCI/Access.h>
#include <Kernel/PCI/Device.h>
#include <Kernel/VM/PhysicalAddress.h>
#include <Kernel/VM/PhysicalPage.h>
#include <Kernel/WaitQueue.h>
@ -53,7 +52,7 @@ struct PhysicalRegionDescriptor {
};
class PATADiskDevice;
class PATAChannel final : public PCI::Device {
class PATAChannel final : public IRQHandler {
friend class PATADiskDevice;
AK_MAKE_ETERNAL
public:
@ -63,8 +62,8 @@ public:
};
public:
static OwnPtr<PATAChannel> autodetect(ChannelType type, bool force_pio);
PATAChannel(PCI::Address pci_address, ChannelType type, bool force_pio);
static OwnPtr<PATAChannel> create(ChannelType type, bool force_pio);
PATAChannel(ChannelType type, bool force_pio);
virtual ~PATAChannel() override;
RefPtr<PATADiskDevice> master_device() { return m_master; };
@ -72,7 +71,7 @@ public:
private:
//^ IRQHandler
virtual void handle_interrupt() override;
virtual void handle_irq() override;
void initialize(bool force_pio);
void detect_disks();
@ -91,6 +90,7 @@ private:
WaitQueue m_irq_queue;
PCI::Address m_pci_address;
PhysicalRegionDescriptor& prdt() { return *reinterpret_cast<PhysicalRegionDescriptor*>(m_prdt_page->paddr().offset(0xc0000000).as_ptr()); }
RefPtr<PhysicalPage> m_prdt_page;
RefPtr<PhysicalPage> m_dma_buffer_page;