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, licensed under the Apache 2.0 license.
4
5======================================== */
6
7#pragma once
8
9#include <modules/AHCI/AHCI.h>
10#include <modules/ATA/ATA.h>
11
12namespace Kernel {
14class Device {
15 public:
16 explicit Device() = default;
17 virtual ~Device() = default;
18
20
21 struct Trait {
24 };
25
26 virtual Trait& Leak() = 0;
27
28 virtual Device& Read(Char* Buf, SizeT SecCount) = 0;
29 virtual Device& Write(Char* Buf, SizeT SecCount) = 0;
30};
31
35} // namespace Kernel
#define NE_MOVE_DEFAULT(KLASS)
Definition Detail.h:25
Device type.
Definition Device.h:14
virtual Device & Write(Char *Buf, SizeT SecCount)=0
virtual Trait & Leak()=0
Device()=default
virtual Device & Read(Char *Buf, SizeT SecCount)=0
virtual ~Device()=default
AHCI support.
UPS inline definitions.
Definition Device.h:12
char Char
Definition Config.h:51
Device DiskDevice
Definition Device.h:34
__SIZE_TYPE__ SizeT
Definition Config.h:60
Device NetworkDevice
Definition Device.h:33
Device BootDevice
Definition Device.h:32
Definition Device.h:21
SizeT mBase
Definition Device.h:22
SizeT mSize
Definition Device.h:23