summaryrefslogtreecommitdiffstats
path: root/src/kernel/syscall.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/syscall.C')
-rw-r--r--src/kernel/syscall.C9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/kernel/syscall.C b/src/kernel/syscall.C
index d59ea1a03..0b591f575 100644
--- a/src/kernel/syscall.C
+++ b/src/kernel/syscall.C
@@ -1,10 +1,17 @@
#include <kernel/console.H>
+#include <kernel/cpu.H>
+#include <kernel/cpumgr.H>
+#include <kernel/scheduler.H>
extern "C"
void kernel_execute_decrementer()
{
//printk("Decrementer.\n");
-
+
+ Scheduler* s = CpuManager::getCurrentCPU()->scheduler;
+ s->returnRunnable();
+ s->setNextRunnable();
+
// Resync decrementer.
register uint64_t decrementer = 0x0f000000;
asm volatile("mtdec %0" :: "r"(decrementer));
OpenPOWER on IntegriCloud