summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-12-30 14:03:55 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-12-30 14:03:55 +0100
commita99c37b0bfba6e820b3cf47593e045123288e15c (patch)
tree94e821fe0626740ec538f79d588e5bd9922039f0
parenta70a1fc41e4420a3db2e64467cec349d794738ff (diff)
feat: HAL: fix CommonAPI and ran format command.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
-rw-r--r--CLAUDE.md4
-rw-r--r--src/kernel/HALKit/AMD64/HalCommonAPI.asm6
-rw-r--r--src/kernel/KernelKit/KPC.h13
-rw-r--r--src/kernel/KernelKit/UserMgr.h2
-rw-r--r--src/kernel/src/UserProcessScheduler.cc3
-rw-r--r--src/kernel/src/UserProcessTeam.cc10
6 files changed, 16 insertions, 22 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
index 6ff62b57..71651fb4 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -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;
}