NeKernel dev
Loading...
Searching...
No Matches
AHCI.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
13namespace Kernel {
18 public:
19 explicit AHCIDeviceInterface(void (*out)(DeviceInterface* self, MountpointInterface* out),
20 void (*in)(DeviceInterface* self, MountpointInterface* in));
21
22 virtual ~AHCIDeviceInterface() override;
23
24 public:
27
28 const Char* Name() const override;
29
31
33
34 const UInt32& GetIndex();
35
36 Void SetIndex(const UInt32& drv);
37
38 public:
41
42 private:
45};
46
49} // namespace Kernel
#define NE_DEVICE
Definition DeviceMgr.h:27
Drive Manager.
Device contract interface, represents an HW device.
Definition DeviceMgr.h:42
Definition ErrorOr.h:19
Mounted drives interface.
Definition DriveMgr.h:92
AHCIDeviceInterface & operator<<(MountpointInterface *Data) override
AHCIDeviceInterface & operator=(const AHCIDeviceInterface &)=default
Void SetPortsImplemented(const UInt16 &pi)
UInt16 fPortsImplemented
Definition AHCI.h:43
AHCIDeviceInterface(const AHCIDeviceInterface &)=default
AHCIDeviceInterface(void(*out)(DeviceInterface *self, MountpointInterface *out), void(*in)(DeviceInterface *self, MountpointInterface *in))
AHCIDeviceInterface & operator>>(MountpointInterface *Data) override
UInt32 fDriveIndex
Definition AHCI.h:44
const Char * Name() const override
#define BOOL
Definition macros.h:25
USER_PROCESS inline definitions.
Definition Qr.h:793
char Char
Definition Defines.h:51
void Void
Definition Defines.h:85
UInt16 sk_init_ahci_device(BOOL atapi)
Initialize an AHCI device (StorageKit)
Definition AHCI+Generic.cc:537
int Int32
Definition Defines.h:38
ErrorOr< AHCIDeviceInterface > sk_acquire_ahci_device(Int32 drv_index)
Acquires a new AHCI device with drv_index in mind.
Definition AHCI+Generic.cc:595
unsigned int UInt32
Definition Defines.h:44
unsigned short UInt16
Definition Defines.h:40