summaryrefslogtreecommitdiffhomepage
path: root/dev
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-08-23 09:13:37 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-08-23 09:13:37 +0200
commit141786008aa639c313d83a6a06db700ed69ed064 (patch)
treefc1491f507e8881e48e1bbaa19bc3aca0e38699c /dev
parenta8f2ba9ebe9b17fe5f6367021e32f64d573a4ac0 (diff)
feat: scheduler: ProcessImage should be friend with KernelScheduler,
not helper. feat! scheduler: Introduce ProcessID as only PID type. Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev')
-rw-r--r--dev/kernel/KernelKit/CoreProcessScheduler.h13
-rw-r--r--dev/kernel/KernelKit/KernelTaskScheduler.h6
-rw-r--r--dev/kernel/KernelKit/UserProcessScheduler.h6
-rw-r--r--dev/kernel/NetworkKit/IPC.h2
-rw-r--r--dev/kernel/src/UserProcessScheduler.cc12
5 files changed, 19 insertions, 20 deletions
diff --git a/dev/kernel/KernelKit/CoreProcessScheduler.h b/dev/kernel/KernelKit/CoreProcessScheduler.h
index ee848ffc..fa124a02 100644
--- a/dev/kernel/KernelKit/CoreProcessScheduler.h
+++ b/dev/kernel/KernelKit/CoreProcessScheduler.h
@@ -118,11 +118,6 @@ enum class ProcessSubsystem : Int32 {
};
/***********************************************************************************/
-//! @brief Local Process identifier.
-/***********************************************************************************/
-typedef Int64 ProcessID;
-
-/***********************************************************************************/
//! @brief Local Process status enum.
/***********************************************************************************/
enum class ProcessStatusKind : Int32 {
@@ -181,7 +176,11 @@ inline bool operator>=(AffinityKind lhs, AffinityKind rhs) {
using PTime = UInt64;
using ProcessTime = PTime;
-using PID = Int64;
+
+/***********************************************************************************/
+//! @brief Local Process identifier.
+/***********************************************************************************/
+using ProcessID = Int64;
/***********************************************************************************/
/// @note For User manager, tells where we run the code.
@@ -209,7 +208,7 @@ struct ProcessImage final {
friend KERNEL_TASK;
friend class UserProcessScheduler;
- friend class KernelTaskHelper;
+ friend class KernelTaskScheduler;
ImagePtr fCode{};
ImagePtr fBlob{};
diff --git a/dev/kernel/KernelKit/KernelTaskScheduler.h b/dev/kernel/KernelKit/KernelTaskScheduler.h
index 527da9f0..527eec5e 100644
--- a/dev/kernel/KernelKit/KernelTaskScheduler.h
+++ b/dev/kernel/KernelKit/KernelTaskScheduler.h
@@ -17,7 +17,7 @@
namespace Kernel {
class KernelTaskHelper;
-typedef PID KID;
+typedef ProcessID KID;
/// @brief Equivalent of USER_PROCESS, but for kernel tasks.
/// @author Amlal
@@ -38,9 +38,9 @@ class KERNEL_TASK final {
/// @author Amlal
class KernelTaskHelper final {
public:
- STATIC Bool Switch(HAL::StackFramePtr frame_ptr, PID new_kid);
+ STATIC Bool Switch(HAL::StackFramePtr frame_ptr, ProcessID new_kid);
STATIC Bool CanBeScheduled(const KERNEL_TASK& process);
- STATIC ErrorOr<PID> TheCurrentKID();
+ STATIC ErrorOr<ProcessID> TheCurrentKID();
STATIC SizeT StartScheduling();
};
} // namespace Kernel \ No newline at end of file
diff --git a/dev/kernel/KernelKit/UserProcessScheduler.h b/dev/kernel/KernelKit/UserProcessScheduler.h
index 69a631be..a7ef13a9 100644
--- a/dev/kernel/KernelKit/UserProcessScheduler.h
+++ b/dev/kernel/KernelKit/UserProcessScheduler.h
@@ -79,7 +79,7 @@ class USER_PROCESS final {
ProcessTime RTime{0}; //! @brief Process run time.
ProcessTime UTime{0}; //! #brief Process used time.
- PID ProcessId{kSchedInvalidPID};
+ ProcessID ProcessId{kSchedInvalidPID};
Int32 Kind{kExecutableKind};
public:
@@ -226,9 +226,9 @@ class UserProcessScheduler final : public ISchedulable {
class UserProcessHelper final {
public:
- STATIC Bool Switch(HAL::StackFramePtr frame_ptr, PID new_pid);
+ STATIC Bool Switch(HAL::StackFramePtr frame_ptr, ProcessID new_pid);
STATIC Bool CanBeScheduled(const USER_PROCESS& process);
- STATIC ErrorOr<PID> TheCurrentPID();
+ STATIC ErrorOr<ProcessID> TheCurrentPID();
STATIC SizeT StartScheduling();
};
} // namespace Kernel
diff --git a/dev/kernel/NetworkKit/IPC.h b/dev/kernel/NetworkKit/IPC.h
index d14356c0..223a112b 100644
--- a/dev/kernel/NetworkKit/IPC.h
+++ b/dev/kernel/NetworkKit/IPC.h
@@ -20,7 +20,7 @@
/// IA separator.
#define kIPCRemoteSeparator ":"
-/// Interchange address, consists of PID:TEAM.
+/// Interchange address, consists of ProcessID:TEAM.
#define kIPCRemoteInvalid "00:00"
#define kIPCHeaderMagic (0x4950434)
diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc
index b73c9a3f..19e509ed 100644
--- a/dev/kernel/src/UserProcessScheduler.cc
+++ b/dev/kernel/src/UserProcessScheduler.cc
@@ -437,7 +437,7 @@ ProcessID UserProcessScheduler::Spawn(const Char* name, VoidPtr code, VoidPtr im
/// @todo File Tree allocation and dispose methods (amlal)
}
- (Void)(kout << "PID: " << number(process.ProcessId) << kendl);
+ (Void)(kout << "ProcessID: " << number(process.ProcessId) << kendl);
(Void)(kout << "Name: " << process.Name << kendl);
return pid;
@@ -573,11 +573,11 @@ Ref<USER_PROCESS>& UserProcessScheduler::TheCurrentProcess() {
/// @brief Current proccess id getter.
/// @return USER_PROCESS ID integer.
-ErrorOr<PID> UserProcessHelper::TheCurrentPID() {
- if (!UserProcessScheduler::The().TheCurrentProcess()) return ErrorOr<PID>{-kErrorProcessFault};
+ErrorOr<ProcessID> UserProcessHelper::TheCurrentPID() {
+ if (!UserProcessScheduler::The().TheCurrentProcess()) return ErrorOr<ProcessID>{-kErrorProcessFault};
kout << "UserProcessHelper::TheCurrentPID: Leaking ProcessId...\r";
- return ErrorOr<PID>{UserProcessScheduler::The().TheCurrentProcess().Leak().ProcessId};
+ return ErrorOr<ProcessID>{UserProcessScheduler::The().TheCurrentProcess().Leak().ProcessId};
}
/// @brief Check if process can be schedulded.
@@ -613,11 +613,11 @@ SizeT UserProcessHelper::StartScheduling() {
/**
* \brief Does a context switch in a CPU.
* \param the_stack the stackframe of the running app.
- * \param new_pid the process's PID.
+ * \param new_pid the process's ProcessID.
*/
/***********************************************************************************/
-Bool UserProcessHelper::Switch(HAL::StackFramePtr frame_ptr, PID new_pid) {
+Bool UserProcessHelper::Switch(HAL::StackFramePtr frame_ptr, ProcessID new_pid) {
(Void)(kout << "IP: " << hex_number(frame_ptr->IP) << kendl);
for (SizeT index = 0UL; index < HardwareThreadScheduler::The().Capacity(); ++index) {