summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/src
diff options
context:
space:
mode:
Diffstat (limited to 'dev/kernel/src')
-rw-r--r--dev/kernel/src/FS/HeFS+FileSystemParser.cc10
-rw-r--r--dev/kernel/src/FS/NeFS+FileSystemParser.cc23
2 files changed, 7 insertions, 26 deletions
diff --git a/dev/kernel/src/FS/HeFS+FileSystemParser.cc b/dev/kernel/src/FS/HeFS+FileSystemParser.cc
index 70a31154..d4aa1ee3 100644
--- a/dev/kernel/src/FS/HeFS+FileSystemParser.cc
+++ b/dev/kernel/src/FS/HeFS+FileSystemParser.cc
@@ -742,7 +742,7 @@ namespace Detail {
/// real-time.
/// @note This is certainly take longer to format a disk with it, but worth-it in the long run.
-namespace Kernel::HeFS {
+namespace Kernel {
/// @brief Make a EPM+HeFS mnt out of the disk.
/// @param mnt The mnt to write on.
/// @return If it was sucessful, see err_local_get().
@@ -1142,7 +1142,7 @@ STATIC DriveTrait kMountPoint;
/// @brief Initialize the HeFS filesystem.
/// @return To check its status, see err_local_get().
-Boolean fs_init_hefs(Void) {
+Boolean HeFS::fs_init_hefs(Void) noexcept {
kout << "Creating HeFS disk...\r";
kMountPoint = io_construct_main_drive();
@@ -1152,10 +1152,8 @@ Boolean fs_init_hefs(Void) {
HeFileSystemParser parser;
- parser.Format(&kMountPoint, kHeFSEncodingFlagsUTF8, kHeFSDefaultVolumeName);
-
- return YES;
+ return parser.Format(&kMountPoint, kHeFSEncodingFlagsUTF8, kHeFSDefaultVolumeName);
}
-} // namespace Kernel::HeFS
+} // namespace Kernel
#endif // ifdef __FSKIT_INCLUDES_HEFS__
diff --git a/dev/kernel/src/FS/NeFS+FileSystemParser.cc b/dev/kernel/src/FS/NeFS+FileSystemParser.cc
index 0b818bbb..49673b59 100644
--- a/dev/kernel/src/FS/NeFS+FileSystemParser.cc
+++ b/dev/kernel/src/FS/NeFS+FileSystemParser.cc
@@ -444,6 +444,8 @@ bool NeFileSystemParser::Format(_Input _Output DriveTrait* drive, _Input const I
NEFS_ROOT_PARTITION_BLOCK* part_block = (NEFS_ROOT_PARTITION_BLOCK*) fs_buf;
+ if (rt_string_cmp(kNeFSIdent, part_block->Ident, kNeFSIdentLen) == 0) return true;
+
const auto kNeFSUntitledHD = part_name;
rt_copy_memory((VoidPtr) kNeFSIdent, (VoidPtr) part_block->Ident, kNeFSIdentLen);
@@ -463,6 +465,7 @@ bool NeFileSystemParser::Format(_Input _Output DriveTrait* drive, _Input const I
part_block->FreeSectors = sectorCount / sizeof(NEFS_CATALOG_STRUCT) - 1;
part_block->SectorCount = sectorCount;
part_block->DiskSize = diskSize;
+ part_block->SectorSize = drive->fSectorSz;
part_block->FreeCatalog = sectorCount / sizeof(NEFS_CATALOG_STRUCT) - 1;
drive->fPacket.fPacketContent = fs_buf;
@@ -479,26 +482,6 @@ bool NeFileSystemParser::Format(_Input _Output DriveTrait* drive, _Input const I
(Void)(kout << "Free sectors: " << hex_number(part_block->FreeSectors) << kendl);
(Void)(kout << "Sector size: " << hex_number(part_block->SectorSize) << kendl);
- NEFS_CATALOG_STRUCT root{};
-
- rt_set_memory(&root, 0, sizeof(NEFS_CATALOG_STRUCT));
-
- root.PrevSibling = part_block->StartCatalog;
- root.NextSibling = 0UL;
-
- root.Kind = kNeFSCatalogKindDir;
- root.Flags |= kNeFSFlagCreated;
- root.CatalogFlags |= kNeFSStatusUnlocked;
-
- root.Name[0] = '/';
- root.Name[1] = 0;
-
- drive->fPacket.fPacketLba = part_block->StartCatalog;
- drive->fPacket.fPacketSize = sizeof(NEFS_CATALOG_STRUCT);
- drive->fPacket.fPacketContent = &root;
-
- drive->fOutput(drive->fPacket);
-
return true;
}