summaryrefslogtreecommitdiffhomepage
path: root/Kernel/Sources
diff options
context:
space:
mode:
authorAmlal EL Mahrouss <amlalelmahrouss@icloud.com>2024-08-01 09:48:24 +0200
committerAmlal EL Mahrouss <amlalelmahrouss@icloud.com>2024-08-01 09:48:24 +0200
commit4ce1fdaa5ad4252bff486a824f53cb93cc156925 (patch)
treef4b990144ed76b688600372ad262c94175994e3e /Kernel/Sources
parent63dc1384bcbf8caf4ca53c715628db2c36b0b096 (diff)
MHR-39: Implement entrypoint probe, can now find it.
Next step is to map the sections into their own addresses. Signed-off-by: Amlal EL Mahrouss <amlalelmahrouss@icloud.com>
Diffstat (limited to 'Kernel/Sources')
-rw-r--r--Kernel/Sources/FS/NewFS.cxx2
-rw-r--r--Kernel/Sources/MP.cxx (renamed from Kernel/Sources/MPManager.cxx)32
-rw-r--r--Kernel/Sources/Main.cxx4
-rw-r--r--Kernel/Sources/ProcessScheduler.cxx20
-rw-r--r--Kernel/Sources/User.cxx12
5 files changed, 35 insertions, 35 deletions
diff --git a/Kernel/Sources/FS/NewFS.cxx b/Kernel/Sources/FS/NewFS.cxx
index ae2013cb..82759c72 100644
--- a/Kernel/Sources/FS/NewFS.cxx
+++ b/Kernel/Sources/FS/NewFS.cxx
@@ -305,7 +305,7 @@ _Output NFS_CATALOG_STRUCT* NewFSParser::CreateCatalog(_Input const char* name,
if (flagsList & kNewFSCatalogKindMetaFile)
{
- if (UserView::The()->Current() != UserView::The()->fRootUser)
+ if (UserManager::The()->Current() != UserManager::The()->fRootUser)
{
delete catalogChild;
return nullptr;
diff --git a/Kernel/Sources/MPManager.cxx b/Kernel/Sources/MP.cxx
index 3ad1e8aa..b83f0817 100644
--- a/Kernel/Sources/MPManager.cxx
+++ b/Kernel/Sources/MP.cxx
@@ -6,13 +6,13 @@
#include <ArchKit/ArchKit.hpp>
#include <KernelKit/ProcessScheduler.hxx>
-#include <KernelKit/MPManager.hpp>
+#include <KernelKit/MP.hxx>
#include <CFKit/Property.hpp>
///! BUGS: 0
-///! @file MPManager.cxx
-///! @brief This file handles multi processing in Kernel.
+///! @file MP.cxx
+///! @brief This file handles multi processing in the kernel.
///! @brief Multi processing is needed for multi-tasking operations.
namespace Kernel
@@ -120,10 +120,10 @@ namespace Kernel
//! @brief Constructor and destructor
///! @brief Default constructor.
- MPManager::MPManager()
+ MPCoreScheduler::MPCoreScheduler()
{
StringView strCoreName(512);
- strCoreName += "\\Properties\\Smp\\SchedulerClass";
+ strCoreName += "\\Class\\Smp\\MPClass";
cSMPCoreName.GetKey() = strCoreName;
cSMPCoreName.GetValue() = (UIntPtr)this;
@@ -132,17 +132,17 @@ namespace Kernel
}
///! @brief Default destructor.
- MPManager::~MPManager() = default;
+ MPCoreScheduler::~MPCoreScheduler() = default;
/// @brief Shared singleton function
- Ref<MPManager> MPManager::The()
+ Ref<MPCoreScheduler> MPCoreScheduler::The()
{
- static MPManager manager;
+ static MPCoreScheduler manager;
return {manager};
}
/// @brief Get Stack Frame of Core
- HAL::StackFramePtr MPManager::Leak() noexcept
+ HAL::StackFramePtr MPCoreScheduler::Leak() noexcept
{
if (fThreadList[fCurrentThread].Leak() &&
ProcessHelper::TheCurrentPID() ==
@@ -153,12 +153,12 @@ namespace Kernel
}
/// @brief Finds and switch to a free core.
- bool MPManager::Switch(HAL::StackFramePtr stack)
+ bool MPCoreScheduler::Switch(HAL::StackFramePtr stack)
{
if (stack == nullptr)
return false;
- for (SizeT idx = 0; idx < kMaxHarts; ++idx)
+ for (SizeT idx = 0; idx < cMaxHWThreads; ++idx)
{
// stack != nullptr -> if core is used, then continue.
if (!fThreadList[idx].Leak() ||
@@ -203,7 +203,7 @@ namespace Kernel
* @param idx the index
* @return the reference to the hardware thread.
*/
- Ref<HardwareThread*> MPManager::operator[](const SizeT& idx)
+ Ref<HardwareThread*> MPCoreScheduler::operator[](const SizeT& idx)
{
if (idx == 0)
{
@@ -212,7 +212,7 @@ namespace Kernel
fThreadList[idx].Leak().Leak()->fKind = kHartBoot;
}
}
- else if (idx >= kMaxHarts)
+ else if (idx >= cMaxHWThreads)
{
static HardwareThread* fakeThread = new HardwareThread();
@@ -233,7 +233,7 @@ namespace Kernel
* Check if thread pool isn't empty.
* @return
*/
- MPManager::operator bool() noexcept
+ MPCoreScheduler::operator bool() noexcept
{
return !fThreadList.Empty();
}
@@ -242,14 +242,14 @@ namespace Kernel
* Reverse operator bool
* @return
*/
- bool MPManager::operator!() noexcept
+ bool MPCoreScheduler::operator!() noexcept
{
return fThreadList.Empty();
}
/// @brief Returns the amount of core present.
/// @return the number of cores.
- SizeT MPManager::Count() noexcept
+ SizeT MPCoreScheduler::Count() noexcept
{
return fThreadList.Count();
}
diff --git a/Kernel/Sources/Main.cxx b/Kernel/Sources/Main.cxx
index 145598ac..a23f82c1 100644
--- a/Kernel/Sources/Main.cxx
+++ b/Kernel/Sources/Main.cxx
@@ -142,8 +142,8 @@ namespace Kernel::Detail
STATIC Kernel::Void ke_user_switch(Kernel::Void)
{
- Kernel::UserView::The()->fRootUser = new User(RingKind::kRingSuperUser, kSuperUser);
- Kernel::UserView::The()->LogIn(Kernel::UserView::The()->fRootUser, "root");
+ Kernel::UserManager::The()->fRootUser = new User(RingKind::kRingSuperUser, kSuperUser);
+ Kernel::UserManager::The()->LogIn(Kernel::UserManager::The()->fRootUser, "root");
Kernel::kcout << "newoskrnl: " << cKernelVersion.GetKey().CData() << ": " << Kernel::number(cKernelVersion.GetValue()) << Kernel::endl;
}
diff --git a/Kernel/Sources/ProcessScheduler.cxx b/Kernel/Sources/ProcessScheduler.cxx
index 94ae5fad..84fc7a1f 100644
--- a/Kernel/Sources/ProcessScheduler.cxx
+++ b/Kernel/Sources/ProcessScheduler.cxx
@@ -11,7 +11,7 @@
#include <KernelKit/ProcessScheduler.hxx>
#include <KernelKit/PEFSharedObject.hxx>
-#include <KernelKit/MPManager.hpp>
+#include <KernelKit/MP.hxx>
#include <KernelKit/Heap.hxx>
#include <NewKit/String.hpp>
#include <KernelKit/LPC.hxx>
@@ -395,29 +395,29 @@ namespace Kernel
if (!the_stack || new_pid < 0)
return false;
- for (SizeT index = 0UL; index < MPManager::The().Leak().Count(); ++index)
+ for (SizeT index = 0UL; index < MPCoreScheduler::The().Leak().Count(); ++index)
{
- if (MPManager::The().Leak()[index].Leak()->Kind() == kInvalidHart)
+ if (MPCoreScheduler::The().Leak()[index].Leak()->Kind() == kInvalidHart)
continue;
- if (MPManager::The().Leak()[index].Leak()->StackFrame() == the_stack)
+ if (MPCoreScheduler::The().Leak()[index].Leak()->StackFrame() == the_stack)
{
- MPManager::The().Leak()[index].Leak()->Busy(false);
+ MPCoreScheduler::The().Leak()[index].Leak()->Busy(false);
continue;
}
- if (MPManager::The().Leak()[index].Leak()->IsBusy())
+ if (MPCoreScheduler::The().Leak()[index].Leak()->IsBusy())
continue;
- if (MPManager::The().Leak()[index].Leak()->Kind() !=
+ if (MPCoreScheduler::The().Leak()[index].Leak()->Kind() !=
ThreadKind::kHartBoot &&
- MPManager::The().Leak()[index].Leak()->Kind() !=
+ MPCoreScheduler::The().Leak()[index].Leak()->Kind() !=
ThreadKind::kHartSystemReserved)
{
- MPManager::The().Leak()[index].Leak()->Busy(true);
+ MPCoreScheduler::The().Leak()[index].Leak()->Busy(true);
ProcessHelper::TheCurrentPID() = new_pid;
- return MPManager::The().Leak()[index].Leak()->Switch(the_stack);
+ return MPCoreScheduler::The().Leak()[index].Leak()->Switch(the_stack);
}
}
diff --git a/Kernel/Sources/User.cxx b/Kernel/Sources/User.cxx
index dda3d016..e546dd81 100644
--- a/Kernel/Sources/User.cxx
+++ b/Kernel/Sources/User.cxx
@@ -69,17 +69,17 @@ namespace Kernel
return this->Ring() == RingKind::kRingSuperUser;
}
- UserView* UserView::The() noexcept
+ UserManager* UserManager::The() noexcept
{
- UserView* view = nullptr;
+ UserManager* view = nullptr;
if (!view)
- view = new UserView();
+ view = new UserManager();
return view;
}
- Bool UserView::LogIn(User* user, const Char* password) noexcept
+ Bool UserManager::LogIn(User* user, const Char* password) noexcept
{
if (!password ||
!user)
@@ -143,12 +143,12 @@ namespace Kernel
return true;
}
- User* UserView::Current() noexcept
+ User* UserManager::Current() noexcept
{
return fCurrentUser;
}
- Void UserView::LogOff() noexcept
+ Void UserManager::LogOff() noexcept
{
if (!fCurrentUser)
return;