diff options
| author | Amlal <amlal@nekernel.org> | 2025-04-27 17:30:36 +0200 |
|---|---|---|
| committer | Amlal <amlal@nekernel.org> | 2025-04-27 17:30:36 +0200 |
| commit | cb2f383f45dda8d1cdcef0b87fe4c70243659701 (patch) | |
| tree | f109c3c44fa3f142d34f8ca61cfa69672e556614 /dev/boot/BootKit/HW | |
| parent | 14d5ee9e0cfededddfceec73d5dfa8a2fcda6c5d (diff) | |
dev, kernel: AHCI, HeFS filesystem, SysChk, and BootSATA improvements.
what?
- AHCI now writes to disk, forgot to do it.
- Codebase's architecutre has been used to reuse the Generic+AHCI driver in SysChk for AHCI. (tradeoff is 256K in size instead of 36K)
- DriveMgr now detects EPM.
- And HeFS is still being worked on.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'dev/boot/BootKit/HW')
| -rw-r--r-- | dev/boot/BootKit/HW/SATA.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/dev/boot/BootKit/HW/SATA.h b/dev/boot/BootKit/HW/SATA.h index 7e84c061..5c70c18c 100644 --- a/dev/boot/BootKit/HW/SATA.h +++ b/dev/boot/BootKit/HW/SATA.h @@ -6,6 +6,7 @@ #pragma once +#include <BootKit/BootKit.h> #include <CompilerKit/CompilerKit.h> #include <modules/AHCI/AHCI.h> @@ -20,14 +21,19 @@ class BootDeviceSATA final { Kernel::SizeT mBase{1024}; Kernel::Boolean mErr{false}; Kernel::Boolean mDetected{false}; + Kernel::SizeT mSize{0}; operator bool() { return !this->mErr; } }; operator bool() { return this->Leak().mDetected; } - BootDeviceSATA& Read(Kernel::WideChar* Buf, const Kernel::SizeT SecCount); - BootDeviceSATA& Write(Kernel::WideChar* Buf, const Kernel::SizeT SecCount); + SizeT GetDiskSize() { return drv_get_size(); } + + constexpr static auto kSectorSize = kAHCISectorSize; + + BootDeviceSATA& Read(Boot::CharacterTypeUTF8* Buf, const Kernel::SizeT SecCount); + BootDeviceSATA& Write(Boot::CharacterTypeUTF8* Buf, const Kernel::SizeT SecCount); SATATrait& Leak(); |
