NeKernel dev
Loading...
Searching...
No Matches
ATA.h
Go to the documentation of this file.
1/* ========================================
2
3 Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
4
5======================================== */
6
7#pragma once
8
10#include <KernelKit/DriveMgr.h>
11#include <NeKit/OwnPtr.h>
12#include <NeKit/Utils.h>
13
14namespace Kernel {
16class ATADeviceInterface : public DeviceInterface<IMountpoint*> {
17 public:
18 explicit ATADeviceInterface(void (*Out)(DeviceInterface*, IMountpoint* outpacket),
19 void (*In)(DeviceInterface*, IMountpoint* inpacket));
20
22
23 public:
26
27 public:
30
31 const Char* Name() const override;
32
33 const UInt16& GetIO();
34 Void SetIO(const UInt16& io);
35
36 const UInt16& GetMaster();
37 Void SetMaster(const UInt16& master);
38
39 const UInt32& GetIndex();
40 Void SetIndex(const UInt32& drv);
41
42 private:
45};
46
50BOOL sk_init_ata_device(BOOL is_master, UInt16& io, UInt8& master);
51
56} // namespace Kernel
Drive Manager.
#define BOOL
Void SetIO(const UInt16 &io)
Definition ATADeviceInterface.cc:84
Void SetIndex(const UInt32 &drv)
Definition ATADeviceInterface.cc:75
ATADeviceInterface & operator>>(IMountpoint *Data) override
Input operator.
Definition ATADeviceInterface.cc:52
const UInt32 & GetIndex()
Definition ATADeviceInterface.cc:71
const UInt16 & GetIO()
Definition ATADeviceInterface.cc:80
UInt32 fDriveIndex
Definition ATA.h:43
UInt16 fIO
Definition ATA.h:44
ATADeviceInterface & operator<<(IMountpoint *Data) override
Output operator.
Definition ATADeviceInterface.cc:31
UInt16 fMaster
Definition ATA.h:44
ATADeviceInterface & operator=(const ATADeviceInterface &)=default
ATADeviceInterface(void(*Out)(DeviceInterface *, IMountpoint *outpacket), void(*In)(DeviceInterface *, IMountpoint *inpacket))
Class constructor.
Definition ATADeviceInterface.cc:15
ATADeviceInterface(const ATADeviceInterface &)=default
const Char * Name() const override
Returns the name of the device interface.
Definition ATADeviceInterface.cc:24
Void SetMaster(const UInt16 &master)
Definition ATADeviceInterface.cc:93
const UInt16 & GetMaster()
Definition ATADeviceInterface.cc:89
virtual ~ATADeviceInterface()
Class desctructor.
ErrorOr class for error handling.
Definition ErrorOr.h:22
Mounted drives interface.
Definition DriveMgr.h:92
UPS inline definitions.
Definition Device.h:12
ErrorOr< ATADeviceInterface > sk_acquire_ata_device(Int32 drv_index)
Acquires a new PIO device with drv_index in mind.
Definition PIO+Generic.cc:243
char Char
Definition Config.h:51
void Void
Definition Config.h:87
__UINT16_TYPE__ UInt16
Definition Config.h:40
BOOL sk_init_ata_device(BOOL is_master, UInt16 &io, UInt8 &master)
Initialize an PIO device (StorageKit function).
Definition PIO+Generic.cc:191
__UINT8_TYPE__ UInt8
Definition Config.h:55
__UINT32_TYPE__ UInt32
Definition Config.h:44
__INT32_TYPE__ Int32
Definition Config.h:38