From d10241467cc3f77988927a48a4384f63297465dd Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Fri, 26 Apr 2024 20:42:54 +0200 Subject: MHR-18: Test and improve filesystem. - Disk driver for PIO divide by sector size by default. - Breaking changes in NewFS as well, no more mess in forks! Either a data or resource fork. - Also implemented disk size and sector count better for disk drivers as a mandatory function. Signed-off-by: Amlal El Mahrouss --- Private/NewBoot/BootKit/BootKit.hxx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'Private/NewBoot/BootKit/BootKit.hxx') diff --git a/Private/NewBoot/BootKit/BootKit.hxx b/Private/NewBoot/BootKit/BootKit.hxx index e2e371dd..26c6c755 100644 --- a/Private/NewBoot/BootKit/BootKit.hxx +++ b/Private/NewBoot/BootKit/BootKit.hxx @@ -268,8 +268,11 @@ private: catalogKind->Kind = blob->fKind; /// Allocate fork for blob. - catalogKind->FirstFork = (startLba + sizeof(NewCatalog)); - catalogKind->LastFork = catalogKind->FirstFork; + if (catalogKind->Kind == kNewFSDataForkKind) { + catalogKind->DataFork = (startLba + sizeof(NewCatalog)); + } else { + catalogKind->ResourceFork = (startLba + sizeof(NewCatalog)); + } NewFork* forkKind = new NewFork(); memset(forkKind, 0, sizeof(NewFork)); @@ -284,8 +287,8 @@ private: forkKind->ResourceKind = 0; /// We're the only fork here. - forkKind->NextSibling = catalogKind->FirstFork; - forkKind->PreviousSibling = catalogKind->FirstFork; + forkKind->NextSibling = forkKind->Kind == kNewFSDataForkKind ? catalogKind->DataFork : catalogKind->ResourceFork; + forkKind->PreviousSibling = kNewFSDataForkKind ? catalogKind->DataFork : catalogKind->ResourceFork; forkKind->DataOffset = (startLba + sizeof(NewCatalog) + sizeof(NewFork)); forkKind->DataSize = blob->fBlobSz; -- cgit v1.2.3