diff options
Diffstat (limited to 'dev')
25 files changed, 147 insertions, 143 deletions
diff --git a/dev/Modules/FB/WS.h b/dev/Modules/FB/WS.h index 5155ab94..cfca3626 100644 --- a/dev/Modules/FB/WS.h +++ b/dev/Modules/FB/WS.h @@ -16,43 +16,42 @@ namespace WS { - using namespace Kernel; + using namespace Kernel; - struct WSWindowContainer; + struct WSWindowContainer; - typedef UInt32* WSBackBufferKind; + typedef UInt32* WSBackBufferKind; - class WSWindowContainer final - { - public: - WSWindowContainer() = default; - ~WSWindowContainer() = default; + class WSWindowContainer final + { + public: + WSWindowContainer() = default; + ~WSWindowContainer() = default; - ZKA_COPY_DEFAULT(WSWindowContainer); + ZKA_COPY_DEFAULT(WSWindowContainer); - /// @note the trick is, it could be GPU processed data, that's the cool thing. - BOOL PopulateWindow(WSBackBufferKind contents_buf, SizeT contents_len) - { - if (contents_len > BackBufferLength) - return NO; + /// @note the trick is, it could be GPU processed data, that's the cool thing. + BOOL PopulateWindow(WSBackBufferKind contents_buf, SizeT contents_len) + { + if (contents_len > BackBufferLength) + return NO; - if (!contents_buf) - return NO; + if (!contents_buf) + return NO; - if (!BackBuffer || - !BackBufferLength) - return NO; + if (!BackBuffer || + !BackBufferLength) + return NO; - rt_copy_memory(contents_buf, BackBuffer, contents_len); - return YES; - } + rt_copy_memory(contents_buf, BackBuffer, contents_len); + return YES; + } - public: - WSBackBufferKind BackBuffer{nullptr}; - SizeT BackBufferLength{0UL}; - - }; -} + public: + WSBackBufferKind BackBuffer{nullptr}; + SizeT BackBufferLength{0UL}; + }; +} // namespace WS #define rtl_allocate_backbuffer(width, height) new WS::WSBackBufferKind[width * height] #define rtl_compute_fb_geometry(width, height) (width * height) diff --git a/dev/ZBAKit/BootKit/Thread.h b/dev/ZBAKit/BootKit/Thread.h index 4a785ebf..387da80d 100644 --- a/dev/ZBAKit/BootKit/Thread.h +++ b/dev/ZBAKit/BootKit/Thread.h @@ -35,10 +35,10 @@ namespace Boot bool IsValid(); private: - Char fBlobName[255] = {"BootThread"}; - VoidPtr fStartAddress{nullptr}; - VoidPtr fBlob{nullptr}; - UInt8* fStack{nullptr}; + Char fBlobName[255] = {"BootThread"}; + VoidPtr fStartAddress{nullptr}; + VoidPtr fBlob{nullptr}; + UInt8* fStack{nullptr}; HEL::BootInfoHeader* fHandover{nullptr}; }; } // namespace Boot diff --git a/dev/ZBAKit/amd64-efi.make b/dev/ZBAKit/amd64-efi.make index 97111325..e91cf494 100644 --- a/dev/ZBAKit/amd64-efi.make +++ b/dev/ZBAKit/amd64-efi.make @@ -45,7 +45,7 @@ REM_FLAG=-f FLAG_ASM=-f win64 FLAG_GNU=-fshort-wchar -D__EFI_x86_64__ -mno-red-zone -D__NEWOSKRNL__ -D__NEWOSLDR__ \ -DEFI_FUNCTION_WRAPPER -I./ -I../ZKAKit -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 -D__HAVE_ZKA_APIS__ -DZBA_USE_FB -D__ZKA_AMD64__ -D__ZKA__ -DZKA_AUTO_FORMAT -Wall BOOTLOADER=zbaosldr.exe KERNEL=minoskrnl.exe diff --git a/dev/ZBAKit/src/BootThread.cc b/dev/ZBAKit/src/BootThread.cc index e92a04f5..a0ea6914 100644 --- a/dev/ZBAKit/src/BootThread.cc +++ b/dev/ZBAKit/src/BootThread.cc @@ -185,7 +185,7 @@ namespace Boot rt_jump_to_address(fStartAddress, fHandover, &fStack[mib_cast(8) - 1]); else { - delete [] fStack; + delete[] fStack; reinterpret_cast<HEL::HandoverProc>(fStartAddress)(fHandover); } } diff --git a/dev/ZKAKit/FSKit/NeFS.h b/dev/ZKAKit/FSKit/NeFS.h index 53367940..867b2690 100644 --- a/dev/ZKAKit/FSKit/NeFS.h +++ b/dev/ZKAKit/FSKit/NeFS.h @@ -33,7 +33,7 @@ default. #define kNeFSMinimumDiskSize (gib_cast(4)) #define kNeFSSectorSz (512) -#define kNeFSForkDataSz (mib_cast(4)) +#define kNeFSForkDataSz (mib_cast(16)) #define kNeFSIdentLen (8) #define kNeFSIdent " NeFS" diff --git a/dev/ZKAKit/FirmwareKit/CoreBoot/CoreBoot.h b/dev/ZKAKit/FirmwareKit/CoreBoot/CoreBoot.h index d1c83c64..d3792949 100644 --- a/dev/ZKAKit/FirmwareKit/CoreBoot/CoreBoot.h +++ b/dev/ZKAKit/FirmwareKit/CoreBoot/CoreBoot.h @@ -20,8 +20,8 @@ namespace Kernel const UInt32 fStartAddress; // start address (master/slave(s) thread) #ifdef ZKA_IS_EXTENDED_COREBOOT - const UIntPtr fMasterStructure; // master structure for MP/PM and device tree and such (ARM) - const UIntPtr fMasterStructureVersion; // master structure version. + const UIntPtr fMasterStructure; // master structure for MP/PM and device tree and such (ARM) + const UIntPtr fMasterStructureVersion; // master structure version. #endif }; } // namespace Kernel
\ No newline at end of file diff --git a/dev/ZKAKit/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc b/dev/ZKAKit/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc index f86276a0..b75f37ce 100644 --- a/dev/ZKAKit/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc +++ b/dev/ZKAKit/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc @@ -27,8 +27,8 @@ EXTERN_C void idt_handle_pf(Kernel::UIntPtr rsp) auto process = Kernel::UserProcessScheduler::The().GetCurrentProcess(); - process.Leak().ProcessSignal.SignalIP = 0UL; - process.Leak().ProcessSignal.SignalID = SIGKILL; + process.Leak().ProcessSignal.SignalIP = 0UL; + process.Leak().ProcessSignal.SignalID = SIGKILL; process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status; kcout << "Kernel: PRCFROZE status set..\r"; @@ -53,8 +53,8 @@ EXTERN_C void idt_handle_math(Kernel::UIntPtr rsp) auto process = Kernel::UserProcessScheduler::The().GetCurrentProcess(); - process.Leak().ProcessSignal.SignalIP = 0UL; - process.Leak().ProcessSignal.SignalID = SIGKILL; + process.Leak().ProcessSignal.SignalIP = 0UL; + process.Leak().ProcessSignal.SignalID = SIGKILL; process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status; kcout << "Kernel: PRCFROZE status set..\r"; @@ -72,8 +72,8 @@ EXTERN_C void idt_handle_generic(Kernel::UIntPtr rsp) auto process = Kernel::UserProcessScheduler::The().GetCurrentProcess(); - process.Leak().ProcessSignal.SignalIP = 0UL; - process.Leak().ProcessSignal.SignalID = SIGKILL; + process.Leak().ProcessSignal.SignalIP = 0UL; + process.Leak().ProcessSignal.SignalID = SIGKILL; process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status; kcout << "Kernel: PRCFROZE status set..\r"; @@ -92,8 +92,8 @@ EXTERN_C Kernel::Void idt_handle_breakpoint(Kernel::UIntPtr rip) kcout << "Kernel: SIGTRAP set.\r"; - process.Leak().ProcessSignal.SignalIP = rip; - process.Leak().ProcessSignal.SignalID = SIGTRAP; + process.Leak().ProcessSignal.SignalIP = rip; + process.Leak().ProcessSignal.SignalID = SIGTRAP; process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status; kcout << "Kernel: PRCFROZE status set..\r"; @@ -109,8 +109,8 @@ EXTERN_C void idt_handle_ud(Kernel::UIntPtr rsp) auto process = Kernel::UserProcessScheduler::The().GetCurrentProcess(); - process.Leak().ProcessSignal.SignalIP = 0UL; - process.Leak().ProcessSignal.SignalID = SIGKILL; + process.Leak().ProcessSignal.SignalIP = 0UL; + process.Leak().ProcessSignal.SignalID = SIGKILL; process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status; kcout << "Kernel: PRCFROZE status set..\r"; diff --git a/dev/ZKAKit/HALKit/AMD64/HalCoreMPScheduler.cc b/dev/ZKAKit/HALKit/AMD64/HalCoreMPScheduler.cc index bf8f90ec..85cfd183 100644 --- a/dev/ZKAKit/HALKit/AMD64/HalCoreMPScheduler.cc +++ b/dev/ZKAKit/HALKit/AMD64/HalCoreMPScheduler.cc @@ -48,9 +48,9 @@ namespace Kernel::HAL STATIC Bool kSMPAware = false; STATIC Int64 kSMPCount = 0; - STATIC Int32 cSMPInterrupt = 0; + STATIC Int32 cSMPInterrupt = 0; STATIC UInt64 kAPICLocales[cSMPMax] = {0}; - STATIC VoidPtr kRawMADT = nullptr; + STATIC VoidPtr kRawMADT = nullptr; /// @brief Multiple APIC Descriptor Table. struct MADT_TABLE final : public SDT @@ -168,7 +168,10 @@ namespace Kernel::HAL /// @brief Is the current config SMP aware? /// @return True if YES, False if not. /***********************************************************************************/ - Bool mp_is_smp(Void) noexcept { return kSMPAware; } + Bool mp_is_smp(Void) noexcept + { + return kSMPAware; + } /***********************************************************************************/ /// @brief Fetch and enable SMP scheduler. diff --git a/dev/ZKAKit/HALKit/AMD64/Storage/AHCI-DMA.cc b/dev/ZKAKit/HALKit/AMD64/Storage/AHCI-DMA.cc index 3c9ce1b8..94b21960 100644 --- a/dev/ZKAKit/HALKit/AMD64/Storage/AHCI-DMA.cc +++ b/dev/ZKAKit/HALKit/AMD64/Storage/AHCI-DMA.cc @@ -25,7 +25,7 @@ #define AHCI_START_ADDRESS mib_cast(4) // 4M -#define HBA_ERR_TFE (1 << 30) +#define HBA_ERR_TFE (1 << 30) #define HBA_PxCMD_ST 0x0001 #define HBA_PxCMD_FRE 0x0010 #define HBA_PxCMD_FR 0x4000 diff --git a/dev/ZKAKit/HALKit/ARM64/HalDebugOutput.cc b/dev/ZKAKit/HALKit/ARM64/HalDebugOutput.cc index caf04018..e2b2db88 100644 --- a/dev/ZKAKit/HALKit/ARM64/HalDebugOutput.cc +++ b/dev/ZKAKit/HALKit/ARM64/HalDebugOutput.cc @@ -37,7 +37,7 @@ namespace Kernel } TerminalDevice::~TerminalDevice() = default; - + EXTERN_C void ke_io_read(const Char* bytes) { #ifdef __DEBUG__ diff --git a/dev/ZKAKit/KernelKit/DeviceMgr.h b/dev/ZKAKit/KernelKit/DeviceMgr.h index 57ecab3a..1b60c998 100644 --- a/dev/ZKAKit/KernelKit/DeviceMgr.h +++ b/dev/ZKAKit/KernelKit/DeviceMgr.h @@ -41,7 +41,9 @@ namespace Kernel { public: explicit IDeviceObject(void (*Out)(T), void (*In)(T)) - : fOut(Out), fIn(In) {} + : fOut(Out), fIn(In) + { + } virtual ~IDeviceObject() = default; diff --git a/dev/ZKAKit/KernelKit/DriveMgr.h b/dev/ZKAKit/KernelKit/DriveMgr.h index 5cc0571e..87f3a5e2 100644 --- a/dev/ZKAKit/KernelKit/DriveMgr.h +++ b/dev/ZKAKit/KernelKit/DriveMgr.h @@ -16,10 +16,10 @@ #include <NewKit/KString.h> #include <NewKit/Ref.h> -#define kDriveMaxCount (4U) -#define kDriveSectorSz (512U) -#define kDriveInvalidID (-1) -#define kDriveNameLen (32) +#define kDriveMaxCount (4U) +#define kDriveSectorSz (512U) +#define kDriveInvalidID (-1) +#define kDriveNameLen (32) #define drv_sector_cnt(SIZE, SECTOR_SZ) (((SIZE) + (SECTOR_SZ)) / (SECTOR_SZ)) @@ -30,14 +30,14 @@ namespace Kernel kInvalidDisc = -1, /// Storage types, combine with flags. - kBlockDevice = 0xAD, + kBlockDevice = 0xAD, kMassStorageDisc = 0xDA, - kFloppyDisc = 0xCD, - kOpticalDisc = 0xDC, // CD-ROM/DVD-ROM/Blu-Ray - kTapeDisc = 0xD7, + kFloppyDisc = 0xCD, + kOpticalDisc = 0xDC, // CD-ROM/DVD-ROM/Blu-Ray + kTapeDisc = 0xD7, /// Storage flags, combine with types. - kReadOnlyDrive = 0x10, // Read only drive + kReadOnlyDrive = 0x10, // Read only drive kEPMDrive = 0x11, // Explicit Partition Map. kEPTDrive = 0x12, // ESP w/ EPM partition. kMBRDrive = 0x13, // PC classic partition scheme @@ -49,17 +49,17 @@ namespace Kernel /// @brief Media drive trait type. struct DriveTrait final { - Char fName[kDriveNameLen]; // /System, /Boot, //./Devices/USB... - Int32 fKind; // fMassStorage, fFloppy, fOpticalDisc. - Int32 fFlags; // fReadOnly, fXPMDrive, fXPTDrive + Char fName[kDriveNameLen]; // /System, /Boot, //./Devices/USB... + Int32 fKind; // fMassStorage, fFloppy, fOpticalDisc. + Int32 fFlags; // fReadOnly, fXPMDrive, fXPTDrive /// @brief Packet drive (StorageKit compilant.) struct DrivePacket final { - VoidPtr fPacketContent{nullptr}; //! packet body. + VoidPtr fPacketContent{nullptr}; //! packet body. Char fPacketMime[kDriveNameLen] = "*/*"; //! identify what we're sending. - SizeT fPacketSize{0UL}; //! packet size - UInt32 fPacketCRC32{0UL}; //! sanity crc, in case if good is set to false + SizeT fPacketSize{0UL}; //! packet size + UInt32 fPacketCRC32{0UL}; //! sanity crc, in case if good is set to false Boolean fPacketGood{YES}; Lba fPacketLba{0UL}; Boolean fPacketReadOnly{NO}; diff --git a/dev/ZKAKit/KernelKit/FileMgr.h b/dev/ZKAKit/KernelKit/FileMgr.h index a466f763..f8a9c268 100644 --- a/dev/ZKAKit/KernelKit/FileMgr.h +++ b/dev/ZKAKit/KernelKit/FileMgr.h @@ -377,10 +377,10 @@ namespace Kernel /// @brief constructor template <typename Encoding, typename Class> inline FileStream<Encoding, Class>::FileStream(const Encoding* path, - const Encoding* restrict_type) + const Encoding* restrict_type) : fFile(Class::GetMounted()->Open(path, restrict_type)) { - const SizeT kRestrictCount = kRestrictMax; + const SizeT kRestrictCount = kRestrictMax; const FileRestrictKind kRestrictList[] = { { .fRestrict = kRestrictR, diff --git a/dev/ZKAKit/KernelKit/LPC.h b/dev/ZKAKit/KernelKit/LPC.h index 66fd3a4d..1bb30e91 100644 --- a/dev/ZKAKit/KernelKit/LPC.h +++ b/dev/ZKAKit/KernelKit/LPC.h @@ -15,9 +15,9 @@ #define ErrLocalFailed() (Kernel::UserProcessScheduler::The().GetCurrentProcess().Leak().GetLocalCode() != Kernel::kErrorSuccess) #define ErrLocal() (Kernel::UserProcessScheduler::The().GetCurrentProcess().Leak().GetLocalCode()) -#define ErrGlobalIsOk() (Kernel::kErrorLocalNumber == Kernel::kErrorSuccess) +#define ErrGlobalIsOk() (Kernel::kErrorLocalNumber == Kernel::kErrorSuccess) #define ErrGlobalFailed() (Kernel::kErrorLocalNumber != Kernel::kErrorSuccess) -#define ErrGlobal() (Kernel::kErrorLocalNumber) +#define ErrGlobal() (Kernel::kErrorLocalNumber) namespace Kernel { diff --git a/dev/ZKAKit/KernelKit/UserProcessScheduler.h b/dev/ZKAKit/KernelKit/UserProcessScheduler.h index 2ffb27c0..dc96010e 100644 --- a/dev/ZKAKit/KernelKit/UserProcessScheduler.h +++ b/dev/ZKAKit/KernelKit/UserProcessScheduler.h @@ -39,7 +39,7 @@ namespace Kernel typedef Int64 ProcessID; //! @brief Local Process name length. - inline constexpr SizeT kProcessNameLen = 128U; + inline constexpr SizeT kProcessNameLen = 128U; inline constexpr ProcessID kProcessInvalidID = -1; //! @brief Local Process status enum. @@ -50,7 +50,8 @@ namespace Kernel kRunning, kKilled, kFrozen, - kDead, + KFinishing, + kFinished, kCount, }; @@ -131,7 +132,7 @@ namespace Kernel { ImagePtr fCode; ImagePtr fBlob; - + operator bool() { return this->fCode; @@ -161,11 +162,11 @@ namespace Kernel User* Owner{nullptr}; HAL::StackFramePtr StackFrame{nullptr}; AffinityKind Affinity{AffinityKind::kStandard}; - ProcessStatusKind Status{ProcessStatusKind::kDead}; + ProcessStatusKind Status{ProcessStatusKind::kFinished}; UInt8* StackReserve{nullptr}; UserProcessImage Image; SizeT StackSize{kSchedMaxStackSz}; - IDLLObject* PefDLLDelegate{nullptr}; + IDLLObject* PefDLLDelegate{nullptr}; SizeT MemoryCursor{0}; SizeT MemoryLimit{kSchedMaxMemoryLimit}; @@ -181,12 +182,12 @@ namespace Kernel struct UserProcessSignal final { - UIntPtr SignalIP; + UIntPtr SignalIP; ProcessStatusKind PreviousStatus; - UIntPtr SignalID; + UIntPtr SignalID; }; - UserProcessSignal ProcessSignal; + UserProcessSignal ProcessSignal; UserProcessHeapList* MemoryHeap{nullptr}; VoidPtr VMRegister{0UL}; diff --git a/dev/ZKAKit/NetworkKit/IPC.h b/dev/ZKAKit/NetworkKit/IPC.h index 74056598..a86b5393 100644 --- a/dev/ZKAKit/NetworkKit/IPC.h +++ b/dev/ZKAKit/NetworkKit/IPC.h @@ -57,8 +57,8 @@ namespace Kernel enum { kIPCLittleEndian = 0, - kIPCBigEndian = 1, - kIPCMixedEndian = 2, + kIPCBigEndian = 1, + kIPCMixedEndian = 2, }; constexpr inline auto kIPCMsgSize = 6094U; diff --git a/dev/ZKAKit/NewKit/Macros.h b/dev/ZKAKit/NewKit/Macros.h index ff59a0a2..5628b3ee 100644 --- a/dev/ZKAKit/NewKit/Macros.h +++ b/dev/ZKAKit/NewKit/Macros.h @@ -120,7 +120,7 @@ #define RGB(R, G, B) (Kernel::UInt32)(R | G << 0x8 | B << 0x10) #endif // !RGB -#define BREAK_POINT() asm volatile ("int $3") +#define BREAK_POINT() asm volatile("int $3") /// @brief The system page file, located on the mount directory, as mulitple system pages can be mounted. #define kPageSys "/Disks/syspage.sys" @@ -140,7 +140,7 @@ /// @brief The main system loader. #define kUserName "ZKA AUTHORITY/KERNEL" -#define rtl_deduce_endianess(address, value) \ +#define rtl_deduce_endianess(address, value) \ (((reinterpret_cast<Kernel::Char*>(address)[0]) == (value)) \ ? (Kernel::Endian::kEndianBig) \ : (Kernel::Endian::kEndianLittle)) @@ -149,9 +149,9 @@ #define No false #define YES true -#define NO false +#define NO false -#define TRUE true +#define TRUE true #define FALSE false #define BOOL Kernel::Boolean diff --git a/dev/ZKAKit/NewKit/PageMgr.h b/dev/ZKAKit/NewKit/PageMgr.h index 2f83b13b..f12aa875 100644 --- a/dev/ZKAKit/NewKit/PageMgr.h +++ b/dev/ZKAKit/NewKit/PageMgr.h @@ -29,7 +29,7 @@ namespace Kernel public: const UIntPtr VirtualAddress(); - Void NoExecute(const bool enable = false); + Void NoExecute(const bool enable = false); Bool NoExecute(); operator bool() diff --git a/dev/ZKAKit/amd64-efi.make b/dev/ZKAKit/amd64-efi.make index a87a1dcd..06677717 100644 --- a/dev/ZKAKit/amd64-efi.make +++ b/dev/ZKAKit/amd64-efi.make @@ -7,7 +7,7 @@ CC = x86_64-w64-mingw32-g++ LD = x86_64-w64-mingw32-ld CCFLAGS = -fshort-wchar -c -D__ZKA_AMD64__ -mno-red-zone -fno-rtti -fno-exceptions \ -std=c++20 -D__ZKA_SUPPORT_NX__ -O0 -I../Vendor -D__FSKIT_INCLUDES_NEFS__ \ - -D__NEWOSKRNL__ -D__HAVE_ZKA_APIS__ -D__FREESTANDING__ -D__ZKA__ -I./ -I../ -I../zba + -D__NEWOSKRNL__ -D__HAVE_ZKA_APIS__ -D__FREESTANDING__ -D__ZKA__ -I./ -I../ -I../zba -Wall ASM = nasm diff --git a/dev/ZKAKit/src/CodeMgr.cc b/dev/ZKAKit/src/CodeMgr.cc index c7d1843a..0133d653 100644 --- a/dev/ZKAKit/src/CodeMgr.cc +++ b/dev/ZKAKit/src/CodeMgr.cc @@ -18,14 +18,14 @@ namespace Kernel { if (!main || !process_name || - *process_name == 0) + *process_name == 0) return kProcessInvalidID; UserProcess* process_hdr = new UserProcess(); - process_hdr->Image.fCode = reinterpret_cast<VoidPtr>(main); - process_hdr->Kind = UserProcess::kExectuableKind; - process_hdr->StackSize = kib_cast(16); + process_hdr->Image.fCode = reinterpret_cast<VoidPtr>(main); + process_hdr->Kind = UserProcess::kExectuableKind; + process_hdr->StackSize = kib_cast(16); rt_set_memory(process_hdr->Name, 0, kProcessNameLen); diff --git a/dev/ZKAKit/src/DriveMgr.cc b/dev/ZKAKit/src/DriveMgr.cc index 462e037c..8db3bd67 100644 --- a/dev/ZKAKit/src/DriveMgr.cc +++ b/dev/ZKAKit/src/DriveMgr.cc @@ -160,7 +160,7 @@ namespace Kernel { static _BOOT_BLOCK_STRUCT block_struct; - trait->fPacket.fPacketLba = kEPMBaseLba; + trait->fPacket.fPacketLba = kEPMBaseLba; trait->fPacket.fPacketSize = sizeof(_BOOT_BLOCK_STRUCT); trait->fPacket.fPacketContent = &block_struct; @@ -174,13 +174,13 @@ namespace Kernel if (rt_string_cmp(((BOOT_BLOCK_STRUCT*)trait->fPacket.fPacketContent)->Magic, kEPMMagic, kEPMMagicLength) == 0) { trait->fPacket.fPacketReadOnly = NO; - trait->fKind = kMassStorageDisc | kEPMDrive; + trait->fKind = kMassStorageDisc | kEPMDrive; kcout << "Formatted Disc is EPM (Mass Storage).\r"; } else { trait->fPacket.fPacketReadOnly = YES; - trait->fKind = kMassStorageDisc | kUnformattedDrive | kReadOnlyDrive; + trait->fKind = kMassStorageDisc | kUnformattedDrive | kReadOnlyDrive; kcout << "Scheme Found: " << block_struct.Name << endl; if (block_struct.Name[0] == 0) @@ -190,7 +190,7 @@ namespace Kernel rt_copy_memory((VoidPtr) "*/*", trait->fPacket.fPacketMime, rt_string_len("*/*")); - trait->fPacket.fPacketLba = 0; + trait->fPacket.fPacketLba = 0; trait->fPacket.fPacketSize = 0UL; trait->fPacket.fPacketContent = nullptr; } diff --git a/dev/ZKAKit/src/FS/NeFS.cc b/dev/ZKAKit/src/FS/NeFS.cc index 4d2f29aa..b73b6be6 100644 --- a/dev/ZKAKit/src/FS/NeFS.cc +++ b/dev/ZKAKit/src/FS/NeFS.cc @@ -90,7 +90,7 @@ _Output NFS_FORK_STRUCT* NeFSParser::CreateFork(_Input NFS_CATALOG_STRUCT* catal if (lba <= kNeFSCatalogStartAddress) break; - drv.fPacket.fPacketLba = lba; + drv.fPacket.fPacketLba = lba; drv.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT); drv.fPacket.fPacketContent = &curFork; @@ -126,7 +126,7 @@ _Output NFS_FORK_STRUCT* NeFSParser::CreateFork(_Input NFS_CATALOG_STRUCT* catal /// entry. if (lba >= kNeFSCatalogStartAddress) { - drv.fPacket.fPacketLba = lbaOfPreviousFork; + drv.fPacket.fPacketLba = lbaOfPreviousFork; drv.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT); drv.fPacket.fPacketContent = &prevFork; @@ -145,7 +145,7 @@ _Output NFS_FORK_STRUCT* NeFSParser::CreateFork(_Input NFS_CATALOG_STRUCT* catal the_fork.PreviousSibling = lbaOfPreviousFork; the_fork.NextSibling = the_fork.DataOffset - the_fork.DataSize - sizeof(NFS_FORK_STRUCT); - drv.fPacket.fPacketLba = lba; + drv.fPacket.fPacketLba = lba; drv.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT); drv.fPacket.fPacketContent = &the_fork; @@ -180,7 +180,7 @@ _Output NFS_FORK_STRUCT* NeFSParser::FindFork(_Input NFS_CATALOG_STRUCT* catalog while (lba != 0) { - drv.fPacket.fPacketLba = lba; + drv.fPacket.fPacketLba = lba; drv.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT); drv.fPacket.fPacketContent = (VoidPtr)the_fork; @@ -317,7 +317,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name, drive.fPacket.fPacketContent = sectorBufPartBlock; drive.fPacket.fPacketSize = kNeFSSectorSz; - drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress; + drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress; drive.fInput(&drive.fPacket); @@ -353,7 +353,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name, drive.fPacket.fPacketContent = &temporary_catalog; drive.fPacket.fPacketSize = kNeFSSectorSz; - drive.fPacket.fPacketLba = start_free; + drive.fPacket.fPacketLba = start_free; drive.fInput(&drive.fPacket); @@ -387,7 +387,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name, drive.fPacket.fPacketContent = sectorBufPartBlock; drive.fPacket.fPacketSize = kNeFSSectorSz; - drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress; + drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress; drive.fInput(&drive.fPacket); @@ -414,7 +414,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name, drive.fPacket.fPacketContent = child_catalog; drive.fPacket.fPacketSize = sizeof(NFS_CATALOG_STRUCT); - drive.fPacket.fPacketLba = start_free; + drive.fPacket.fPacketLba = start_free; drive.fOutput(&drive.fPacket); @@ -422,7 +422,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name, drive.fPacket.fPacketContent = sectorBufPartBlock; drive.fPacket.fPacketSize = kNeFSSectorSz; - drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress; + drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress; drive.fInput(&drive.fPacket); @@ -453,7 +453,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name, drive.fPacket.fPacketContent = &temporary_catalog; drive.fPacket.fPacketSize = kNeFSSectorSz; - drive.fPacket.fPacketLba = start_free; + drive.fPacket.fPacketLba = start_free; drive.fInput(&drive.fPacket); } @@ -490,7 +490,7 @@ bool NeFSParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endLb drive->fPacket.fPacketContent = fs_buf; drive->fPacket.fPacketSize = kNeFSSectorSz; - drive->fPacket.fPacketLba = start; + drive->fPacket.fPacketLba = start; drive->fInput(&drive->fPacket); @@ -526,7 +526,7 @@ bool NeFSParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endLb { drive->fPacket.fPacketContent = buf; drive->fPacket.fPacketSize = kNeFSSectorSz; - drive->fPacket.fPacketLba = outEpmLba; + drive->fPacket.fPacketLba = outEpmLba; drive->fInput(&drive->fPacket); @@ -542,7 +542,7 @@ bool NeFSParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endLb drive->fPacket.fPacketContent = bufEpmHdr; drive->fPacket.fPacketSize = kNeFSSectorSz; - drive->fPacket.fPacketLba = outEpmLba; + drive->fPacket.fPacketLba = outEpmLba; drive->fOutput(&drive->fPacket); @@ -594,7 +594,7 @@ bool NeFSParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endLb drive->fPacket.fPacketContent = fs_buf; drive->fPacket.fPacketSize = kNeFSSectorSz; - drive->fPacket.fPacketLba = kNeFSRootCatalogStartAddress; + drive->fPacket.fPacketLba = kNeFSRootCatalogStartAddress; drive->fOutput(&drive->fPacket); @@ -619,7 +619,7 @@ bool NeFSParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endLb drive->fPacket.fPacketContent = fs_buf; drive->fPacket.fPacketSize = kNeFSSectorSz; - drive->fPacket.fPacketLba = start; + drive->fPacket.fPacketLba = start; drive->fInput(&drive->fPacket); } @@ -658,7 +658,7 @@ bool NeFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, Bool i { drive.fPacket.fPacketContent = fork_data_input; drive.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT); - drive.fPacket.fPacketLba = startFork; + drive.fPacket.fPacketLba = startFork; drive.fInput(&drive.fPacket); @@ -686,7 +686,7 @@ bool NeFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, Bool i drive.fPacket.fPacketContent = buf; drive.fPacket.fPacketSize = kNeFSForkDataSz; - drive.fPacket.fPacketLba = fork_data_input->DataOffset; + drive.fPacket.fPacketLba = fork_data_input->DataOffset; kcout << "data offset: " << hex_number(fork_data_input->DataOffset) << endl; @@ -694,7 +694,7 @@ bool NeFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, Bool i drive.fPacket.fPacketContent = fork_data_input; drive.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT); - drive.fPacket.fPacketLba = startFork - sizeof(NFS_FORK_STRUCT); + drive.fPacket.fPacketLba = startFork - sizeof(NFS_FORK_STRUCT); drive.fOutput(&drive.fPacket); @@ -732,7 +732,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::FindCatalog(_Input const Char* catalogNa drive.fPacket.fPacketContent = &fs_buf; drive.fPacket.fPacketSize = sizeof(NFS_ROOT_PARTITION_BLOCK); - drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress; + drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress; drive.fInput(&drive.fPacket); @@ -745,7 +745,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::FindCatalog(_Input const Char* catalogNa NFS_CATALOG_STRUCT temporary_catalog{0}; - drive.fPacket.fPacketLba = startCatalogList; + drive.fPacket.fPacketLba = startCatalogList; drive.fPacket.fPacketContent = &temporary_catalog; drive.fPacket.fPacketSize = sizeof(NFS_CATALOG_STRUCT); @@ -799,7 +799,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::FindCatalog(_Input const Char* catalogNa NeFSSearchThroughCatalogList: while (drive.fPacket.fPacketGood) { - drive.fPacket.fPacketLba = startCatalogList; + drive.fPacket.fPacketLba = startCatalogList; drive.fPacket.fPacketContent = &temporary_catalog; drive.fPacket.fPacketSize = sizeof(NFS_CATALOG_STRUCT); @@ -901,7 +901,7 @@ Boolean NeFSParser::RemoveCatalog(_Input const Char* catalogName) Char partitionBlockBuf[sizeof(NFS_ROOT_PARTITION_BLOCK)] = {0}; - drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress; + drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress; drive.fPacket.fPacketContent = partitionBlockBuf; drive.fPacket.fPacketSize = sizeof(NFS_ROOT_PARTITION_BLOCK); @@ -962,7 +962,7 @@ VoidPtr NeFSParser::ReadCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, while (dataForkLba > kNeFSCatalogStartAddress) { - drive.fPacket.fPacketLba = dataForkLba; + drive.fPacket.fPacketLba = dataForkLba; drive.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT); drive.fPacket.fPacketContent = fs_buf; diff --git a/dev/ZKAKit/src/NeFS+FileMgr.cc b/dev/ZKAKit/src/NeFS+FileMgr.cc index 341e6cea..0ea1e752 100644 --- a/dev/ZKAKit/src/NeFS+FileMgr.cc +++ b/dev/ZKAKit/src/NeFS+FileMgr.cc @@ -19,7 +19,7 @@ namespace Kernel NeFileSystemMgr::NeFileSystemMgr() { MUST_PASS(Detail::fs_init_newfs()); - + NeFSParser* fImpl; mm_new_class<NeFSParser>(&fImpl); MUST_PASS(fImpl); diff --git a/dev/ZKAKit/src/PEFCodeMgr.cc b/dev/ZKAKit/src/PEFCodeMgr.cc index 90b4a697..d7a6edac 100644 --- a/dev/ZKAKit/src/PEFCodeMgr.cc +++ b/dev/ZKAKit/src/PEFCodeMgr.cc @@ -256,8 +256,8 @@ namespace Kernel STATIC UserProcess proc; proc.Kind = procKind; - proc.Image.fCode = errOrStart.Leak().Leak(); - proc.Image.fBlob = exec.GetBlob().Leak().Leak(); + proc.Image.fCode = errOrStart.Leak().Leak(); + proc.Image.fBlob = exec.GetBlob().Leak().Leak(); proc.StackSize = *(UIntPtr*)exec.FindSymbol(kPefStackSizeSymbol, kPefData); proc.MemoryLimit = *(UIntPtr*)exec.FindSymbol(kPefHeapSizeSymbol, kPefData); proc.PTime = 0UL; diff --git a/dev/ZKAKit/src/UserProcessScheduler.cc b/dev/ZKAKit/src/UserProcessScheduler.cc index eb754ade..b96fd6a8 100644 --- a/dev/ZKAKit/src/UserProcessScheduler.cc +++ b/dev/ZKAKit/src/UserProcessScheduler.cc @@ -40,7 +40,7 @@ namespace Kernel STATIC UserProcessScheduler kProcessScheduler; - UserProcess::UserProcess() = default; + UserProcess::UserProcess() = default; UserProcess::~UserProcess() = default; /// @brief Gets the last exit code. @@ -133,7 +133,7 @@ namespace Kernel } else { - UserProcessHeapList* entry = this->MemoryHeap; + UserProcessHeapList* entry = this->MemoryHeap; UserProcessHeapList* prev_entry = nullptr; while (!entry) @@ -235,32 +235,29 @@ namespace Kernel void UserProcess::Exit(const Int32& exit_code) { - if (exit_code > 0) - this->Status = ProcessStatusKind::kKilled; - else - this->Status = ProcessStatusKind::kDead; + this->Status = exit_code > 0 ? ProcessStatusKind::kKilled : ProcessStatusKind::KFinishing; + this->fLastExitCode = exit_code; - fLastExitCode = exit_code; kLastExitCode = exit_code; auto memory_list = this->MemoryHeap; +#ifdef __ZKA_AMD64__ + auto pd = hal_read_cr3(); + hal_write_cr3(this->VMRegister); +#endif + // Deleting memory lists. Make sure to free all of them. while (memory_list) { if (memory_list->MemoryEntry) { -#ifdef __ZKA_AMD64__ - auto pd = hal_read_cr3(); - hal_write_cr3(this->VMRegister); -#endif - MUST_PASS(mm_delete_heap(memory_list->MemoryEntry)); + } #ifdef __ZKA_AMD64__ - hal_write_cr3(pd); + hal_write_cr3(pd); #endif - } auto next = memory_list->MemoryNext; @@ -283,14 +280,14 @@ namespace Kernel if (this->StackFrame && mm_is_valid_heap(this->StackFrame)) mm_delete_heap((VoidPtr)this->StackFrame); - this->Image.fBlob = nullptr; - this->Image.fCode = nullptr; - this->StackFrame = nullptr; + this->Image.fBlob = nullptr; + this->Image.fCode = nullptr; + this->StackFrame = nullptr; if (this->Kind == kExectuableDLLKind) { Bool success = false; - + rtl_fini_dll(this, reinterpret_cast<IPEFDLLObject*>(this->PefDLLDelegate), &success); if (!success) @@ -305,6 +302,8 @@ namespace Kernel mm_delete_heap(reinterpret_cast<VoidPtr>(this->StackReserve)); this->ProcessId = 0; + + this->Status = ProcessStatusKind::kFinished; } /***********************************************************************************/ @@ -430,7 +429,7 @@ namespace Kernel /***********************************************************************************/ /// @brief Run User scheduler object. - /// @return Process executed within team. + /// @return Process count executed within a team. /***********************************************************************************/ @@ -511,7 +510,7 @@ namespace Kernel Bool UserProcessHelper::CanBeScheduled(const UserProcess& process) { if (process.Status == ProcessStatusKind::kKilled || - process.Status == ProcessStatusKind::kDead || + process.Status == ProcessStatusKind::kFinished || process.Status == ProcessStatusKind::kFrozen) return No; @@ -533,7 +532,7 @@ namespace Kernel { return kProcessScheduler.Run(); } - + /***********************************************************************************/ /** * \brief Does a context switch in a CPU. |
