diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-01-05 12:19:58 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-01-05 12:19:58 +0100 |
| commit | e0633b442140d49e08af6759bd07c89e16ef0e2a (patch) | |
| tree | c83a84f5df6b3f5d486a53e19cc8ad55cd082587 | |
| parent | 5903f0c8eca69916c3acffcbe0a20a9af36fdf27 (diff) | |
ADD: Ran format command and refactors too.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
26 files changed, 144 insertions, 118 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 diff --git a/dev/Kernel/FSKit/NeFS.h b/dev/Kernel/FSKit/NeFS.h index 5431225c..cddd09f0 100644 --- a/dev/Kernel/FSKit/NeFS.h +++ b/dev/Kernel/FSKit/NeFS.h @@ -112,7 +112,7 @@ default. #define kNeFSForkNameLen (200) #define kNeFSFrameworkExt ".fwrk" -#define kNeFSStepsExt ".step" +#define kNeFSStepsExt ".step" #define kNeFSApplicationExt ".app" #define kNeFSJournalExt ".jrnl" @@ -394,8 +394,8 @@ namespace Kernel } Bool CommitJournal(NeFileSystemParser* parser, - KString xml_data, - KString journal_name) + KString xml_data, + KString journal_name) { if (!parser || !mNode) diff --git a/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc b/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc index ca3f2353..f97669c8 100644 --- a/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc +++ b/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc @@ -9,7 +9,7 @@ #include <NewKit/KString.h> #include <POSIXKit/signal.h> -STATIC BOOL kIsScheduling = NO; +STATIC BOOL kIsScheduling = NO; /// @brief Handle GPF fault. /// @param rsp @@ -58,8 +58,6 @@ EXTERN_C void idt_handle_pf(Kernel::UIntPtr rsp) process.Leak().Status = Kernel::ProcessStatusKind::kKilled; process.Leak().Crash(); - - } /// @brief Handle scheduler interrupt. @@ -106,8 +104,6 @@ EXTERN_C void idt_handle_math(Kernel::UIntPtr rsp) process.Leak().Status = Kernel::ProcessStatusKind::kKilled; process.Leak().Crash(); - - } /// @brief Handle any generic fault. @@ -132,8 +128,6 @@ EXTERN_C void idt_handle_generic(Kernel::UIntPtr rsp) process.Leak().Status = Kernel::ProcessStatusKind::kKilled; process.Leak().Crash(); - - } EXTERN_C Kernel::Void idt_handle_breakpoint(Kernel::UIntPtr rip) @@ -180,8 +174,6 @@ EXTERN_C void idt_handle_ud(Kernel::UIntPtr rsp) process.Leak().Status = Kernel::ProcessStatusKind::kKilled; process.Leak().Crash(); - - } /// @brief Enter syscall from assembly. diff --git a/dev/Kernel/HALKit/AMD64/HalDescriptorLoader.cc b/dev/Kernel/HALKit/AMD64/HalDescriptorLoader.cc index ed9bf15b..680aa6ed 100644 --- a/dev/Kernel/HALKit/AMD64/HalDescriptorLoader.cc +++ b/dev/Kernel/HALKit/AMD64/HalDescriptorLoader.cc @@ -28,8 +28,8 @@ namespace Kernel::HAL UInt16 cCommDivisor = kPITFrequency / ticks; // 100 Hz. - HAL::rt_out8(kPITControlPort, 0x36); // Command to PIT - HAL::rt_out8(kPITChannel0Port, cCommDivisor & 0xFF); // Send low byte + HAL::rt_out8(kPITControlPort, 0x36); // Command to PIT + HAL::rt_out8(kPITChannel0Port, cCommDivisor & 0xFF); // Send low byte HAL::rt_out8(kPITChannel0Port, (cCommDivisor >> 8) & 0xFF); // Send high byte hal_clear_irq_mask(32); diff --git a/dev/Kernel/HALKit/AMD64/HalKernelMain.cc b/dev/Kernel/HALKit/AMD64/HalKernelMain.cc index 56f8e1e5..b6ac0f3b 100644 --- a/dev/Kernel/HALKit/AMD64/HalKernelMain.cc +++ b/dev/Kernel/HALKit/AMD64/HalKernelMain.cc @@ -26,7 +26,7 @@ STATIC Kernel::Void hal_init_cxx_ctors() { for (Kernel::SizeT i = 0U; i < Kernel::UserProcessScheduler::The().CurrentTeam().AsArray().Count(); ++i) { - Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[i] = Kernel::UserThread(); + Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[i] = Kernel::UserThread(); Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[i].Status = Kernel::ProcessStatusKind::kKilled; } @@ -69,7 +69,7 @@ EXTERN_C void hal_init_platform( /* GDT, mostly descriptors for user and kernel segments. */ STATIC Kernel::HAL::Detail::ZKA_GDT_ENTRY ALIGN(0x08) kGDTArray[kGDTEntriesCount] = { - {.fLimitLow = 0, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x00, .fFlags = 0x00, .fBaseHigh = 0}, // Null entry + {.fLimitLow = 0, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x00, .fFlags = 0x00, .fBaseHigh = 0}, // Null entry {.fLimitLow = 0x0, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x9A, .fFlags = 0xAF, .fBaseHigh = 0}, // Kernel code {.fLimitLow = 0x0, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x92, .fFlags = 0xCF, .fBaseHigh = 0}, // Kernel data {.fLimitLow = 0x0, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0xFA, .fFlags = 0xAF, .fBaseHigh = 0}, // User code diff --git a/dev/Kernel/HALKit/AMD64/Storage/ATA-PIO.cc b/dev/Kernel/HALKit/AMD64/Storage/ATA-PIO.cc index ea8840eb..9fc261ef 100644 --- a/dev/Kernel/HALKit/AMD64/Storage/ATA-PIO.cc +++ b/dev/Kernel/HALKit/AMD64/Storage/ATA-PIO.cc @@ -121,7 +121,7 @@ Void drv_std_read(UInt64 Lba, UInt16 IO, UInt8 Master, Char* Buf, SizeT SectorSz rt_out8(IO + ATA_REG_SEC_COUNT0, ((Size + SectorSz) / SectorSz)); - rt_out8(IO + ATA_REG_LBA0, (Lba) & 0xFF); + rt_out8(IO + ATA_REG_LBA0, (Lba)&0xFF); rt_out8(IO + ATA_REG_LBA1, (Lba) >> 8); rt_out8(IO + ATA_REG_LBA2, (Lba) >> 16); rt_out8(IO + ATA_REG_LBA3, (Lba) >> 24); @@ -153,7 +153,7 @@ Void drv_std_write(UInt64 Lba, UInt16 IO, UInt8 Master, Char* Buf, SizeT SectorS rt_out8(IO + ATA_REG_SEC_COUNT0, ((Size + (SectorSz)) / SectorSz)); - rt_out8(IO + ATA_REG_LBA0, (Lba) & 0xFF); + rt_out8(IO + ATA_REG_LBA0, (Lba)&0xFF); rt_out8(IO + ATA_REG_LBA1, (Lba) >> 8); rt_out8(IO + ATA_REG_LBA2, (Lba) >> 16); rt_out8(IO + ATA_REG_LBA3, (Lba) >> 24); diff --git a/dev/Kernel/HALKit/ARM64/Storage/MFlash+IO.cc b/dev/Kernel/HALKit/ARM64/Storage/MFlash+IO.cc index 2d556b96..fc16a7e3 100644 --- a/dev/Kernel/HALKit/ARM64/Storage/MFlash+IO.cc +++ b/dev/Kernel/HALKit/ARM64/Storage/MFlash+IO.cc @@ -22,9 +22,9 @@ namespace Kernel constexpr auto kFlashBridgeMagic = "FLSH"; constexpr auto kFlashBridgeRevision = 1; - STATIC BOOL kFlashEnabled = NO; - STATIC SizeT kFlashSize[kMaxFlashSlots] = {}; - STATIC SizeT kFlashSectorSz[kMaxFlashSlots] = {}; + STATIC BOOL kFlashEnabled = NO; + STATIC SizeT kFlashSize[kMaxFlashSlots] = {}; + STATIC SizeT kFlashSectorSz[kMaxFlashSlots] = {}; STATIC IMBCIHost* kFlashMetaPackets[kMaxFlashSlots] = {}; STATIC IMBCIHost* kFlashDataPackets[kMaxFlashSlots] = {}; @@ -76,7 +76,7 @@ namespace Kernel kFlashMetaPackets[slot]->InterruptEnable = NO; kcout << "Disabled hardware slot at: " << number(slot) << endl; - + return YES; } } // namespace Kernel diff --git a/dev/Kernel/KernelKit/DebugOutput.h b/dev/Kernel/KernelKit/DebugOutput.h index a3fc5a9d..490ffdec 100644 --- a/dev/Kernel/KernelKit/DebugOutput.h +++ b/dev/Kernel/KernelKit/DebugOutput.h @@ -38,8 +38,8 @@ namespace Kernel class TerminalDevice final ZKA_DEVICE<const Char*> { public: - TerminalDevice(void (*print)(const Char*), void (*get)(const Char*)) - : IDeviceObject<const Char*>(print, get) + TerminalDevice(void (*print)(const Char*), void (*gets)(const Char*)) + : IDeviceObject<const Char*>(print, gets) { } @@ -47,7 +47,7 @@ namespace Kernel /// @brief returns device name (terminal name) /// @return string type (const Char*) - virtual const Char* Name() const override + const Char* Name() const override { return ("TerminalDevice"); } @@ -59,35 +59,35 @@ namespace Kernel inline TerminalDevice end_line() { - TerminalDevice selfTerm = TerminalDevice::The(); + TerminalDevice self = TerminalDevice::The(); - selfTerm.operator<<("\r"); - return selfTerm; + self.operator<<("\r"); + return self; } inline TerminalDevice carriage_return() { - TerminalDevice selfTerm = TerminalDevice::The(); + TerminalDevice self = TerminalDevice::The(); - selfTerm.operator<<("\r"); - return selfTerm; + self.operator<<("\r"); + return self; } inline TerminalDevice tabulate() { - TerminalDevice selfTerm = TerminalDevice::The(); + TerminalDevice self = TerminalDevice::The(); - selfTerm.operator<<("\t"); - return selfTerm; + self.operator<<("\t"); + return self; } /// @brief emulate a terminal bell, like the VT100 does. inline TerminalDevice bell() { - TerminalDevice selfTerm = TerminalDevice::The(); + TerminalDevice self = TerminalDevice::The(); - selfTerm.operator<<("\a"); - return selfTerm; + self.operator<<("\a"); + return self; } namespace Detail @@ -151,30 +151,39 @@ namespace Kernel inline TerminalDevice hex_number(const Long& x) { - TerminalDevice selfTerm = TerminalDevice::The(); + TerminalDevice self = TerminalDevice::The(); - Detail::_write_number_hex(x, selfTerm); - selfTerm.operator<<("h"); + Detail::_write_number_hex(x, self); + self.operator<<("h"); - return selfTerm; + return self; + } + + inline TerminalDevice number(const Char* x) + { + TerminalDevice self = TerminalDevice::The(); + + self << "?"; + + return self; } inline TerminalDevice number(const Long& x) { - TerminalDevice selfTerm = TerminalDevice::The(); + TerminalDevice self = TerminalDevice::The(); - Detail::_write_number(x, selfTerm); + Detail::_write_number(x, self); - return selfTerm; + return self; } inline TerminalDevice get_console_in(Char* buf) { - TerminalDevice selfTerm = TerminalDevice::The(); + TerminalDevice self = TerminalDevice::The(); - selfTerm >> buf; + self >> buf; - return selfTerm; + return self; } typedef Char rt_debug_type[255]; @@ -185,14 +194,18 @@ namespace Kernel Int16 fPort[kDebugMaxPorts]; Int16 fBoundCnt; }; + + inline TerminalDevice& operator<<(TerminalDevice& src, auto number) + { + number(number, src); + return src; + } } // namespace Kernel #ifdef kcout #undef kcout #endif // ifdef kcout -#define kcout \ - (Kernel::TerminalDevice::The() << "\e[0;31m [Kernel] (Path: /" << __FILE__ << ") (Line: " << Kernel::number(__LINE__)); \ - (Kernel::TerminalDevice::The() << ") \e[0m" \ - << ": ") +#define kcout Kernel::TerminalDevice::The() << "\e[0;31m [ZKA] " << __FILE__ << " \e[0m: " + #define endl Kernel::TerminalDevice::The() << Kernel::end_line() diff --git a/dev/Kernel/KernelKit/DeviceMgr.h b/dev/Kernel/KernelKit/DeviceMgr.h index 1c9233b7..81684f02 100644 --- a/dev/Kernel/KernelKit/DeviceMgr.h +++ b/dev/Kernel/KernelKit/DeviceMgr.h @@ -79,7 +79,7 @@ namespace Kernel return !fOut || !fIn; } - private: + protected: Void (*fOut)(T Data) = {nullptr}; Void (*fIn)(T Data) = {nullptr}; }; diff --git a/dev/Kernel/KernelKit/UserProcessScheduler.h b/dev/Kernel/KernelKit/UserProcessScheduler.h index 452a55a3..a08a5dc1 100644 --- a/dev/Kernel/KernelKit/UserProcessScheduler.h +++ b/dev/Kernel/KernelKit/UserProcessScheduler.h @@ -262,14 +262,14 @@ namespace Kernel ZKA_COPY_DEFAULT(UserProcessTeam); Array<UserThread, kSchedProcessLimitPerTeam>& AsArray(); - Ref<UserThread>& AsRef(); - ProcessID& Id() noexcept; + Ref<UserThread>& AsRef(); + ProcessID& Id() noexcept; public: Array<UserThread, kSchedProcessLimitPerTeam> mProcessList; - Ref<UserThread> mCurrentProcess; - ProcessID mTeamId{0}; - ProcessID mProcessCount{0}; + Ref<UserThread> mCurrentProcess; + ProcessID mTeamId{0}; + ProcessID mProcessCount{0}; }; using UserProcessRef = UserThread&; @@ -302,7 +302,7 @@ namespace Kernel public: Ref<UserThread>& GetCurrentProcess(); - const SizeT Run() noexcept; + const SizeT Run() noexcept; public: STATIC UserProcessScheduler& The(); diff --git a/dev/Kernel/NetworkKit/IPC.h b/dev/Kernel/NetworkKit/IPC.h index 63aa2c13..ae5d1d0c 100644 --- a/dev/Kernel/NetworkKit/IPC.h +++ b/dev/Kernel/NetworkKit/IPC.h @@ -65,15 +65,15 @@ namespace Kernel /// @brief IPC connection header, message cannot be greater than 6K. typedef struct IPC_MSG final { - UInt32 IpcHeaderMagic; // cRemoteHeaderMagic - UInt8 IpcEndianess; // 0 : LE, 1 : BE - SizeT IpcPacketSize; + UInt32 IpcHeaderMagic; // cRemoteHeaderMagic + UInt8 IpcEndianess; // 0 : LE, 1 : BE + SizeT IpcPacketSize; IPC_ADDR IpcFrom; IPC_ADDR IpcTo; - UInt32 IpcCRC32; - UInt32 IpcMsg; - UInt32 IpcMsgSz; - UInt8 IpcData[kIPCMsgSize]; + UInt32 IpcCRC32; + UInt32 IpcMsg; + UInt32 IpcMsgSz; + UInt8 IpcData[kIPCMsgSize]; /// @brief Passes the message to target, could be anything, HTTP packet, JSON or whatever. Bool Pass(IPC_MSG* target) noexcept diff --git a/dev/Kernel/NewKit/KernelPanic.h b/dev/Kernel/NewKit/KernelPanic.h index bd119357..e3c8eaae 100644 --- a/dev/Kernel/NewKit/KernelPanic.h +++ b/dev/Kernel/NewKit/KernelPanic.h @@ -29,7 +29,7 @@ namespace Kernel enum RUNTIME_CHECK { - RUNTIME_CHECK_FAILED = 1111, + RUNTIME_CHECK_FAILED = 1111, RUNTIME_CHECK_POINTER, RUNTIME_CHECK_EXPRESSION, RUNTIME_CHECK_FILE, diff --git a/dev/Kernel/src/DriveMgr.cc b/dev/Kernel/src/DriveMgr.cc index 95e5b988..8e8d5ab2 100644 --- a/dev/Kernel/src/DriveMgr.cc +++ b/dev/Kernel/src/DriveMgr.cc @@ -204,7 +204,11 @@ namespace Kernel { DriveTrait trait{}; - rt_copy_memory((VoidPtr) "/Disks/OS:", trait.fName, rt_string_len("/Disks/OS:")); + const auto kMainDrive = "/Mount/OS:"; + + rt_copy_memory((VoidPtr)kMainDrive, trait.fName, rt_string_len(kMainDrive)); + + MUST_PASS(trait.fName[0] != 0); trait.fVerify = io_drv_unimplemented; trait.fOutput = io_drv_output; diff --git a/dev/Kernel/src/FS/NeFS.cc b/dev/Kernel/src/FS/NeFS.cc index 3dcf13da..b0a7c6c6 100644 --- a/dev/Kernel/src/FS/NeFS.cc +++ b/dev/Kernel/src/FS/NeFS.cc @@ -309,7 +309,7 @@ _Output NFS_CATALOG_STRUCT* NeFileSystemParser::CreateCatalog(_Input const Char* return nullptr; } - + constexpr SizeT kDefaultForkSize = kNeFSForkSize; NFS_CATALOG_STRUCT* child_catalog = new NFS_CATALOG_STRUCT(); @@ -460,6 +460,7 @@ _Output NFS_CATALOG_STRUCT* NeFileSystemParser::CreateCatalog(_Input const Char* /// @return If it was sucessful, see err_global_get(). bool NeFileSystemParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endLba, _Input const Int32 flags, const Char* part_name) { +#ifdef ZKA_EPM_SUPPORT if (*part_name == 0 || endLba == 0) return false; @@ -490,14 +491,14 @@ bool NeFileSystemParser::Format(_Input _Output DriveTrait* drive, _Input const L if (flags & kNeFSPartitionTypeBoot) { // make it bootable when needed. - Char bufEpmHdr[kNeFSSectorSz] = {0}; + Char buf_epm[kNeFSSectorSz] = {0}; - BOOT_BLOCK_STRUCT* epm_boot = (BOOT_BLOCK_STRUCT*)bufEpmHdr; + BOOT_BLOCK_STRUCT* epm_boot = (BOOT_BLOCK_STRUCT*)buf_epm; // Write a new EPM entry. constexpr auto kFsName = "NeFS"; - constexpr auto kBlockName = "ZKA:"; + constexpr auto kBlockName = "ZkaOS:"; rt_copy_memory(reinterpret_cast<VoidPtr>(const_cast<Char*>(kFsName)), epm_boot->Fs, rt_string_len(kFsName)); @@ -533,7 +534,7 @@ bool NeFileSystemParser::Format(_Input _Output DriveTrait* drive, _Input const L epm_boot->LbaEnd = endLba; epm_boot->NumBlocks = cnt; - drive->fPacket.fPacketContent = bufEpmHdr; + drive->fPacket.fPacketContent = buf_epm; drive->fPacket.fPacketSize = sizeof(EPM_BOOT_BLOCK); drive->fPacket.fPacketLba = outEpmLba; @@ -616,6 +617,7 @@ bool NeFileSystemParser::Format(_Input _Output DriveTrait* drive, _Input const L drive->fInput(&drive->fPacket); } +#endif // ZKA_EPM_SUPPORT return false; } @@ -817,7 +819,6 @@ kNeFSSearchThroughCatalogList: return nullptr; } - /// ignore unallocated catalog, break if (!(temporary_catalog.Flags & kNeFSFlagCreated)) { @@ -846,8 +847,8 @@ kNeFSSearchThroughCatalogList: if (local_search_first) { - local_search_first = false; - start_catalog_lba = kStartCatalogList; + local_search_first = false; + start_catalog_lba = kStartCatalogList; goto kNeFSSearchThroughCatalogList; } diff --git a/dev/Kernel/src/KernelMain.cc b/dev/Kernel/src/KernelMain.cc index 58592a10..303b1d81 100644 --- a/dev/Kernel/src/KernelMain.cc +++ b/dev/Kernel/src/KernelMain.cc @@ -40,10 +40,10 @@ namespace Kernel::Detail if (mNeFS) { - const SizeT kFolderCount = 8; - const Char* kFolderStr[kFolderCount] = { - "/", "/Boot/", "/System/", "/Support/", "/Applications/", - "/Users/", "/Library/", "/Mount/"}; + const SizeT kFolderCount = 8; + const Char* kFolderStr[kFolderCount] = { + "/", "/Boot/", "/System/", "/Support/", "/Applications/", + "/Users/", "/Library/", "/Mount/"}; for (Kernel::SizeT dir_index = 0UL; dir_index < kFolderCount; ++dir_index) { diff --git a/dev/Kernel/src/PEFCodeMgr.cc b/dev/Kernel/src/PEFCodeMgr.cc index 17f7f895..497e1f28 100644 --- a/dev/Kernel/src/PEFCodeMgr.cc +++ b/dev/Kernel/src/PEFCodeMgr.cc @@ -253,14 +253,12 @@ namespace Kernel if (errOrStart.Error() != kErrorSuccess) return kProcessInvalidID; - UserThread process; - auto id = UserProcessScheduler::The().Spawn(reinterpret_cast<const Char*>(exec.FindSymbol(kPefNameSymbol, kPefData)), errOrStart.Leak().Leak(), exec.GetBlob().Leak().Leak()); if (id != kProcessInvalidID) { - UserProcessScheduler::The().CurrentTeam().AsArray()[id].Kind = process_kind; - UserProcessScheduler::The().CurrentTeam().AsArray()[id].StackSize = *(UIntPtr*)exec.FindSymbol(kPefStackSizeSymbol, kPefData); + UserProcessScheduler::The().CurrentTeam().AsArray()[id].Kind = process_kind; + UserProcessScheduler::The().CurrentTeam().AsArray()[id].StackSize = *(UIntPtr*)exec.FindSymbol(kPefStackSizeSymbol, kPefData); UserProcessScheduler::The().CurrentTeam().AsArray()[id].MemoryLimit = *(UIntPtr*)exec.FindSymbol(kPefHeapSizeSymbol, kPefData); } diff --git a/dev/Kernel/src/UserProcessScheduler.cc b/dev/Kernel/src/UserProcessScheduler.cc index 85915e10..936d0547 100644 --- a/dev/Kernel/src/UserProcessScheduler.cc +++ b/dev/Kernel/src/UserProcessScheduler.cc @@ -547,7 +547,7 @@ namespace Kernel auto prev_ptime = HardwareThreadScheduler::The()[index].Leak()->fPTime; HardwareThreadScheduler::The()[index].Leak()->fPTime = UserProcessScheduler::The().CurrentTeam().AsArray()[new_pid].PTime; - Bool ret = HardwareThreadScheduler::The()[index].Leak()->Switch(image_ptr, stack, frame_ptr, new_pid); + Bool ret = HardwareThreadScheduler::The()[index].Leak()->Switch(image_ptr, stack, frame_ptr, new_pid); //////////////////////////////////////////////////////////// /// Rollback on fail. /// diff --git a/dev/Kernel/src/UserProcessTeam.cc b/dev/Kernel/src/UserProcessTeam.cc index a41160cc..aea75121 100644 --- a/dev/Kernel/src/UserProcessTeam.cc +++ b/dev/Kernel/src/UserProcessTeam.cc @@ -17,7 +17,7 @@ namespace Kernel { for (SizeT i = 0U; i < this->mProcessList.Count(); ++i) { - this->mProcessList[i] = UserThread(); + this->mProcessList[i] = UserThread(); this->mProcessList[i].Status = ProcessStatusKind::kKilled; } |
