diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-04-29 16:59:14 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-04-29 16:59:14 +0200 |
| commit | a21859d722597e4eb1216a4a48d08d8f2659b514 (patch) | |
| tree | 84b30c251e1b444873f4723ecab047689526e9f0 /Private/NewBoot/BootKit | |
| parent | 461fe537aa1f9533bfa5c2504cb84843b9eac501 (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.hxx | 8 |
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; |
