NeKernel dev
Loading...
Searching...
No Matches
SCSI.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 <NeKit/OwnPtr.h>
11#include <modules/SCSI/SCSI.h>
12
13namespace Kernel {
14class SCSIDeviceInterface final NE_DEVICE<IMountpoint*> {
15 public:
16 explicit SCSIDeviceInterface(Void (*out)(DeviceInterface*, IMountpoint* out_packet),
17 Void (*in)(DeviceInterface*, IMountpoint* in_packet),
18 Void (*cleanup)(Void));
19
21
22 public:
24
25 const Char* Name() const override;
26
27 private:
28 Void (*fCleanup)(Void) = {nullptr};
29};
30} // 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
const Char * Name() const override
Void(* fCleanup)(Void)
Definition NVME.h:30
SCSIDeviceInterface(Void(*out)(DeviceInterface *, IMountpoint *out_packet), Void(*in)(DeviceInterface *, IMountpoint *in_packet), Void(*cleanup)(Void))
Small Computer System Interface device.
UPS inline definitions.
Definition Device.h:12
char Char
Definition Config.h:51
void Void
Definition Config.h:87