diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2010-06-28 15:00:46 -0500 |
---|---|---|
committer | Patrick Williams <iawillia@us.ibm.com> | 2010-06-28 15:00:46 -0500 |
commit | 419ee15eddec34322a9d44a7b9099494fb2ff0c7 (patch) | |
tree | 79407a0c379194127fb4821bdd7904aa6ccb6573 /src/kernel/cpumgr.C | |
parent | 493f4e35ab698fa90870e4317d00f26cb095bf4f (diff) | |
download | talos-hostboot-419ee15eddec34322a9d44a7b9099494fb2ff0c7.tar.gz talos-hostboot-419ee15eddec34322a9d44a7b9099494fb2ff0c7.zip |
Move SPRG3 manipulation to common ppc-arch file.
Diffstat (limited to 'src/kernel/cpumgr.C')
-rw-r--r-- | src/kernel/cpumgr.C | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/kernel/cpumgr.C b/src/kernel/cpumgr.C index d43b28ca8..a04d0e1fe 100644 --- a/src/kernel/cpumgr.C +++ b/src/kernel/cpumgr.C @@ -6,6 +6,7 @@ #include <kernel/pagemgr.H> #include <kernel/console.H> #include <util/singleton.H> +#include <kernel/ppcarch.H> CpuManager::CpuManager() { @@ -15,8 +16,7 @@ CpuManager::CpuManager() cpu_t* CpuManager::getCurrentCPU() { - register task_t* current_task = NULL; - asm volatile("mfsprg3 %0" : "=r" (current_task) ); + register task_t* current_task = (task_t*) ppc_getSPRG3(); return current_task->cpu; } @@ -59,8 +59,7 @@ void CpuManager::startCPU(ssize_t i) if (currentCPU) { - register task_t* idle_task = iv_cpus[i]->scheduler->getIdleTask(); - asm volatile("mtsprg3 %0" :: "r" (idle_task)); + ppc_setSPRG3((uint64_t) iv_cpus[i]->scheduler->getIdleTask()); // TODO: Set up decrementer properly. register uint64_t decrementer = 0x0f000000; |