mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-12-04 05:20:30 +00:00
4dc3617f3c
Like what happened with the PCI and USB code, this feels like the right thing to do because we can improve on the ATA capabilities and keep it distinguished from the rest of the subsystem.
35 lines
890 B
C++
35 lines
890 B
C++
/*
|
|
* Copyright (c) 2021, Liav A. <liavalb@hotmail.co.il>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <Kernel/Interrupts/IRQHandler.h>
|
|
#include <Kernel/Locking/Mutex.h>
|
|
#include <Kernel/Storage/ATA/ATADevice.h>
|
|
|
|
namespace Kernel {
|
|
|
|
class IDEController;
|
|
class IDEChannel;
|
|
class ATAPIDiscDevice final : public ATADevice {
|
|
friend class IDEController;
|
|
friend class DeviceManagement;
|
|
|
|
public:
|
|
static NonnullRefPtr<ATAPIDiscDevice> create(const ATAController&, ATADevice::Address, u16 capabilities, u64 max_addressable_block);
|
|
virtual ~ATAPIDiscDevice() override;
|
|
|
|
// ^StorageDevice
|
|
virtual CommandSet command_set() const override { return CommandSet::SCSI; }
|
|
|
|
private:
|
|
ATAPIDiscDevice(const ATAController&, Address, unsigned, u16, u64, NonnullOwnPtr<KString>);
|
|
|
|
// ^DiskDevice
|
|
virtual StringView class_name() const override;
|
|
};
|
|
|
|
}
|