summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/src/FS
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-04-21 17:47:16 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-04-21 17:47:16 +0200
commit4f8fb9c70f814de796d61d7d85d4bf133afddafa (patch)
treee411bb18332d2e3a37e37a12b51017e366cad31d /dev/kernel/src/FS
parent58f969493aaa834f472402a2bebe1cd37094a6d2 (diff)
dev, kernel: Made HeFS use a RB-Tree traversal algorithm.
- ran format command. - a variation of a red-black tree traversal, with customized fallback mechanism. Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src/FS')
-rw-r--r--dev/kernel/src/FS/HeFS.cc23
-rw-r--r--dev/kernel/src/FS/NeFS.cc2
2 files changed, 18 insertions, 7 deletions
diff --git a/dev/kernel/src/FS/HeFS.cc b/dev/kernel/src/FS/HeFS.cc
index 8d73b61e..2269896f 100644
--- a/dev/kernel/src/FS/HeFS.cc
+++ b/dev/kernel/src/FS/HeFS.cc
@@ -141,11 +141,22 @@ namespace Kernel
start = dir->fNext;
- if (start == 0)
- start = dir->fChild;
-
- if (start == 0)
- start = dir->fParent;
+ if (dir->fColor == kHeFSBlack)
+ {
+ if (dir->fParent != 0)
+ start = dir->fParent;
+ }
+ else
+ {
+ if (dir->fChild != 0)
+ start = dir->fChild;
+ else if (dir->fNext != 0)
+ start = dir->fNext;
+ else if (dir->fPrev != 0)
+ start = dir->fPrev;
+ else
+ start = dir->fParent;
+ }
}
delete dir;
@@ -173,7 +184,7 @@ namespace Kernel
NE_UNUSED(mnt);
NE_UNUSED(parent_dir_name);
NE_UNUSED(node);
-
+
return NO;
}
} // namespace Detail
diff --git a/dev/kernel/src/FS/NeFS.cc b/dev/kernel/src/FS/NeFS.cc
index 115e4c82..e8e3804c 100644
--- a/dev/kernel/src/FS/NeFS.cc
+++ b/dev/kernel/src/FS/NeFS.cc
@@ -460,7 +460,7 @@ _Output Bool NeFileSystemParser::FormatGPT(_Input _Output DriveTrait* drive, _In
NE_UNUSED(end_lba);
NE_UNUSED(flags);
NE_UNUSED(part_name);
-
+
(void)(kout << "FormatGPT: Not implemented yet.\r");
return NO;