summaryrefslogtreecommitdiffhomepage
path: root/tooling
diff options
context:
space:
mode:
authorAmlal <amlal@nekernel.org>2025-05-01 08:30:58 +0200
committerAmlal <amlal@nekernel.org>2025-05-01 08:30:58 +0200
commit72fa8a81498a53491950f92d9e96fbe6dd65cc04 (patch)
tree5d3e67a39d0864892a058634b7073797df615dff /tooling
parentfcea594f2df75dcd0f3d4bfeac988b748be89c13 (diff)
dev, kernel: HeFS spec and tooling, and PEF spec updates.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'tooling')
-rw-r--r--tooling/hefs.h51
-rw-r--r--tooling/mkfs.hefs.cc1
2 files changed, 3 insertions, 49 deletions
diff --git a/tooling/hefs.h b/tooling/hefs.h
index 2a04a1c3..52c951ef 100644
--- a/tooling/hefs.h
+++ b/tooling/hefs.h
@@ -56,9 +56,6 @@ enum {
kHeFSEncodingCount,
};
-// Block constants
-constexpr std::size_t kHeFSBlockCount = 16;
-
// Time type
using ATime = std::uint64_t;
@@ -103,54 +100,10 @@ struct alignas(8) BootNode {
std::uint16_t diskStatus{};
std::uint16_t diskFlags{};
std::uint16_t vid{};
- std::uint64_t reserved{};
- std::uint64_t reserved2{};
+ std::uint64_t startIN{};
+ std::uint64_t endIN{};
std::uint64_t reserved3{};
std::uint64_t reserved4{};
char pad[272]{};
};
-
-// Index Node
-struct alignas(8) IndexNode {
- char8_t name[kHeFSFileNameLen]{};
- std::uint32_t flags{};
- std::uint16_t kind{};
- std::uint32_t size{};
- std::uint32_t checksum{};
- bool symbolicLink{false};
- ATime created{};
- ATime accessed{};
- ATime modified{};
- ATime deleted{};
- std::uint32_t uid{};
- std::uint32_t gid{};
- std::uint32_t mode{};
- std::uint64_t block[kHeFSBlockCount]{};
- char pad[62]{};
-};
-
-// Index Node Directory (Red-Black Tree Node)
-struct alignas(8) IndexNodeDirectory {
- char8_t name[kHeFSFileNameLen]{};
- std::uint32_t flags{};
- std::uint16_t kind{};
- std::uint32_t entryCount{};
- std::uint32_t checksum{};
- std::uint32_t indexNodeChecksum{};
- ATime created{};
- ATime accessed{};
- ATime modified{};
- ATime deleted{};
- std::uint32_t uid{};
- std::uint32_t gid{};
- std::uint32_t mode{};
- std::uint64_t indexNode[kHeFSBlockCount]{};
- std::uint8_t color{};
- std::uint64_t next{};
- std::uint64_t prev{};
- std::uint64_t child{};
- std::uint64_t parent{};
- char pad[32]{};
-};
-
} // namespace mkfs::hefs
diff --git a/tooling/mkfs.hefs.cc b/tooling/mkfs.hefs.cc
index 356504f9..4d7225fe 100644
--- a/tooling/mkfs.hefs.cc
+++ b/tooling/mkfs.hefs.cc
@@ -96,6 +96,7 @@ int main(int argc, char** argv) {
bootNode.sectorSize = kSectorSize;
bootNode.startIND = start_ind;
bootNode.endIND = end_ind;
+ bootNode.indCount = 0UL;
bootNode.diskStatus = mkfs::hefs::kHeFSStatusUnlocked;
std::memcpy(bootNode.magic, kHeFSMagic, kHeFSMagicLen - 1);