summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/FSKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-01-03 15:25:06 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-01-03 15:25:06 +0100
commitbf2fc74c6552f9359955210c8f60e45308ae1d31 (patch)
tree903ea813d3ef69b7c5c3a45bc7268fc990d6b191 /dev/Kernel/FSKit
parent4be14ab92ed6456e6d5bec5777fe7df5738112e7 (diff)
IMPL: Work In Progress efforts in Journaling and SysChk.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel/FSKit')
-rw-r--r--dev/Kernel/FSKit/NeFS.h28
1 files changed, 26 insertions, 2 deletions
diff --git a/dev/Kernel/FSKit/NeFS.h b/dev/Kernel/FSKit/NeFS.h
index 2468fd16..78177e07 100644
--- a/dev/Kernel/FSKit/NeFS.h
+++ b/dev/Kernel/FSKit/NeFS.h
@@ -380,13 +380,37 @@ namespace Kernel
return NO;
}
- Bool Commit(NeFileSystemParser* parser,
+ Bool ReleaseJournal()
+ {
+ if (mNode)
+ {
+ delete mNode;
+ mNode = nullptr;
+ return YES;
+ }
+
+ return NO;
+ }
+
+ Bool CommitJournal(NeFileSystemParser* parser,
KString xml_data,
KString journal_name)
{
- if (!parser)
+ if (!parser ||
+ !mNode)
return NO;
+ NFS_FORK_STRUCT new_fork{};
+
+ rt_copy_memory(mNode->Name, new_fork.CatalogName, rt_string_len(mNode->Name));
+ rt_copy_memory(journal_name.Data(), new_fork.ForkName, rt_string_len(journal_name.Data()));
+
+ new_fork.DataSize = xml_data.Length();
+
+ new_fork.Kind = kNeFSRsrcForkKind;
+
+ parser->CreateFork(mNode, new_fork);
+
return parser->WriteCatalog(mNode, YES, xml_data.Data(), xml_data.Length(), journal_name.CData());
}