diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-11-21 20:50:22 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-11-21 20:50:22 +0100 |
| commit | 47a0e9b901e9e51b3f0ee5dd30d52ff1a5c8fcc0 (patch) | |
| tree | 1c2e86bd4313bb40dfa3e70e7e31a8be71bf0c61 /dev/ZKAKit/src | |
| parent | d5397d2f3be6f3de742736e5d1fdfc3121879f70 (diff) | |
IMP: Compile using -Wall and scheduler improvements.
Diffstat (limited to 'dev/ZKAKit/src')
| -rw-r--r-- | dev/ZKAKit/src/CodeMgr.cc | 8 | ||||
| -rw-r--r-- | dev/ZKAKit/src/DriveMgr.cc | 8 | ||||
| -rw-r--r-- | dev/ZKAKit/src/FS/NeFS.cc | 46 | ||||
| -rw-r--r-- | dev/ZKAKit/src/NeFS+FileMgr.cc | 2 | ||||
| -rw-r--r-- | dev/ZKAKit/src/PEFCodeMgr.cc | 4 | ||||
| -rw-r--r-- | dev/ZKAKit/src/UserProcessScheduler.cc | 41 |
6 files changed, 54 insertions, 55 deletions
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. |
