summaryrefslogtreecommitdiffhomepage
path: root/dev/ZKA/HALKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-08-31 15:29:28 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-08-31 15:30:56 +0200
commit20df23fab3e0c7c3b0559585622345f20b25e9be (patch)
treeab4ea9c70f88fdd9e6d2563fcf69cc78d418baac /dev/ZKA/HALKit
parente2a90fce95fde6eaef50e6d99e32b902ec14cc0d (diff)
WIP: Work in progress user scheduler, SMP version is next after that
one. TODO: Finish to fix the last issues. TODO2: When done, extended the SCI. TODO3: After that load a PEF executable. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/ZKA/HALKit')
-rw-r--r--dev/ZKA/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx4
-rw-r--r--dev/ZKA/HALKit/AMD64/HalSchedulerCore.cxx1
2 files changed, 4 insertions, 1 deletions
diff --git a/dev/ZKA/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx b/dev/ZKA/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx
index 99b784be..1e9e6ec1 100644
--- a/dev/ZKA/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx
+++ b/dev/ZKA/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx
@@ -20,6 +20,7 @@ EXTERN_C void idt_handle_gpf(Kernel::UIntPtr rsp)
EXTERN_C void idt_handle_pf(Kernel::UIntPtr rsp)
{
Kernel::UserProcessScheduler::The().CurrentProcess().Leak().Crash();
+ Kernel::ke_stop(RUNTIME_CHECK_PROCESS);
}
/// @brief Handle math fault.
@@ -27,6 +28,7 @@ EXTERN_C void idt_handle_pf(Kernel::UIntPtr rsp)
EXTERN_C void idt_handle_math(Kernel::UIntPtr rsp)
{
Kernel::UserProcessScheduler::The().CurrentProcess().Leak().Crash();
+ Kernel::ke_stop(RUNTIME_CHECK_PROCESS);
}
/// @brief Handle any generic fault.
@@ -34,6 +36,7 @@ EXTERN_C void idt_handle_math(Kernel::UIntPtr rsp)
EXTERN_C void idt_handle_generic(Kernel::UIntPtr rsp)
{
Kernel::UserProcessScheduler::The().CurrentProcess().Leak().Crash();
+ Kernel::ke_stop(RUNTIME_CHECK_PROCESS);
}
/// @brief Handle #UD fault.
@@ -41,6 +44,7 @@ EXTERN_C void idt_handle_generic(Kernel::UIntPtr rsp)
EXTERN_C void idt_handle_ud(Kernel::UIntPtr rsp)
{
Kernel::UserProcessScheduler::The().CurrentProcess().Leak().Crash();
+ Kernel::ke_stop(RUNTIME_CHECK_PROCESS);
}
/// @brief Enter syscall from assembly.
diff --git a/dev/ZKA/HALKit/AMD64/HalSchedulerCore.cxx b/dev/ZKA/HALKit/AMD64/HalSchedulerCore.cxx
index a63328ab..3897cb6a 100644
--- a/dev/ZKA/HALKit/AMD64/HalSchedulerCore.cxx
+++ b/dev/ZKA/HALKit/AMD64/HalSchedulerCore.cxx
@@ -14,7 +14,6 @@ Void UserProcess::SetEntrypoint(VoidPtr imageStart) noexcept
if (imageStart == nullptr)
this->Crash();
-
VoidPtr cr3_pd;
asm volatile(