summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/src
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-05-26 20:29:57 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-05-26 20:29:57 +0200
commitf4babecc6d72aae688ad85fc726e22dbd1f82219 (patch)
tree8dc79036504c2b04337b130842f85bb843e4d85d /dev/kernel/src
parentdd0b266dbe8a5c5d132640ee944f2232f1ff2c1c (diff)
feat!: Add IFS layer within DriveMgr, and IFS API.
also: - Use ThreadID in AP system. - Refactor kernel according to new IFS layer. Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src')
-rw-r--r--dev/kernel/src/FS/NeFS+FileSystemParser.cc1
-rw-r--r--dev/kernel/src/IFS.cc (renamed from dev/kernel/src/DriveMgr+IO.cc)16
-rw-r--r--dev/kernel/src/UserProcessScheduler.cc1
3 files changed, 10 insertions, 8 deletions
diff --git a/dev/kernel/src/FS/NeFS+FileSystemParser.cc b/dev/kernel/src/FS/NeFS+FileSystemParser.cc
index 97b2ff36..dd0a1d9a 100644
--- a/dev/kernel/src/FS/NeFS+FileSystemParser.cc
+++ b/dev/kernel/src/FS/NeFS+FileSystemParser.cc
@@ -10,6 +10,7 @@
#include <FirmwareKit/EPM.h>
#include <KernelKit/DriveMgr.h>
+#include <KernelKit/IFS.h>
#include <KernelKit/KPC.h>
#include <KernelKit/ProcessScheduler.h>
#include <KernelKit/UserMgr.h>
diff --git a/dev/kernel/src/DriveMgr+IO.cc b/dev/kernel/src/IFS.cc
index 9137c91e..ba2ec8c0 100644
--- a/dev/kernel/src/DriveMgr+IO.cc
+++ b/dev/kernel/src/IFS.cc
@@ -9,9 +9,9 @@
/*************************************************************
*
- * File: DriveMgr+IO.cc
+ * File: IFS.cc
* Purpose: Filesystem to mountpoint interface.
- * Date: 3/26/24
+ * Date: 05/26/2025
*
* Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
*
@@ -23,13 +23,13 @@
#define fsi_ifs_read(DRV, TRAITS, MP) (MP->DRV()).fInput(TRAITS)
namespace Kernel {
-/// @brief Read from newfs disk.
+/// @brief Read from fs disk.
/// @param Mnt mounted interface.
/// @param DrvTrait drive info
/// @param DrvIndex drive index.
/// @return
Int32 fs_ifs_read(MountpointInterface* Mnt, DriveTrait& DrvTrait, Int32 DrvIndex) {
- if (!Mnt) return 1;
+ if (!Mnt) return kErrorDisk;
DrvTrait.fPacket.fPacketGood = false;
@@ -52,16 +52,16 @@ Int32 fs_ifs_read(MountpointInterface* Mnt, DriveTrait& DrvTrait, Int32 DrvIndex
}
}
- return DrvTrait.fPacket.fPacketGood;
+ return DrvTrait.fPacket.fPacketGood ? kErrorSuccess : kErrorDisk;
}
-/// @brief Write to newfs disk.
+/// @brief Write to fs disk.
/// @param Mnt mounted interface.
/// @param DrvTrait drive info
/// @param DrvIndex drive index.
/// @return
Int32 fs_ifs_write(MountpointInterface* Mnt, DriveTrait& DrvTrait, Int32 DrvIndex) {
- if (!Mnt) return 1;
+ if (!Mnt) return kErrorDisk;
DrvTrait.fPacket.fPacketGood = false;
@@ -84,6 +84,6 @@ Int32 fs_ifs_write(MountpointInterface* Mnt, DriveTrait& DrvTrait, Int32 DrvInde
}
}
- return DrvTrait.fPacket.fPacketGood;
+ return DrvTrait.fPacket.fPacketGood ? kErrorSuccess : kErrorDisk;
}
} // namespace Kernel \ No newline at end of file
diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc
index f900f984..4bbd085a 100644
--- a/dev/kernel/src/UserProcessScheduler.cc
+++ b/dev/kernel/src/UserProcessScheduler.cc
@@ -126,6 +126,7 @@ ErrorOr<VoidPtr> USER_PROCESS::New(SizeT sz, SizeT pad_amount) {
#ifdef __NE_VIRTUAL_MEMORY_SUPPORT__
auto vm_register = kKernelVM;
+
hal_write_cr3(this->VMRegister);
auto ptr = mm_alloc_ptr(sz, Yes, Yes, pad_amount);