summaryrefslogtreecommitdiffhomepage
path: root/tooling/hefs.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-07-04 15:43:44 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-07-04 15:43:44 +0200
commit32edc6508c91e51316d67b92eb86b4e72d0a41a4 (patch)
treedfdd7eda6c5d88ca9b9b0a4a34beb8d9962409bb /tooling/hefs.h
parent13e1137757626d274e7754d54e7db828da1e7fa8 (diff)
feat: libmkfs: a new library to format filesystem and utilities for
them. Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'tooling/hefs.h')
-rw-r--r--tooling/hefs.h115
1 files changed, 0 insertions, 115 deletions
diff --git a/tooling/hefs.h b/tooling/hefs.h
deleted file mode 100644
index d0da516b..00000000
--- a/tooling/hefs.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* -------------------------------------------
-
- Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
-
-------------------------------------------- */
-
-#pragma once
-
-#include <cstdint>
-#include <cstring>
-
-#define kHeFSVersion (0x0101)
-#define kHeFSMagic " HeFS"
-#define kHeFSMagicLen (8)
-
-#define kHeFSFileNameLen (256U)
-#define kHeFSPartNameLen (128U)
-
-#define kHeFSDefaultVolumeName u8"HeFS Volume"
-
-namespace mkfs::hefs {
-
-// Drive kinds
-enum {
- kHeFSHardDrive = 0xC0, // Hard Drive
- kHeFSSolidStateDrive = 0xC1, // Solid State Drive
- kHeFSOpticalDrive = 0x0C, // Blu-Ray/DVD
- kHeFSMassStorageDevice = 0xCC, // USB
- kHeFSScsiDrive = 0xC4, // SCSI Hard Drive
- kHeFSFlashDrive = 0xC6,
- kHeFSUnknown = 0xFF, // Unknown device.
- kHeFSDriveCount = 8,
-};
-
-// Disk status
-enum {
- kHeFSStatusUnlocked = 0x18,
- kHeFSStatusLocked,
- kHeFSStatusError,
- kHeFSStatusInvalid,
- kHeFSStatusCount,
-};
-
-// Encodings
-enum {
- kHeFSEncodingFlagsUTF8 = 0x50,
- kHeFSEncodingFlagsUTF16,
- kHeFSEncodingFlagsUTF32,
- kHeFSEncodingFlagsUTF16BE,
- kHeFSEncodingFlagsUTF16LE,
- kHeFSEncodingFlagsUTF32BE,
- kHeFSEncodingFlagsUTF32LE,
- kHeFSEncodingFlagsUTF8BE,
- kHeFSEncodingFlagsUTF8LE,
- kHeFSEncodingFlagsBinary,
- kHeFSEncodingFlagsCount = 11,
- kHeFSFlagsNone = 0,
- kHeFSFlagsReadOnly = 0x100,
- kHeFSFlagsHidden,
- kHeFSFlagsSystem,
- kHeFSFlagsArchive,
- kHeFSFlagsDevice,
- kHeFSFlagsCount = 7
-};
-// Time type
-using ATime = std::uint64_t;
-
-// File kinds
-inline constexpr uint16_t kHeFSFileKindRegular = 0x00;
-inline constexpr uint16_t kHeFSFileKindDirectory = 0x01;
-inline constexpr uint16_t kHeFSFileKindBlock = 0x02;
-inline constexpr uint16_t kHeFSFileKindCharacter = 0x03;
-inline constexpr uint16_t kHeFSFileKindFIFO = 0x04;
-inline constexpr uint16_t kHeFSFileKindSocket = 0x05;
-inline constexpr uint16_t kHeFSFileKindSymbolicLink = 0x06;
-inline constexpr uint16_t kHeFSFileKindUnknown = 0x07;
-inline constexpr uint16_t kHeFSFileKindCount = 0x08;
-
-// Red-black tree colors
-enum {
- kHeFSInvalidColor = 0,
- kHeFSRed = 100,
- kHeFSBlack,
- kHeFSColorCount,
-};
-
-// Time constants
-inline constexpr ATime kHeFSTimeInvalid = 0x0000000000000000;
-inline constexpr ATime kHeFSTimeMax = 0xFFFFFFFFFFFFFFFF - 1;
-
-// Boot Node
-struct __attribute__((packed)) BootNode {
- char magic[kHeFSMagicLen]{};
- char8_t volumeName[kHeFSPartNameLen]{};
- std::uint32_t version{};
- std::uint64_t badSectors{};
- std::uint64_t sectorCount{};
- std::uint64_t sectorSize{};
- std::uint32_t checksum{};
- std::uint8_t diskKind{};
- std::uint8_t encoding{};
- std::uint64_t startIND{};
- std::uint64_t endIND{};
- std::uint64_t indCount{};
- std::uint64_t diskSize{};
- std::uint16_t diskStatus{};
- std::uint16_t diskFlags{};
- std::uint16_t vid{};
- std::uint64_t startIN{};
- std::uint64_t endIN{};
- std::uint64_t startBlock{};
- std::uint64_t endBlock{};
- char pad[272]{};
-};
-} // namespace mkfs::hefs