summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/src
diff options
context:
space:
mode:
Diffstat (limited to 'dev/Kernel/src')
-rw-r--r--dev/Kernel/src/Semaphore.cc14
-rw-r--r--dev/Kernel/src/User.cc16
-rw-r--r--dev/Kernel/src/UserProcessScheduler.cc4
3 files changed, 19 insertions, 15 deletions
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;