diff options
Diffstat (limited to 'Kernel/Devices/PATAChannel.h')
-rw-r--r-- | Kernel/Devices/PATAChannel.h | 12 |
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; |