summaryrefslogtreecommitdiffhomepage
path: root/src/kernel/KernelKit
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/KernelKit')
-rw-r--r--src/kernel/KernelKit/Config.h4
-rw-r--r--src/kernel/KernelKit/CoreProcessScheduler.h65
-rw-r--r--src/kernel/KernelKit/DriveMgr.h2
-rw-r--r--src/kernel/KernelKit/HardwareThreadScheduler.h6
-rw-r--r--src/kernel/KernelKit/ILoader.h6
-rw-r--r--src/kernel/KernelKit/KernelTask.h4
-rw-r--r--src/kernel/KernelKit/PCI/DMA.h2
-rw-r--r--src/kernel/KernelKit/PCI/Device.h2
-rw-r--r--src/kernel/KernelKit/TraceSrv.h1
-rw-r--r--src/kernel/KernelKit/UserProcessScheduler.h25
10 files changed, 47 insertions, 70 deletions
diff --git a/src/kernel/KernelKit/Config.h b/src/kernel/KernelKit/Config.h
index 8076a1c2..2df23851 100644
--- a/src/kernel/KernelKit/Config.h
+++ b/src/kernel/KernelKit/Config.h
@@ -8,8 +8,8 @@
#include <NeKit/Config.h>
-#define KERNELKIT_VERSION "0.0.2"
-#define KERNELKIT_VERSION_BCD 0x0002
+#define KERNELKIT_VERSION "0.0.3"
+#define KERNELKIT_VERSION_BCD 0x0003
namespace Kernel {
class UserProcessScheduler;
diff --git a/src/kernel/KernelKit/CoreProcessScheduler.h b/src/kernel/KernelKit/CoreProcessScheduler.h
index 0d915f12..71a75e1a 100644
--- a/src/kernel/KernelKit/CoreProcessScheduler.h
+++ b/src/kernel/KernelKit/CoreProcessScheduler.h
@@ -13,15 +13,14 @@
/// @brief Core Process Scheduler header file.
/// @author Amlal El Mahrouss (amlal@nekernel.org)
-#define kSchedMinMicroTime (AffinityKind::kStandard)
-#define kSchedInvalidPID (-1)
-#define kSchedProcessLimitPerTeam (32U)
-#define kSchedTeamCount (256U)
+#define kCPSMinMicroTime (AffinityKind::kStandard)
+#define kCPSInvalidPID (-1)
+#define kCPSProcessLimitPerTeam (32U)
+#define kCPSTeamCount (256U)
-#define kSchedMaxMemoryLimit (gib_cast(128)) /* max physical memory limit */
-#define kSchedMaxStackSz (kib_cast(8)) /* maximum stack size */
-
-#define kSchedNameLen (128U)
+#define kCPSMaxMemoryLimit (gib_cast(128)) /* max physical memory limit */
+#define kCPSMaxStackSz (kib_cast(8)) /* maximum stack size */
+#define kCPSNameLen (128U)
EXTERN_C void sched_idle_task(void);
@@ -60,19 +59,11 @@ struct ProcessHeapTree final {
TreeKind Color{TreeKind::kBlackTreeKind};
- struct ProcessHeapTree<T>* Parent {
- nullptr
- };
- struct ProcessHeapTree<T>* Child {
- nullptr
- };
-
- struct ProcessHeapTree<T>* Prev {
- nullptr
- };
- struct ProcessHeapTree<T>* Next {
- nullptr
- };
+ struct ProcessHeapTree<T>* Parent{nullptr};
+ struct ProcessHeapTree<T>* Child{nullptr};
+
+ struct ProcessHeapTree<T>* Prev{nullptr};
+ struct ProcessHeapTree<T>* Next{nullptr};
};
template <typename T>
@@ -87,21 +78,13 @@ struct ProcessFileTree final {
TreeKind Color{TreeKind::kBlackTreeKind};
- struct ProcessFileTree<T>* Parent {
- nullptr
- };
+ struct ProcessFileTree<T>* Parent{nullptr};
- struct ProcessFileTree<T>* Child {
- nullptr
- };
+ struct ProcessFileTree<T>* Child{nullptr};
- struct ProcessFileTree<T>* Prev {
- nullptr
- };
+ struct ProcessFileTree<T>* Prev{nullptr};
- struct ProcessFileTree<T>* Next {
- nullptr
- };
+ struct ProcessFileTree<T>* Next{nullptr};
};
template <typename T>
@@ -122,21 +105,13 @@ struct ProcessSpecialTree final {
TreeKind Color{TreeKind::kBlackTreeKind};
- struct ProcessSpecialTree<T>* Parent {
- nullptr
- };
+ struct ProcessSpecialTree<T>* Parent{nullptr};
- struct ProcessSpecialTree<T>* Child {
- nullptr
- };
+ struct ProcessSpecialTree<T>* Child{nullptr};
- struct ProcessSpecialTree<T>* Prev {
- nullptr
- };
+ struct ProcessSpecialTree<T>* Prev{nullptr};
- struct ProcessSpecialTree<T>* Next {
- nullptr
- };
+ struct ProcessSpecialTree<T>* Next{nullptr};
};
/***********************************************************************************/
diff --git a/src/kernel/KernelKit/DriveMgr.h b/src/kernel/KernelKit/DriveMgr.h
index 082ffc95..76ee5dcf 100644
--- a/src/kernel/KernelKit/DriveMgr.h
+++ b/src/kernel/KernelKit/DriveMgr.h
@@ -73,7 +73,7 @@ struct DriveTrait final {
Void (*fOutput)(DrivePacket& packet){nullptr};
Void (*fVerify)(DrivePacket& packet){nullptr};
Void (*fInit)(DrivePacket& packet){nullptr};
- const Char* (*fProtocol)(Void){nullptr};
+ const Char* (*fProtocol)(Void) {nullptr};
};
namespace Probe {
diff --git a/src/kernel/KernelKit/HardwareThreadScheduler.h b/src/kernel/KernelKit/HardwareThreadScheduler.h
index 53a971e5..a9183cd2 100644
--- a/src/kernel/KernelKit/HardwareThreadScheduler.h
+++ b/src/kernel/KernelKit/HardwareThreadScheduler.h
@@ -64,10 +64,10 @@ class HardwareThread final {
BOOL IsWakeup();
public:
- HAL::StackFramePtr StackFrame();
+ HAL::StackFramePtr StackFrame();
_Output const ThreadKind& Kind();
BOOL IsBusy();
- _Output const ThreadID& ID();
+ _Output const ThreadID& ID();
private:
HAL::StackFramePtr fStack{};
@@ -102,7 +102,7 @@ class HardwareThreadScheduler final : public ISchedulable {
public:
Ref<HardwareThread*> operator[](SizeT idx);
bool operator!();
- operator bool();
+ operator bool();
Bool IsUser() override { return Yes; }
diff --git a/src/kernel/KernelKit/ILoader.h b/src/kernel/KernelKit/ILoader.h
index f6e13023..9291340f 100644
--- a/src/kernel/KernelKit/ILoader.h
+++ b/src/kernel/KernelKit/ILoader.h
@@ -26,9 +26,9 @@ class ILoader {
public:
virtual _Output ErrorOr<VoidPtr> GetBlob() { return ErrorOr<VoidPtr>{}; }
- virtual _Output const Char* AsString() { return "(null)"; }
- virtual _Output const Char* MIME() { return "*/*"; }
- virtual _Output const Char* Path() { return "(null)"; }
+ virtual _Output const Char* AsString() { return "(null)"; }
+ virtual _Output const Char* MIME() { return "*/*"; }
+ virtual _Output const Char* Path() { return "(null)"; }
virtual _Output ErrorOr<VoidPtr> FindStart() { return ErrorOr<VoidPtr>{}; }
virtual _Output ErrorOr<VoidPtr> FindSymbol(_Input const Char*, _Input Int32) {
return ErrorOr<VoidPtr>{};
diff --git a/src/kernel/KernelKit/KernelTask.h b/src/kernel/KernelKit/KernelTask.h
index 6e319cbe..8227f7d1 100644
--- a/src/kernel/KernelKit/KernelTask.h
+++ b/src/kernel/KernelKit/KernelTask.h
@@ -24,11 +24,11 @@ using KID = ProcessID;
/// @author Amlal
class KernelTask final {
public:
- Char Name[kSchedNameLen] = {"KernelTask"};
+ Char Name[kCPSNameLen] = {"KernelTask"};
ProcessSubsystem SubSystem{ProcessSubsystem::kProcessSubsystemKernel};
HAL::StackFramePtr StackFrame{nullptr};
UInt8* StackReserve{nullptr};
- SizeT StackSize{kSchedMaxStackSz};
+ SizeT StackSize{kCPSMaxStackSz};
ProcessImage Image{};
/// @brief a KID is a Kernel ID, it is used to find a task running within the kernel.
diff --git a/src/kernel/KernelKit/PCI/DMA.h b/src/kernel/KernelKit/PCI/DMA.h
index 63b284cb..f27681de 100644
--- a/src/kernel/KernelKit/PCI/DMA.h
+++ b/src/kernel/KernelKit/PCI/DMA.h
@@ -47,7 +47,7 @@ class DMAWrapper final {
T* Get(UIntPtr off = 0);
public:
- operator bool();
+ operator bool();
bool operator!();
public:
diff --git a/src/kernel/KernelKit/PCI/Device.h b/src/kernel/KernelKit/PCI/Device.h
index b7737385..1adc9f24 100644
--- a/src/kernel/KernelKit/PCI/Device.h
+++ b/src/kernel/KernelKit/PCI/Device.h
@@ -51,7 +51,7 @@ class Device final {
}
public:
- UShort DeviceId();
+ UInt16 DeviceId();
UShort VendorId();
UShort InterfaceId();
UChar Class();
diff --git a/src/kernel/KernelKit/TraceSrv.h b/src/kernel/KernelKit/TraceSrv.h
index 998a14e9..47877349 100644
--- a/src/kernel/KernelKit/TraceSrv.h
+++ b/src/kernel/KernelKit/TraceSrv.h
@@ -7,6 +7,7 @@
#define KERNELKIT_TRACESRV_H
#include <CompilerKit/CompilerKit.h>
+#include <NeKit/NeKit.h>
namespace Kernel {
diff --git a/src/kernel/KernelKit/UserProcessScheduler.h b/src/kernel/KernelKit/UserProcessScheduler.h
index 4a160121..5018f1f6 100644
--- a/src/kernel/KernelKit/UserProcessScheduler.h
+++ b/src/kernel/KernelKit/UserProcessScheduler.h
@@ -52,20 +52,21 @@ class UserProcess final {
UIntPtr SignalID{0};
};
- Char Name[kSchedNameLen] = {"UserProcess"};
+ Char Name[kCPSNameLen] = {"UserProcess"};
ProcessSubsystem SubSystem{ProcessSubsystem::kProcessSubsystemUser};
User* Owner{nullptr};
HAL::StackFramePtr StackFrame{nullptr};
AffinityKind Affinity{AffinityKind::kStandard};
ProcessStatusKind Status{ProcessStatusKind::kKilled};
- UInt8 StackReserve[kSchedMaxStackSz];
- SizeT StackSize{kSchedMaxStackSz};
+ UInt8 StackReserve[kCPSMaxStackSz];
+ SizeT StackSize{kCPSMaxStackSz};
IDylibObject* DylibDelegate{nullptr};
SizeT MemoryCursor{0UL};
- SizeT MemoryLimit{kSchedMaxMemoryLimit};
- SizeT UsedMemory{0UL};
- UserProcessSignal Signal;
- ProcessImage Image;
+ SizeT MemoryLimit{kCPSMaxMemoryLimit};
+ SizeT UsedMemory{0UL}; /// AMLALE: This should be thread-safe as well.
+ SizeT UsedFiles{0UL}; /// AMLALE: This is a thread-safe counter to track file allocation count.
+ UserProcessSignal Signal;
+ ProcessImage Image;
private:
ProcessFileTree<Any>* FileTree{nullptr};
@@ -86,7 +87,7 @@ class UserProcess final {
ProcessTime RTime{0}; //! @brief Process run time.
ProcessTime UTime{0}; //! #brief Process used time.
- ProcessID ProcessId{kSchedInvalidPID};
+ ProcessID ProcessId{kCPSInvalidPID};
ExecutableKind Kind{ExecutableKind::kExecutableKind};
public:
@@ -193,7 +194,7 @@ inline bool operator>=(UserProcess::ExecutableKind lhs, UserProcess::ExecutableK
return lhs_int >= rhs_int;
}
-using UserProcessArray = Array<UserProcess, kSchedProcessLimitPerTeam>;
+using UserProcessArray = Array<UserProcess, kCPSProcessLimitPerTeam>;
using UserProcessRef = Ref<UserProcess>;
/// \brief Processs Team (contains multiple processes inside it.)
@@ -205,9 +206,9 @@ class UserProcessTeam final {
NE_COPY_DEFAULT(UserProcessTeam)
- Array<UserProcess, kSchedProcessLimitPerTeam>& AsArray();
- Ref<UserProcess>& AsRef();
- ProcessID& Id();
+ Array<UserProcess, kCPSProcessLimitPerTeam>& AsArray();
+ Ref<UserProcess>& AsRef();
+ ProcessID& Id();
public:
UserProcessArray mProcessList;