mirror of
https://github.com/RGBCube/serenity
synced 2025-06-01 10:08:10 +00:00
Kernel/Storage: Move all ATA related code to a new subdirectory
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.
This commit is contained in:
parent
648a139af3
commit
4dc3617f3c
23 changed files with 50 additions and 50 deletions
46
Kernel/Storage/ATA/ATADevice.h
Normal file
46
Kernel/Storage/ATA/ATADevice.h
Normal file
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* 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/ATAController.h>
|
||||
#include <Kernel/Storage/StorageDevice.h>
|
||||
|
||||
namespace Kernel {
|
||||
|
||||
class ATADevice : public StorageDevice {
|
||||
public:
|
||||
// Note: For IDE drives, port means Primary or Secondary (0 or 1),
|
||||
// and subport means Master or Slave (0 or 1).
|
||||
// For SATA drives (AHCI driven HBAs), a port can be a number from 0 to 31,
|
||||
// and subport can be a number from 0 to 14 (only 15 devices are allowed to
|
||||
// be connected to one SATA port multiplier).
|
||||
struct Address {
|
||||
// FIXME: u32 for this value is wasteful, because even AHCI only support 32 ports
|
||||
u32 port;
|
||||
u8 subport;
|
||||
};
|
||||
|
||||
public:
|
||||
virtual ~ATADevice() override;
|
||||
|
||||
// ^BlockDevice
|
||||
virtual void start_request(AsyncBlockDeviceRequest&) override;
|
||||
|
||||
u16 ata_capabilites() const { return m_capabilities; }
|
||||
const Address& ata_address() const { return m_ata_address; }
|
||||
|
||||
protected:
|
||||
ATADevice(const ATAController&, Address, unsigned, u16, u16, u64, NonnullOwnPtr<KString>);
|
||||
|
||||
WeakPtr<ATAController> m_controller;
|
||||
const Address m_ata_address;
|
||||
const u16 m_capabilities;
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue