summaryrefslogtreecommitdiffhomepage
path: root/dev/Boot
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-01-05 12:19:58 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-01-05 12:19:58 +0100
commite0633b442140d49e08af6759bd07c89e16ef0e2a (patch)
treec83a84f5df6b3f5d486a53e19cc8ad55cd082587 /dev/Boot
parent5903f0c8eca69916c3acffcbe0a20a9af36fdf27 (diff)
ADD: Ran format command and refactors too.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Boot')
-rw-r--r--dev/Boot/BootKit/BootKit.h64
-rw-r--r--dev/Boot/BootKit/BootThread.h (renamed from dev/Boot/BootKit/Thread.h)4
-rw-r--r--dev/Boot/Mod/SysChk/Module.cc4
-rw-r--r--dev/Boot/amd64-desktop.make2
-rw-r--r--dev/Boot/arm64-desktop.make2
-rw-r--r--dev/Boot/arm64-mobile.make2
-rw-r--r--dev/Boot/src/BootThread.cc2
-rw-r--r--dev/Boot/src/HEL/AMD64/EFIBootStartup.cc2
-rw-r--r--dev/Boot/src/HEL/ARM64/EFIBootStartup.cc2
9 files changed, 51 insertions, 33 deletions
diff --git a/dev/Boot/BootKit/BootKit.h b/dev/Boot/BootKit/BootKit.h
index 610cc3e9..646cf72f 100644
--- a/dev/Boot/BootKit/BootKit.h
+++ b/dev/Boot/BootKit/BootKit.h
@@ -73,6 +73,13 @@ namespace Boot
BTextWriter& WriteCharacter(CharacterTypeUTF16 c);
BTextWriter& Write(const UChar* str);
+ template <typename T>
+ BTextWriter& operator<<(T elem)
+ {
+ this->Write(elem);
+ return *this;
+ }
+
public:
explicit BTextWriter() = default;
~BTextWriter() = default;
@@ -263,11 +270,11 @@ namespace Boot
/// @brief Write all of the requested catalogs into the filesystem.
/// @param blob_list the blobs.
/// @param blob_cnt the number of blobs to write.
- /// @param partBlock the NeFS partition block.
- Boolean WriteCatalogList(BFileDescriptor* blob_list, SizeT blob_cnt, NFS_ROOT_PARTITION_BLOCK& partBlock)
+ /// @param part the NeFS partition block.
+ Boolean WriteCatalogList(BFileDescriptor* blob_list, SizeT blob_cnt, NFS_ROOT_PARTITION_BLOCK& part)
{
BFileDescriptor* blob = blob_list;
- Lba startLba = partBlock.StartCatalog;
+ Lba startLba = part.StartCatalog;
BTextWriter writer;
NFS_CATALOG_STRUCT catalogKind{0};
@@ -278,12 +285,12 @@ namespace Boot
catalogKind.NextSibling = (startLba + sizeof(NFS_CATALOG_STRUCT) * cNeFSCatalogPadding);
/// Fill catalog kind.
- catalogKind.Kind = blob->fKind;
- catalogKind.Flags |= kNeFSFlagCreated;
+ catalogKind.Kind = blob->fKind;
+ catalogKind.Flags |= kNeFSFlagCreated;
catalogKind.CatalogFlags = kNeFSStatusUnlocked;
- --partBlock.FreeCatalog;
- --partBlock.FreeSectors;
+ --part.FreeCatalog;
+ --part.FreeSectors;
CopyMem(catalogKind.Name, blob->fFileName, StrLen(blob->fFileName));
@@ -330,27 +337,37 @@ namespace Boot
return false;
}
- NFS_ROOT_PARTITION_BLOCK partBlock{0};
+ NFS_ROOT_PARTITION_BLOCK part{0};
- CopyMem(partBlock.Ident, kNeFSIdent, kNeFSIdentLen - 1);
- CopyMem(partBlock.PartitionName, part_name, StrLen(part_name));
+ CopyMem(part.Ident, kNeFSIdent, kNeFSIdentLen - 1);
+ CopyMem(part.PartitionName, part_name, StrLen(part_name));
- partBlock.Version = kNeFSVersionInteger;
- partBlock.CatalogCount = blob_cnt;
- partBlock.Kind = kNeFSHardDrive;
- partBlock.SectorSize = sizeof(NFS_ROOT_PARTITION_BLOCK);
- partBlock.FreeCatalog = fDiskDev.GetSectorsCount() / sizeof(NFS_CATALOG_STRUCT);
- partBlock.SectorCount = fDiskDev.GetSectorsCount();
- partBlock.FreeSectors = fDiskDev.GetSectorsCount();
- partBlock.StartCatalog = kNeFSCatalogStartAddress;
- partBlock.DiskSize = fDiskDev.GetDiskSize();
- partBlock.Flags = kNeFSPartitionTypeBoot | kNeFSPartitionTypeStandard;
+ part.Version = kNeFSVersionInteger;
+ part.CatalogCount = blob_cnt;
+ part.Kind = kNeFSHardDrive;
+ part.SectorSize = sizeof(NFS_ROOT_PARTITION_BLOCK);
+ part.FreeCatalog = fDiskDev.GetSectorsCount() / sizeof(NFS_CATALOG_STRUCT);
+ part.SectorCount = fDiskDev.GetSectorsCount();
+ part.FreeSectors = fDiskDev.GetSectorsCount();
+ part.StartCatalog = kNeFSCatalogStartAddress;
+ part.DiskSize = fDiskDev.GetDiskSize();
+ part.Flags = kNeFSPartitionTypeBoot | kNeFSPartitionTypeStandard;
fDiskDev.Leak().mBase = kNeFSRootCatalogStartAddress;
fDiskDev.Leak().mSize = sizeof(NFS_ROOT_PARTITION_BLOCK);
- fDiskDev.Write((Char*)&partBlock, sizeof(NFS_ROOT_PARTITION_BLOCK));
+ fDiskDev.Write((Char*)&part, sizeof(NFS_ROOT_PARTITION_BLOCK));
+
+ BTextWriter writer;
+
+ writer << "partition name: " << part.PartitionName << "\n";
+ writer << "start: " << part.StartCatalog << "\n";
+ writer << "number of catalogs: " << part.CatalogCount << "\n";
+ writer << "free catalog: " << part.FreeCatalog << "\n";
+ writer << "free sectors: " << part.FreeSectors << "\n";
+ writer << "sector size: " << part.SectorSize << "\n";
+#ifdef BOOTZ_EPM_SUPPORT
BOOT_BLOCK_STRUCT epm_boot{0};
const auto kFsName = "NeFS";
@@ -360,9 +377,9 @@ namespace Boot
epm_boot.FsVersion = kNeFSVersionInteger;
epm_boot.LbaStart = kNeFSRootCatalogStartAddress;
- epm_boot.SectorSz = partBlock.SectorSize;
+ epm_boot.SectorSz = part.SectorSize;
epm_boot.Kind = kEPMZkaOS;
- epm_boot.NumBlocks = partBlock.CatalogCount;
+ epm_boot.NumBlocks = part.CatalogCount;
CopyMem(epm_boot.Name, reinterpret_cast<VoidPtr>(const_cast<Char*>(kBlockName)), StrLen(kBlockName));
CopyMem(epm_boot.Magic, reinterpret_cast<VoidPtr>(const_cast<Char*>(kEPMMagic)), StrLen(kEPMMagic));
@@ -374,6 +391,7 @@ namespace Boot
BTextWriter writer;
writer.Write(L"BootZ: Drive has been formatted Successfully.\r");
+#endif
return YES;
}
diff --git a/dev/Boot/BootKit/Thread.h b/dev/Boot/BootKit/BootThread.h
index 2f6e5b32..e15f7365 100644
--- a/dev/Boot/BootKit/Thread.h
+++ b/dev/Boot/BootKit/BootThread.h
@@ -21,12 +21,12 @@ namespace Boot
{
public:
explicit BootThread() = delete;
- ~BootThread() = default;
+ ~BootThread() = default;
explicit BootThread(Kernel::VoidPtr blob);
BootThread& operator=(const BootThread&) = default;
- BootThread(const BootThread&) = default;
+ BootThread(const BootThread&) = default;
Int32 Start(HEL::BootInfoHeader* handover, BOOL is_own_stack);
void SetName(const char* name);
diff --git a/dev/Boot/Mod/SysChk/Module.cc b/dev/Boot/Mod/SysChk/Module.cc
index 09a7a718..c5edb161 100644
--- a/dev/Boot/Mod/SysChk/Module.cc
+++ b/dev/Boot/Mod/SysChk/Module.cc
@@ -18,7 +18,7 @@
#include <KernelKit/PEF.h>
#include <NewKit/Macros.h>
#include <NewKit/Ref.h>
-#include <BootKit/Thread.h>
+#include <BootKit/BootThread.h>
#include <Mod/GfxMgr/FBMgr.h>
EXTERN_C Int32 ModuleMain(Kernel::HEL::BootInfoHeader* handover)
@@ -27,6 +27,6 @@ EXTERN_C Int32 ModuleMain(Kernel::HEL::BootInfoHeader* handover)
if (partition_factory.IsPartitionValid())
return kEfiOk;
-
+
return kEfiFail;
}
diff --git a/dev/Boot/amd64-desktop.make b/dev/Boot/amd64-desktop.make
index e1d6b113..5b1b1096 100644
--- a/dev/Boot/amd64-desktop.make
+++ b/dev/Boot/amd64-desktop.make
@@ -45,7 +45,7 @@ REM_FLAG=-f
FLAG_ASM=-f win64
FLAG_GNU=-fshort-wchar -D__EFI_x86_64__ -mno-red-zone -D__MINOSKRNL__ -D__ZBAOSLDR__ \
-DEFI_FUNCTION_WRAPPER -I./ -I../Kernel -I../ -c -nostdlib -fno-rtti -fno-exceptions \
- -std=c++20 -D__HAVE_ZKA_APIS__ -DZBA_USE_FB -D__ZKA_AMD64__ -D__ZKA__ -DZKA_AUTO_FORMAT
+ -std=c++20 -DBOOTZ_GPT_SUPPORT -D__HAVE_ZKA_APIS__ -DZBA_USE_FB -D__ZKA_AMD64__ -D__ZKA__ -DZKA_AUTO_FORMAT
BOOTLOADER=zbaosldr.exe
KERNEL=minoskrnl.exe
diff --git a/dev/Boot/arm64-desktop.make b/dev/Boot/arm64-desktop.make
index da4fa237..0594a1cf 100644
--- a/dev/Boot/arm64-desktop.make
+++ b/dev/Boot/arm64-desktop.make
@@ -46,7 +46,7 @@ REM_FLAG=-f
FLAG_ASM=-f win64
FLAG_GNU=-fshort-wchar -c -ffreestanding -MMD -mno-red-zone -D__ZKA_ARM64__ -fno-rtti -fno-exceptions -I./ \
-target aarch64-unknown-windows \
- -std=c++20 -D__FSKIT_USE_NEFS__ -D__BOOTLDR_STANDALONE__ -D__MINOSKRNL__ -D__ZBAOSLDR__ -D__HAVE_ZKA_APIS__ -D__ZKA__ -I../ -I../Kernel
+ -std=c++20 -DBOOTZ_EPM_SUPPORT -D__FSKIT_USE_NEFS__ -D__BOOTLDR_STANDALONE__ -D__MINOSKRNL__ -D__ZBAOSLDR__ -D__HAVE_ZKA_APIS__ -D__ZKA__ -I../ -I../Kernel
BOOT_LOADER=zbaosldr.exe
KERNEL=minoskrnl.exe
diff --git a/dev/Boot/arm64-mobile.make b/dev/Boot/arm64-mobile.make
index 1fe03766..e001dcee 100644
--- a/dev/Boot/arm64-mobile.make
+++ b/dev/Boot/arm64-mobile.make
@@ -46,7 +46,7 @@ REM_FLAG=-f
FLAG_ASM=-f win64
FLAG_GNU=-fshort-wchar -c -ffreestanding -MMD -mno-red-zone -D__ZKA_ARM64__ -fno-rtti -fno-exceptions -I./ \
-target aarch64-unknown-windows \
- -std=c++20 -DkExpectedWidth=320 -DkExpectedHeight=480 -D__FSKIT_USE_NEFS__ -D__BOOTLDR_STANDALONE__ -D__MINOSKRNL__ -D__ZBAOSLDR__ -D__HAVE_ZKA_APIS__ -D__ZKA__ -I../ -I../Kernel
+ -std=c++20 -DBOOTZ_EPM_SUPPORT -DkExpectedWidth=320 -DkExpectedHeight=480 -D__FSKIT_USE_NEFS__ -D__BOOTLDR_STANDALONE__ -D__MINOSKRNL__ -D__ZBAOSLDR__ -D__HAVE_ZKA_APIS__ -D__ZKA__ -I../ -I../Kernel
BOOT_LOADER=zbaosldr.exe
KERNEL=minoskrnl.exe
diff --git a/dev/Boot/src/BootThread.cc b/dev/Boot/src/BootThread.cc
index e0cf11d7..e874c758 100644
--- a/dev/Boot/src/BootThread.cc
+++ b/dev/Boot/src/BootThread.cc
@@ -4,7 +4,7 @@
------------------------------------------- */
-#include <BootKit/Thread.h>
+#include <BootKit/BootThread.h>
#include <BootKit/Support.h>
#include <BootKit/BootKit.h>
#include <FirmwareKit/EFI/API.h>
diff --git a/dev/Boot/src/HEL/AMD64/EFIBootStartup.cc b/dev/Boot/src/HEL/AMD64/EFIBootStartup.cc
index f2d6276b..ff705652 100644
--- a/dev/Boot/src/HEL/AMD64/EFIBootStartup.cc
+++ b/dev/Boot/src/HEL/AMD64/EFIBootStartup.cc
@@ -15,7 +15,7 @@
#include <KernelKit/PEF.h>
#include <NewKit/Macros.h>
#include <NewKit/Ref.h>
-#include <BootKit/Thread.h>
+#include <BootKit/BootThread.h>
#include <Mod/GfxMgr/FBMgr.h>
// Makes the compiler shut up.
diff --git a/dev/Boot/src/HEL/ARM64/EFIBootStartup.cc b/dev/Boot/src/HEL/ARM64/EFIBootStartup.cc
index 4d303c33..279d1e40 100644
--- a/dev/Boot/src/HEL/ARM64/EFIBootStartup.cc
+++ b/dev/Boot/src/HEL/ARM64/EFIBootStartup.cc
@@ -6,7 +6,7 @@
#include <FirmwareKit/EFI/API.h>
#include <FirmwareKit/EFI.h>
-#include <BootKit/Thread.h>
+#include <BootKit/BootThread.h>
#include <BootKit/BootKit.h>
#ifndef kExpectedWidth