From 4be14ab92ed6456e6d5bec5777fe7df5738112e7 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Fri, 3 Jan 2025 12:07:39 +0100 Subject: FIX: Fix implementation of the HFS traversal algorithm. FIX: Fix SysChk, by removing unused handover header in code. Signed-off-by: Amlal El Mahrouss --- dev/Boot/BootKit/BootKit.h | 23 +++++------------------ dev/Boot/Mod/SysChk/Module.cc | 4 ---- dev/Boot/amd64-desktop.make | 2 +- dev/Boot/src/BootThread.cc | 4 ++-- dev/Boot/src/HEL/AMD64/BootMain.cc | 2 +- 5 files changed, 9 insertions(+), 26 deletions(-) (limited to 'dev/Boot') diff --git a/dev/Boot/BootKit/BootKit.h b/dev/Boot/BootKit/BootKit.h index 095fb0ac..09313830 100644 --- a/dev/Boot/BootKit/BootKit.h +++ b/dev/Boot/BootKit/BootKit.h @@ -279,8 +279,8 @@ namespace Boot /// Fill catalog kind. catalogKind.Kind = blob->fKind; - catalogKind.Flags = kNeFSFlagCreated; - catalogKind.Status = kNeFSStatusUnlocked; + catalogKind.Flags |= kNeFSFlagCreated; + catalogKind.CatalogFlags = kNeFSStatusUnlocked; --partBlock.FreeCatalog; --partBlock.FreeSectors; @@ -372,22 +372,9 @@ namespace Boot fDiskDev.Write((Char*)&epm_boot, sizeof(BOOT_BLOCK_STRUCT)); - /// if we can write a root catalog, then write the partition block. - if (this->WriteRootCatalog(blob_list, blob_cnt, partBlock)) - { - BTextWriter writer; - writer.Write(L"BootZ: Drive has been formatted Successfully.\r"); - - return true; - } - else - { - fb_init(); - FBDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_WIDTH, ZKA_NO_DISK_HEIGHT, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2); - - EFI::ThrowError(L"Filesystem-Failure-Part", L"Filesystem couldn't be partitioned, this drive cannot be formatted as an explicit partition map."); - } + BTextWriter writer; + writer.Write(L"BootZ: Drive has been formatted Successfully.\r"); - return false; + return YES; } } // namespace Boot diff --git a/dev/Boot/Mod/SysChk/Module.cc b/dev/Boot/Mod/SysChk/Module.cc index 2305a3e4..4073ec11 100644 --- a/dev/Boot/Mod/SysChk/Module.cc +++ b/dev/Boot/Mod/SysChk/Module.cc @@ -23,10 +23,6 @@ EXTERN_C Int32 ModuleMain(Kernel::HEL::BootInfoHeader* handover) { - if (!handover) - return kEfiFail; - Boot::BDiskFormatFactory partition_factory; - return (!partition_factory.IsPartitionValid()) ? kEfiFail : kEfiOk; } diff --git a/dev/Boot/amd64-desktop.make b/dev/Boot/amd64-desktop.make index 09ebf890..d56d5d78 100644 --- a/dev/Boot/amd64-desktop.make +++ b/dev/Boot/amd64-desktop.make @@ -32,7 +32,7 @@ IMG_3=epm-master-2.img EMU_FLAGS=-net none -smp 1 -m 8G -M q35 \ -bios $(BIOS) -drive \ file=fat:rw:src/Root/,index=2,format=raw \ - -monitor stdio + -serial stdio LD_FLAGS=-e Main --subsystem=10 diff --git a/dev/Boot/src/BootThread.cc b/dev/Boot/src/BootThread.cc index 782483f9..e0cf11d7 100644 --- a/dev/Boot/src/BootThread.cc +++ b/dev/Boot/src/BootThread.cc @@ -22,7 +22,7 @@ EXTERN EfiBootServices* BS; namespace Boot { - EXTERN_C Void rt_jump_to_address(VoidPtr code, HEL::BootInfoHeader* handover, UInt8* stack); + EXTERN_C Int32 rt_jump_to_address(VoidPtr code, HEL::BootInfoHeader* handover, UInt8* stack); BootThread::BootThread(VoidPtr blob) : fBlob(blob), fStartAddress(nullptr) @@ -185,7 +185,7 @@ namespace Boot if (own_stack) { - rt_jump_to_address(fStartAddress, fHandover, &fStack[mib_cast(8) - 1]); + return rt_jump_to_address(fStartAddress, fHandover, &fStack[mib_cast(8) - 1]); } else { diff --git a/dev/Boot/src/HEL/AMD64/BootMain.cc b/dev/Boot/src/HEL/AMD64/BootMain.cc index 6aa5a0d9..6744438f 100644 --- a/dev/Boot/src/HEL/AMD64/BootMain.cc +++ b/dev/Boot/src/HEL/AMD64/BootMain.cc @@ -274,7 +274,7 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr image_handle, if (reader_kernel.Blob()) { kernel_thread = new Boot::BootThread(reader_kernel.Blob()); - kernel_thread->SetName("BootZ: ZkaOS Kernel."); + kernel_thread->SetName("BootZ: MicroKernel."); handover_hdr->f_KernelImage = reader_kernel.Blob(); } -- cgit v1.2.3