summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-04-23 09:11:33 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-04-23 09:21:50 +0200
commit8c500f29bd0ef17f5b59e5be49f4cae88d827d85 (patch)
treeadce743ad0a20fde024cf7024b1813357b69f5e5 /dev/kernel/HALKit
parentbb1d9fa4b7b2c680ed3c0ca16c060dd991bda16f (diff)
dev, kernel: scheduler and disk swap refactors.
Details: - Reworked SCSI groundwork to prepare for a Generic SCSI driver. - Refatored scheduler's code with the new coding style for structs. - Add Leak and LeakBlob inside PROCESS_IMAGE struct. Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/HALKit')
-rw-r--r--dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc36
-rw-r--r--dev/kernel/HALKit/AMD64/HalKernelMain.cc2
-rw-r--r--dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitivesAMD64.cc2
-rw-r--r--dev/kernel/HALKit/AMD64/Storage/SCSI+Generic.cc13
-rw-r--r--dev/kernel/HALKit/ARM64/HalSchedulerCorePrimitivesARM64.cc2
-rw-r--r--dev/kernel/HALKit/ARM64/Storage/SCSI+Generic.cc13
6 files changed, 47 insertions, 21 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc b/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
index 46775a7f..7114f9f7 100644
--- a/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
+++ b/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
@@ -24,9 +24,9 @@ EXTERN_C void idt_handle_gpf(Kernel::UIntPtr rsp)
Kernel::kout << "Kernel: General Protection Fault.\r";
- process.Leak().ProcessSignal.SignalArg = rsp;
- process.Leak().ProcessSignal.SignalID = SIGKILL;
- process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status;
+ process.Leak().Signal.SignalArg = rsp;
+ process.Leak().Signal.SignalID = SIGKILL;
+ process.Leak().Signal.PreviousStatus = process.Leak().Status;
Kernel::kout << "Kernel: SIGKILL status.\r";
@@ -49,9 +49,9 @@ EXTERN_C void idt_handle_pf(Kernel::UIntPtr rsp)
Kernel::kout << "Kernel: Page Fault.\r";
Kernel::kout << "Kernel: SIGKILL\r";
- process.Leak().ProcessSignal.SignalArg = rsp;
- process.Leak().ProcessSignal.SignalID = SIGKILL;
- process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status;
+ process.Leak().Signal.SignalArg = rsp;
+ process.Leak().Signal.SignalID = SIGKILL;
+ process.Leak().Signal.PreviousStatus = process.Leak().Status;
process.Leak().Status = Kernel::ProcessStatusKind::kKilled;
@@ -99,9 +99,9 @@ EXTERN_C void idt_handle_math(Kernel::UIntPtr rsp)
Kernel::kout << "Kernel: Math error (division by zero?).\r";
- process.Leak().ProcessSignal.SignalArg = rsp;
- process.Leak().ProcessSignal.SignalID = SIGKILL;
- process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status;
+ process.Leak().Signal.SignalArg = rsp;
+ process.Leak().Signal.SignalID = SIGKILL;
+ process.Leak().Signal.PreviousStatus = process.Leak().Status;
Kernel::kout << "Kernel: SIGKILL status.\r";
@@ -123,9 +123,9 @@ EXTERN_C void idt_handle_generic(Kernel::UIntPtr rsp)
Kernel::kout << "Kernel: Generic Process Fault.\r";
- process.Leak().ProcessSignal.SignalArg = rsp;
- process.Leak().ProcessSignal.SignalID = SIGKILL;
- process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status;
+ process.Leak().Signal.SignalArg = rsp;
+ process.Leak().Signal.SignalID = SIGKILL;
+ process.Leak().Signal.PreviousStatus = process.Leak().Status;
Kernel::kout << "Kernel: SIGKILL status.\r";
@@ -151,10 +151,10 @@ EXTERN_C Kernel::Void idt_handle_breakpoint(Kernel::UIntPtr rip)
(void)(Kernel::kout << "Kernel: Process RIP: " << Kernel::hex_number(rip) << Kernel::kendl);
Kernel::kout << "Kernel: SIGTRAP\r";
- process.Leak().ProcessSignal.SignalArg = rip;
- process.Leak().ProcessSignal.SignalID = SIGTRAP;
+ process.Leak().Signal.SignalArg = rip;
+ process.Leak().Signal.SignalID = SIGTRAP;
- process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status;
+ process.Leak().Signal.PreviousStatus = process.Leak().Status;
Kernel::kout << "Kernel: SIGTRAP status.\r";
@@ -174,9 +174,9 @@ EXTERN_C void idt_handle_ud(Kernel::UIntPtr rsp)
Kernel::kout << "Kernel: Undefined Opcode.\r";
- process.Leak().ProcessSignal.SignalArg = rsp;
- process.Leak().ProcessSignal.SignalID = SIGKILL;
- process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status;
+ process.Leak().Signal.SignalArg = rsp;
+ process.Leak().Signal.SignalID = SIGKILL;
+ process.Leak().Signal.PreviousStatus = process.Leak().Status;
Kernel::kout << "Kernel: SIGKILL status.\r";
diff --git a/dev/kernel/HALKit/AMD64/HalKernelMain.cc b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
index c2be925a..20994d9b 100644
--- a/dev/kernel/HALKit/AMD64/HalKernelMain.cc
+++ b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
@@ -27,7 +27,7 @@ STATIC Kernel::Void hal_pre_init_scheduler()
{
for (Kernel::SizeT i = 0U; i < Kernel::UserProcessScheduler::The().CurrentTeam().AsArray().Count(); ++i)
{
- Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[i] = Kernel::UserProcess();
+ Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[i] = Kernel::USER_PROCESS();
Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[i].Status = Kernel::ProcessStatusKind::kKilled;
}
}
diff --git a/dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitivesAMD64.cc b/dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitivesAMD64.cc
index c2739f27..56ed4b34 100644
--- a/dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitivesAMD64.cc
+++ b/dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitivesAMD64.cc
@@ -14,7 +14,7 @@ namespace Kernel
/// @param
/***********************************************************************************/
- EXTERN_C Void __zka_pure_call(UserProcess* process)
+ EXTERN_C Void __zka_pure_call(USER_PROCESS* process)
{
if (process)
process->Crash();
diff --git a/dev/kernel/HALKit/AMD64/Storage/SCSI+Generic.cc b/dev/kernel/HALKit/AMD64/Storage/SCSI+Generic.cc
new file mode 100644
index 00000000..cb387e73
--- /dev/null
+++ b/dev/kernel/HALKit/AMD64/Storage/SCSI+Generic.cc
@@ -0,0 +1,13 @@
+/* -------------------------------------------
+
+ Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
+
+------------------------------------------- */
+
+#include <modules/SCSI/SCSI.h>
+
+using namespace Kernel;
+
+///! @brief ATAPI SCSI packet.
+const ATTRIBUTE(unused) scsi_packet_type_12 kCDRomPacketTemplate = {0x43, 0, 1, 0, 0, 0,
+ 0, 12, 0x40, 0, 0};
diff --git a/dev/kernel/HALKit/ARM64/HalSchedulerCorePrimitivesARM64.cc b/dev/kernel/HALKit/ARM64/HalSchedulerCorePrimitivesARM64.cc
index 2f5c92e5..84aae986 100644
--- a/dev/kernel/HALKit/ARM64/HalSchedulerCorePrimitivesARM64.cc
+++ b/dev/kernel/HALKit/ARM64/HalSchedulerCorePrimitivesARM64.cc
@@ -14,7 +14,7 @@ namespace Kernel
/// @param void
/***********************************************************************************/
- EXTERN_C Void __zka_pure_call(UserProcess* process)
+ EXTERN_C Void __zka_pure_call(USER_PROCESS* process)
{
if (process)
process->Crash();
diff --git a/dev/kernel/HALKit/ARM64/Storage/SCSI+Generic.cc b/dev/kernel/HALKit/ARM64/Storage/SCSI+Generic.cc
new file mode 100644
index 00000000..cb387e73
--- /dev/null
+++ b/dev/kernel/HALKit/ARM64/Storage/SCSI+Generic.cc
@@ -0,0 +1,13 @@
+/* -------------------------------------------
+
+ Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
+
+------------------------------------------- */
+
+#include <modules/SCSI/SCSI.h>
+
+using namespace Kernel;
+
+///! @brief ATAPI SCSI packet.
+const ATTRIBUTE(unused) scsi_packet_type_12 kCDRomPacketTemplate = {0x43, 0, 1, 0, 0, 0,
+ 0, 12, 0x40, 0, 0};