summaryrefslogtreecommitdiffhomepage
path: root/docs
diff options
context:
space:
mode:
authorAmlal <amlal@nekernel.org>2025-05-03 10:55:00 +0200
committerAmlal <amlal@nekernel.org>2025-05-03 10:56:53 +0200
commit2bc33f1a7ac94e534c266ac1473e89e0f4268225 (patch)
tree532558a37afa1be616f367e71bc7351bf2b581ec /docs
parentb3b4b1ebdcd6adeac914869017c86d892b7a8ced (diff)
kernel: HeFS: breaking changes — major refactor of Index Node Directory layout
Why: - Enables efficient allocation of nested paths like '/boot/pagefile.sys' without pre-creating parent paths manually. - Reduces disk space waste by avoiding placeholder or stub directories. - Faster and cleaner: avoids expensive Utf8Char* traversal and comparison at runtime. - Prepares the filesystem for structural hashing and future journaling. Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'docs')
-rw-r--r--docs/tex/hefs.tex6
1 files changed, 3 insertions, 3 deletions
diff --git a/docs/tex/hefs.tex b/docs/tex/hefs.tex
index ba592015..fe0d681b 100644
--- a/docs/tex/hefs.tex
+++ b/docs/tex/hefs.tex
@@ -42,7 +42,7 @@ HeFS is a high-throughput filesystem designed for NeKernel. It implements a robu
\hline
\verb|fMagic| & \verb|char[8]| & Filesystem magic (" HeFS") \\
\verb|fVolName| & \verb|Utf8Char[128]| & Volume name \\
-\verb|fVersion| & \verb|UInt32| & Filesystem version (e.g., 0x0101) \\
+\verb|fVersion| & \verb|UInt32| & Filesystem version (e.g., 0x0102) \\
\verb|fBadSectors| & \verb|UInt64| & Number of bad sectors detected \\
\verb|fSectorCount| & \verb|UInt64| & Total sector count \\
\verb|fSectorSize| & \verb|UInt64| & Size of each sector \\
@@ -108,7 +108,7 @@ Directories form a red-black tree. Each node (IND) can hold up to 16 index node
\begin{lstlisting}[style=cstyle, caption={HEFS\_INDEX\_NODE\_DIRECTORY}]
struct HEFS_INDEX_NODE_DIRECTORY {
- Utf8Char fName[256]; // Directory name (not full path)
+ UInt64 fHashName; // Directory name as hash
UInt32 fFlags;
UInt16 fKind;
UInt32 fEntryCount;
@@ -123,7 +123,7 @@ struct HEFS_INDEX_NODE_DIRECTORY {
UInt8 fColor; // Red/Black tree color
Lba fNext, fPrev, fChild, fParent;
- Char fPad[33];
+ Char fPad[281];
};
\end{lstlisting}