Преглед на файлове

Kernel: Untangle StorageController from PCI::DeviceController

Jean-Baptiste Boric преди 4 години
родител
ревизия
2f8b047339
променени са 3 файла, в които са добавени 8 реда и са изтрити 9 реда
  1. 2 1
      Kernel/Storage/IDEController.cpp
  2. 2 1
      Kernel/Storage/IDEController.h
  3. 4 7
      Kernel/Storage/StorageController.h

+ 2 - 1
Kernel/Storage/IDEController.cpp

@@ -68,7 +68,8 @@ void IDEController::complete_current_request(AsyncDeviceRequest::RequestResult)
 }
 }
 
 
 IDEController::IDEController(PCI::Address address, bool force_pio)
 IDEController::IDEController(PCI::Address address, bool force_pio)
-    : StorageController(address)
+    : StorageController()
+    , PCI::DeviceController(address)
 {
 {
     initialize(force_pio);
     initialize(force_pio);
 }
 }

+ 2 - 1
Kernel/Storage/IDEController.h

@@ -37,7 +37,8 @@ namespace Kernel {
 
 
 class AsyncBlockDeviceRequest;
 class AsyncBlockDeviceRequest;
 
 
-class IDEController final : public StorageController {
+class IDEController final : public StorageController
+    , public PCI::DeviceController {
     AK_MAKE_ETERNAL
     AK_MAKE_ETERNAL
 public:
 public:
 public:
 public:

+ 4 - 7
Kernel/Storage/StorageController.h

@@ -42,24 +42,21 @@ namespace Kernel {
 
 
 class AsyncBlockDeviceRequest;
 class AsyncBlockDeviceRequest;
 class StorageDevice;
 class StorageDevice;
-class StorageController : public RefCounted<StorageController>
-    , public PCI::DeviceController {
+class StorageController : public RefCounted<StorageController> {
     AK_MAKE_ETERNAL
     AK_MAKE_ETERNAL
 public:
 public:
     enum class Type : u8 {
     enum class Type : u8 {
         IDE,
         IDE,
         NVMe
         NVMe
     };
     };
+
+    virtual ~StorageController() = default;
+
     virtual Type type() const = 0;
     virtual Type type() const = 0;
     virtual RefPtr<StorageDevice> device(u32 index) const = 0;
     virtual RefPtr<StorageDevice> device(u32 index) const = 0;
     virtual size_t devices_count() const = 0;
     virtual size_t devices_count() const = 0;
 
 
 protected:
 protected:
-    explicit StorageController(PCI::Address address)
-        : PCI::DeviceController(address)
-    {
-    }
-
     virtual void start_request(const StorageDevice&, AsyncBlockDeviceRequest&) = 0;
     virtual void start_request(const StorageDevice&, AsyncBlockDeviceRequest&) = 0;
 
 
 protected:
 protected: