diff options
| author | Amlal <amlal.elmahrouss@icloud.com> | 2025-01-27 10:36:44 +0100 |
|---|---|---|
| committer | Amlal <amlal.elmahrouss@icloud.com> | 2025-01-27 10:36:44 +0100 |
| commit | 9c8942db44b5b9175fca6a588dcda7a38892cb63 (patch) | |
| tree | c0ec3b78490fe24a6a76a7c8e9a08b3d81a0ee79 /dev/Kernel | |
| parent | 8413ad8313bdae70c15ab85f9e68415d4154ee01 (diff) | |
Add new type of kernel panic, patch user password hashing.
Tweak scheduler, add System Calls file too
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel')
| -rw-r--r-- | dev/Kernel/HALKit/AMD64/HalCoreSystemCalls.cc | 5 | ||||
| -rw-r--r-- | dev/Kernel/NewKit/KernelPanic.h | 2 | ||||
| -rw-r--r-- | dev/Kernel/src/Semaphore.cc | 14 | ||||
| -rw-r--r-- | dev/Kernel/src/User.cc | 16 | ||||
| -rw-r--r-- | dev/Kernel/src/UserProcessScheduler.cc | 4 |
5 files changed, 25 insertions, 16 deletions
diff --git a/dev/Kernel/HALKit/AMD64/HalCoreSystemCalls.cc b/dev/Kernel/HALKit/AMD64/HalCoreSystemCalls.cc new file mode 100644 index 00000000..75eb1f15 --- /dev/null +++ b/dev/Kernel/HALKit/AMD64/HalCoreSystemCalls.cc @@ -0,0 +1,5 @@ +/* ------------------------------------------- + + Copyright (C) 2025, Amlal EL Mahrouss, all rights reserved. + + ------------------------------------------- */ diff --git a/dev/Kernel/NewKit/KernelPanic.h b/dev/Kernel/NewKit/KernelPanic.h index ec69f5c1..be118dd7 100644 --- a/dev/Kernel/NewKit/KernelPanic.h +++ b/dev/Kernel/NewKit/KernelPanic.h @@ -45,7 +45,7 @@ enum RUNTIME_CHECK RUNTIME_CHECK_FILESYSTEM, RUNTIME_CHECK_VIRTUAL_OUT_OF_MEM, RUNTIME_CHECK_PAGE, - RUNTIME_CHECK_INVALID, + RUNTIME_CHECK_INVALID, RUNTIME_CHECK_COUNT, }; diff --git a/dev/Kernel/src/Semaphore.cc b/dev/Kernel/src/Semaphore.cc index b82efbfe..07434e75 100644 --- a/dev/Kernel/src/Semaphore.cc +++ b/dev/Kernel/src/Semaphore.cc @@ -10,16 +10,18 @@ namespace Kernel { /***********************************************************************************/ - /// @brief Unlocks process out of the semaphore. + /// @brief Unlocks the semaphore. /***********************************************************************************/ Bool Semaphore::Unlock() noexcept { if (fLockingProcess) - fLockingProcess = UserProcess(); - else - return No; + { + fLockingProcess = UserProcess(); + fLockingProcess.Status = ProcessStatusKind::kFrozen; + return Yes; + } - return Yes; + return No; } /***********************************************************************************/ @@ -40,7 +42,7 @@ namespace Kernel /***********************************************************************************/ Bool Semaphore::IsLocked() const { - return fLockingProcess; + return fLockingProcess->Status == ProcessStatusKind::kRunning; } /***********************************************************************************/ diff --git a/dev/Kernel/src/User.cc b/dev/Kernel/src/User.cc index 3c0a18df..1559c23e 100644 --- a/dev/Kernel/src/User.cc +++ b/dev/Kernel/src/User.cc @@ -2,7 +2,7 @@ * ======================================================== * * ZKA - * Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved., all rights reserved. + * Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved., all rights reserved. * * File: User.cc * Purpose: User class, used to provide authentication and security. @@ -16,8 +16,8 @@ #include <KernelKit/FileMgr.h> #include <KernelKit/MemoryMgr.h> -#define kStdUserType (0xCE) -#define kSuperUserType (0xEC) +#define kStdUserType (0xEE) +#define kSuperUserType (0xEF) /// @file User.cc /// @brief User support. @@ -38,9 +38,9 @@ namespace Kernel kcout << "cred_construct_token: Hashing user password...\r"; - for (Size i_pass = 0; i_pass < length; ++i_pass) + for (SizeT i_pass = 0UL; i_pass < length; ++i_pass) { - const Char& cur_chr = in_password[i_pass]; + const Char cur_chr = in_password[i_pass]; if (cur_chr == 0) break; @@ -143,11 +143,11 @@ namespace Kernel // now check if the password matches. if (rt_string_cmp(password, this->mUserKey, rt_string_len(this->mUserKey)) == 0) { - kcout << "User::Matches: Password is valid.\r"; + kcout << "User::Matches: Password matches.\r"; return Yes; } - kcout << "User::Matches: Password isn't valid.\r"; + kcout << "User::Matches: Password doesn't match.\r"; return No; } @@ -161,6 +161,8 @@ namespace Kernel return lhs.mUserRing != this->mUserRing; } + /// @brief Returns the user's name. + Char* User::Name() noexcept { return this->mUserName; diff --git a/dev/Kernel/src/UserProcessScheduler.cc b/dev/Kernel/src/UserProcessScheduler.cc index a9a045fa..e484e2f1 100644 --- a/dev/Kernel/src/UserProcessScheduler.cc +++ b/dev/Kernel/src/UserProcessScheduler.cc @@ -31,7 +31,7 @@ namespace Kernel STATIC UInt32 kLastExitCode = 0U; /***********************************************************************************/ - /// @brief User Process scheduler global and external reference of thread scheduler. + /// @brief External reference of the thread scheduler. /***********************************************************************************/ STATIC UserProcessScheduler kProcessScheduler; @@ -120,7 +120,7 @@ namespace Kernel if (!this->ProcessMemoryHeap) { - this->ProcessMemoryHeap = new UserProcess::ProcessMemoryHeapList(); + this->ProcessMemoryHeap = new ProcessMemoryHeapList(); this->ProcessMemoryHeap->MemoryEntryPad = pad_amount; this->ProcessMemoryHeap->MemoryEntrySize = sz; |
