From aa8a096ad429640e752d69a89c572da35493d4c0 Mon Sep 17 00:00:00 2001 From: Amlal Date: Thu, 20 Feb 2025 11:58:55 +0100 Subject: FS, DriveMgr, AHCI: Actively working on it. PagingMgr: Define get_phys_address in C++ source directly. Signed-off-by: Amlal --- dev/Kernel/src/DriveMgr.cc | 2 +- dev/Kernel/src/FS/NeFS.cc | 5 +++++ dev/Kernel/src/KernelMain.cc | 10 +++++----- 3 files changed, 11 insertions(+), 6 deletions(-) (limited to 'dev/Kernel/src') diff --git a/dev/Kernel/src/DriveMgr.cc b/dev/Kernel/src/DriveMgr.cc index 5c2a02ad..62f57567 100644 --- a/dev/Kernel/src/DriveMgr.cc +++ b/dev/Kernel/src/DriveMgr.cc @@ -213,7 +213,7 @@ namespace Kernel trait.fPacket.fPacketSize = 0UL; trait.fPacket.fPacketContent = nullptr; } - } // namespace Detect + } // namespace Detail /// @brief Fetches the main drive. /// @return the new drive. (returns kEPMDrive if EPM formatted) diff --git a/dev/Kernel/src/FS/NeFS.cc b/dev/Kernel/src/FS/NeFS.cc index 24a03704..4a3370f5 100644 --- a/dev/Kernel/src/FS/NeFS.cc +++ b/dev/Kernel/src/FS/NeFS.cc @@ -326,6 +326,9 @@ _Output NEFS_CATALOG_STRUCT* NeFileSystemParser::CreateCatalog(_Input const Char out_lba = blk_nefs->StartCatalog; } + if (drive.fPacket.fPacketReadOnly) + return nullptr; + NEFS_CATALOG_STRUCT* child_catalog = new NEFS_CATALOG_STRUCT(); child_catalog->ResourceForkSize = 0UL; @@ -371,6 +374,8 @@ _Output NEFS_CATALOG_STRUCT* NeFileSystemParser::CreateCatalog(_Input const Char return nullptr; } + kout << "Start finding catalog to allocate or empty space...\r"; + while (start_free >= part_block->StartCatalog) { // ========================== // diff --git a/dev/Kernel/src/KernelMain.cc b/dev/Kernel/src/KernelMain.cc index c9b8a629..30727a42 100644 --- a/dev/Kernel/src/KernelMain.cc +++ b/dev/Kernel/src/KernelMain.cc @@ -31,14 +31,14 @@ namespace Kernel::Detail class NeFilesystemInstaller final { private: - Kernel::NeFileSystemParser* mNeFS{nullptr}; - Kernel::NeFileSystemJournal mJournal; + NeFileSystemParser* mNeFS{nullptr}; + NeFileSystemJournal mJournal; public: /// @brief wizard constructor. explicit NeFilesystemInstaller() { - mNeFS = new Kernel::NeFileSystemParser(); + mNeFS = new NeFileSystemParser(); if (mNeFS) { @@ -47,7 +47,7 @@ namespace Kernel::Detail "/", "/boot/", "/sys/", "/media/", "/etc/", "/usr/", "/lib/", "/mnt/", "/sbin/", "/n/", "/dev/", "/run/", "/root/"}; - for (Kernel::SizeT dir_index = 0UL; dir_index < kFolderCount; ++dir_index) + for (SizeT dir_index = 0UL; dir_index < kFolderCount; ++dir_index) { auto catalog_folder = mNeFS->GetCatalog(kFolderStr[dir_index]); @@ -72,7 +72,7 @@ namespace Kernel::Detail if (!mJournal.GetJournal(mNeFS)) mJournal.CreateJournal(mNeFS); - mJournal.CommitJournal(mNeFS, "['Name': 'NeFS', 'Type': 'AutoFormat']", "FormatLog.json"); + mJournal.CommitJournal(mNeFS, "['FS': 'NeFS', 'Type': 'AutoFormat']", "FormatLog.json"); mJournal.ReleaseJournal(); } } -- cgit v1.2.3