diff options
| -rw-r--r-- | dev/ZBAKit/BootKit/BootKit.h | 8 | ||||
| -rw-r--r-- | dev/ZBAKit/src/HEL/AMD64/BootMain.cc | 10 | ||||
| -rw-r--r-- | dev/ZKAKit/src/KernelMain.cc | 64 |
3 files changed, 17 insertions, 65 deletions
diff --git a/dev/ZBAKit/BootKit/BootKit.h b/dev/ZBAKit/BootKit/BootKit.h index 7741e713..ea1ebfb8 100644 --- a/dev/ZBAKit/BootKit/BootKit.h +++ b/dev/ZBAKit/BootKit/BootKit.h @@ -311,15 +311,15 @@ namespace Boot return false; /// sanity check /// convert the sector into something that the disk understands. - SizeT sectorSz = BootDev::kSectorSize; + SizeT sectorSz = sizeof(NFS_ROOT_PARTITION_BLOCK); /// @note A catalog roughly equal to a sector. - constexpr auto cMinimumDiskSize = kNeFSMinimumDiskSize; // at minimum. + constexpr auto kMinimumDiskSize = kNeFSMinimumDiskSize; // at minimum. /// @note also look at EPM headers, for free part blocks. - if (fDiskDev.GetDiskSize() < cMinimumDiskSize) + if (fDiskDev.GetDiskSize() < kMinimumDiskSize) { EFI::ThrowError(L"Drive-Too-Tiny", L"Can't format a New Filesystem partition here."); return false; @@ -328,7 +328,7 @@ namespace Boot NFS_ROOT_PARTITION_BLOCK partBlock{0}; CopyMem(partBlock.Ident, kNeFSIdent, kNeFSIdentLen - 1); - CopyMem(partBlock.PartitionName, partName, strlen(partName)); + CopyMem(partBlock.PartitionName, partName, StrLen(partName)); partBlock.Version = kNeFSVersionInteger; partBlock.CatalogCount = blobCount; diff --git a/dev/ZBAKit/src/HEL/AMD64/BootMain.cc b/dev/ZBAKit/src/HEL/AMD64/BootMain.cc index 90d6df05..26348ac2 100644 --- a/dev/ZBAKit/src/HEL/AMD64/BootMain.cc +++ b/dev/ZBAKit/src/HEL/AMD64/BootMain.cc @@ -156,7 +156,7 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle, #ifdef ZBA_USE_FB CGDrawString("ZBA (c) Theater Quality Inc.", 10, 10, RGB(0xFF, 0xFF, 0xFF)); - CGDrawString((cnt_enabled > 1) ? "SMP detected." : "Single processor configuration detected.", 20, 10, RGB(0xFF, 0xFF, 0xFF)); + CGDrawString((cnt_enabled > 1) ? "Multi processor configuration detected." : "Single processor configuration detected.", 20, 10, RGB(0xFF, 0xFF, 0xFF)); #endif // ZBA_USE_FB handover_hdr->f_HardwareTables.f_MultiProcessingEnabled = cnt_enabled > 1; @@ -181,13 +181,7 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle, root.fKind = kNeFSCatalogKindDir; - partition_factory.Format("FileSystem (A:)", &root, 1); - - rt_reset_hardware(); - } - else - { - CGDrawString("Booting from EPM disk...", 30, 10, RGB(0xFF, 0xFF, 0xFF)); + partition_factory.Format("FileSystem (A:)\0", &root, 1); } #endif // ZKA_AUTO_FORMAT diff --git a/dev/ZKAKit/src/KernelMain.cc b/dev/ZKAKit/src/KernelMain.cc index 07821ee7..48555423 100644 --- a/dev/ZKAKit/src/KernelMain.cc +++ b/dev/ZKAKit/src/KernelMain.cc @@ -42,35 +42,31 @@ namespace Kernel::Detail if (fNeFS && fNeFS->GetParser()) { - constexpr auto kFolderInfo = "META-INF"; + constexpr auto kFolderInfo = "META-XML"; const auto kFolderCount = 7; const char* kFolderStr[kFolderCount] = { "/Boot/", "/System/", "/Support/", "/Applications/", "/Users/", "/Library/", "/Mount/"}; - for (Kernel::SizeT dirIndx = 0UL; dirIndx < kFolderCount; ++dirIndx) + for (Kernel::SizeT dir_index = 0UL; dir_index < kFolderCount; ++dir_index) { - auto catalog_folder = fNeFS->GetParser()->GetCatalog(kFolderStr[dirIndx]); + auto catalog_folder = fNeFS->GetParser()->GetCatalog(kFolderStr[dir_index]); if (catalog_folder) { - kcout << "newoskrnl: Already exists.\r"; - - CG::CGDrawStringToWnd(kKernelWnd, "ZkaOS: Catalog already exists...", 10 + (10 * (dirIndx + 1)), 10, RGB(0, 0, 0)); - delete catalog_folder; + catalog_folder = nullptr; + continue; } - catalog_folder = fNeFS->GetParser()->CreateCatalog(kFolderStr[dirIndx], 0, + catalog_folder = fNeFS->GetParser()->CreateCatalog(kFolderStr[dir_index], 0, kNeFSCatalogKindDir); NFS_FORK_STRUCT fork_folder{0}; - const Kernel::Char* kSrcFolderName = kFolderInfo; - - Kernel::rt_copy_memory((Kernel::VoidPtr)(kSrcFolderName), fork_folder.ForkName, - Kernel::rt_string_len(kSrcFolderName)); + Kernel::rt_copy_memory((Kernel::VoidPtr)(kFolderInfo), fork_folder.ForkName, + Kernel::rt_string_len(kFolderInfo)); Kernel::rt_copy_memory((Kernel::VoidPtr)(catalog_folder->Name), fork_folder.CatalogName, @@ -81,14 +77,14 @@ namespace Kernel::Detail fork_folder.ResourceKind = Kernel::kNeFSRsrcForkKind; fork_folder.Kind = Kernel::kNeFSDataForkKind; - Kernel::KString folder_metadata(kNeFSSectorSz); + Kernel::KString folder_metadata(2048); folder_metadata += "<!properties/>\r<p>Kind: folder</p>\r<p>Created by: system</p>\r<p>Edited by: " "system</p>\r<p>Volume Type: Zeta</p>\r"; folder_metadata += "<p>Path: "; - folder_metadata += kFolderStr[dirIndx]; + folder_metadata += kFolderStr[dir_index]; folder_metadata += "</p>\r"; const Kernel::SizeT kMetaDataSz = kNeFSSectorSz; @@ -99,48 +95,10 @@ namespace Kernel::Detail catalog_folder, true, (Kernel::VoidPtr)(folder_metadata.CData()), kMetaDataSz, kFolderInfo); - CG::CGDrawStringToWnd(kKernelWnd, "ZkaOS: Catalog has been created...", 10 + (10 * (dirIndx + 1)), 10, RGB(0, 0, 0)); - delete catalog_folder; + catalog_folder = nullptr; } } - - const auto kSysPage = "/System/syspage.sys"; - - NFS_CATALOG_STRUCT* catalogDisk = - this->fNeFS->GetParser()->GetCatalog(kSysPage); - - const Kernel::Char* kSrcFolderName = "8K_SYS_PAGE_KERNEL"; - - if (catalogDisk) - { - delete catalogDisk; - } - else - { - catalogDisk = - (NFS_CATALOG_STRUCT*)this->Leak()->CreateAlias(kSysPage); - - NFS_FORK_STRUCT theDiskFork{0}; - - Kernel::rt_copy_memory((Kernel::VoidPtr)(kSrcFolderName), theDiskFork.ForkName, - Kernel::rt_string_len(kSrcFolderName)); - - Kernel::rt_copy_memory((Kernel::VoidPtr)(catalogDisk->Name), - theDiskFork.CatalogName, - Kernel::rt_string_len(catalogDisk->Name)); - - Kernel::Size sz_hdr = kNeFSForkSize; - - theDiskFork.DataSize = sz_hdr; - theDiskFork.ResourceId = kNeFSCatalogKindExecutable | kNeFSCatalogKindPage; - theDiskFork.ResourceKind = Kernel::kNeFSDataForkKind; - theDiskFork.Kind = Kernel::kNeFSDataForkKind; - - fNeFS->GetParser()->CreateFork(catalogDisk, theDiskFork); - - delete catalogDisk; - } } ~FilesystemInstaller() = default; |
