summaryrefslogtreecommitdiffhomepage
path: root/dev/zka/KernelKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <zka-holder@mahrouss-logic.com>2024-10-14 05:58:38 +0000
committerAmlal El Mahrouss <zka-holder@mahrouss-logic.com>2024-10-14 05:58:38 +0000
commitd9d82713326069478e6dd212763d1fac15e65370 (patch)
tree37775f4299281598b0f5121df4c188392daebd04 /dev/zka/KernelKit
parent7477a0f942c374b652da4f80cdb36d4661aac3c8 (diff)
IMP: Basic ARM64 port.
Diffstat (limited to 'dev/zka/KernelKit')
-rw-r--r--dev/zka/KernelKit/DriveMgr.hxx10
-rw-r--r--dev/zka/KernelKit/Heap.hxx2
-rw-r--r--dev/zka/KernelKit/IDLLObject.hxx1
-rw-r--r--dev/zka/KernelKit/IPEFDLLObject.hxx1
-rw-r--r--dev/zka/KernelKit/UserProcessScheduler.hxx34
5 files changed, 20 insertions, 28 deletions
diff --git a/dev/zka/KernelKit/DriveMgr.hxx b/dev/zka/KernelKit/DriveMgr.hxx
index ffad5340..000020e1 100644
--- a/dev/zka/KernelKit/DriveMgr.hxx
+++ b/dev/zka/KernelKit/DriveMgr.hxx
@@ -26,17 +26,19 @@ namespace Kernel
{
enum
{
- kInvalidDrive = -1,
+ /// Storage type.
+ kInvalidStorage = -1,
kBlockDevice = 0xAD,
kMassStorage = 0xDA,
kFloppyDisc = 0xCD,
kOpticalDisc = 0xDC, // CD-ROM/DVD-ROM/Blu-Ray
- /// combine with below.
+ /// Storage flags, combine with below.
kReadOnly = 0x10, // Read only drive
kEPMDrive = 0x11, // Explicit Partition Map.
kEPTDrive = 0x12, // ESP w/ EPM partition.
- kMBRDrive = 0x13, // IBM PC classic partition scheme
- kDriveCnt = 9,
+ kMBRDrive = 0x13, // PC classic partition scheme
+ kGPTDrive = 0x14, // PC new partition scheme
+ kStorageCount = 9,
};
typedef Int64 rt_drive_id_type;
diff --git a/dev/zka/KernelKit/Heap.hxx b/dev/zka/KernelKit/Heap.hxx
index 8776ab5b..071c7f66 100644
--- a/dev/zka/KernelKit/Heap.hxx
+++ b/dev/zka/KernelKit/Heap.hxx
@@ -52,8 +52,6 @@ namespace Kernel
inline T* mm_new_class(Args&&... args)
{
T* cls = (T*)mm_new_heap(sizeof(T), No, No);
- MUST_PASS(cls);
-
*cls = T(move(args)...);
return cls;
diff --git a/dev/zka/KernelKit/IDLLObject.hxx b/dev/zka/KernelKit/IDLLObject.hxx
index 21c2848a..d8e273eb 100644
--- a/dev/zka/KernelKit/IDLLObject.hxx
+++ b/dev/zka/KernelKit/IDLLObject.hxx
@@ -10,6 +10,7 @@
#pragma once
#include <NewKit/Defines.hxx>
+#include <CompilerKit/CompilerKit.hxx>
namespace Kernel
{
diff --git a/dev/zka/KernelKit/IPEFDLLObject.hxx b/dev/zka/KernelKit/IPEFDLLObject.hxx
index c41d3365..4fbfe7b0 100644
--- a/dev/zka/KernelKit/IPEFDLLObject.hxx
+++ b/dev/zka/KernelKit/IPEFDLLObject.hxx
@@ -13,6 +13,7 @@
#include <KernelKit/PEF.hxx>
#include <NewKit/Defines.hxx>
#include <KernelKit/PEFCodeMgr.hxx>
+#include <KernelKit/UserProcessScheduler.hxx>
#include <KernelKit/IDLLObject.hxx>
namespace Kernel
diff --git a/dev/zka/KernelKit/UserProcessScheduler.hxx b/dev/zka/KernelKit/UserProcessScheduler.hxx
index 6bab5856..84d674cc 100644
--- a/dev/zka/KernelKit/UserProcessScheduler.hxx
+++ b/dev/zka/KernelKit/UserProcessScheduler.hxx
@@ -14,7 +14,7 @@
#define kSchedMinMicroTime (AffinityKind::kStandard)
#define kSchedInvalidPID (-1)
-#define kSchedProcessLimitPerTeam (16U)
+#define kSchedProcessLimitPerTeam (32U)
#define kSchedMaxMemoryLimit gib_cast(128)
#define kSchedMaxStackSz mib_cast(8)
@@ -157,7 +157,7 @@ namespace Kernel
SizeT StackSize{kSchedMaxStackSz};
- //! @brief Shared library handle, reserved for eExecutableDLLKind types of executables only.
+ //! @brief Shared library handle, reserved for kExectuableDLLKind types of executables only.
IPEFDLLObject* PefDLLDelegate{nullptr};
// Memory usage.
@@ -178,15 +178,15 @@ namespace Kernel
enum
{
- eExecutableKind,
- eExecutableDLLKind,
- eExecutableKindCount,
+ kExectuableKind,
+ kExectuableDLLKind,
+ kExectuableKindCount,
};
ProcessTime PTime{0}; //! @brief Process allocated tine.
PID ProcessId{kSchedInvalidPID};
- Int32 Kind{eExecutableKind};
+ Int32 Kind{kExectuableKind};
public:
//! @brief boolean operator, check status.
@@ -263,7 +263,6 @@ namespace Kernel
public:
explicit UserProcessScheduler() = default;
-
~UserProcessScheduler() = default;
ZKA_COPY_DEFAULT(UserProcessScheduler)
@@ -275,23 +274,13 @@ namespace Kernel
UserProcessTeam& CurrentTeam();
public:
- SizeT Add(UserProcess processRef);
- Bool Remove(ProcessID processSlot);
-
- const Bool IsUser() override
- {
- return Yes;
- }
+ SizeT Add(UserProcess process);
+ Bool Remove(ProcessID process_id);
- const Bool IsKernel() override
- {
- return No;
- }
+ const Bool IsUser() override;
+ const Bool IsKernel() override;
+ const Bool HasMP() override;
- const Bool HasMP() override
- {
- return kHandoverHeader->f_HardwareTables.f_MultiProcessingEnabled;
- }
public:
Ref<UserProcess>& CurrentProcess();
@@ -315,6 +304,7 @@ namespace Kernel
STATIC bool CanBeScheduled(const UserProcess& process);
STATIC PID& TheCurrentPID();
STATIC SizeT StartScheduling();
+ STATIC Bool InitializeScheduling();
};
const UInt32& sched_get_exit_code(void) noexcept;