NeKernel dev
Loading...
Searching...
No Matches
Device.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
9#include <modules/AHCI/AHCI.h>
10#include <modules/ATA/ATA.h>
11
12using namespace Kernel;
13
15class Device {
16 public:
17 explicit Device() = default;
18 virtual ~Device() = default;
19
21
22 struct Trait {
25 };
26
27 virtual Trait& Leak() = 0;
28
29 virtual Device& Read(Char* Buf, SizeT SecCount) = 0;
30 virtual Device& Write(Char* Buf, SizeT SecCount) = 0;
31};
32
#define NE_MOVE_DEFAULT(KLASS)
Definition Detail.h:25
Device BootDevice
Definition Device.h:33
Device DiskDevice
Definition Device.h:35
Device NetworkDevice
Definition Device.h:34
Device type.
Definition Device.h:15
virtual Trait & Leak()=0
virtual Device & Read(Char *Buf, SizeT SecCount)=0
virtual ~Device()=default
virtual Device & Write(Char *Buf, SizeT SecCount)=0
Device()=default
AHCI support.
USER_PROCESS inline definitions.
Definition Qr.h:793
char Char
Definition Defines.h:51
__SIZE_TYPE__ SizeT
Definition Defines.h:58
Definition Device.h:22
SizeT mBase
Definition Device.h:23
SizeT mSize
Definition Device.h:24