diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-10-09 12:00:49 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-10-09 12:00:49 +0200 |
| commit | 59f37ac002635171892925f163783689ec23c1fc (patch) | |
| tree | 8e119894f8626b7ad23f5c9316e11e32b647bf2f /dev/kernel | |
| parent | bcc74b466240a3df8a4750e2a5a60a3748d6b3d7 (diff) | |
feat: fixes and improvements of the kernel.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel')
| -rw-r--r-- | dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc | 2 | ||||
| -rw-r--r-- | dev/kernel/SignalKit/SignalGen.h | 4 | ||||
| -rw-r--r-- | dev/kernel/StorageKit/AHCI.h | 2 | ||||
| -rw-r--r-- | dev/kernel/src/Storage/AHCIDeviceInterface.cc | 2 | ||||
| -rw-r--r-- | dev/kernel/src/Storage/ATADeviceInterface.cc | 2 | ||||
| -rw-r--r-- | dev/kernel/src/UserMgr.cc | 12 | ||||
| -rw-r--r-- | dev/kernel/src/UserProcessScheduler.cc | 12 | ||||
| -rw-r--r-- | dev/kernel/src/UtfUtils.cc | 9 |
8 files changed, 25 insertions, 20 deletions
diff --git a/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc b/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc index 77e3331d..0a465145 100644 --- a/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc +++ b/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc @@ -591,7 +591,7 @@ namespace Detail { /// @brief Acquires a new AHCI device with drv_index in mind. /// @param drv_index The drive index to assign. /// @return A wrapped device interface if successful, or error code. -ErrorOr<AHCIDeviceInterface> sk_acquire_ahci_device(Int32 drv_index) { +ErrorOr<AHCIDeviceInterface> sk_acquire_ahci_device(UInt32 drv_index) { if (!drv_std_detected_ahci()) return ErrorOr<AHCIDeviceInterface>(kErrorDisk); AHCIDeviceInterface device(Detail::sk_io_read_ahci, Detail::sk_io_write_ahci); diff --git a/dev/kernel/SignalKit/SignalGen.h b/dev/kernel/SignalKit/SignalGen.h index 4be9452a..fdc27161 100644 --- a/dev/kernel/SignalKit/SignalGen.h +++ b/dev/kernel/SignalKit/SignalGen.h @@ -26,10 +26,10 @@ namespace Kernel { typedef SizeT rt_signal_kind; /// @brief Standard signal seed for general purpose usage. -inline static constexpr auto kUserSignalSeed = 0x0895034fUL; +inline constexpr auto kUserSignalSeed = 0x0895034fUL; /// @brief Special signal seed for kernel usage. -inline static constexpr auto kKernelSignalSeed = 0x0895034f9fUL; +inline constexpr auto kKernelSignalSeed = 0x0895034f9fUL; /// @brief Generate signal from **Sig** template <rt_signal_kind Sig, SizeT Seed = kUserSignalSeed> diff --git a/dev/kernel/StorageKit/AHCI.h b/dev/kernel/StorageKit/AHCI.h index 3b9dac67..3605abe6 100644 --- a/dev/kernel/StorageKit/AHCI.h +++ b/dev/kernel/StorageKit/AHCI.h @@ -45,5 +45,5 @@ class AHCIDeviceInterface NE_DEVICE<MountpointInterface*> { }; UInt16 sk_init_ahci_device(BOOL atapi); -ErrorOr<AHCIDeviceInterface> sk_acquire_ahci_device(Int32 drv_index); +ErrorOr<AHCIDeviceInterface> sk_acquire_ahci_device(UInt32 drv_index); } // namespace Kernel diff --git a/dev/kernel/src/Storage/AHCIDeviceInterface.cc b/dev/kernel/src/Storage/AHCIDeviceInterface.cc index 39570665..182ed2b3 100644 --- a/dev/kernel/src/Storage/AHCIDeviceInterface.cc +++ b/dev/kernel/src/Storage/AHCIDeviceInterface.cc @@ -84,6 +84,6 @@ const UInt32& AHCIDeviceInterface::GetIndex() { } Void AHCIDeviceInterface::SetIndex(const UInt32& drv) { - MUST_PASS(MountpointInterface::kDriveIndexInvalid != drv); + MUST_PASS(MountpointInterface::kDriveIndexInvalid < drv); this->fDriveIndex = drv; }
\ No newline at end of file diff --git a/dev/kernel/src/Storage/ATADeviceInterface.cc b/dev/kernel/src/Storage/ATADeviceInterface.cc index 609837af..e302d2cc 100644 --- a/dev/kernel/src/Storage/ATADeviceInterface.cc +++ b/dev/kernel/src/Storage/ATADeviceInterface.cc @@ -74,7 +74,7 @@ const UInt32& ATADeviceInterface::GetIndex() { } Void ATADeviceInterface::SetIndex(const UInt32& drv) { - MUST_PASS(MountpointInterface::kDriveIndexInvalid != drv); + MUST_PASS(MountpointInterface::kDriveIndexInvalid < drv); this->fDriveIndex = drv; } diff --git a/dev/kernel/src/UserMgr.cc b/dev/kernel/src/UserMgr.cc index 8e4ba540..9db1ca4d 100644 --- a/dev/kernel/src/UserMgr.cc +++ b/dev/kernel/src/UserMgr.cc @@ -22,7 +22,7 @@ #define kStdUserType (0xEE) #define kSuperUserType (0xEF) -/// @file User.cc +/// @file UserMgr.cc /// @brief Multi-user support. namespace Kernel { @@ -38,14 +38,14 @@ namespace Detail { kout << "user_fnv_generator: Hashing user password...\r"; - const UInt64 FNV_OFFSET_BASIS = 0xcbf29ce484222325ULL; - const UInt64 FNV_PRIME = 0x100000001b3ULL; + const UInt64 kFnvOffsetBasis = 0xcbf29ce484222325ULL; + const UInt64 fFnvPrime = 0x100000001b3ULL; - UInt64 hash = FNV_OFFSET_BASIS; + UInt64 hash = kFnvOffsetBasis; while (*password) { - hash ^= (Utf8Char) (*password++); - hash *= FNV_PRIME; + hash ^= (Char) (*password++); + hash *= fFnvPrime; } kout << "user_fnv_generator: Hashed user password.\r"; diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc index 07c4a572..ad6263c8 100644 --- a/dev/kernel/src/UserProcessScheduler.cc +++ b/dev/kernel/src/UserProcessScheduler.cc @@ -21,6 +21,7 @@ #include <KernelKit/ProcessScheduler.h> #include <NeKit/KString.h> #include <NeKit/Utils.h> +#include <KernelKit/KPC.h> #include <SignalKit/SignalGen.h> ///! BUGS: 0 @@ -462,15 +463,10 @@ UserProcessScheduler& UserProcessScheduler::The() { /***********************************************************************************/ Void UserProcessScheduler::Remove(ProcessID process_id) { - if (process_id < 0 || process_id > kSchedProcessLimitPerTeam) { - return; - } - - if (this->mTeam.mProcessList[process_id].Status == ProcessStatusKind::kInvalid) { - return; - } + if (process_id < 0 || process_id > kSchedProcessLimitPerTeam) return; + if (this->mTeam.mProcessList[process_id].Status == ProcessStatusKind::kInvalid) return; - mTeam.mProcessList[process_id].Exit(0); + mTeam.mProcessList[process_id].Exit(kErrorSuccess); } /// @brief Is it a user scheduler? diff --git a/dev/kernel/src/UtfUtils.cc b/dev/kernel/src/UtfUtils.cc index e98b8306..d0523b96 100644 --- a/dev/kernel/src/UtfUtils.cc +++ b/dev/kernel/src/UtfUtils.cc @@ -10,6 +10,8 @@ namespace Kernel { Size urt_string_len(const Utf8Char* str) { + if (!str) return 0; + SizeT len{0}; while (str[len] != u8'\0') ++len; @@ -18,6 +20,8 @@ Size urt_string_len(const Utf8Char* str) { } Void urt_set_memory(const voidPtr src, UInt32 dst, Size len) { + if (!src) return; + Utf8Char* srcChr = reinterpret_cast<Utf8Char*>(src); Size index = 0; @@ -28,6 +32,8 @@ Void urt_set_memory(const voidPtr src, UInt32 dst, Size len) { } Int32 urt_string_cmp(const Utf8Char* src, const Utf8Char* cmp, Size size) { + if (!src) return 0; + Int32 counter = 0; for (Size index = 0; index < size; ++index) { @@ -38,6 +44,9 @@ Int32 urt_string_cmp(const Utf8Char* src, const Utf8Char* cmp, Size size) { } Int32 urt_copy_memory(const VoidPtr src, VoidPtr dst, Size len) { + if (!src) return 0; + if (!dst) return 0; + Utf8Char* srcChr = reinterpret_cast<Utf8Char*>(src); Utf8Char* dstChar = reinterpret_cast<Utf8Char*>(dst); |
