summaryrefslogtreecommitdiffhomepage
path: root/Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-05-05 21:10:18 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-05-05 21:10:18 +0200
commitf95d8bf159d10b5a9521dcaa0bc37aa0e9dfc02b (patch)
treebf8186f1a0521a64983bb0bca4f7b54883542195 /Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
parent5a903c1d8f80ca8d7bc5fbea0aea710ce0133f9d (diff)
MHR-23: Add run_format.sh, kernel patches.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp')
-rw-r--r--Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp105
1 files changed, 56 insertions, 49 deletions
diff --git a/Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp b/Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
index 288462ab..1b926814 100644
--- a/Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
+++ b/Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
@@ -10,85 +10,92 @@
/// @brief Handle GPF fault.
/// @param rsp
-EXTERN_C void idt_handle_gpf(NewOS::UIntPtr rsp) {
- MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
+EXTERN_C void idt_handle_gpf(NewOS::UIntPtr rsp)
+{
+ MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
- NewOS::kcout << "New OS: Stack Pointer: "
- << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
+ NewOS::kcout << "New OS: Stack Pointer: "
+ << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
- NewOS::kcout
- << "New OS: General Protection Fault, caused by "
- << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
+ NewOS::kcout
+ << "New OS: General Protection Fault, caused by "
+ << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
- NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
}
/// @brief Handle the scheduler interrupt, raised from the HPET timer.
/// @param rsp
-EXTERN_C void idt_handle_scheduler(NewOS::UIntPtr rsp) {
- NewOS::kcout << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
-
- NewOS::kcout
- << "New OS: Will be scheduled back later "
- << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName()
- << NewOS::end_line();
-
- /// schedule another process.
- if (!NewOS::ProcessHelper::StartScheduling()) {
- NewOS::kcout << "New OS: Continue schedule this process...\r";
- }
+EXTERN_C void idt_handle_scheduler(NewOS::UIntPtr rsp)
+{
+ NewOS::kcout << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
+
+ NewOS::kcout
+ << "New OS: Will be scheduled back later "
+ << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName()
+ << NewOS::end_line();
+
+ /// schedule another process.
+ if (!NewOS::ProcessHelper::StartScheduling())
+ {
+ NewOS::kcout << "New OS: Continue schedule this process...\r";
+ }
}
/// @brief Handle page fault.
/// @param rsp
-EXTERN_C void idt_handle_pf(NewOS::UIntPtr rsp) {
- MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
- NewOS::kcout << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
+EXTERN_C void idt_handle_pf(NewOS::UIntPtr rsp)
+{
+ MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
+ NewOS::kcout << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
- NewOS::kcout
- << "New OS: Segmentation Fault, caused by "
- << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
+ NewOS::kcout
+ << "New OS: Segmentation Fault, caused by "
+ << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
- NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
}
/// @brief Handle math fault.
/// @param rsp
-EXTERN_C void idt_handle_math(NewOS::UIntPtr rsp) {
- MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
- NewOS::kcout << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
+EXTERN_C void idt_handle_math(NewOS::UIntPtr rsp)
+{
+ MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
+ NewOS::kcout << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
- NewOS::kcout
- << "New OS: Math error, caused by "
- << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
+ NewOS::kcout
+ << "New OS: Math error, caused by "
+ << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
- NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
}
/// @brief Handle any generic fault.
/// @param rsp
-EXTERN_C void idt_handle_generic(NewOS::UIntPtr rsp) {
- MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
- NewOS::kcout << NewOS::StringBuilder::FromInt("sp{%}", rsp);
+EXTERN_C void idt_handle_generic(NewOS::UIntPtr rsp)
+{
+ MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
+ NewOS::kcout << NewOS::StringBuilder::FromInt("sp{%}", rsp);
- NewOS::kcout
- << "New OS: Execution error, caused by "
- << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
+ NewOS::kcout
+ << "New OS: Execution error, caused by "
+ << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
- NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
}
/// @brief Handle #UD fault.
/// @param rsp
-EXTERN_C void idt_handle_ud(NewOS::UIntPtr rsp) {
- MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
+EXTERN_C void idt_handle_ud(NewOS::UIntPtr rsp)
+{
+ MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
- NewOS::kcout << "New OS: Stack Pointer: "
- << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
+ NewOS::kcout << "New OS: Stack Pointer: "
+ << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
- NewOS::kcout
- << "New OS: Invalid interrupt, caused by "
- << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
+ NewOS::kcout
+ << "New OS: Invalid interrupt, caused by "
+ << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
- NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
}