summaryrefslogtreecommitdiff
path: root/Kernel/Devices/PATAChannel.h
diff options
context:
space:
mode:
Diffstat (limited to 'Kernel/Devices/PATAChannel.h')
-rw-r--r--Kernel/Devices/PATAChannel.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/Kernel/Devices/PATAChannel.h b/Kernel/Devices/PATAChannel.h
index cee50d3928..829def7558 100644
--- a/Kernel/Devices/PATAChannel.h
+++ b/Kernel/Devices/PATAChannel.h
@@ -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;