summaryrefslogtreecommitdiffhomepage
path: root/dev
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-01-12 16:25:31 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-01-12 16:25:31 +0100
commitfa8b964f649762db56647dccd63e64f6e1d42522 (patch)
tree034e37d53cc65f9eb11856ec43410646486baf7d /dev
parent59418dea34d886712b99392d891e4a71fb59e05e (diff)
ADD: NeFS.cc: Tweaks and improvements on NeFS.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev')
-rw-r--r--dev/Kernel/FSKit/NeFS.h4
-rw-r--r--dev/Kernel/HALKit/AMD64/Paging.h2
-rw-r--r--dev/Kernel/src/DriveMgr.cc6
-rw-r--r--dev/Kernel/src/FS/NeFS.cc19
4 files changed, 20 insertions, 11 deletions
diff --git a/dev/Kernel/FSKit/NeFS.h b/dev/Kernel/FSKit/NeFS.h
index d9a55789..88792a3e 100644
--- a/dev/Kernel/FSKit/NeFS.h
+++ b/dev/Kernel/FSKit/NeFS.h
@@ -421,7 +421,7 @@ namespace Kernel
if (!parser->CreateFork(mStamp, new_fork))
return NO;
- kcout << "Commit: " << xml_data << "\r\nTo: " << journal_name << endl;
+ kcout << "XML Commited: " << xml_data << "\r\nTo Journal Fork: " << journal_name << endl;
auto ret = parser->WriteCatalog(mNode, YES, xml_data, rt_string_len(xml_data), new_fork.ForkName);
@@ -429,7 +429,7 @@ namespace Kernel
}
private:
- Char mStamp[255] = {"/system/journal_sys" kNeFSJournalExt};
+ Char mStamp[255] = {"/system/journal" kNeFSJournalExt};
};
namespace Detail
diff --git a/dev/Kernel/HALKit/AMD64/Paging.h b/dev/Kernel/HALKit/AMD64/Paging.h
index 3d7a2c46..64d2d6b8 100644
--- a/dev/Kernel/HALKit/AMD64/Paging.h
+++ b/dev/Kernel/HALKit/AMD64/Paging.h
@@ -23,7 +23,7 @@
#endif //! kPageAlign
#ifndef kPageSize
-#define kPageSize (0x100)
+#define kPageSize (0x1000)
#endif // !kPageSize
#ifndef kAlign
diff --git a/dev/Kernel/src/DriveMgr.cc b/dev/Kernel/src/DriveMgr.cc
index 6202ffbb..f6e995c8 100644
--- a/dev/Kernel/src/DriveMgr.cc
+++ b/dev/Kernel/src/DriveMgr.cc
@@ -66,6 +66,12 @@ namespace Kernel
return;
}
+ if (pckt->fPacketReadOnly)
+ {
+ pckt->fPacketGood = NO;
+ return;
+ }
+
if (!StringBuilder::Equals("fs/detect-packet", pckt->fPacketMime) &&
pckt->fPacketDrive->fLbaStart > 0 && pckt->fPacketDrive->fLbaEnd > 0)
{
diff --git a/dev/Kernel/src/FS/NeFS.cc b/dev/Kernel/src/FS/NeFS.cc
index 10bcad02..5df4daca 100644
--- a/dev/Kernel/src/FS/NeFS.cc
+++ b/dev/Kernel/src/FS/NeFS.cc
@@ -64,7 +64,7 @@ _Output BOOL NeFileSystemParser::CreateFork(_Input const Char* catalog_name,
_Input NFS_FORK_STRUCT& the_fork)
{
if (the_fork.DataSize > 0)
- {
+ {
auto catalog = this->GetCatalog(catalog_name);
if (!catalog)
@@ -75,9 +75,10 @@ _Output BOOL NeFileSystemParser::CreateFork(_Input const Char* catalog_name,
auto drv = kDiskMountpoint.A();
- NFS_FORK_STRUCT cur_fork;
- Lba lba_prev_fork = lba;
- Lba lba_next_fork = lba;
+ NFS_FORK_STRUCT cur_fork{};
+
+ Lba lba_prev_fork = lba;
+ Lba lba_next_fork = lba;
if (the_fork.Kind == kNeFSDataForkKind)
catalog->DataForkSize += the_fork.DataSize;
@@ -85,7 +86,7 @@ _Output BOOL NeFileSystemParser::CreateFork(_Input const Char* catalog_name,
catalog->ResourceForkSize += the_fork.DataSize;
/// do not check for anything. Loop until we get what we want, that is a free fork zone.
- while (lba_next_fork >= kNeFSCatalogStartAddress)
+ do
{
drv.fPacket.fPacketLba = lba_next_fork;
drv.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT);
@@ -93,6 +94,8 @@ _Output BOOL NeFileSystemParser::CreateFork(_Input const Char* catalog_name,
drv.fInput(&drv.fPacket);
+ kcout << "LBA: " << hex_number(lba_next_fork) << endl;
+
if (cur_fork.Flags & kNeFSFlagCreated)
{
/// sanity check.
@@ -116,17 +119,17 @@ _Output BOOL NeFileSystemParser::CreateFork(_Input const Char* catalog_name,
drv.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT);
drv.fPacket.fPacketContent = &the_fork;
- drv.fOutput(&drv.fPacket);
-
/// log what we have now.
kcout << "Wrote fork data at: " << hex_number(the_fork.DataOffset)
<< endl;
kcout << "Wrote fork at: " << hex_number(lba) << endl;
+ drv.fOutput(&drv.fPacket);
+
return YES;
}
- }
+ } while (drv.fPacket.fPacketGood);
}
return NO;