diff options
| author | Patrick Williams <iawillia@us.ibm.com> | 2010-06-07 14:41:20 -0500 |
|---|---|---|
| committer | Patrick Williams <iawillia@us.ibm.com> | 2010-06-07 14:41:20 -0500 |
| commit | 546a015f74fab0c4e359cf97f289ff26d6481844 (patch) | |
| tree | bd2643a5d512af932090fb09748aea8aa8f61521 /src/kernel/kernel.C | |
| parent | cd86583d084a4227dbf6a7cca2934eaad2b060d1 (diff) | |
| download | blackbird-hostboot-546a015f74fab0c4e359cf97f289ff26d6481844.tar.gz blackbird-hostboot-546a015f74fab0c4e359cf97f289ff26d6481844.zip | |
Create init process, fix scheduler bugs.
Diffstat (limited to 'src/kernel/kernel.C')
| -rw-r--r-- | src/kernel/kernel.C | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/kernel/kernel.C b/src/kernel/kernel.C index 148ffe0bf..b071d9999 100644 --- a/src/kernel/kernel.C +++ b/src/kernel/kernel.C @@ -4,10 +4,15 @@ #include <kernel/heapmgr.H> #include <kernel/cpumgr.H> #include <util/singleton.H> +#include <kernel/cpu.H> +#include <kernel/task.H> +#include <kernel/scheduler.H> +#include <kernel/taskmgr.H> #include <stdlib.h> extern "C" void kernel_dispatch_task(); +extern void init_main(void* unused); class Kernel { @@ -15,6 +20,7 @@ class Kernel void cppBootstrap(); void memBootstrap(); void cpuBootstrap(); + void inittaskBootstrap(); protected: Kernel() {}; @@ -29,8 +35,9 @@ int main() kernel.memBootstrap(); kernel.cpuBootstrap(); - kernel_dispatch_task(); + kernel.inittaskBootstrap(); + kernel_dispatch_task(); // no return. while(1); return 0; } @@ -59,3 +66,11 @@ void Kernel::cpuBootstrap() CpuManager::init(); } +void Kernel::inittaskBootstrap() +{ + task_t * t = TaskManager::createTask(&init_main, NULL); + t->cpu = CpuManager::getCurrentCPU(); + TaskManager::setCurrentTask(t); + +} + |

