diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-30 14:03:55 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-30 14:03:55 +0100 |
| commit | a99c37b0bfba6e820b3cf47593e045123288e15c (patch) | |
| tree | 94e821fe0626740ec538f79d588e5bd9922039f0 | |
| parent | a70a1fc41e4420a3db2e64467cec349d794738ff (diff) | |
feat: HAL: fix CommonAPI and ran format command.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
| -rw-r--r-- | CLAUDE.md | 4 | ||||
| -rw-r--r-- | src/kernel/HALKit/AMD64/HalCommonAPI.asm | 6 | ||||
| -rw-r--r-- | src/kernel/KernelKit/KPC.h | 13 | ||||
| -rw-r--r-- | src/kernel/KernelKit/UserMgr.h | 2 | ||||
| -rw-r--r-- | src/kernel/src/UserProcessScheduler.cc | 3 | ||||
| -rw-r--r-- | src/kernel/src/UserProcessTeam.cc | 10 |
6 files changed, 16 insertions, 22 deletions
@@ -105,7 +105,7 @@ Located in `src/kernel/`: - **NeKit**: Foundation (ErrorOr<T>, Ref, Array, Stream, JSON/TOML, Vettable concept) - **KernelKit**: Schedulers (ProcessScheduler, UserProcessScheduler, KernelTaskScheduler), process trees (Red-Black tree), PCI/DMA - **HALKit**: Hardware abstraction (AMD64, ARM64, PowerPC, RISC-V) -- **FSKit**: Filesystems (NeFS, Ext2+IFS, OpenHeFS/HFS+) +- **FSKit**: Filesystems (NeFS, Ext2+IFS, OpenHeFS) - **StorageKit**: Device drivers (AHCI, ATA, SCSI, NVME) - **DeviceMgr**: Template-based device interface `IDevice<T>` with `IOBuf<T>` for DMA - **DriveMgr**: Drive abstraction with `DriveTrait` structs @@ -115,7 +115,7 @@ Located in `src/kernel/`: - **SignalKit**: Signal generation (SIGKILL, SIGPAUSE, SIGSEGV, etc.) - **CodeMgr**: Executable formats (PE, PEF, PE32, XCOFF, ZXD) - **HeapMgr, SwapKit, DmaKit**: Memory management -- **UserMgr**: User/privilege management (Ring 1, 2, 5) +- **UserMgr**: User/privilege management (Ring 1, 2, 3) - **TraceSrv**: Tracing and debugging ### System Calls (libSystem API) diff --git a/src/kernel/HALKit/AMD64/HalCommonAPI.asm b/src/kernel/HALKit/AMD64/HalCommonAPI.asm index 9f3652bc..144e5e7a 100644 --- a/src/kernel/HALKit/AMD64/HalCommonAPI.asm +++ b/src/kernel/HALKit/AMD64/HalCommonAPI.asm @@ -120,9 +120,6 @@ sched_idle_task: ret sched_recover_registers: - push rbp - mov rbp, rsp - mov r8, [rcx + 0x10] mov r9, [rcx + 0x18] mov r10, [rcx + 0x20] @@ -132,6 +129,5 @@ sched_recover_registers: mov r14, [rcx + 0x40] mov r15, [rcx + 0x48] - pop rbp + ret - ret
\ No newline at end of file diff --git a/src/kernel/KernelKit/KPC.h b/src/kernel/KernelKit/KPC.h index e2040903..17104067 100644 --- a/src/kernel/KernelKit/KPC.h +++ b/src/kernel/KernelKit/KPC.h @@ -10,14 +10,11 @@ /// @file KPC.h /// @brief Kernel Procedure Code. -#define err_local_ok() \ - (Kernel::UserProcessScheduler::The().TheCurrentProcess().GetLocalCode() == \ - Kernel::kErrorSuccess) -#define err_local_fail() \ - (Kernel::UserProcessScheduler::The().TheCurrentProcess().GetLocalCode() != \ - Kernel::kErrorSuccess) -#define err_local_get() \ - (Kernel::UserProcessScheduler::The().TheCurrentProcess().GetLocalCode()) +#define err_local_ok() \ + (Kernel::UserProcessScheduler::The().TheCurrentProcess().GetLocalCode() == Kernel::kErrorSuccess) +#define err_local_fail() \ + (Kernel::UserProcessScheduler::The().TheCurrentProcess().GetLocalCode() != Kernel::kErrorSuccess) +#define err_local_get() (Kernel::UserProcessScheduler::The().TheCurrentProcess().GetLocalCode()) #define err_global_ok() (Kernel::kErrorLocalNumber == Kernel::kErrorSuccess) #define err_global_fail() (Kernel::kErrorLocalNumber != Kernel::kErrorSuccess) diff --git a/src/kernel/KernelKit/UserMgr.h b/src/kernel/KernelKit/UserMgr.h index e698bd7b..100803ec 100644 --- a/src/kernel/KernelKit/UserMgr.h +++ b/src/kernel/KernelKit/UserMgr.h @@ -40,7 +40,7 @@ enum struct UserRingKind : Int32 { kRingCount = 3, }; -using UserPublicKey = Char*; +using UserPublicKey = Char*; using UserPublicKeyType = Char; /// @brief System User class. diff --git a/src/kernel/src/UserProcessScheduler.cc b/src/kernel/src/UserProcessScheduler.cc index fb2cd954..6bd5f3fd 100644 --- a/src/kernel/src/UserProcessScheduler.cc +++ b/src/kernel/src/UserProcessScheduler.cc @@ -271,7 +271,8 @@ Void UserProcess::Exit(const Int32& exit_code) { if (this->Image.fBlob && mm_is_valid_ptr(this->Image.fBlob)) mm_free_ptr(this->Image.fBlob); //! Delete stack frame. - if (this->StackFrame && mm_is_valid_ptr(this->StackFrame)) mm_free_ptr((VoidPtr) this->StackFrame); + if (this->StackFrame && mm_is_valid_ptr(this->StackFrame)) + mm_free_ptr((VoidPtr) this->StackFrame); //! Avoid use after free. this->Image.fBlob = nullptr; diff --git a/src/kernel/src/UserProcessTeam.cc b/src/kernel/src/UserProcessTeam.cc index de265ce1..51cc938a 100644 --- a/src/kernel/src/UserProcessTeam.cc +++ b/src/kernel/src/UserProcessTeam.cc @@ -7,11 +7,11 @@ namespace Kernel { UserProcessTeam::UserProcessTeam() { for (SizeT i = 0U; i < this->mProcessList.Count(); ++i) { - this->mProcessList[i] = UserProcess{}; - this->mProcessList[i].PTime = 0; - this->mProcessList[i].RTime = 0; - this->mProcessList[i].UTime = 0; - this->mProcessList[i].Status = ProcessStatusKind::kKilled; + this->mProcessList[i] = UserProcess{}; + this->mProcessList[i].PTime = 0; + this->mProcessList[i].RTime = 0; + this->mProcessList[i].UTime = 0; + this->mProcessList[i].Status = ProcessStatusKind::kKilled; *this->mProcessList[i].GetParentTeam() = *this; } |
