NeKernel dev
Loading...
Searching...
No Matches
NVME.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
12namespace Kernel {
13class NVMEDeviceInterface final NE_DEVICE<MountpointInterface*> {
14 public:
16 Void (*in)(DeviceInterface*, MountpointInterface* in_packet),
17 Void (*cleanup)(Void));
18
20
21 public:
23
24 const Char* Name() const override;
25
26 public:
27 OwnPtr<MountpointInterface*> operator()(UInt32 dma_low, UInt32 dma_high, SizeT dma_sz);
28
29 private:
30 Void (*fCleanup)(Void) = {nullptr};
31};
32} // namespace Kernel
#define NE_COPY_DEFAULT(KLASS)
Definition Detail.h:17
#define NE_DEVICE
Definition DeviceMgr.h:27
Drive Manager.
Device contract interface, represents an HW device.
Definition DeviceMgr.h:42
Mounted drives interface.
Definition DriveMgr.h:92
NVMEDeviceInterface(Void(*out)(DeviceInterface *, MountpointInterface *out_packet), Void(*in)(DeviceInterface *, MountpointInterface *in_packet), Void(*cleanup)(Void))
Void(* fCleanup)(Void)
Definition NVME.h:30
const Char * Name() const override
Definition OwnPtr.h:22
USER_PROCESS inline definitions.
Definition Qr.h:793
char Char
Definition Defines.h:51
void Void
Definition Defines.h:85
__SIZE_TYPE__ SizeT
Definition Defines.h:58
unsigned int UInt32
Definition Defines.h:44