From 182f9d9e6ce671970391c72f5b90c66d11efbb70 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Wed, 12 Mar 2025 05:52:28 +0100 Subject: ADD: Scheduler bug fixes, and working on deadlock prevention. Signed-off-by: Amlal El Mahrouss --- dev/Kernel/HALKit/AMD64/Storage/AHCI.cc | 2 +- dev/Kernel/NetworkKit/MAC.h | 3 +-- dev/Kernel/src/FS/NeFS.cc | 2 +- dev/Kernel/src/Network/IPCAddr.cc | 34 +++++++++++++++--------------- dev/Kernel/src/Network/MACAddressGetter.cc | 2 +- dev/Kernel/src/UserProcessScheduler.cc | 4 ++-- dev/Mod/AHCI/AHCI.h | 2 +- dev/Mod/NVME/NVME.h | 2 +- 8 files changed, 25 insertions(+), 26 deletions(-) (limited to 'dev') diff --git a/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc b/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc index 6b115eef..bb37fd11 100644 --- a/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc +++ b/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc @@ -268,7 +268,7 @@ STATIC Bool drv_std_init_ahci(UInt16& pi, BOOL atapi) kSATAHba->Ports[kSATAIndex].Cmd |= kHBAPxCmdFre; kSATAHba->Ports[kSATAIndex].Cmd |= kHBAPxCmdST; - + drv_compute_disk_ahci(); break; diff --git a/dev/Kernel/NetworkKit/MAC.h b/dev/Kernel/NetworkKit/MAC.h index 407dfd8d..f7283708 100644 --- a/dev/Kernel/NetworkKit/MAC.h +++ b/dev/Kernel/NetworkKit/MAC.h @@ -21,7 +21,7 @@ namespace NeOS class MacAddressGetter final { public: - MacAddressGetter() = default; + MacAddressGetter() = default; ~MacAddressGetter() = default; NE_COPY_DEFAULT(MacAddressGetter); @@ -31,7 +31,6 @@ namespace NeOS private: Array fMacAddress; - }; } // namespace NeOS diff --git a/dev/Kernel/src/FS/NeFS.cc b/dev/Kernel/src/FS/NeFS.cc index 45fc15fa..150249d9 100644 --- a/dev/Kernel/src/FS/NeFS.cc +++ b/dev/Kernel/src/FS/NeFS.cc @@ -166,7 +166,7 @@ _Output BOOL NeFileSystemParser::CreateFork(_Input NEFS_FORK_STRUCT& the_fork) /***********************************************************************************/ _Output NEFS_FORK_STRUCT* NeFileSystemParser::FindFork(_Input NEFS_CATALOG_STRUCT* catalog, _Input const Char* name, - _Input Boolean is_data) + _Input Boolean is_data) { auto& drive = kMountpoint.A(); NEFS_FORK_STRUCT* the_fork = nullptr; diff --git a/dev/Kernel/src/Network/IPCAddr.cc b/dev/Kernel/src/Network/IPCAddr.cc index f18d9e42..75a54a36 100644 --- a/dev/Kernel/src/Network/IPCAddr.cc +++ b/dev/Kernel/src/Network/IPCAddr.cc @@ -10,23 +10,23 @@ namespace NeOS { - bool IPC_ADDR::operator==(const IPC_ADDR& addr) noexcept - { - return addr.UserProcessID == this->UserProcessID && addr.UserProcessTeam == this->UserProcessTeam; - } + bool IPC_ADDR::operator==(const IPC_ADDR& addr) noexcept + { + return addr.UserProcessID == this->UserProcessID && addr.UserProcessTeam == this->UserProcessTeam; + } - bool IPC_ADDR::operator==(IPC_ADDR& addr) noexcept - { - return addr.UserProcessID == this->UserProcessID && addr.UserProcessTeam == this->UserProcessTeam; - } + bool IPC_ADDR::operator==(IPC_ADDR& addr) noexcept + { + return addr.UserProcessID == this->UserProcessID && addr.UserProcessTeam == this->UserProcessTeam; + } - bool IPC_ADDR::operator!=(const IPC_ADDR& addr) noexcept - { - return addr.UserProcessID != this->UserProcessID || addr.UserProcessTeam != this->UserProcessTeam; - } + bool IPC_ADDR::operator!=(const IPC_ADDR& addr) noexcept + { + return addr.UserProcessID != this->UserProcessID || addr.UserProcessTeam != this->UserProcessTeam; + } - bool IPC_ADDR::operator!=(IPC_ADDR& addr) noexcept - { - return addr.UserProcessID != this->UserProcessID || addr.UserProcessTeam != this->UserProcessTeam; - } -} + bool IPC_ADDR::operator!=(IPC_ADDR& addr) noexcept + { + return addr.UserProcessID != this->UserProcessID || addr.UserProcessTeam != this->UserProcessTeam; + } +} // namespace NeOS diff --git a/dev/Kernel/src/Network/MACAddressGetter.cc b/dev/Kernel/src/Network/MACAddressGetter.cc index 47d3350f..627bcd34 100644 --- a/dev/Kernel/src/Network/MACAddressGetter.cc +++ b/dev/Kernel/src/Network/MACAddressGetter.cc @@ -10,6 +10,6 @@ namespace NeOS { Array& MacAddressGetter::AsBytes() { - return this->fMacAddress; + return this->fMacAddress; } } // namespace NeOS diff --git a/dev/Kernel/src/UserProcessScheduler.cc b/dev/Kernel/src/UserProcessScheduler.cc index a6eaff3f..95885ee5 100644 --- a/dev/Kernel/src/UserProcessScheduler.cc +++ b/dev/Kernel/src/UserProcessScheduler.cc @@ -135,7 +135,7 @@ namespace NeOS ProcessMemoryHeapList* entry = this->ProcessMemoryHeap; ProcessMemoryHeapList* prev_entry = nullptr; - while (!entry) + while (entry) { if (entry->MemoryEntry == nullptr) break; // chose to break here, when we get an already allocated memory entry for our needs. @@ -228,7 +228,6 @@ namespace NeOS mm_delete_heap(memory_heap_list); - memory_heap_list = nullptr; memory_heap_list = next; } @@ -344,6 +343,7 @@ namespace NeOS } process.StackReserve = new UInt8[process.StackSize]; + rt_set_memory(process.StackReserve, 0, process.StackSize); if (!process.StackReserve) { diff --git a/dev/Mod/AHCI/AHCI.h b/dev/Mod/AHCI/AHCI.h index 11f2346a..9e534a1a 100644 --- a/dev/Mod/AHCI/AHCI.h +++ b/dev/Mod/AHCI/AHCI.h @@ -282,7 +282,7 @@ typedef struct HbaCmdHeader final NeOS::UInt8 Reserved0 : 1; // Reserved NeOS::UInt8 Pmp : 4; // Port multiplier port - NeOS::UInt16 Prdtl; // Physical region descriptor table length in entries + NeOS::UInt16 Prdtl; // Physical region descriptor table length in entries NeOS::UInt32 Prdbc; // Physical region descriptor byte count transferred NeOS::UInt32 Ctba; // Command table descriptor base address diff --git a/dev/Mod/NVME/NVME.h b/dev/Mod/NVME/NVME.h index 3adadc98..5f8608f7 100644 --- a/dev/Mod/NVME/NVME.h +++ b/dev/Mod/NVME/NVME.h @@ -52,7 +52,7 @@ namespace NeOS kIdentifyNVME = 0x06, kReadNVME = 0x02, kWriteNVME = 0x01, - kCountNVME = 5, + kCountNVME = 5, }; /// @brief Creates an admin command for a DMA operation. -- cgit v1.2.3