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, all rights reserved.
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<MountpointInterface*> {
17 public:
18 explicit ATADeviceInterface(void (*Out)(DeviceInterface*, MountpointInterface* outpacket),
19 void (*In)(DeviceInterface*, MountpointInterface* 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.
Void SetIO(const UInt16 &io)
Definition ATADeviceInterface.cc:85
Void SetIndex(const UInt32 &drv)
Definition ATADeviceInterface.cc:76
ATADeviceInterface(void(*Out)(DeviceInterface *, MountpointInterface *outpacket), void(*In)(DeviceInterface *, MountpointInterface *inpacket))
Class constructor.
Definition ATADeviceInterface.cc:15
const UInt32 & GetIndex()
Definition ATADeviceInterface.cc:72
const UInt16 & GetIO()
Definition ATADeviceInterface.cc:81
UInt32 fDriveIndex
Definition ATA.h:43
UInt16 fIO
Definition ATA.h:44
UInt16 fMaster
Definition ATA.h:44
ATADeviceInterface & operator=(const ATADeviceInterface &)=default
ATADeviceInterface & operator>>(MountpointInterface *Data) override
Input operator.
Definition ATADeviceInterface.cc:53
ATADeviceInterface & operator<<(MountpointInterface *Data) override
Output operator.
Definition ATADeviceInterface.cc:32
ATADeviceInterface(const ATADeviceInterface &)=default
const Char * Name() const override
Returns the name of the device interface.
Definition ATADeviceInterface.cc:25
Void SetMaster(const UInt16 &master)
Definition ATADeviceInterface.cc:94
const UInt16 & GetMaster()
Definition ATADeviceInterface.cc:90
virtual ~ATADeviceInterface()
Class desctructor.
Definition ErrorOr.h:19
Mounted drives interface.
Definition DriveMgr.h:92
#define BOOL
Definition macros.h:25
USER_PROCESS inline definitions.
Definition Qr.h:793
ErrorOr< ATADeviceInterface > sk_acquire_ata_device(Int32 drv_index)
Acquires a new PIO device with drv_index in mind.
Definition PIO+Generic.cc:248
char Char
Definition Defines.h:51
void Void
Definition Defines.h:85
int Int32
Definition Defines.h:38
unsigned char UInt8
Definition Defines.h:53
unsigned int UInt32
Definition Defines.h:44
BOOL sk_init_ata_device(BOOL is_master, UInt16 &io, UInt8 &master)
Initialize an PIO device (StorageKit function)
Definition PIO+Generic.cc:194
unsigned short UInt16
Definition Defines.h:40