summaryrefslogtreecommitdiffhomepage
path: root/Private/NewBoot/BootKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-04-29 16:59:14 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-04-29 16:59:14 +0200
commita21859d722597e4eb1216a4a48d08d8f2659b514 (patch)
tree84b30c251e1b444873f4723ecab047689526e9f0 /Private/NewBoot/BootKit
parent461fe537aa1f9533bfa5c2504cb84843b9eac501 (diff)
MHR-18: Fixes and improvements regarding NewFS.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Private/NewBoot/BootKit')
-rw-r--r--Private/NewBoot/BootKit/BootKit.hxx8
1 files changed, 5 insertions, 3 deletions
diff --git a/Private/NewBoot/BootKit/BootKit.hxx b/Private/NewBoot/BootKit/BootKit.hxx
index 47a8c9a2..ca6f56ac 100644
--- a/Private/NewBoot/BootKit/BootKit.hxx
+++ b/Private/NewBoot/BootKit/BootKit.hxx
@@ -246,7 +246,7 @@ private:
/// @param fileBlobs the blobs.
/// @param blobCount the number of blobs to write.
/// @param partBlock the NewFS partition block.
- Boolean FormatCatalog(BFileDescriptor* fileBlobs, SizeT blobCount,
+ Boolean WriteRootCatalog(BFileDescriptor* fileBlobs, SizeT blobCount,
NewPartitionBlock& partBlock) {
if (partBlock.SectorSize != BootDev::kSectorSize) return false;
@@ -381,13 +381,15 @@ inline Boolean BDiskFormatFactory<BootDev>::Format(const char* partName,
partBlock->CatalogCount = blobCount;
partBlock->Kind = kNewFSHardDrive;
partBlock->SectorSize = sectorSz;
- partBlock->FreeCatalog = fDiskDev.GetSectorsCount();
+ partBlock->FreeCatalog = fDiskDev.GetSectorsCount() / sizeof(NewCatalog);
partBlock->SectorCount = fDiskDev.GetSectorsCount();
partBlock->FreeSectors = fDiskDev.GetSectorsCount();
partBlock->StartCatalog = kNewFSCatalogStartAddress;
partBlock->DiskSize = fDiskDev.GetDiskSize();
+ partBlock->Flags |= kNewFSPartitionTypeBoot;
- if (this->FormatCatalog(fileBlobs, blobCount, *partBlock)) {
+ /// if we can write a root catalog, then write the partition block.
+ if (this->WriteRootCatalog(fileBlobs, blobCount, *partBlock)) {
fDiskDev.Leak().mBase = kNewFSAddressAsLba;
fDiskDev.Leak().mSize = sectorSz;