summaryrefslogtreecommitdiffhomepage
path: root/Kernel/Sources/SMPManager.cxx
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-06-01 09:29:31 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-06-01 09:29:31 +0200
commitfc0d38259fd6670966b916b1f28a11f3cb2a4c45 (patch)
tree2a54c64137eae7ffacfcb1842a92335b0e41b39b /Kernel/Sources/SMPManager.cxx
parentc8b9625efaeae241d57cc8a40c3234807206e386 (diff)
MHR-23: SMP: Add hal_send_start_ipi and hal_send_end_ipi, as well as
DMA utilities. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Kernel/Sources/SMPManager.cxx')
-rw-r--r--Kernel/Sources/SMPManager.cxx6
1 files changed, 4 insertions, 2 deletions
diff --git a/Kernel/Sources/SMPManager.cxx b/Kernel/Sources/SMPManager.cxx
index b2f239e3..29e0fa26 100644
--- a/Kernel/Sources/SMPManager.cxx
+++ b/Kernel/Sources/SMPManager.cxx
@@ -5,7 +5,7 @@
------------------------------------------- */
#include <ArchKit/ArchKit.hpp>
-#include <KernelKit/ProcessScheduler.hpp>
+#include <KernelKit/ProcessScheduler.hxx>
#include <KernelKit/SMPManager.hpp>
///! BUGS: 0
@@ -95,7 +95,6 @@ namespace NewOS
{
/// Keep the arguments, switch the base pointer, stack pointer
/// fs and gs registers.
-
fStack->Rbp = stack->Rbp;
fStack->Rsp = stack->Rsp;
fStack->Fs = stack->Fs;
@@ -103,6 +102,7 @@ namespace NewOS
}
rt_do_context_switch(fStack);
+
return true;
}
@@ -172,6 +172,8 @@ namespace NewOS
rt_copy_memory(stack, fThreadList[idx].Leak().Leak().fStack,
sizeof(HAL::StackFrame));
+ fThreadList[idx].Leak().Leak().Switch(fThreadList[idx].Leak().Leak().fStack);
+
fThreadList[idx].Leak().Leak().fPID = ProcessHelper::GetCurrentPID();
fThreadList[idx].Leak().Leak().Busy(false);