summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/src
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-12-27 12:10:40 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-12-27 12:10:40 +0100
commit97d65565f4ab1814ea76aafc66e2bae848071a7c (patch)
treee007378f4c0f23ee8e6cd9acfec022c1020e75d5 /dev/Kernel/src
parent205605bd8eabe7cdb5ee4cb1b974d613705337a2 (diff)
Kernel: Fixes and improvements to scheduler.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel/src')
-rw-r--r--dev/Kernel/src/User.cc11
-rw-r--r--dev/Kernel/src/UserProcessScheduler.cc12
2 files changed, 19 insertions, 4 deletions
diff --git a/dev/Kernel/src/User.cc b/dev/Kernel/src/User.cc
index 8d1bcac9..88d14b2f 100644
--- a/dev/Kernel/src/User.cc
+++ b/dev/Kernel/src/User.cc
@@ -27,9 +27,11 @@ namespace Kernel
{
namespace Detail
{
+ ////////////////////////////////////////////////////////////
/// \brief Constructs a password by hashing the password.
/// \param password password to hash.
/// \return the hashed password
+ ////////////////////////////////////////////////////////////
const Int32 cred_construct_token(Char* password, const Char* in_password, User* user, SizeT length)
{
if (!password || !user)
@@ -53,7 +55,9 @@ namespace Kernel
}
} // namespace Detail
+ ////////////////////////////////////////////////////////////
/// @brief User ring constructor.
+ ////////////////////////////////////////////////////////////
User::User(const Int32& sel, const Char* userName)
: mUserRing((UserRingKind)sel)
{
@@ -61,14 +65,18 @@ namespace Kernel
rt_copy_memory((VoidPtr)userName, this->mUserName, rt_string_len(userName));
}
+ ////////////////////////////////////////////////////////////
/// @brief User ring constructor.
+ ////////////////////////////////////////////////////////////
User::User(const UserRingKind& ringKind, const Char* userName)
: mUserRing(ringKind)
{
rt_copy_memory((VoidPtr)userName, this->mUserName, rt_string_len(userName));
}
+ ////////////////////////////////////////////////////////////
/// @brief User destructor class.
+ ////////////////////////////////////////////////////////////
User::~User() = default;
Bool User::Save(const usr_public_key_kind password_to_fill) noexcept
@@ -159,8 +167,11 @@ namespace Kernel
return this->mUserName;
}
+ ////////////////////////////////////////////////////////////
/// @brief Returns the user's ring.
/// @return The king of ring the user is attached to.
+ ////////////////////////////////////////////////////////////
+
const UserRingKind& User::Ring() noexcept
{
return this->mUserRing;
diff --git a/dev/Kernel/src/UserProcessScheduler.cc b/dev/Kernel/src/UserProcessScheduler.cc
index 3904c222..941ca46e 100644
--- a/dev/Kernel/src/UserProcessScheduler.cc
+++ b/dev/Kernel/src/UserProcessScheduler.cc
@@ -128,12 +128,10 @@ namespace Kernel
this->ProcessMemoryHeap->MemoryPrev = nullptr;
this->ProcessMemoryHeap->MemoryNext = nullptr;
-
- return ErrorOr<VoidPtr>(ptr);
}
else
{
- ProcessMemoryHeapList* entry = this->ProcessMemoryHeap;
+ ProcessMemoryHeapList* entry = this->ProcessMemoryHeap;
ProcessMemoryHeapList* prev_entry = nullptr;
while (!entry)
@@ -152,7 +150,9 @@ namespace Kernel
entry->MemoryNext->MemoryNext = nullptr;
}
- return ErrorOr<VoidPtr>(nullptr);
+ this->UsedMemory += sz;
+
+ return ErrorOr<VoidPtr>(ptr);
}
/***********************************************************************************/
@@ -566,13 +566,17 @@ namespace Kernel
return false;
}
+ ////////////////////////////////////////////////////////////
/// @brief this checks if any process is on the team.
+ ////////////////////////////////////////////////////////////
UserProcessScheduler::operator bool()
{
return mTeam.AsArray().Count() > 0;
}
+ ////////////////////////////////////////////////////////////
/// @brief this checks if no process is on the team.
+ ////////////////////////////////////////////////////////////
bool UserProcessScheduler::operator!()
{
return mTeam.AsArray().Count() == 0;