mirror of
https://github.com/RGBCube/serenity
synced 2025-05-19 00:05:06 +00:00

We do that to increase clarity of the major and secondary components in the subsystem. To ensure it's even more understandable, we rename the files to better represent the class within them and to remove redundancy in the name. Also, some includes are removed from the general components of the ATA components' classes.
38 lines
1.1 KiB
C++
38 lines
1.1 KiB
C++
/*
|
|
* Copyright (c) 2020-2022, Liav A. <liavalb@hotmail.co.il>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/OwnPtr.h>
|
|
#include <AK/RefPtr.h>
|
|
#include <AK/Types.h>
|
|
#include <Kernel/Storage/ATA/ATAController.h>
|
|
#include <Kernel/Storage/ATA/GenericIDE/Channel.h>
|
|
#include <Kernel/Storage/StorageDevice.h>
|
|
|
|
namespace Kernel {
|
|
|
|
class AsyncBlockDeviceRequest;
|
|
|
|
class IDEController : public ATAController {
|
|
public:
|
|
static NonnullRefPtr<IDEController> initialize();
|
|
virtual ~IDEController() override;
|
|
|
|
virtual RefPtr<StorageDevice> device(u32 index) const override final;
|
|
virtual bool reset() override final;
|
|
virtual bool shutdown() override final;
|
|
virtual size_t devices_count() const override final;
|
|
virtual void start_request(ATADevice const&, AsyncBlockDeviceRequest&) override final;
|
|
virtual void complete_current_request(AsyncDeviceRequest::RequestResult) override final;
|
|
|
|
protected:
|
|
IDEController();
|
|
|
|
RefPtr<StorageDevice> device_by_channel_and_position(u32 index) const;
|
|
NonnullRefPtrVector<IDEChannel> m_channels;
|
|
};
|
|
}
|