diff options
| author | Amlal El Mahrouss <zka-holder@mahrouss-logic.com> | 2024-10-14 05:58:38 +0000 |
|---|---|---|
| committer | Amlal El Mahrouss <zka-holder@mahrouss-logic.com> | 2024-10-14 05:58:38 +0000 |
| commit | 7ad3739afdfaa2466723467f5ef2526f171c87c3 (patch) | |
| tree | 37775f4299281598b0f5121df4c188392daebd04 /dev/zka/KernelKit | |
| parent | 7477a0f942c374b652da4f80cdb36d4661aac3c8 (diff) | |
| parent | d9d82713326069478e6dd212763d1fac15e65370 (diff) | |
Merge branch 'port-stage1-hello-world' into 'unstable'
IMP: Basic ARM64 port.
See merge request mahrouss/zka-dev!20
Diffstat (limited to 'dev/zka/KernelKit')
| -rw-r--r-- | dev/zka/KernelKit/DriveMgr.hxx | 10 | ||||
| -rw-r--r-- | dev/zka/KernelKit/Heap.hxx | 2 | ||||
| -rw-r--r-- | dev/zka/KernelKit/IDLLObject.hxx | 1 | ||||
| -rw-r--r-- | dev/zka/KernelKit/IPEFDLLObject.hxx | 1 | ||||
| -rw-r--r-- | dev/zka/KernelKit/UserProcessScheduler.hxx | 34 |
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; |
