NeKernel dev
Loading...
Searching...
No Matches
ATA.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 <BootKit/Device.h>
10#include <modules/ATA/ATA.h>
11
12using namespace Kernel;
13
14class BootDeviceATA final : public Device {
15 public:
16 enum {
19 };
20
21 explicit BootDeviceATA() noexcept;
22 ~BootDeviceATA() = default;
23
25
26 struct ATATrait final : public Device::Trait {
29 Boolean mErr{false};
30
31 operator bool() { return !mErr; }
32 };
33
34 public:
35 operator bool();
36
37 SizeT GetSectorsCount() noexcept;
38 SizeT GetDiskSize() noexcept;
39
40 BootDeviceATA& Read(Char* Buf, SizeT SecCount) override;
41 BootDeviceATA& Write(Char* Buf, SizeT SecCount) override;
42
43 ATATrait& Leak() override;
44
45 private:
47};
Definition ATA.h:14
BootDeviceATA & Write(Char *Buf, SizeT SecCount) override
Write Buf into disk.
Definition BootATA.cc:233
SizeT GetDiskSize() noexcept
Definition BootATA.cc:267
BootDeviceATA & Read(Char *Buf, SizeT SecCount) override
Read Buf from disk.
Definition BootATA.cc:212
ATATrait & Leak() override
ATA trait getter.
Definition BootATA.cc:256
BootDeviceATA() noexcept
ATA Device constructor.
Definition BootATA.cc:194
@ kPrimary
Definition ATA.h:17
@ kSecondary
Definition ATA.h:18
SizeT GetSectorsCount() noexcept
Definition BootATA.cc:263
@ kSectorSize
Definition ATA.h:24
ATATrait mTrait
Definition ATA.h:46
Device()=default
#define ATA_PRIMARY_IO
Definition ATA.h:92
#define ATA_SECONDARY_IO
Definition ATA.h:93
#define kATASectorSize
Definition ATA.h:124
USER_PROCESS inline definitions.
Definition Qr.h:793
char Char
Definition Defines.h:51
unsigned char UInt8
Definition Defines.h:53
__SIZE_TYPE__ SizeT
Definition Defines.h:58
unsigned short UInt16
Definition Defines.h:40
bool Boolean
Definition Defines.h:49
Definition ATA.h:26
UInt16 mBus
Definition ATA.h:27
UInt8 mMaster
Definition ATA.h:28
Boolean mErr
Definition ATA.h:29
Definition Device.h:22