summaryrefslogtreecommitdiffhomepage
path: root/src/kernel
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2026-02-04 10:44:00 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2026-02-04 10:44:00 +0100
commit87aa249b33a68013b3a787c8d5c0ce880f8c4d84 (patch)
tree4d24891dbc4fa401d008aaf6c2b8a4b235b2c4cf /src/kernel
parent30ba1aab88bd8138a6b3b3e1dbb464e4e67af698 (diff)
chore: kernel: Source code fixes and stabilization.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/HALKit/AMD64/HalKernelMain.cc16
-rw-r--r--src/kernel/NeKit/OwnPtr.h2
-rw-r--r--src/kernel/src/FileMgr.cc3
-rw-r--r--src/kernel/src/PEFCodeMgr.cc6
4 files changed, 16 insertions, 11 deletions
diff --git a/src/kernel/HALKit/AMD64/HalKernelMain.cc b/src/kernel/HALKit/AMD64/HalKernelMain.cc
index 0179732f..7e6579de 100644
--- a/src/kernel/HALKit/AMD64/HalKernelMain.cc
+++ b/src/kernel/HALKit/AMD64/HalKernelMain.cc
@@ -133,6 +133,14 @@ EXTERN_C Kernel::Int32 hal_init_platform(Kernel::HEL::BootInfoHeader* handover_h
}
EXTERN_C Kernel::Void hal_real_init(Kernel::Void) {
+ HAL::mp_init_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr);
+
+ HAL::Register64 idt_reg;
+ idt_reg.Base = reinterpret_cast<UIntPtr>(kInterruptVectorTable);
+
+ HAL::IDTLoader idt_loader;
+ idt_loader.Load(idt_reg);
+
#ifdef __FSKIT_INCLUDES_OPENHEFS__
OpenHeFS::fs_init_openhefs();
HeFileSystemMgr::Mount(new HeFileSystemMgr());
@@ -149,13 +157,7 @@ EXTERN_C Kernel::Void hal_real_init(Kernel::Void) {
if (ldr.IsLoaded()) rtl_create_user_process(ldr, UserProcess::ExecutableKind::kExecutableKind);
- HAL::mp_init_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr);
-
- HAL::Register64 idt_reg;
- idt_reg.Base = reinterpret_cast<UIntPtr>(kInterruptVectorTable);
-
- HAL::IDTLoader idt_loader;
- idt_loader.Load(idt_reg);
+ UserProcessScheduler::The().SwitchTeam(kMidUserTeam);
while (YES);
}
diff --git a/src/kernel/NeKit/OwnPtr.h b/src/kernel/NeKit/OwnPtr.h
index 01a3f969..58b6f262 100644
--- a/src/kernel/NeKit/OwnPtr.h
+++ b/src/kernel/NeKit/OwnPtr.h
@@ -34,7 +34,7 @@ class OwnPtr final {
}
fCls = new T(arg...);
- return fCls;
+ return fCls != nullptr;
}
void Reset() {
diff --git a/src/kernel/src/FileMgr.cc b/src/kernel/src/FileMgr.cc
index fb2a40dc..b33e54c3 100644
--- a/src/kernel/src/FileMgr.cc
+++ b/src/kernel/src/FileMgr.cc
@@ -17,7 +17,6 @@ STATIC IFilesystemMgr* kMountedFilesystem = nullptr;
/// @brief FilesystemMgr getter.
/// @return The mounted filesystem.
_Output IFilesystemMgr* IFilesystemMgr::GetMounted() {
- MUST_PASS(kMountedFilesystem && kMountedFilesystem->GetMounted());
return kMountedFilesystem;
}
@@ -27,8 +26,6 @@ _Output IFilesystemMgr* IFilesystemMgr::Unmount() {
if (kMountedFilesystem) {
auto mount = kMountedFilesystem;
- MUST_PASS(mount->GetMounted());
-
kMountedFilesystem = nullptr;
return mount;
}
diff --git a/src/kernel/src/PEFCodeMgr.cc b/src/kernel/src/PEFCodeMgr.cc
index db140ba4..3c2727e7 100644
--- a/src/kernel/src/PEFCodeMgr.cc
+++ b/src/kernel/src/PEFCodeMgr.cc
@@ -89,6 +89,12 @@ PEFLoader::PEFLoader(const VoidPtr blob) : fCachedBlob(blob) {
/***********************************************************************************/
PEFLoader::PEFLoader(const Char* path) : fCachedBlob(nullptr), fFatBinary(false), fBad(false) {
fFile.New(const_cast<Char*>(path), kRestrictRB);
+
+ if (!fFile) {
+ this->fBad = YES;
+ return;
+ }
+
fPath = KStringBuilder::Construct(path).Leak();
constexpr auto kPefHeader = "PEF_CONTAINER";